diff options
800 files changed, 16382 insertions, 180635 deletions
diff --git a/ABOUT-NLS b/ABOUT-NLS deleted file mode 100644 index b1de1b68..00000000 --- a/ABOUT-NLS +++ /dev/null @@ -1,1282 +0,0 @@ -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 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, -itself available at your nearest GNU archive site. But you do _not_ -need to install GNU `gettext' prior to configuring, installing or using -this package with messages translated. - - 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 on translations can contact the appropriate team. - -1.1 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'. - - 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. Installers may use special -options at configuration time for changing the default behaviour. The -command: - - ./configure --disable-nls - -will _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' library -and will decide to use it. If not, you may have to to use the -`--with-libintl-prefix' option to tell `configure' where to look for it. - - 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 -together with the package. However, the environment variable `LINGUAS' -may be set, prior to configuration, to limit the installed set. -`LINGUAS' should then contain a space separated list of two-letter -codes, stating which languages are allowed. - -1.2 Using This Package -====================== - -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. If you happen to have the `LC_ALL' or some other -`LC_xxx' environment variables set, you should unset them before -setting `LANG', otherwise the setting of `LANG' will not have the -desired effect. Here `LL' is an ISO 639 two-letter language code, and -`CC' is an ISO 3166 two-letter country code. For example, let's -suppose that you speak German and live in Germany. At the shell -prompt, merely execute `setenv LANG de_DE' (in `csh'), -`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). -This can be done from your `.login' or `.profile' file, once and for -all. - - You might think that the country code specification is redundant. -But in fact, some languages have dialects in different countries. For -example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The -country code serves to distinguish the dialects. - - The locale naming convention of `LL_CC', with `LL' denoting the -language and `CC' denoting the country, is the one use on systems based -on GNU libc. On other systems, some variations of this scheme are -used, such as `LL' or `LL_CC.ENCODING'. You can get the list of -locales supported by your system for your language by running the -command `locale -a | grep '^LL''. - - Not all programs have translations for all languages. By default, an -English message is shown in place of a nonexistent translation. If you -understand other languages, you can set up a priority list of languages. -This is done through a different environment variable, called -`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' -for the purpose of message handling, but you still need to have `LANG' -set to the primary language; this is required by other parts of the -system libraries. For example, some Swedish users who would rather -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. - -1.3 Translating Teams -===================== - -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 -teams can be found at the Free Translation Project's homepage, -`http://translationproject.org/', in the "Teams" area. - - If you'd like to volunteer to _work_ at translating messages, you -should become a member of the translating team for your own language. -The subscribing address is _not_ the same as the list itself, it has -`-request' appended. For example, speakers of Swedish can send a -message to `sv-request@li.org', having this message body: - - subscribe - - Keep in mind that team members are expected to participate -_actively_ in translations, or at solving translational difficulties, -rather than merely lurking around. If your team does not exist yet and -you want to start one, or if you are unsure about what to do or how to -get started, please write to `coordinator@translationproject.org' to -reach the coordinator for all translator teams. - - The English team is special. It works at improving and uniformizing -the terminology in use. Proven linguistic skills are praised more than -programming skills, here. - -1.4 Available Packages -====================== - -Languages are not equally supported in all packages. The following -matrix shows the current state of internationalization, as of June -2010. 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 af am an ar as ast az be be@latin bg bn_IN bs ca - +--------------------------------------------------+ - a2ps | [] [] | - aegis | | - ant-phone | | - anubis | | - aspell | [] [] | - bash | | - bfd | | - bibshelf | [] | - binutils | | - bison | | - bison-runtime | [] | - bluez-pin | [] [] | - bombono-dvd | | - buzztard | | - cflow | | - clisp | | - coreutils | [] [] | - cpio | | - cppi | | - cpplib | [] | - cryptsetup | | - dfarc | | - dialog | [] [] | - dico | | - diffutils | [] | - dink | | - doodle | | - e2fsprogs | [] | - enscript | [] | - exif | | - fetchmail | [] | - findutils | [] | - flex | [] | - freedink | | - gas | | - gawk | [] [] | - gcal | [] | - gcc | | - gettext-examples | [] [] [] [] | - gettext-runtime | [] [] | - gettext-tools | [] [] | - gip | [] | - gjay | | - gliv | [] | - glunarclock | [] [] | - gnubiff | | - gnucash | [] | - gnuedu | | - gnulib | | - gnunet | | - gnunet-gtk | | - gnutls | | - gold | | - gpe-aerial | | - gpe-beam | | - gpe-bluetooth | | - gpe-calendar | | - gpe-clock | [] | - gpe-conf | | - gpe-contacts | | - gpe-edit | | - gpe-filemanager | | - gpe-go | | - gpe-login | | - gpe-ownerinfo | [] | - gpe-package | | - gpe-sketchbook | | - gpe-su | [] | - gpe-taskmanager | [] | - gpe-timesheet | [] | - gpe-today | [] | - gpe-todo | | - gphoto2 | | - gprof | [] | - gpsdrive | | - gramadoir | | - grep | | - grub | [] [] | - gsasl | | - gss | | - gst-plugins-bad | [] | - gst-plugins-base | [] | - gst-plugins-good | [] | - gst-plugins-ugly | [] | - gstreamer | [] [] [] | - gtick | | - gtkam | [] | - gtkorphan | [] | - gtkspell | [] [] [] | - gutenprint | | - hello | [] | - help2man | | - hylafax | | - idutils | | - indent | [] [] | - iso_15924 | | - iso_3166 | [] [] [] [] [] [] [] | - iso_3166_2 | | - iso_4217 | | - iso_639 | [] [] [] [] | - iso_639_3 | | - jwhois | | - kbd | | - keytouch | [] | - keytouch-editor | | - keytouch-keyboa... | [] | - klavaro | [] | - latrine | | - ld | [] | - leafpad | [] [] | - libc | [] [] | - libexif | () | - libextractor | | - libgnutls | | - libgpewidget | | - libgpg-error | | - libgphoto2 | | - libgphoto2_port | | - libgsasl | | - libiconv | [] | - libidn | | - lifelines | | - liferea | [] [] | - lilypond | | - linkdr | [] | - lordsawar | | - lprng | | - lynx | [] | - m4 | | - mailfromd | | - mailutils | | - make | | - man-db | | - man-db-manpages | | - minicom | | - mkisofs | | - myserver | | - nano | [] [] | - opcodes | | - parted | | - pies | | - popt | | - psmisc | | - pspp | [] | - pwdutils | | - radius | [] | - recode | [] [] | - rosegarden | | - rpm | | - rush | | - sarg | | - screem | | - scrollkeeper | [] [] [] | - sed | [] [] | - sharutils | [] [] | - shishi | | - skencil | | - solfege | | - solfege-manual | | - soundtracker | | - sp | | - sysstat | | - tar | [] | - texinfo | | - tin | | - unicode-han-tra... | | - unicode-transla... | | - util-linux-ng | [] | - vice | | - vmm | | - vorbis-tools | | - wastesedge | | - wdiff | | - wget | [] [] | - wyslij-po | | - xchat | [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] | - +--------------------------------------------------+ - af am an ar as ast az be be@latin bg bn_IN bs ca - 6 0 1 2 3 19 1 10 3 28 3 1 38 - - crh cs da de el en en_GB en_ZA eo es et eu fa - +-------------------------------------------------+ - a2ps | [] [] [] [] [] [] [] | - aegis | [] [] [] | - ant-phone | [] () | - anubis | [] [] | - aspell | [] [] [] [] [] | - bash | [] [] [] | - bfd | [] | - bibshelf | [] [] [] | - binutils | [] | - bison | [] [] | - bison-runtime | [] [] [] [] | - bluez-pin | [] [] [] [] [] [] | - bombono-dvd | [] | - buzztard | [] [] [] | - cflow | [] [] | - clisp | [] [] [] [] | - coreutils | [] [] [] [] | - cpio | | - cppi | | - cpplib | [] [] [] | - cryptsetup | [] | - dfarc | [] [] [] | - dialog | [] [] [] [] [] | - dico | | - diffutils | [] [] [] [] [] [] | - dink | [] [] [] | - doodle | [] | - e2fsprogs | [] [] [] | - enscript | [] [] [] | - exif | () [] [] | - fetchmail | [] [] () [] [] [] | - findutils | [] [] [] | - flex | [] [] | - freedink | [] [] [] | - gas | [] | - gawk | [] [] [] | - gcal | [] | - gcc | [] [] | - gettext-examples | [] [] [] [] | - gettext-runtime | [] [] [] [] | - gettext-tools | [] [] [] | - gip | [] [] [] [] | - gjay | [] | - gliv | [] [] [] | - glunarclock | [] [] | - gnubiff | () | - gnucash | [] () () () () | - gnuedu | [] [] | - gnulib | [] [] | - gnunet | | - gnunet-gtk | [] | - gnutls | [] [] | - gold | [] | - gpe-aerial | [] [] [] [] | - gpe-beam | [] [] [] [] | - gpe-bluetooth | [] [] | - gpe-calendar | [] | - gpe-clock | [] [] [] [] | - gpe-conf | [] [] [] | - gpe-contacts | [] [] [] | - gpe-edit | [] [] | - gpe-filemanager | [] [] [] | - gpe-go | [] [] [] [] | - gpe-login | [] [] | - gpe-ownerinfo | [] [] [] [] | - gpe-package | [] [] [] | - gpe-sketchbook | [] [] [] [] | - gpe-su | [] [] [] [] | - gpe-taskmanager | [] [] [] [] | - gpe-timesheet | [] [] [] [] | - gpe-today | [] [] [] [] | - gpe-todo | [] [] [] | - gphoto2 | [] [] () [] [] [] | - gprof | [] [] [] | - gpsdrive | [] [] [] | - gramadoir | [] [] [] | - grep | [] | - grub | [] [] | - gsasl | [] | - gss | | - gst-plugins-bad | [] [] [] [] [] | - gst-plugins-base | [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] | - gtick | [] () [] | - gtkam | [] [] () [] [] | - gtkorphan | [] [] [] [] | - gtkspell | [] [] [] [] [] [] [] | - gutenprint | [] [] [] | - hello | [] [] [] [] | - help2man | [] | - hylafax | [] [] | - idutils | [] [] | - indent | [] [] [] [] [] [] [] | - iso_15924 | [] () [] [] | - iso_3166 | [] [] [] [] () [] [] [] () | - iso_3166_2 | () | - iso_4217 | [] [] [] () [] [] | - iso_639 | [] [] [] [] () [] [] | - iso_639_3 | [] | - jwhois | [] | - kbd | [] [] [] [] [] | - keytouch | [] [] | - keytouch-editor | [] [] | - keytouch-keyboa... | [] | - klavaro | [] [] [] [] | - latrine | [] () | - ld | [] [] | - leafpad | [] [] [] [] [] [] | - libc | [] [] [] [] | - libexif | [] [] () | - libextractor | | - libgnutls | [] | - libgpewidget | [] [] | - libgpg-error | [] [] | - libgphoto2 | [] () | - libgphoto2_port | [] () [] | - libgsasl | | - libiconv | [] [] [] [] [] | - libidn | [] [] [] | - lifelines | [] () | - liferea | [] [] [] [] [] | - lilypond | [] [] [] | - linkdr | [] [] [] | - lordsawar | [] | - lprng | | - lynx | [] [] [] [] | - m4 | [] [] [] [] | - mailfromd | | - mailutils | [] | - make | [] [] [] | - man-db | | - man-db-manpages | | - minicom | [] [] [] [] | - mkisofs | | - myserver | | - nano | [] [] [] | - opcodes | [] [] | - parted | [] [] | - pies | | - popt | [] [] [] [] [] | - psmisc | [] [] [] | - pspp | [] | - pwdutils | [] | - radius | [] | - recode | [] [] [] [] [] [] | - rosegarden | () () () | - rpm | [] [] [] | - rush | | - sarg | | - screem | | - scrollkeeper | [] [] [] [] [] | - sed | [] [] [] [] [] [] | - sharutils | [] [] [] [] | - shishi | | - skencil | [] () [] | - solfege | [] [] [] | - solfege-manual | [] [] | - soundtracker | [] [] [] | - sp | [] | - sysstat | [] [] [] | - tar | [] [] [] [] | - texinfo | [] [] [] | - tin | [] [] | - unicode-han-tra... | | - unicode-transla... | | - util-linux-ng | [] [] [] [] | - vice | () () | - vmm | [] | - vorbis-tools | [] [] | - wastesedge | [] | - wdiff | [] [] | - wget | [] [] [] | - wyslij-po | | - xchat | [] [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] [] [] [] | - +-------------------------------------------------+ - crh cs da de el en en_GB en_ZA eo es et eu fa - 5 64 105 117 18 1 8 0 28 89 18 19 0 - - fi fr ga gl gu he hi hr hu hy id is it ja ka kn - +----------------------------------------------------+ - a2ps | [] [] [] [] | - aegis | [] [] | - ant-phone | [] [] | - anubis | [] [] [] [] | - aspell | [] [] [] [] | - bash | [] [] [] [] | - bfd | [] [] [] | - bibshelf | [] [] [] [] [] | - binutils | [] [] [] | - bison | [] [] [] [] | - bison-runtime | [] [] [] [] [] [] | - bluez-pin | [] [] [] [] [] [] [] [] | - bombono-dvd | [] | - buzztard | [] | - cflow | [] [] [] | - clisp | [] | - coreutils | [] [] [] [] [] | - cpio | [] [] [] [] | - cppi | [] [] | - cpplib | [] [] [] | - cryptsetup | [] [] [] | - dfarc | [] [] [] | - dialog | [] [] [] [] [] [] [] | - dico | | - diffutils | [] [] [] [] [] [] [] [] [] | - dink | [] | - doodle | [] [] | - e2fsprogs | [] [] | - enscript | [] [] [] [] | - exif | [] [] [] [] [] [] | - fetchmail | [] [] [] [] | - findutils | [] [] [] [] [] [] | - flex | [] [] [] | - freedink | [] [] [] | - gas | [] [] | - gawk | [] [] [] [] () [] | - gcal | [] | - gcc | [] | - gettext-examples | [] [] [] [] [] [] [] | - gettext-runtime | [] [] [] [] [] [] | - gettext-tools | [] [] [] [] | - gip | [] [] [] [] [] [] | - gjay | [] | - gliv | [] () | - glunarclock | [] [] [] [] | - gnubiff | () [] () | - gnucash | () () () () () [] | - gnuedu | [] [] | - gnulib | [] [] [] [] [] [] | - gnunet | | - gnunet-gtk | [] | - gnutls | [] [] | - gold | [] [] | - gpe-aerial | [] [] [] | - gpe-beam | [] [] [] [] | - gpe-bluetooth | [] [] [] [] | - gpe-calendar | [] [] | - gpe-clock | [] [] [] [] [] | - gpe-conf | [] [] [] [] | - gpe-contacts | [] [] [] [] | - gpe-edit | [] [] [] | - gpe-filemanager | [] [] [] [] | - gpe-go | [] [] [] [] [] | - gpe-login | [] [] [] | - gpe-ownerinfo | [] [] [] [] [] | - gpe-package | [] [] [] | - gpe-sketchbook | [] [] [] [] | - gpe-su | [] [] [] [] [] [] | - gpe-taskmanager | [] [] [] [] [] | - gpe-timesheet | [] [] [] [] [] | - gpe-today | [] [] [] [] [] [] [] | - gpe-todo | [] [] [] | - gphoto2 | [] [] [] [] [] [] | - gprof | [] [] [] [] | - gpsdrive | [] [] [] | - gramadoir | [] [] [] | - grep | [] [] | - grub | [] [] [] [] | - gsasl | [] [] [] [] [] | - gss | [] [] [] [] [] | - gst-plugins-bad | [] [] [] [] [] [] | - gst-plugins-base | [] [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] | - gtick | [] [] [] [] [] | - gtkam | [] [] [] [] [] | - gtkorphan | [] [] [] | - gtkspell | [] [] [] [] [] [] [] [] [] | - gutenprint | [] [] [] [] | - hello | [] [] [] | - help2man | [] [] | - hylafax | [] | - idutils | [] [] [] [] [] [] | - indent | [] [] [] [] [] [] [] [] | - iso_15924 | [] () [] [] | - iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | - iso_3166_2 | () [] [] [] | - iso_4217 | [] () [] [] [] [] | - iso_639 | [] () [] [] [] [] [] [] [] | - iso_639_3 | () [] [] | - jwhois | [] [] [] [] [] | - kbd | [] [] | - keytouch | [] [] [] [] [] [] | - keytouch-editor | [] [] [] [] [] | - keytouch-keyboa... | [] [] [] [] [] | - klavaro | [] [] | - latrine | [] [] [] | - ld | [] [] [] [] | - leafpad | [] [] [] [] [] [] [] () | - libc | [] [] [] [] [] | - libexif | [] | - libextractor | | - libgnutls | [] [] | - libgpewidget | [] [] [] [] | - libgpg-error | [] [] | - libgphoto2 | [] [] [] | - libgphoto2_port | [] [] [] | - libgsasl | [] [] [] [] [] | - libiconv | [] [] [] [] [] [] | - libidn | [] [] [] [] | - lifelines | () | - liferea | [] [] [] [] | - lilypond | [] [] | - linkdr | [] [] [] [] [] | - lordsawar | | - lprng | [] | - lynx | [] [] [] [] [] | - m4 | [] [] [] [] [] [] | - mailfromd | | - mailutils | [] [] | - make | [] [] [] [] [] [] [] [] [] | - man-db | [] [] | - man-db-manpages | [] | - minicom | [] [] [] [] [] | - mkisofs | [] [] [] [] | - myserver | | - nano | [] [] [] [] [] [] | - opcodes | [] [] [] [] | - parted | [] [] [] [] | - pies | | - popt | [] [] [] [] [] [] [] [] [] | - psmisc | [] [] [] | - pspp | | - pwdutils | [] [] | - radius | [] [] | - recode | [] [] [] [] [] [] [] [] | - rosegarden | () () () () () | - rpm | [] [] | - rush | | - sarg | [] | - screem | [] [] | - scrollkeeper | [] [] [] [] | - sed | [] [] [] [] [] [] [] [] | - sharutils | [] [] [] [] [] [] [] | - shishi | [] | - skencil | [] | - solfege | [] [] [] [] | - solfege-manual | [] [] | - soundtracker | [] [] | - sp | [] () | - sysstat | [] [] [] [] [] | - tar | [] [] [] [] [] [] [] | - texinfo | [] [] [] [] | - tin | [] | - unicode-han-tra... | | - unicode-transla... | [] [] | - util-linux-ng | [] [] [] [] [] [] | - vice | () () () | - vmm | [] | - vorbis-tools | [] | - wastesedge | () () | - wdiff | [] | - wget | [] [] [] [] [] [] [] [] | - wyslij-po | [] [] [] | - xchat | [] [] [] [] [] [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] [] [] | - +----------------------------------------------------+ - fi fr ga gl gu he hi hr hu hy id is it ja ka kn - 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 - - ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne - +-----------------------------------------------+ - a2ps | [] | - aegis | | - ant-phone | | - anubis | [] [] | - aspell | [] | - bash | | - bfd | | - bibshelf | [] [] | - binutils | | - bison | [] | - bison-runtime | [] [] [] [] [] | - bluez-pin | [] [] [] [] [] | - bombono-dvd | | - buzztard | | - cflow | | - clisp | | - coreutils | [] | - cpio | | - cppi | | - cpplib | | - cryptsetup | | - dfarc | [] | - dialog | [] [] [] [] [] | - dico | | - diffutils | [] [] | - dink | | - doodle | | - e2fsprogs | | - enscript | | - exif | [] | - fetchmail | | - findutils | | - flex | | - freedink | [] | - gas | | - gawk | | - gcal | | - gcc | | - gettext-examples | [] [] [] [] | - gettext-runtime | [] | - gettext-tools | [] | - gip | [] [] | - gjay | | - gliv | | - glunarclock | [] | - gnubiff | | - gnucash | () () () () | - gnuedu | | - gnulib | | - gnunet | | - gnunet-gtk | | - gnutls | [] | - gold | | - gpe-aerial | [] | - gpe-beam | [] | - gpe-bluetooth | [] [] | - gpe-calendar | [] | - gpe-clock | [] [] [] [] [] | - gpe-conf | [] [] | - gpe-contacts | [] [] | - gpe-edit | [] | - gpe-filemanager | [] [] | - gpe-go | [] [] [] | - gpe-login | [] | - gpe-ownerinfo | [] [] | - gpe-package | [] [] | - gpe-sketchbook | [] [] | - gpe-su | [] [] [] [] [] [] | - gpe-taskmanager | [] [] [] [] [] [] | - gpe-timesheet | [] [] | - gpe-today | [] [] [] [] | - gpe-todo | [] [] | - gphoto2 | | - gprof | [] | - gpsdrive | | - gramadoir | | - grep | | - grub | | - gsasl | | - gss | | - gst-plugins-bad | [] [] [] [] | - gst-plugins-base | [] [] | - gst-plugins-good | [] [] | - gst-plugins-ugly | [] [] [] [] [] | - gstreamer | | - gtick | | - gtkam | [] | - gtkorphan | [] [] | - gtkspell | [] [] [] [] [] [] [] | - gutenprint | | - hello | [] [] [] | - help2man | | - hylafax | | - idutils | | - indent | | - iso_15924 | [] [] | - iso_3166 | [] [] () [] [] [] [] [] | - iso_3166_2 | | - iso_4217 | [] [] | - iso_639 | [] [] | - iso_639_3 | [] | - jwhois | [] | - kbd | | - keytouch | [] | - keytouch-editor | [] | - keytouch-keyboa... | [] | - klavaro | [] | - latrine | [] | - ld | | - leafpad | [] [] [] | - libc | [] | - libexif | | - libextractor | | - libgnutls | [] | - libgpewidget | [] [] | - libgpg-error | | - libgphoto2 | | - libgphoto2_port | | - libgsasl | | - libiconv | | - libidn | | - lifelines | | - liferea | | - lilypond | | - linkdr | | - lordsawar | | - lprng | | - lynx | | - m4 | | - mailfromd | | - mailutils | | - make | [] | - man-db | | - man-db-manpages | | - minicom | [] | - mkisofs | | - myserver | | - nano | [] [] | - opcodes | | - parted | | - pies | | - popt | [] [] [] | - psmisc | | - pspp | | - pwdutils | | - radius | | - recode | | - rosegarden | | - rpm | | - rush | | - sarg | | - screem | | - scrollkeeper | [] [] | - sed | | - sharutils | | - shishi | | - skencil | | - solfege | [] | - solfege-manual | | - soundtracker | | - sp | | - sysstat | [] | - tar | [] | - texinfo | [] | - tin | | - unicode-han-tra... | | - unicode-transla... | | - util-linux-ng | | - vice | | - vmm | | - vorbis-tools | | - wastesedge | | - wdiff | | - wget | [] | - wyslij-po | | - xchat | [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] | - +-----------------------------------------------+ - ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne - 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 - - nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr - +---------------------------------------------------+ - a2ps | [] [] [] [] [] [] [] [] | - aegis | [] [] [] | - ant-phone | [] [] | - anubis | [] [] [] | - aspell | [] [] [] [] [] | - bash | [] [] | - bfd | [] | - bibshelf | [] [] | - binutils | [] [] | - bison | [] [] [] | - bison-runtime | [] [] [] [] [] [] [] | - bluez-pin | [] [] [] [] [] [] [] [] | - bombono-dvd | [] () | - buzztard | [] [] | - cflow | [] | - clisp | [] [] | - coreutils | [] [] [] [] [] [] | - cpio | [] [] [] | - cppi | [] | - cpplib | [] | - cryptsetup | [] | - dfarc | [] | - dialog | [] [] [] [] | - dico | [] | - diffutils | [] [] [] [] [] [] | - dink | () | - doodle | [] [] | - e2fsprogs | [] [] | - enscript | [] [] [] [] [] | - exif | [] [] [] () [] | - fetchmail | [] [] [] [] | - findutils | [] [] [] [] [] | - flex | [] [] [] [] [] | - freedink | [] [] | - gas | | - gawk | [] [] [] [] | - gcal | | - gcc | [] | - gettext-examples | [] [] [] [] [] [] [] [] | - gettext-runtime | [] [] [] [] [] [] [] [] [] | - gettext-tools | [] [] [] [] [] [] | - gip | [] [] [] [] [] | - gjay | | - gliv | [] [] [] [] [] [] | - glunarclock | [] [] [] [] [] | - gnubiff | [] () | - gnucash | [] () () () | - gnuedu | [] | - gnulib | [] [] [] [] | - gnunet | | - gnunet-gtk | | - gnutls | [] [] | - gold | | - gpe-aerial | [] [] [] [] [] [] [] | - gpe-beam | [] [] [] [] [] [] [] | - gpe-bluetooth | [] [] | - gpe-calendar | [] [] [] [] | - gpe-clock | [] [] [] [] [] [] [] [] | - gpe-conf | [] [] [] [] [] [] [] | - gpe-contacts | [] [] [] [] [] | - gpe-edit | [] [] [] | - gpe-filemanager | [] [] [] | - gpe-go | [] [] [] [] [] [] [] [] | - gpe-login | [] [] | - gpe-ownerinfo | [] [] [] [] [] [] [] [] | - gpe-package | [] [] | - gpe-sketchbook | [] [] [] [] [] [] [] | - gpe-su | [] [] [] [] [] [] [] [] | - gpe-taskmanager | [] [] [] [] [] [] [] [] | - gpe-timesheet | [] [] [] [] [] [] [] [] | - gpe-today | [] [] [] [] [] [] [] [] | - gpe-todo | [] [] [] [] [] | - gphoto2 | [] [] [] [] [] [] [] [] | - gprof | [] [] [] | - gpsdrive | [] [] | - gramadoir | [] [] | - grep | [] [] [] [] | - grub | [] [] [] | - gsasl | [] [] [] [] | - gss | [] [] [] | - gst-plugins-bad | [] [] [] [] [] [] | - gst-plugins-base | [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] | - gtick | [] [] [] | - gtkam | [] [] [] [] [] [] | - gtkorphan | [] | - gtkspell | [] [] [] [] [] [] [] [] [] [] | - gutenprint | [] [] | - hello | [] [] [] [] | - help2man | [] [] | - hylafax | [] | - idutils | [] [] [] [] [] | - indent | [] [] [] [] [] [] [] | - iso_15924 | [] [] [] [] | - iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | - iso_3166_2 | [] [] [] | - iso_4217 | [] [] [] [] [] [] [] [] | - iso_639 | [] [] [] [] [] [] [] [] [] | - iso_639_3 | [] [] | - jwhois | [] [] [] [] | - kbd | [] [] [] | - keytouch | [] [] [] | - keytouch-editor | [] [] [] | - keytouch-keyboa... | [] [] [] | - klavaro | [] [] | - latrine | [] [] | - ld | | - leafpad | [] [] [] [] [] [] [] [] [] | - libc | [] [] [] [] | - libexif | [] [] () [] | - libextractor | | - libgnutls | [] [] | - libgpewidget | [] [] [] | - libgpg-error | [] [] | - libgphoto2 | [] [] | - libgphoto2_port | [] [] [] [] [] | - libgsasl | [] [] [] [] [] | - libiconv | [] [] [] [] [] | - libidn | [] [] | - lifelines | [] [] | - liferea | [] [] [] [] [] () () [] | - lilypond | [] | - linkdr | [] [] [] | - lordsawar | | - lprng | [] | - lynx | [] [] [] | - m4 | [] [] [] [] [] | - mailfromd | [] | - mailutils | [] | - make | [] [] [] [] | - man-db | [] [] [] | - man-db-manpages | [] [] [] | - minicom | [] [] [] [] | - mkisofs | [] [] [] | - myserver | | - nano | [] [] [] [] | - opcodes | [] [] | - parted | [] [] [] [] | - pies | [] | - popt | [] [] [] [] | - psmisc | [] [] [] | - pspp | [] [] | - pwdutils | [] | - radius | [] [] [] | - recode | [] [] [] [] [] [] [] [] | - rosegarden | () () | - rpm | [] [] [] | - rush | [] [] | - sarg | | - screem | | - scrollkeeper | [] [] [] [] [] [] [] [] | - sed | [] [] [] [] [] [] [] [] [] | - sharutils | [] [] [] [] | - shishi | [] | - skencil | [] [] | - solfege | [] [] [] [] | - solfege-manual | [] [] [] | - soundtracker | [] | - sp | | - sysstat | [] [] [] [] | - tar | [] [] [] [] | - texinfo | [] [] [] [] | - tin | [] | - unicode-han-tra... | | - unicode-transla... | | - util-linux-ng | [] [] [] [] [] | - vice | [] | - vmm | [] | - vorbis-tools | [] [] | - wastesedge | [] | - wdiff | [] [] | - wget | [] [] [] [] [] [] [] | - wyslij-po | [] [] [] | - xchat | [] [] [] [] [] [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] | - +---------------------------------------------------+ - nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr - 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 - - sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW - +---------------------------------------------------+ - a2ps | [] [] [] [] [] | 27 - aegis | [] | 9 - ant-phone | [] [] [] [] | 9 - anubis | [] [] [] [] | 15 - aspell | [] [] [] | 20 - bash | [] [] [] | 12 - bfd | [] | 6 - bibshelf | [] [] [] | 16 - binutils | [] [] | 8 - bison | [] [] | 12 - bison-runtime | [] [] [] [] [] [] | 29 - bluez-pin | [] [] [] [] [] [] [] [] | 37 - bombono-dvd | [] | 4 - buzztard | [] | 7 - cflow | [] [] [] | 9 - clisp | | 10 - coreutils | [] [] [] [] | 22 - cpio | [] [] [] [] [] [] | 13 - cppi | [] [] | 5 - cpplib | [] [] [] [] [] [] | 14 - cryptsetup | [] [] | 7 - dfarc | [] | 9 - dialog | [] [] [] [] [] [] [] | 30 - dico | [] | 2 - diffutils | [] [] [] [] [] [] | 30 - dink | | 4 - doodle | [] [] | 7 - e2fsprogs | [] [] [] | 11 - enscript | [] [] [] [] | 17 - exif | [] [] [] | 16 - fetchmail | [] [] [] | 17 - findutils | [] [] [] [] [] | 20 - flex | [] [] [] [] | 15 - freedink | [] | 10 - gas | [] | 4 - gawk | [] [] [] [] | 18 - gcal | [] [] | 5 - gcc | [] [] [] | 7 - gettext-examples | [] [] [] [] [] [] [] | 34 - gettext-runtime | [] [] [] [] [] [] [] | 29 - gettext-tools | [] [] [] [] [] [] | 22 - gip | [] [] [] [] | 22 - gjay | [] | 3 - gliv | [] [] [] | 14 - glunarclock | [] [] [] [] [] | 19 - gnubiff | [] [] | 4 - gnucash | () [] () [] () | 10 - gnuedu | [] [] | 7 - gnulib | [] [] [] [] | 16 - gnunet | [] | 1 - gnunet-gtk | [] [] [] | 5 - gnutls | [] [] [] | 10 - gold | [] | 4 - gpe-aerial | [] [] [] | 18 - gpe-beam | [] [] [] | 19 - gpe-bluetooth | [] [] [] | 13 - gpe-calendar | [] [] [] [] | 12 - gpe-clock | [] [] [] [] [] | 28 - gpe-conf | [] [] [] [] | 20 - gpe-contacts | [] [] [] | 17 - gpe-edit | [] [] [] | 12 - gpe-filemanager | [] [] [] [] | 16 - gpe-go | [] [] [] [] [] | 25 - gpe-login | [] [] [] | 11 - gpe-ownerinfo | [] [] [] [] [] | 25 - gpe-package | [] [] [] | 13 - gpe-sketchbook | [] [] [] | 20 - gpe-su | [] [] [] [] [] | 30 - gpe-taskmanager | [] [] [] [] [] | 29 - gpe-timesheet | [] [] [] [] [] | 25 - gpe-today | [] [] [] [] [] [] | 30 - gpe-todo | [] [] [] [] | 17 - gphoto2 | [] [] [] [] [] | 24 - gprof | [] [] [] | 15 - gpsdrive | [] [] [] | 11 - gramadoir | [] [] [] | 11 - grep | [] [] [] | 10 - grub | [] [] [] | 14 - gsasl | [] [] [] [] | 14 - gss | [] [] [] | 11 - gst-plugins-bad | [] [] [] [] | 26 - gst-plugins-base | [] [] [] [] [] | 24 - gst-plugins-good | [] [] [] [] | 24 - gst-plugins-ugly | [] [] [] [] [] | 29 - gstreamer | [] [] [] [] | 22 - gtick | [] [] [] | 13 - gtkam | [] [] [] | 20 - gtkorphan | [] [] [] | 14 - gtkspell | [] [] [] [] [] [] [] [] [] | 45 - gutenprint | [] | 10 - hello | [] [] [] [] [] [] | 21 - help2man | [] [] | 7 - hylafax | [] | 5 - idutils | [] [] [] [] | 17 - indent | [] [] [] [] [] [] | 30 - iso_15924 | () [] () [] [] | 16 - iso_3166 | [] [] () [] [] () [] [] [] () | 53 - iso_3166_2 | () [] () [] | 9 - iso_4217 | [] () [] [] () [] [] | 26 - iso_639 | [] [] [] () [] () [] [] [] [] | 38 - iso_639_3 | [] () | 8 - jwhois | [] [] [] [] [] | 16 - kbd | [] [] [] [] [] | 15 - keytouch | [] [] [] | 16 - keytouch-editor | [] [] [] | 14 - keytouch-keyboa... | [] [] [] | 14 - klavaro | [] | 11 - latrine | [] [] [] | 10 - ld | [] [] [] [] | 11 - leafpad | [] [] [] [] [] [] | 33 - libc | [] [] [] [] [] | 21 - libexif | [] () | 7 - libextractor | [] | 1 - libgnutls | [] [] [] | 9 - libgpewidget | [] [] [] | 14 - libgpg-error | [] [] [] | 9 - libgphoto2 | [] [] | 8 - libgphoto2_port | [] [] [] [] | 14 - libgsasl | [] [] [] | 13 - libiconv | [] [] [] [] | 21 - libidn | () [] [] | 11 - lifelines | [] | 4 - liferea | [] [] [] | 21 - lilypond | [] | 7 - linkdr | [] [] [] [] [] | 17 - lordsawar | | 1 - lprng | [] | 3 - lynx | [] [] [] [] | 17 - m4 | [] [] [] [] | 19 - mailfromd | [] [] | 3 - mailutils | [] | 5 - make | [] [] [] [] | 21 - man-db | [] [] [] | 8 - man-db-manpages | | 4 - minicom | [] [] | 16 - mkisofs | [] [] | 9 - myserver | | 0 - nano | [] [] [] [] | 21 - opcodes | [] [] [] | 11 - parted | [] [] [] [] [] | 15 - pies | [] [] | 3 - popt | [] [] [] [] [] [] | 27 - psmisc | [] [] | 11 - pspp | | 4 - pwdutils | [] [] | 6 - radius | [] [] | 9 - recode | [] [] [] [] | 28 - rosegarden | () | 0 - rpm | [] [] [] | 11 - rush | [] [] | 4 - sarg | | 1 - screem | [] | 3 - scrollkeeper | [] [] [] [] [] | 27 - sed | [] [] [] [] [] | 30 - sharutils | [] [] [] [] [] | 22 - shishi | [] | 3 - skencil | [] [] | 7 - solfege | [] [] [] [] | 16 - solfege-manual | [] | 8 - soundtracker | [] [] [] | 9 - sp | [] | 3 - sysstat | [] [] | 15 - tar | [] [] [] [] [] [] | 23 - texinfo | [] [] [] [] [] | 17 - tin | | 4 - unicode-han-tra... | | 0 - unicode-transla... | | 2 - util-linux-ng | [] [] [] [] | 20 - vice | () () | 1 - vmm | [] | 4 - vorbis-tools | [] | 6 - wastesedge | | 2 - wdiff | [] [] | 7 - wget | [] [] [] [] [] | 26 - wyslij-po | [] [] | 8 - xchat | [] [] [] [] [] [] | 36 - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 - xkeyboard-config | [] [] [] | 22 - +---------------------------------------------------+ - 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW - 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 - - 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 -used for implementing regional variants of languages, or language -dialects. - - For a PO file in the matrix above to be effective, the package to -which it applies should also have been internationalized and -distributed as such by its maintainer. There might be an observable -lag between the mere existence a PO file and its wide availability in a -distribution. - - If June 2010 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://translationproject.org/extra/matrix.html'. - -1.5 Using `gettext' in new packages -=================================== - -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 -in particular that even non-free programs can use `libintl' as a shared -library, whereas only free software can use `libintl' as a static -library or use modified versions of `libintl'. - - Once the sources are changed appropriately and the setup can handle -the use of `gettext' the only thing missing are the translations. The -Free Translation Project is also available for packages which are not -developed inside the GNU project. Therefore the information given above -applies also for every other Free Software Project. Contact -`coordinator@translationproject.org' to make the `.pot' files available -to the translation teams. - diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index a997c0f5..00000000 --- a/CHANGELOG +++ /dev/null @@ -1,1765 +0,0 @@ - -======================================================================= -======================================================================= - - This file is no longer used for tracking changes for Linux-PAM. For - user visible changes, please look at the NEWS file. A more verbose - list of changes can be found in ChangeLog. - -======================================================================= -======================================================================= - ------------------------------ - -TODO: - - - sanitize use of md5 throughout distribution.. Make a static - library for helping to develop modules that contains it and other - stuff. Also add sha-1 and ripemd-160 digest algorithms. - - once above is done. remove hacks from the secret@here module etc.. - - document PAM_INCOMPLETE changes - - verify that the PAM_INCOMPLETE interface is sensible. Can we - catch errors? should we permit item changing etc., between - pam_authenticate re-invocations? - - verify that the PAM_INCOMPLETE interface works (auth seems ok..) - - add PAM_INCOMPLETE support to modules (partially added to pam_pwdb) - - work on RFC. - - auth and acct support in pam_cracklib, "yes, I know the password - you just typed was valid, I just don't think it was very strong..." - -==================================================================== - -If you have found a bug in Linux-PAM (including a documentation bug, -or a new feature request and/or patch), please consider filing such a -bug report - outstanding bugs are listed here: - - http://sourceforge.net/tracker/?atid=106663&group_id=6663&func=browse - -(to file another bug see the 'submit bug' button on that page). - -==================================================================== - -0.81: please submit patches for this section with actual code/doc - patches! -* pam_umask: New module for setting umask from GECOS field, /etc/login.defs - or /etc/default/login (kukuk) -* configure/pam_strerror: Remove old ugly-hack option for pam_strerror - interface change (kukuk) -* configure.in: Fix AC_DEFINE usage for autoheader (kukuk) -* configure.in/_pam_aconf.h.in: Remove feature.h inclusion (kukuk) -* defs: Remove obsolete directory/content (kukuk) -* Rename _pam_aconf.h.in to config.h (kukuk) -* pam_unix: Don't ignore pam_get_item return value (kukuk) -* pam_userdb: Fix regression - crash when crypt param not specified (t8m) -* libpam: Remove pam_authenticate_secondary stub (kukuk) -* Use autoconf/automake/libtool (kukuk) -* pam_securetty: Be fail-close on user lookups, always log failures, - not just with "debug" (Solar Designer) -* Add gettext support -* Add translations for cs, de, es, fr, hu, it, ja, nb, pa, pt_BR, - pt, zh_CN and zh_TW -* pam_limits: Apply ALT Linux/Owl patch -* pam_motd: Apply ALT Linux/Owl patch -* libpam: Cache pam_get_user() failures -* libpam: Add pam_prompt,pam_vprompt,pam_error,pam_verror,pam_info - and pam_vinfo functions for use by modules as extension (kukuk). -* pam_cracklib: Make path to cracklib dicts an option (kukuk). -* libpam: Add pam_syslog function for unified syslog messages from - PAM modules (kukuk). -* pam_tally, pam_time, pam_userdb: use pam_syslog and pam_prompt (ldv) -* pam_issue: major cleanup (ldv) -* pam_echo: New PAM module for message output (kukuk) -* pam_limits: Fix regression from RLIMIT_NICE support (wrong limit - values for other limits are applied) patch by Anton Guda -* pam_unix: Always honor nis flag on password change (by Aaron Hope) -* libpam: Moved functions from pammodutil to libpam (t8m) -* pam_lastlog: Cleanup, fix broken logic in pam_parse, - modify wtmp by default, nowtmp option switches that off (ldv) - -0.80: Wed Jul 13 13:23:20 CEST 2005 -* pam_tally: test for NULL data before dereferencing them (t8m) -* pam_unix: fix regression introduced in 0.78 - both NIS and local password - should be changed if possible (t8m) -* misc_conv: flush input first then print the prompt - fixes problem - with expect scripts (t8m) -* pam_unix: nis option shouldn't clear the shadow option (t8m) -* cleanups and minor bugfixes by Steve Grubb (t8m) -* pam_private.h: set PAM_DEFAULT_PROMPT to "login: " (kukuk) -* pam_mkhomedir: Create parent directories if they do not already - exist (Bug 600351 - kukuk) -* pam_mkhomedir: Set owner/permissions of home directory after we - created all files (Bug 1032922 - kukuk) -* pam_rhosts: Get rid of static buffer for path (kukuk) -* pam_selinux/pam_unix/pam_rootok: Add SELinux support based on - patch from Red Hat (kukuk) -* pam_limits: Correct support of unlimited limits, use correct type - for rlimit value (Bug 945449 - kukuk, t8m) -* pam_xauth: Unset the XAUTHORITY variable when requesting user is - root and target user is not (t8m) -* pam_access: Add listsep option to set list element separator by - Richard Shaffer (t8m) -* pam_limits: Don't reset process priority if none is specified in - the config file (Novell #81690 - kukuk) -* Fix all occurrence of dereferencing type-punned pointer will break - strict-aliasing rules warnings (kukuk) -* pam_limits: Support new limits in linux 2.6.12 (t8m) -* pam_mkhomedir: change mode datatype (toady) -* pam_limits: Don't lowercase login names (kukuk) - -0.79: Thu Mar 31 16:48:45 CEST 2005 -* pam_tally: added audit option (toady) -* pam_unix: don't log user unknown failure when he can be properly - authenticated by another module (t8m) -* configure: don't abort if no cracklib dictinaries were found, but - warn user that pam_cracklib will not be built (kukuk) -* modules/pam_unix/support.c: Fix return value if user aborts while - changes the password (Bug 872945 - kukuk) -* modules/pam_unix/support.c: Fix return value for an unknown user - (Bug 872943 - kukuk) -* pam_limits: support for new Linux kernel 2.6 limits (from toby cabot - - t8m) -* pam_tally: major rewrite of the module (t8m) -* libpam: don't return PAM_IGNORE for OK or JUMP actions if using - cached chain (Bug 629251 - t8m) -* pam_nologin: don't overwrite return value with return from - pam_get_item (t8m) -* libpam: Add more checks for broken PAM configuration files to - avoid seg.faults (kukuk) -* pam_shells: correct README -* libpam: Fix debug code (kukuk) -* pam_limits: Fix order of LIMITS_DEF_* priorities (kukuk) -* pam_xauth: preserve DISPLAY variable (Novell #66885 - kukuk) -* libpam: Add prelude ids (http://www.prelude-ids.org) support, - as experimental. (toady) -* configure: Add the directory where new versions of cracklib is - installed (from Jim Gifford - toady) -* libpamc: Use standard u_intX_t types instead of __uX (kukuk) - -0.78: Do Nov 18 14:48:36 CET 2004 - -* pam_unix: change the order of trying password changes - local first, - NIS second (t8m) -* pam_wheel: add option only_root to make it affect authentication - to root account only -* pam_unix: test return values on renaming files and report error to - syslog and to user -* pam_unix: forced password change shouldn't trump account expiration -* pam_unix: remove the use of openlog (from debian - toady) -* pam_unix: NIS cleanup (patch from Philippe Troin) -* pam_access: you can now authenticate an explicit user on an explicit - tty (from debian - toady) -* pam_limits, pam_rhosts, pam_unix: fixed hurd portability issues - (patch from Igor Khavkine) -* pam_env: added comments in the configuration file to avoid errors - (from debian - toady) -* pam_mail: check PAM_NO_ENV to know if we can delete the environment - variable (from debian - toady) -* pam_filter: s/termio/termios/g (from debian - toady) -* pam_mkhomedir: no maxpathlen required (from debian - toady) -* pam_limits: applied patch to allow explicit limits for root - and remove limits on su. (from debian - toady) -* pam_unix: severe denial of service possible with this module since - it locked too aggressively. Bug report and testing help from Sascha - Loetz. (Bug 664290 - agmorgan) -* getlogin was spoofable: "/tmp/" and "/dev/" have the same number of - characters, so 'ln /dev/tty /tmp/tty1 ; bash < /tmp/tty1 ; logname' - attacks could potentially spoof pam_wheel with the 'trust' module - argument into granting access to a luser. Also, pam_unix gave - odd error messages in such a situation (logname != uid). This - problem was found by David Endler of iDefense.com (Bug 667584 - - agmorgan). -* added my new DSA public key to the pgp.keys.asc file. Also included - a signed copy of my new public key (1024D/D41A6DF2) made with my old - key (1024/2A398175). -* added "include" directive to config file syntax. - The whole idea is to create few "systemwide" pam configs and include - parts of them in application pam configs. - (patch by "Dmitry V. Levin" <ldv@altlinux.org>) (Bug 812567 - baggins). -* doc/modules/pam_mkhomedir.sgml: Remove wrong debug options - (Bug 591605 - kukuk) -* pam_unix: Call password checking helper whenever the password field - contains only one character (Bug 1027903 - kukuk) -* libpam/pam_start.c: All service names should be files below /etc/pam.d - and nothing else. Forbid paths. (Bug 1027912 - kukuk) -* pam_cracklib: Fix error in distance algorithm in the 0.9 pam_cracklib - module (Bug 1010142 - toady) -* pam_userdb: applied patch from Paul Walmsley <paul@booyaka.com> - it now indicates whether encrypted or plaintext passwords are stored - in the database needed for pam_userdb (BerliOS - toady) -* pam_group: The module should also ignore PAM_REINITIALIZE_CRED to - avoid spurious errors (from Linux distributors - kukuk) -* pam_cracklib: Clear the entire options structure (from Linux - distributors - kukuk) -* pam_issue: We write a NUL to prompt_tmp[tot_size] later, so make sure - that the destination is part of the allocated block, make do_prompt - static (from Linux distributors - kukuk) -* ldconfig: Only run full ldconfig, if we don't install into a FAKEROOT - environment, else let ldconfig only create the symlinks correct - (from Linux distributors - kukuk) -* pam_unix/pam_pwdb: Use SIG_DFL instead of SIG_IGN for SIGCHLD - (from Linux distributors - kukuk) -* Add most of Steve Grubb's resource leak and other fixes (from - Linux distributors - kukuk) -* doc/Makefile: Don't include .cvsignore files in tar ball (kukuk) -* libpam_misc/misc_conv.c: Differentiate between Ctrl-D and - <Return> (Bug 1032604 - kukuk) -* Make.Rules.in: Add targets for installing man pages for modules - (from Linux distributors - kukuk) -* Add pam_xauth module (Bug 436440 - kukuk) -* Add pam_localuser module (Bug 436444 - kukuk) -* Add pam_succeed_if module (from Linux distributors - kukuk) -* configure.in: Fix check for libcrypt (Bug 417704 - kukuk) -* Add the "broken_shadow" argument to pam_unix, for ignoring errors - reading shadow information (from Linux distributors - kukuk) -* Add patches to make PAM modules reentrant (Bug 440107 - kukuk) -* Merge patches from Red Hat (Bug 477000 and other - kukuk) -* Fix pam_rhosts option parsing (Bug 922648 - kukuk) -* Add $ISA support in config files (from Red Hat - kukuk) - -0.77: Mon Sep 23 10:25:42 PDT 2002 - -* documentation support for pdf files was not quite right - - installation was messed up. -* pam_wheel was too aggressive to grant access (in the case of the - 'deny' option you want to pay attention to 'trust'). Fix from - Nalin (Bugs 476951, 476953 - agmorgan) -* account management support for: pam_shells, pam_listfile, pam_wheel - and pam_securetty (+ static module fix for pam_nologin). Patch from - redhat through Harald Welte (Bug 436435 - agmorgan). -* pam_wheel feature from Nalin - can use the module to provide wheel - access to non-root accounts. Also from Nalin, a bugfix related to - the primary group of the applicant is the 'wheel' group. (Bugs - 476980, 476941 - agmorgan) -* pam_unix and pam_pwdb: by default turn off the SIGCHLD handler while - running the helper binary (patch from Nalin) added the "noreap" - module argument to both of these modules to turn off this new - default. Bugfix found by Silvan Minghetti for former module and - 521314 checkin. (Bugs 476963, 521314 - agmorgan). -* updated CHANGELOG and configure.in for 0.77 work. - -0.76: Mon Jul 8 21:44:59 PDT 2002 - -* pam_unix: fix for legacy crypt() support when the password entered - was long. (Bug 521314 - agmorgan). -* pam_access no longer include gethostname() prototype complaint from - David Lee (Bug 415423 - agmorgan). -* make pam_nologin more secure by default, added two new module - arguments etc. - acting on suggestion from Nico (Bug 419307 - - agmorgan) -* link in libpam to libpam_misc - since the latter uses functions in - the former it makes some sort of sense to do this (although, in the - static library case, I remain to be convinced). (Bug 565470 - - agmorgan). -* absorbed some of the proposed darwin (OS X) changes from Luke Howard - (of PADL software) - hopefully will get the rest (see Rob Braun's - 534205) by 0.77 (Bug 491466 - agmorgan). -* README fix for pam_unix from Nalin (Bug 476971 - agmorgan). -* add support for building pdf files from the documentation - request - from 'lolive' (Bug 471377 - agmorgan). -* documented the equivalent '[..]' expressions for "required" - etc. Request from Ross Patterson (Bug 529078 - agmorgan). -* '[...]' parsing: document it and also fix it to support '\]' escape - sequence. Feature request from Russell Kliese (Bug 517064 - - agmorgan). -* pam_rootok: compilation warning noted by Tony den Haan wrt no - prototype for strcmp() (Bug 557322 - agmorgan). -* documentation: (a few of mine in passing) and app documentation - suggestions regarding PAM environment variables and module - documentation changes regarding the conversation function from Jenn - Vesperman (Bug 527821, 527965 - agmorgan) -* documentation: pam_time.sgml typo fixed, pam_motd exists now, - correct Red Hat comment about config files (Bugs 554274, 554261, - 554182 - agmorgan) -* pam_limits: added '%' domain for maxlogins limiting, now '*' and @group - have the old meaning (every) and '%' the new one (all) - (Bug 533664 - baggins) -* pam_limits: put not so interesting log messages under debug arg - (Bug 533668 - baggins) -* pam_access: added the 'fieldsep=' argument (Bug 547051 - agmorgan), - made a PAM_RHOST of "" equivalent to NULL (Bug 547521 - agmorgan). -* pam_limits: keep well know behaviour of maxlogins default ('*') limit - (Bug 533664 - baggins) -* pam_unix: more from Nalin log password changes (Bug 517743 - agmorgan) -* pam_limits: make it use the priority value specified in config - (bug 530428 - baggins) -* pam_unix: removed broken code in password update code. Report from - Len Lattanzi (Bug 507379 - agmorgan) -* pam_mkhomedir: recurse directories. Patch from Nalin (Bug 476981 - - agmorgan) -* pam_limits can handle negative priority limits now (which can apply - to the superuser too) - based on patch from Nalin. Also cleanup the - error handling that was very sloppy before. Also, courtesy of Berend - De Schouwe get the math right on login counting (Bug 476990, 476987, - 493294 - agmorgan) -* documentation: random typo fixes from Nalin and more stuff from me - (Bug 476949, Tasks 43507, 17426 - agmorgan) -* A Tru64 fix (given other stuff has already resolved this, it - actually just a comment actually) from 'Eddie'. (Bug 418450 - - agmorgan) -* pam_handlers: BSD fix from Dag-Erling Smørgrav and Anton Berezin - (Bug 486063 - agmorgan) -* added the dynamic/* directory to the distribution. If you go in - there after building the rest of the tree, you'll make a pam.so - object that can be used by something like a java runtime with - dlopen. Its not very well tested - caveat emptor. (Bug 232194 - - agmorgan) -* somehow pam_unix has started forcing the user prompt to be "login: ". - This is entirely inapropriate as it overrides PAM_USER_PROMPT. (Bug - 486361 - agmorgan). -* added a static module helper library object includes a few changes - to examples/xsh.c for testing purposes (added a simple shell wrapper - for running xsh with the sandbox libraries), and also modified the - pam_rhosts_auth module to use this new library. (Bug 490938, 409852 - - agmorgan). -* pam_unix: fix 'likeauth' to kill off the memory leak once and for all. - (Bug 483959 - vorlon) -* pam_unix: restore handling of 'likeauth' argument to a known working - state; prettify AUTH_RETURN macro; remove redundant argv checks in - pam_sm_setcred() (Bugs 483959, 113596 - vorlon) -* pam_cracklib: another try at implementing similar() from Harald - Welte and Nalin (Bugs 436053, 476957 - agmorgan) -* pam_access: default access.conf file contained a type (console - instead of LOCAL) fix from Nalin (Bug 476934 - agmorgan) -* pam_unix: fixed bizarre memory leak pointed out by Fernando Trias - (Bug 483959 - agmorgan) -* misc string comparison length checking changes from Nalin. Modules - touched, pam_cracklib, pam_listfile, pam_unix, pam_wheel (Bug 476947 - - agmorgan) -* pam_userdb: require that all of typed password matches that in - database report and fix from Vladimir Pastukhov. (Bug 484252 - agmorgan) -* pam_malloc: revived malloc debugging code, now tied to - --enable-memory-debug and added strdup() support (Bug 485454 - agmorgan) -* pam_tally: Nalin's fix for lastlog corruption (Bug 476985 - agmorgan) -* pam_rhosts: Nalin adds support for '+hostname', and zdd fix - compilation warning. (Bug 476986 - agmorgan) -* pam_motd: Nalin fixed compiler warning. (Bug 476938 - agmorgan) -* pam_pwdb: Solar Designer pointed out that there was a problem with - the compatibility support for md5 password hashing. (Bug 460717, - 476961 - agmorgan) -* pam_issue: Nalin found segfaulting problems if the PAM_USER_PROMPT - is unset, found some similar problems with assumptions about - realloc. (Bug 476983 - agmorgan) -* pam_env: 'weichangyang of hotmail' pointed out a wild string with no - valid '\0' was leading to problems with sshd and suggested fix (Bug - 473034 - agmorgan) -* MANDIR cleanup. It defaults to /usr/share/man, but can be overridden - using the --enable-mandir ./configure option, similarly for DOCDIR - from Nalin (Bug 476940 - agmorgan) -* pam_filter cleanup (including moving the filter directory) Nalin - and Harald Welte (Bugs 436057, 476970 - agmorgan) -* db3 is now recognized as a libdb candidate (Bug 435764 - agmorgan) -* more changes (extracted from redhat version) courtesy of - Harald Welte (Bugs pam_limits=436061, pam_lastlog=436060, - pam_mkhomedir/pam_env=435991 - agmorgan) -* fix for legacy behavior of pam_setcred and pam_close_session in - the case that pam_authenticate and pam_open_session hadn't been - called - bug report from Seongwan Park. (Bug 468724 - agmorgan) -* some BSD updates and fixes from Mark Murray - including a slightly - more robust conversation function and some minimization of gcc - warnings. (Bugs 449203,463984 - agmorgan) -* verified that the setcred stack didn't suffer from the bug I was - nervous about, add a new module pam_debug to help me test this. - fixed a libpam/pam_dispatch.c instrumentation line that I tripped - over when testing. Also restructured pam_warn to help here (Bug - 424315 - agmorgan). -* pam_unix/support.c: sample use of reentrant NSS function. Not yet active, - because modules do not include _pam_aconf_h! (Bug 440107 - vorlon) -* doc/Makefile changes - use $(mandir) [courtesy Harald Welte] (Bug - 435760) and add some rules to make/delete the draft rfc I've been - working on (Task 17426 - agmorgan) -* pam_modules.sgml: sourceforge has changed its CVS viewing software - (Bug 460491 - agmorgan) -* pam_unix_passwd: got rid of an annoying warning (Bug 461089 - agmorgan) -* configure.in, _pam_aconf.h.in: set the stage for fully reentrant PAM - modules, with some infrastructure to detect getxxbyxx_r() functions - (Bug 440107 - vorlon) -* pam_unix: removed superfluous use of static variables in md5 and bigcrypt - routines, bringing us a step closer to thread-safeness. Eliminated - some variable indirection along the way. (Bug 440107 - vorlon) -* pam_tally: remove #include of stdlib.h, which isn't needed by anything - found in this module. Can be readded if we find a real need for it at - a later date. (Bug 436432 - vorlon) -* pam_tally: added an #include (was it really needed?) and made the - pam_tally app install (with more pretty printing and a corrected - Makefile dependency) motivated by a (red hat diff) courtesy of Harald - Welte (Bug 436432 - agmorgan) -* configure.in changes to help support non-Linux environments courtesy - of Scott T. Emery (Bug 422563 - agmorgan) -* made a pam_cracklib enhancement to interpret -ve limits in a - sensible fashion contributed by Werner Puschitz (Bug 413162 - - agmorgan) -* another fix for the latest number of rlimits available to pam_limits - (Bug 424060 - agmorgan) -* removed stale link from pam_pwdb documentation (Bug 433460 - agmorgan) -* pam_appl.sgml change - more discussion of choosing a service name - (Bug 417512 - agmorgan) -* more specific linking requirements for -lndbm for pam_userdb - from - David Lee (Bug 417339 - agmorgan) -* a large number of small changes to make AIX support better (Bug - 416229 - agmorgan) -* $(MAKE) instead of 'make' - from Scott T. Emery (Bug 422144 - - agmorgan) -* c++ header fixes for pam_misc.h and pam_client.h - from Alexandre - Sagala (Bug 420270 - agmorgan) -* pam_access fixes - looks out for trailing '.' - from Carlo Marcelo - Arenas Belon (Bug 419631 - agmorgan) -* don't zero out password strings during pam_unix's password changing - function (Bug 419803 - vorlon) -* propagate some definitions to the _pam_aconf.h file - from David Lee - (Bug 415419 - agmorgan) -* solaris GCC OS_CFLAGS change from David Lee (Bug 415412 - agmorgan) -* added a comment to this CHANGELOG to explain why most of the bugids - used below appear not to be known to sourceforge [try adding 100000 - to the bugid number.] (Bug 414943 - agmorgan) -* bumped version numbers and also added support for SONAME defines - that appear not to have survived the great autoconf experiment (Bug - 414669 - agmorgan). - -0.75: Sat Apr 7 23:10:50 PDT 2001 - - ** WARNING ** - -This release contains backwardly incompatible changes to -libpam. Prior versions were buggy - see bugfix for Bug 129775. - - ** WARNING ** - -* made 0.75 release (Bug 414665 - agmorgan) -* pam_pwdb has been removed from the suggested pam.conf template. I've - replaced it with pam_unix. (Bug 227565 - agmorgan) -* pam_limits - Richard M. Yumul reported that "<domain> -" didn't - work, first fix suggested by Werner Puschitz (Bug 404953 - agmorgan) -* Nicolay Pelov suggested a simple fix for freebsd support (Bug 407282 - - agmorgan) -* Michel D'HOOGE submitted documentation fixes (Bug 408961 - agmorgan) -* fix for module linking directions (Bug 133545 - agmorgan) -* fix for glibc-2.2.2 compilation of pam_issue (Bug 133542 - agmorgan) -* fix pam_userdb to make and link both .o files it needs - converse() - wasn't being linked! (Bug 132880 - agmorgan) -* added some sys-admin documentation for the pam_tally module (Bug - 126210 - agmorgan). -* added a link to module examples from the module writers doc (Bug - 131192 - agmorgan). -* fixed a small security hole (more of a user confusion issue) with - the unix and pwdb password helper binaries. The beef is described in - the bug report, but no uid change was possible so no-one should - think they need to issue a security bulletin over this one! (Bug - 112540 - agmorgan) -* pam_lastlog needs to be linked with -lutil, also removed ambiguity - from sysadmin guide regarding this module being a 'session' module - (Bug 131549 - agmorgan). -* pam_cracklib needs to be linked with -lcrypt (old password checking) - (Bug 131601 - agmorgan). -* fixes for static library builds and also the examples when linked - with the debugging build of the libraries. (Bug 131783 - agmorgan) -* fixed URL for original RFC to a cached kernel.org file. (Bug 131503 - - agmorgan) -* quoted the $CRACKLIB_DICTPATH test in configure.in (Bug 130130 - - agmorgan). -* improved handling of the setcred/close_session and update chauthtok - stack. *Warning* This is a backwardly incompatable change, but 'more - sane' than before. (Bug 129775 - agmorgan) -* bumped the version number, and added some code to assist in making - documentation releases (Bug 129644 - agmorgan). - -0.74: Sun Jan 21 22:36:08 PST 2001 - -* made 0.74 release (Bug 129642 - agmorgan) -* libpam - cleaned up a few non-static functions to be static and added - support for libpam to enforce things like pam_[gs]et_data() and - AUTHTOK rules for using the API. Also documented pam_[gs]et_item() - a little better including return codes (Bugs 129027, 128576 - - agmorgan). -* pam_access - fixed the non-default config file option (Bug 127561 - - agmorgan) -* pam.8 manual page clarified with respect to the default location for - finding modules, also added some text describing the [...] control - syntax. (Bug 127625 - agmorgan) -* md5.h ia64 fixes for pam_unix and pam_pwdb (Bug 127700 - agmorgan) -* removed requirement for c++ from the configure{.in,} files (Bug - 128298 - agmorgan) -* removed subdirectories from man page redirections (124396 - baggins) -* per David Lee, fixed non-POSIX shell command in modules/pam_filter/Makefile - (Bug 126440 - vorlon) -* modify format of pam_unix log messages to include service name - (Bug 126423 - vorlon) -* prevent pam_unix from logging unknown usernames (Bug 126431 - vorlon) -* changed format of pam_unix 'authentication failure' log messages to make - them clearer and more consistent (Bug 126036 - vorlon) -* improved portability of pam_unix by eliminating Linux-specific utmp - defines in PAM_getlogin() (Bug 125704 - vorlon) -* removed static variables from pam_tally (Bug 117434 - agmorgan) -* added copyright message to pam_access module from original logdaemon - sources (Bug 125022 - agmorgan) -* configure.in - removed the GCC -Wtraditional flag (Bug 124923 - agmorgan) -* pam_mail - use PAM_PATH_MAILDIR as the location of mail spool - (Bug 124397 - baggins) -* _pam_aconf.h.in, configure.in - added PAM_PATH_MAILDIR set via - --with-mailspool=dir option (default is _PAM_MAILDIR if defined - in paths.h otherwise /var/spool/mail (Bug 124397 - baggins) -* removed unnecessary CVS Log tags from all over the source - (Bug 124391 - baggins) -* pam_tally - check for PAM_TTY if PAM_RHOST is not set when writing - to faillog (Bug 124394 - baggins) -* use O_NOFOLLOW if available when opening debug log (Bug 124385 - baggins) -* pam_cracklib - removed comments about pam_unix not working with - pam_cracklib, added information about use_authtok parameter - (Bug 124388 - baggins) -* pam_userdb - fixed wrong definition of struct pam_module (was pam_wheel) - (Bug 124386 - baggins) -* fixed example/Makefile include path (Bug 124187, 127563(?) - agmorgan) -* pam_userdb compiles on RH5x. Also removed circular dependency on - configure.in. Also bumped revision number to 0.74. (Bug 124136 - - agmorgan) - -0.73: Sat Dec 2 00:04:04 PST 2000 - -* updated documentaion revisions and added 'make release' support - to the top level Makefile (Bug 124132 - agmorgan). -* documented Qmail support in pam_mail (Bug 109219 - baggins) -* add change_uid option to pam_limits, and set real uid only if - this option is present (Bug 124062 - baggins) -* pam_limits - set real uid to the user for who we set limits. - (Bug 123972 - baggins) -* removed static variables from pam_limits (thread safe now). (Bug - 117450 - agmorgan). -* removed static variable from pam_wheel (module should be thread safe - now). (Bug 112906 - agmorgan) -* added support for '/' symbols in pam_time and pam_group config files - (support for modern terminal devices). Fixed infinite loop problem - with '\\[^\n]' in these files. (Bug 116076 - agmorgan) -* avoid potential SIGPIPE when writing to helper binaries with (Bug - 123399 - agmorgan) -* replaced bogus logic in the pam_cracklib module for determining if - the replacement is too similar to the old password (Bug 115055 - - agmorgan) -* added accessconf=<filename> feature to pam_access - request from - Aldrin Martoq and Meelis Roos (Bugs 111927,117240 - agmorgan) -* fix for pam_limit module not dealing with all limits Adam J. Richter - (Bug 119554 - agmorgan) -* comment fix describing fail_delay callback in _pam_types.h (Bug - 112646 - agmorgan) -* "likeauth" fix for pam_unix and pam_pwdb which (Bug 113596 - agmorgan) -* fix for pam_unix (support.c) to avoid segfault with NULL password - (Bug 113238 - vorlon) -* fix to pam_unix_passwd: try repeatedly to get a lock on the password - file, instead of failing immediately (Bug 108845 - fix vorlon) -* fix to pam_shells: logged information was not formatted correctly - (extra comma) (Bug 111491 - fix vorlon) -* fix for C++ application support (Bug 111645 - fix agmorgan) -* fix for typo in pam_client.h (Bug 111648 - fix agmorgan) -* removal of -lpam from pam_mkhomedir Makefile (Bug 116380 - fix agmorgan) -* autoconf support [Task ID 15788, Bug ID 108297 - agmorgan with help!] - - bugfix for libpamc.h include file [Bug ID 117476 - agmorgan] - - bugfix for pam_filter.h inclusion [Bug ID 117474 - agmorgan] - -0.72: Mon Dec 13 22:41:11 PST 1999 - -* patches from Debian (Ben Collins): pam_ftp supports event driven - conversations now; pwdb_chkpwd cleanup; pam_warn static compile fix; - user_db compiler warnings removed; debian defs file; pam_mail can - now be used as a session module -* ndbm compilation option for user_db module (fix explained by Richard Khoo) -* pam_cracklib bug fix -* packaging fixes & build from scratch stuff (Konst Bulatnikov & Frodo - Looijaard) -* -ldl appended to the libpam.so compilation make rule. (Charles Seeger) -* Red Hat security patch for pam_pwdb forwarded by Debian! (Ben - Collins. Fix provided by Andrey as it caught the problem earlier in the - code.) -* heuristic to prevent leaking filedescriptors to an agent. [This needs - to be better supported perhaps by an additional libpamc API function?] -* pam_userdb segfault fix from (Ben Collins) -* PAM draft spec extras added at request of 'sen_ml' - -0.71: Sun Nov 7 20:21:19 PST 1999 - -* added -lc to linker pass for pam_nologin module (glibc is weird). -* various header changes to lower the number of warnings on glibc - systems (Dan Yefimov) -* merged a bunch of Debian fixes/patches/documentation (Ben Collins) - things touched: libpam (minor); doc/modules/pam_unix.sgml; pam_env - (plus docs); pam_mkhomedir (new module for new home directories on - the fly...); pam_motd (new module); pam_limits (adjust to match - docs); pam_issue (new module + doc) [Some of these were also - submitted by Thorsten Kukuk] -* small hack to lower the number of warnings that pam_client.h was - generating. -* debian and SuSE apparently can use the pam_ftp module, so - removed the obsolete comment about this from the docs. (Thorsten - Kukuk) - -0.70: Fri Oct 8 22:05:30 PDT 1999 - -* bug fix for parsing of value=action tokens in libpam/pam_misc.c was - segfaulting (Jan Rekorajski and independently Matthew Melvin) -* numerous fixes from Thorsten Kukuk (icluding much needed fixes for - bitrot in modules and some documentation) that got included in SuSE 6.2. -* reentrancy issues in pam_unix and pam_cracklib resolved (Jan Rekorajski) -* added hosts_equiv_rootok module option to pam_rhosts module (Tim Berger) -* added comment about 'expose_account' module argument to admin and - module writers' docs (request from Michael K Johnson). -* myriad of bug fixes for libpamc - library now built by default and - works with the biomouse fingerprint scanner agent/module - (distributed separately). - -0.69: Sun Aug 1 20:25:37 PDT 1999 - -* c++ header #ifdef'ing for pam_appl.h (Tuomo Pyhala) -* added pam_userdb module (Cristian Gafton) -* minor documentation changes -* added in revised pam_client library (libpamc). Not installed by - default yet, since the example agent/module combo is not very secure. -* glibc fixes (Thorsten Kukuk, Adam J. Richter) - -0.68: Sun Jul 4 23:04:13 PDT 1999 - -* completely new pam_unix module from Jan Rekorajski and Stephen Langasek -* Jan Rekorajski pam_mail - support for Maildir format mailboxes -* Jan Rekorajski pam_cracklib - support for old password comparison -* Jan Rekorajski bug fix for pam_pwdb setcred reusing auth retval -* Andrey's pam_tally patch (lstat -> fstat) -* Robert Milkowski's additional pam_tally patches to **change format of - /var/log/faillog** to one from shadow-utils, add new option "per_user" - for pam_tally module, failure time logging, support for fail_line - field, and support for fail_locktime field with new option - no_lock_time. -* pam_tally: clean up the tally application too. -* Marcin Korzonek added process priority settings to pam_limits (bonus - points for adding to documentation!) -* Andrey's pam_pwdb patch (cleanup + md5 endian fubar fix) -* more binary prompt preparations (make misc conv more compatible with spec) -* modified callback hook for fail delay to be more useful with event - driven applications (changed function prototype - suspect no one - will notice). Documented this in app developer guide. -* documentation for pam_access from Tim Berger -* syntax fixes for the documentation - a long time since I've built it :*( - added some more names to the CREDITS file. - -0.67: Sat Jun 19 14:01:24 PDT 1999 - -* [dropped libpam_client - libpamc will be in the next release and - conforms to the developing spec in doc/specs/draft-morgan-pam.raw. - Sorry if you are keeping a PAM tree in CVS. CVS is a pain for - directories, but this directory was actually not referenced by - anything so the disruption should be light.] -* updates to pam_tally from Tim -* multiple updates from Stephen Langasek to pam_unix -* pam_filter had some trouble compiling (bug report from Sridhar) -* pam_wheel now attempts to identify the wheel group for the local - system instead of blindly assuming it is gid=0. In the case that - there is no "wheel" group, we default to assuming gid=0 is what was - meant - former behavior. (courtesy of Sridhar) -* NIS+ changes to pam_unix module from Dmitry O Panov -* hopefully, a fix for redefinition of LOG_AUTHPRIV (bug report Luke - Kenneth Casson Leighton) -* fix for minor typo in pam_wheel documentation (Jacek Kopecky) -* slightly more explanation of the [x=y] pam.conf syntax in the sys - admin guide. - -0.66: Mon Dec 28 20:22:23 PST 1998 <morgan@linux.kernel.org> - -* Started using cvs to keep track of changes to Linux-PAM. This will - likely break some of the automated building stuff (RPMs etc..). -* security bug fix to pam_unix and pam_tally from Andrey. -* modules make file is now more automatic. It should be possible to - unpack an external module in the modules directory and have it automatically - added to the build process. Also added a modules/download-all script - that will make such downloading easier. I'm happy to receive patches to - this file, informing the distribution of places from which to enrich itself. -* removed pam_system_log stuff. Thought about it long and hard: a - bad idea. If libc cannot guarantee a thread safe syslog, it needs - to be fixed and compatibility with other PAM libraries was - unnecessarily strained. -* SAG documentation changes: Seth Chaiklin -* rhosts: problems with NIS lookup failures with the root-uid check. - As a work-around, I've partially eliminated the need for the lookup - by supplying two new arguments: no_uid_check, superuser=<username>. - As a general rule this is more pluggable, since this module might be - used as an authentication scheme for a network service that does not - need root privilege... -* authenticate retval -> setcred for pam_pwdb (likeauth arg). -* pam_pwdb event driven support -* non openlog pam_listfile logging -* BUGFIX: close filedescriptor in pam_group and pam_time (Emmanuel Galanos) -* Chris Adams' mailhash change for pam_mail module -* fixed malloc failure check in pam_handlers.c (follow up to comment - by Brad M. Garcia). -* update to _pam_compat.h (Brad M. Garcia) -* support static modules in libpam again (Brad M. Garcia) -* libpam/pam_misc.c for egcs to grok the code (Brad M. Garcia) -* added a solaris-2.5.1 defs file (revived by Derrick J Brashear) -* pam_listfile logs failed attempts -* added a comment (Michael K Johnson pointed it out) about sgml2latex - having a new syntax. I'll make it the change real when I upgrade... -* a little more text to the RFC, spelling fix from William J Buffam. -* minor changes to pam_securetty to accommodate event driven support. - -0.65: Sun Apr 5 22:29:09 PDT 1998 <morgan@linux.kernel.org> - -* added event driven programming extensions to libpam - - added PAM_INCOMPLETE handling to libpam/pam_dispatch.c - - added PAM_CONV_AGAIN which is a new conversation response that - should be mapped to PAM_INCOMPLETE by the module. - - ensured that the pam_get_user() function can resume - - changes to pam_strerror to accommodate above return codes - - clean up _pam_former_state at pam_end() - - ensured that former state is correctly initialized - - added resumption tests to pam_authenticate(), pam_chauthtok() - - added PAM_FAIL_DELAY item for pausing on failure - -* improved _pam_macros.h so that macros can be used as single commands - (Andrey) - -* reimplemented logging to avoid bad interactions with libc. Added - new functions, pam_[,v]system_log() to libpam's API. A programmer - can check for this function's availablility by checking if - HAVE_PAM_SYSTEM_LOG is #defined. - -* removed the reduce conflict from pam_conv1 creation -- I can sleep - again now. :^] - -* made building of static and dynamic libpam separate. This is - towards making it possible to build both under Solaris (for Derrick) - -* made USE_CRACKLIB a condition in unix module (Luke Kenneth Casson Leighton) - -* automated (quiet) config installation (Andrey) - -0.64: Thu Feb 19 23:30:24 PST 1998 Andrew Morgan <morgan@linux.kernel.org> - -* miscellaneous patches for building under Solaris (Derrick J Brashear) - -* removed STATIC support from a number of module Makefiles. Notably, - these modules are those that use libpwdb and caused difficulties - satisfying the build process. (Please submit patches to fix this...;) - -* reomved the union for binary packet conversations from - (_pam_types.h). This is now completely implemented in libpam_client. - -* Andrey's patch for working environment variable handling in - sh_secret module. - -* made the libpam_misc conversation function a bit more flexible with - respect to binary conversations. - -* added top level define (DEBUG_REL) for compiling in the form of - a debugging release. I use this on a Red Hat 4.2 system with little - chance of crashing the system as a whole. (Andrey has another - implementation of this -- with a spec file to match..) - -0.63: Wed Jan 28 22:55:30 PST 1998 Andrew Morgan <morgan@linux.kernel.org> - -* added libpam_client "convention" library. This makes explicit the - use of PAM_BINARY_PROMPT. It is a first cut, so don't take it too - seriously yet. Comments/suggestions for improvements are very - welcome. Note, this library does not compile by default. It will - be enabled when it is judged stable. The library comes with two - module/agent pairs and can be used with ssh using a patch available - from my pre-release directory [where you got this file.] - -* backward compatibility patch for libpam/pam_handlers.c (PAM_IGNORE - was working with neither "requistie" nor "required") and a DEBUG'ing - compile time bug with pam_dispatch.c (Savochkin Andrey Vladimirovich) - -* minor Makefile change from (Savochkin Andrey Vladimirovich) - -* added pam_afsauth, pam_afspass, pam_restrict, and pam_syslog hooks - (Derrick J Brashear) - -* pam_access use of uname(2) problematic (security problem - highlighted by Olaf Kirch). - -* pam_listfile went a bit crazy reading group membersips (problem - highlighted by Olaf Kirch and patched independently by Cristian - Gafton and Savochkin Andrey Vladimirovich) - -* compatibility hooks for solaris and hpux (Derrick J Brashear) - -* 64 bit Linux/alpha bug fixed in pam_rhosts (Andrew D. Isaacson) - -0.62: Wed Jan 14 14:10:55 PST 1998 Andrew Morgan <morgan@linux.kernel.org> - -* Derrick J Brashear's patches: adds the HP stuff missed in the first - patch; adds SunOS support; adds support for the Solaris native ld - instead of requiring gnu ld. - -* last line of .rhosts file need not contain a newline. (Bug reported by - Thompson Freeman.) - -0.61: Thu Jan 8 22:57:44 PST 1998 Andrew Morgan <morgan@linux.kernel.org> - -* complete rewrite of the "control flag" logic. Formerly, we were - limited to four flags: requisite, required, sufficient, optional. - We can now use these keywords _and_ a great deal more besides. - The extra logic was inspired by Vipin Samar, a preliminary patch was - written by Andy Berkheimer, but I "had some ideas of my own" and - that's what I've actually included. The basic idea is to allow the - admin to custom build a control flag with a series of token=value - pairs inside square brackets. Eg., '[default=die success=ok]' which - is pretty close to a synonym for 'requisite'. I'll try to document it - better in the sys-admin guide but I'm pretty sure it is a change for - the better.... If what is in the sys-admin guide is not good enough - for you, just take a look at the source for libpam ;^) - -0.59: Thu Jan 8 22:27:22 PST 1998 Andrew Morgan <morgan@linux.kernel.org> - -* better handling of empty lines in .rhosts file. (Formerly, we asked - the nameserver about them!) Fix from Hugh Daschbach. - -* _broke_some_binary_compatibility_ with previous versions to become - compliant with X/Open's XSSO spec. Specifically, this has been - by changing the prototype for pam_strerror(). - -* altered the convention for the conversation mechanism to agree - with that of Sun. (number of responses 'now=' number of messages - with help from Cristian for finding a bug.. Cristian also found a - nasty speradic segfault bug -- Thanks!) - -* added NIS+ support to pam_unix_* - -* fixed a "regular file checking" problem with the ~/.rhosts sanity - check. Added "privategroup" option to permit group write permission - on the ~/.rhosts file in the case that the group owner has the same - name as the authenticating user. :*) "promiscuous" and "suppress" - were not usable! - -* added glibc compatibility to pam_rhosts_auth (protected __USE_MISC - with #ifndef since my libc already defines it!). - -* Security fix from Savochkin Andrey Vladimirovich with suggested - modification from Olaf Seibert. - -* preC contains mostly code clean-ups and a number of changes to - _pam_macros. - -0.58: whenever - -* pam_getenvlist() has a more robust definition (XSSO) than was previously - thought. It would seem that we no longer need pam_misc_copy_env() - which was there to provide the robustness that pam_getenvlist() - lacked before... - - Accordingly, I have REMOVED the prototype from libpam_misc. (The - function, however, will remain in the library as a wrapper for - legacy apps, but will likely be removed from libpam_misc-1.0.) PLEASE - FIX YOUR APPS *BEFORE* WE GET THERE! - -* Alexy Nogin reported garbage output from pam_env in the case of - a non-existent environment variable. - -* 'fixed' pwdb compilation for pam_wheel. Not very cleanly - done.. Mmmm. Should really clean up the entire source tree... - -* added prototypes for mapping functions - - <**WARNING**> - - various constants have had there names changed. Numerical values have - been retained but be aware some source old modules/applications will - need to be fixed before recompilation. - - </**WARNING**> - -* appended documentation to README for pam_rhosts module (Nicolai - Langfeldt). - -* verified X/Open compatibility of header files - note, where we differ - it is at the level of compilation warnings and the use of 'const char *' - instead of 'char *'. Previously, Sun(X/open) have revised their spec - to be more 'const'-ervative in the light of comments from Linux-PAM - development. - -* Ooops! PAM_AUTHTOKEN_REQD should have been PAM_NEW_AUTHTOK_REQD. - - changed: pam_pwdb(pam_unix_acct) (also bug fix for - _shadow_acct_mgmt_exp() return value), pam_stress, - libpam/pam_dispatch, blank, xsh. - -* New: PAM_AUTHTOK_EXPIRED - password has expired. - -* Ooops! PAM_CRED_ESTABLISH (etc.) should have been PAM_ESTABLISH_CRED - etc... (changed - this may break some people's modules - PLEASE TAKE - NOTE!) - changed: pam_group, pam_mail, blank, xsh; module and appl - docs, pam_setcred manual page. - -* renamed internal _pam_handle structure to be pam_handle as per XSSO. - -* added PAM_RADIO_TYPE (for multiple choice input method). Also - added PAM_BINARY_{MSG,PROMPT} (for interaction out of sight of user - - this could be used for RSA type authentication but is currently - just there for experimental purposes). The _BINARY_ types are now - usable with hooks in the libpam_misc conversation function. Still - have to add PAM_RADIO_TYPE. - -* added pam_access module (Alexei Nogin) - -* added documentation for pam_lastlog. Also modified the module to - not (by default) print "welcome to your new account" when it cannot - find a utmp entry for the user (you can turn this on with the - "never" argument). - -* small correction to the pam_fail_delay manual page. Either the appl or - the modules header file will prototype this function. - -* added "bigcrypt" (DEC's C2) algorithm(0) to pam_pwdb. (Andy Phillips) - -* *BSD tweaking for various #include's etc. (pam_lastlog, pam_rhosts, - pam_wheel, libpam/pam_handlers). (Michael Smith) - -* added configuration directory $SCONFIGED for module specific - configuration files. - -* added two new "linked" man pages (pam.conf(8) and pam.d(8)) - -* included a reasonable default for /etc/pam.conf (which can be - translated to /etc/pam.d/* files with the pam_conv1 binary) - -* fixed the names of the new configuration files in - conf/pam_conv1/pam_conv.y - -* fixed make check. - -* pam_lastlog fixed to handle UID in virgin part of /var/log/lastlog - (bug report from Ronald Wahl). - -* grammar fix in pam_cracklib - -* segfault avoided in pam_pwdb (getting user). Updating of passwords - that are directed to a "new" database are more robust now (bug noted - by Michael K. Johnson). Added "unix" module argument for migrating - passwords from another database to /etc/passwd. (documentation - updated). Removed "bad username []" warning for empty passwords - - on again if you supply the 'debug' module argument. - -* ctrl-D respected in conversation function (libpam_misc) - -* Removed -DPAM_FAIL_DELAY_ON from top-level Makefile. Nothing in - the distribution uses it. I guess this change happened a while - back, basically I'm trying to make the module parts of the - distribution "source compatible" with the RFC definition of PAM. - This implementation of PAM is a superset of that definition. I have - added the following symbols to the Linux-PAM header files: - - PAM_DATA_SILENT (see _pam_types.h) - HAVE_PAM_FAIL_DELAY (see _pam_types.h) - PAM_DATA_REPLACE (see _pam_modules.h) - - Any module (or application) that wants to utilize these features, - should check (#ifdef) for these tokens before using the associated - functionality. (Credit to Michael K. Johnson for pointing out my - earlier omission: not documenting this change :*) - -* first stab at making modules more independent of full library - source. Modules converted: - pam_deny - pam_permit - pam_lastlog - pam_pwdb - -* pam_env.c: #include <errno.h> added to ease GNU libc use. (Michael - K. Johnson) - -* pam_unix_passwd fixes to shadow aging code (Eliot Frank) - -* added README for pam_tally - -0.57: Fri Apr 4 23:00:45 PST 1997 Andrew Morgan <morgan@parc.power.net> - -* added "nodelay" argument to pam_pwdb. This can be used to turn off - the call to pam_fail_delay that takes effect when the user fails to - authenticate themself. - -* added "suppress" argument to pam_rhosts_auth module. This will stop - printing the "rlogin failure message" when the user does not have a - .rhosts file. - -* Extra fixes for FAKEROOT in Makefiles (Savochkin Andrey - Vladimirovich) - -* pam_tally added to tree courtesy of Tim Baverstock - -* pam_rhosts_auth was failing to read NFS mounted .rhosts - files. (Fixed by Peter Allgeyer). Refixed and further enhanced - (netgroups) by Nicolai Langfeldt. [Credit also to G.Wilford for some - changes that were not actually included..] - -* optional (#ifdef PAM_READ_BOTH_CONFS) support for parsing of pam.d/ - AND pam.conf files (Elliot Lee). - -* Added (and signed) Cristian's PGP key. (I've never met him, but I am - convinced the key belongs to the guy that is making the PAM rpms and - also producing libpwdb. Please note, I will not be signing anyone - else's key without a personal introduction..) - -* fixed erroneous syslog warning in pam_listfile (Savochkin Andrey - Vladimirovich, whole file reformatted by Cristian) - -* modified pam_securetty to return PAM_IGNORE in the case that the user's - name is not known to the system (was previously, PAM_USER_UNKNOWN). The - Rationale is that pam_securetty's sole purpose is to prevent superuser - login anywhere other than at the console. It is not its concern that the - user is unknown - only that they are _not_ root. Returning - PAM_IGNORE, however, insures that the pam_securetty can never be used to - "authenticate" a non-existent user. (Cristian Gafton with bug report from - Roger Hu) - -* Modified pam_nologin to display the no-login message when the user - is not known. The return value in this case is still PAM_USER_UNKNOWN. - (Bug report from Cristian Gafton) - -* Added NEED_LCKPWD for pam_unix/ This is used to define the locking - functions and should only be turned on if you don't have them in - your libc. - -* tidied up pam_lastlog and pam_pwdb: removed function that was never used. - -* Note for package maintainers: I have added $(FAKEROOT) to the list of - environment variables. This should help greatly when you build PAM - in a subdirectory. I've gone through the tree and tried to make - everything compatible with it. - -* added pam_env (courtesy of Dave Kinchlea) - -* removed pam_passwd+ from the tree. It has not been maintained in a - long time and running a shell script was basically insecure. I've - indicated where you can pick up the source if you want it. - -* #define HAVE_PAM_FAIL_DELAY . Applications can conditionally compile - with this if they want to see if the facility is available. It is - now always available. (corresponding compilation cleanups..) - -* _pam_sanitize() added to pam_misc. It purges the PAM_AUTHTOK and - PAM_OLDAUTHTOK items. (calls replaced in pam_auth and pam_password) - -* pam_rhosts now knows about the '+' entry. Since I think this is a - dangerous thing, I have required that the sysadmin supply the - "promiscuous" flag for it in the corresponding configuration file - before it will work. - -* FULL_LINUX_PAM_SOURCE_TREE exported from the top level make file. - If you want to build a module, you can test for this to determine if - it should take its directions from above or supply default locations - for installation. Etc. - -0.56: Sat Feb 15 12:21:01 PST 1997 <morgan@parc.power.net> - -* pam_handlers.c can now interpret the pam.d/ service config tree: - - if /etc/pam.d/ exists /etc/pam.conf is IGNORED - (otherwise /etc/pam.conf is treated as before) - - given /etc/pam.d/ - . config files are named (in lower case) by service-name - . config files have same syntax as /etc/pam.conf except - that the "service-name" field is not present. (there - are thus three manditory fields (and arguments are - optional): - - module-type control-flag module-path optional-args... - - ) - -* included conf/pam_conv1 for converting pam.conf to a pam.d/ version - 1.0 directory tree. This program reads a pam.conf file on the - standard input stream and creates ./pam.d/ (in the local directory) - and fills it with ./pam.d/"service-name" files. - - *> Note: It will fail if ./pam.d/ already exists. - - PLEASE REPORT ANY BUGS WITH THIS CONVERSION PROGRAM... It currently - cannot retain comments from the old conf file, so take care to do this - by hand. Also, please email me with the fix that makes the - shift/reduce conflict go away... - -* Added default module path to libpam for modules (see pam_handlers.c) - it makes use of Makfile defined symbol: DEFAULT_MODULE_PATH which is - inhereted from the defs/* variable $(SECUREDIR). Removed module - paths from the sample pam.conf file as they are no longer needed. - -* pam_pwdb can now verify read protected passwords when it is not run - by root. This is via a helper binary that is setuid root. - -* pam_permit now prompts for a username if it is not already determined - -* pam_rhosts now honors "debug" and no longer hardwire's "root" as the - superuser's name. - -* pam_securetty now honors the "debug" flag - -* trouble parsing extra spaces fixed in pam_time and pam_group - -* added Michael K. Johnson's PGP key to the pgp.keys.asc list - -* pam_end->env not being free()'d: fixed - -* manuals relocated to section 3 - -* fixed bug in pam_mail.c, and enhanced to recognize '~' as a prefix - to indicate the $HOME of the user (courtesy David - Kinchlea). *Changed* from a "session" module to an "auth" - module. It cannot be used to authenticate a user, but it can be used - in setting credentials. - -* fixed a stupid bug in pam_warn.. Only PAM_SERVICE was being read :*( - -* pam_radius rewritten to exclusively make use of libpwdb. (minor fix - to Makefile for cleaning up - AGM) - -* pam_limits extended to limit the total number of logins on a system - at any given time. - -* libpam and libpam_misc use $(MAJOR_REL) and $(MINOR_REL) to set their - version numbers [defined in top level makefile] - -* bugfix in sed command in defs/redhat.defs (AGM's fault) - -* The following was related to a possibility of buffer overruns in - the syslogging code: removed fixed length array from syslogging - function in the following modules [capitalized the log identifier - so the sysadmin can "know" these are fixed on the local system], - - pam_ftp, pam_stress, pam_rootok, pam_securetty, - pam_listfile, pam_shells, pam_warn, pam_lastlog - and - pam_unix_passwd (where it was definitely _not_ exploitable) - -0.55: Sat Jan 4 14:43:02 PST 1997, Andrew Morgan <morgan@parc.power.net> - -* added "requisite" control_flag to /etc/pam.conf syntax. [See - Sys. Admin. Guide for explanation] changes to pam_handlers.c - -* completely new handling of garbled pam.conf lines. The modus - operandi now is to assume that any errors in the line are minor. - Errors of this sort should *most definitely* lead to the module - failing, however, just ignoring the line (as was the case - previously) can lead to gaping security holes(! Not foreseen by the - RFC). The "motivation" for the RFC's comments about ignoring garbled - lines is present in spirit in the new code: basically a garbled line - is treated like an instance of the pam_deny.so module. - changes to pam_handlers.c and pam_dispatch.c . - -* patched libpam, to (a) call _pam_init_handlers from pam_start() and - (b) to log a text error if there are no modules defined for a given - service when a call to a module is requested. [pam_start() and - pam_dispatch() were changed]. - -* patched pam_securetty to deal with "/dev/" prefix on PAM_TTY item. - -* reorganized the modules/Makefile to include *ALL* modules. It is now - the responsibility of the modules themselves to test whether they can - be compiled locally or not. - -* modified pam_group to add to the getgroups() list rather than overwrite - it. [In the case of "HAVE_LIBPWDB" we use the pwdb_..() calls to - translate the group names.]. Module now pays attention to - PAM_CRED_.. flag(!) - -* identified and removed bugs in field reading code of pam_time and - (thus) pam_group. - -* Cristian's patches to pam_listfile module, corresponding change to - documentation. - -* I've discovered &ero; for sgml! - Added pam_time documentation to the admin guide. - -* added manual pages: pam.8, pam_start.2(=pam_end.2), - pam_authenticate.2, pam_setcred.2, pam_strerror.2, - pam_open_session.2(=pam_close_session.2) and pam_chauthtok.2 . - -* added new modules: - - - pam_mail (tells the user if they have any new mail - and sets their MAIL env variable) - - pam_lastlog (reports on the last time this user called - this module) - -* new module hooks provided. - -* added a timeout feature to the conversation function in - libpam_misc. Documented it in the application developers' guide. - -* fixed bug in pam_misc_paste_env() function.. - -* slight modifications to wheel and rhosts writeup. - -* more security issues added to module and application guides. - --- -Things present but not mentioned in previous release (sorry) - -* pam_pwdb module now resets the "last_change" entry before updating a - password. --- - -Sat Nov 30 19:30:20 PST 1996, Andrew Morgan <morgan@parc.power.net> - -* added environment handling to libpam. involved change to _pam_types.h - also added supplementary functions to libpam_misc - -* added pam_radius - Cristian - -* slight speed up for pam_rhosts - -* significantly enhanced sys-admin documentation (8 p -> 41 p in - PostScript). Added to other documentation too. Mostly the changes - in the other docs concern the new PAM-environment support, there is - also some coverage of libpam_misc in the App. Developers' guide. - -* Cristian's patches to pam_limits and pam_pwdb. Fixing bugs. (MORE added) - -* adopted Cristian's _pam_macros.h file to help with common macros and - debugging stuff, gone through tree tidying up debugging lines to use - this [not complete]. - - - for consistency replaced DROP() with _pam_drop() - -* commented memory debugging in top level makefile - -* added the following modules - - - pam_warn log information to syslog(3) about service application - - pam_ftp if user is 'ftp' then set PAM_RUSER/PAM_RHOST with password - (comment about nologin added to last release's notes) - -* modified the pam_listfile module. It now declares a meaningful static - structure name. - -Sun Nov 10 13:26:39 PST 1996, Andrew Morgan <morgan@parc.power.net> - - **PLEASE *RE*AMEND YOUR PERSONAL LINKS** - - -------> http://parc.power.net/morgan/Linux-PAM/index.html <------- - - **PLEASE *RE*AMEND YOUR PERSONAL LINKS** - -A brief summary of what has changed: - -* many modules have been modified to accomodate fixing the pam_get_user() - change. Please take note if you have a module in this distribution. - -* pam_unix is now the pam_unix that Red Hat has been using and which - should be fairly well debugged. - - - I've added some #ifdef's to make it compile for me, and also - updated it with respect to the libpam-0.53, so have a look at the - .../modules/pam_unix/Makefile to enable cracklib and shadow features - - ** BECAUSE OF THIS, I cannot guarantee this code works as it ** - ** did for Red Hat. Please test and report any problems. ** - -* the pam_unix of .52 (renamed to pam_pwdb) has been enhanced and made - more flexible with by implementing it with respect to the new - "Password Database Library" see - - http://parc.power.net/morgan/libpwdb/index.html - - modules included in this release that require this library to - function are the following: - - - pam_pwdb (ne pam_unix-0.52 + some enhancements) - - pam_wheel - - pam_limits - - pam_nologin - -* Added some optional code for memory debugging. In order to support - this you have to enable MEMORY_DEBUG in the top level makefile and - also #define MEMORY_DEBUG in your applications when they are compiled. - The extra code resides in libpam (compiled if MEMORY_DEBUG is defined) - and the macros for malloc etc. are to be found at the end of - _pam_types.h - -* used above code to locate two memory leaks in pam_unix module and two - in libpam (pam_handlers.h) - -* pam_get_user() now sets the PAM_USER item. After reading the Sun - manual page again, it was clear that it should do this. Various - modules have been assuming this and now I have modified most of them - to account for this change. Additionally, pam_get_user() is now - located in the module include file; modules are supposed to be the - ones that use it(!) [Note, this is explicitly contrary to the Sun - manual page, but in the spirit of the Linux distribution to date.] - -* replaced -D"LINUX" with -D"LINUX_PAM" as this is more explicit and less - likely to be confused with -D"linux". - Also, modified the libpam #include files to behave more like the Sun - ones #ifndef LINUX_PAM. - -* removed <bf/ .. / from documentation titles. This was not giving - politically correct html.. - ------ My vvvvvvvvvvvvvvvvvvv was a long time ago ;*] ----- - -Wed Sep 4 23:57:19 PDT 1996 (Andrew Morgan <morgan@physics.ucla.edu> - -0. Before I begin, Linux-PAM has a new primary distribution site (kindly -donated by Power Net Inc., Los Angeles) - - **PLEASE AMMEND YOUR PERSONAL LINKS** - - -------> http://www.power.net/morgan/Linux-PAM <------- - - **PLEASE AMMEND YOUR PERSONAL LINKS** - -1. I'm hoping to make the next release a bug-fix release... So please find - all the bugs(! ;^) - -2. here are the changes for .52: - -* minor changes to module documentation [Incidently, it is now - available on-line from the WWW page above]. More changes to follow in - the next two releases. PLEASE EMAIL me or the list if there is - anything that isn't clear! - -* completely changed the unix module. Now a single module for all four - management groups (this meant that I could define all functions as - static that were not part of the pam_sm_... scheme. AGM) - - - Shadow support added -PASSWD - Elliot's account management included, and enhanced by Cristian Gafton. - - MD5 password support added by Cristian Gafton. - - maxtries for authentication now enforced. - - Password changing function in pam_unix now works! - Although obviously, I'm not going to *guarantee* it ;^) . - - stole Marek's locking code from the Red Hat unix module. - [ If you like you can #ifdef it in or out ... ] - - You can configure the module more from its Makefile in - 0.52/modules/pam_unix/ - - If you are nervous that it will destroy your /etc/passwd or shadow - files then EDIT the 0.52/modules/pam_unix/pam_unix_pass.-c file. - Here is the warning comment from this file... - --------------8<----------------- -/* <WARNING> - * - * Uncomment the following #define if you are paranoid, and do not - * want to risk losing your /etc/passwd or shadow files. - * It works for me (AGM) but there are no guarantees. - * - * </WARNING> - */ -/* #define TMP__FILE */ -------------->8----------------- - - *** If anyone has any trouble, please *say*. Your problem will be - fixed in the next release. Also please feel free to scour the - code for race conditions etc... - -[* The above change requires that you purge your /usr/lib/security - directory of the old pam_unix_XXX.so modules: they will NOT be deleted - with a 'make remove'.] - -* the prototype for the cleanup function supplied to pam_set_data used - to return "int". According to Sun it should be "void". CHANGED. - -* added some definitions for the 'error_status' mask values that are - passed to the cleanup function associated with each - module-data-item. These numbers were needed to keep up with changing - a data item (see for example the code in pam_unix/support.-c that - manages the maximum number of retries so far). Will see what Sun says - (current indications are positive); this may be undone before 1.0 is - released. Here are the definitions (from pam_modules.h). - -#define PAM_DATA_SILENT 0x40000000 /* used to suppress messages... */ -#define PAM_DATA_REPLACE 0x20000000 /* used when replacing a data item */ - -* Changed the .../conf/pam.conf file. It now points to the new - pam_unix module for 'su' and 'passwd' [can get these as SimpleApps -- - I use them for testing. A more extensive selection of applications is - available from Red Hat...] - -* corrected a bug in pam_dispatch. Basically, the problem was that if - all the modules were "sufficient" then the return value for this - function was never set. The net effect was that _pam_dispatch_aux - returned success when all the sufficient modules failed. :^( I think - this is the correct fix to a problem that the Red Hat folks had - found... - -sopwith* Removed advisory locking from libpam (thanks for the POSIX patch - goes to Josh Wilmes's, my apologies for not using it in the - end.). Advisory locking did not seem sufficiently secure for libpam. - Thanks to Werner Almesberger for identifying the corresponding "denial - of service attack". :*( - -* related to fix, have introduced a lock file /var/lock/subsys/PAM - that can be used to indicate the system should pay attention to - advisory locking on /etc/pam.conf file. To implement this you need to - define PAM_LOCKING though. (see .52/libpam) - -* modified pam_fail_delay() function. Couldn't find the "not working" - problem indicated by Michael, but modified it to do pseudo-random - delays based on the values indicated by pam_fail_delay() -- the - function "that may eventually go away"... Although Sun is warming to - the idea. - -* new modules include: - - pam_shells - authentication for users with a shell listed in - /etc/shells. Erik Troan <ewt@redhat.com> - - pam_listfile - authentication based on the contents of files. - Set to be more general than the above in the - future. UNTESTED. Elliot Lee <@redhat.com> - [Note, this module compiles with a non-trivial - warning: AGM] - -Thu Aug 8 22:32:15 PDT 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -* modified makefiles to take more of their installation instructions - from the top level makefile. Desired for integration into the Debian - distribution, and generally a good idea. - -* fixed memory arithmetic in pam_handlers - -- still need to track down why failure to load modules can lead to - authentication succeding.. - -* added tags for new modules (smartcards from Alex -- just a promise - at this stage) and a new module from Elliot Lee; pam_securetty - -* I have not had time to smooth out the wrinkles with it, but Alex's - pam_unix modifications are provided in pam_unix-alex (in the modules - directory) they will not be compiled by 'make all' and I can't even - say if they do compile... I will try to look at them for .52 but, in - the mean time please feel free to study/fix/discuss what is there. - -* pam_rhosts module. Removed code for manually setting the ruser - etc. This was not very secure. - -* [remade .ps docs to be in letter format -- my printer complains - about a4] - -Sunday July, 7 12:45:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -* No longer accompanying the Linux-PAM release with apps installed. - [Will provide what was here in a separate package.. (soon) -lib Also see http://www.redhat.com/pam for some more (in .rpm form...)] - -* renamed libmisc to libpam_misc. It is currently configured to only compile - the static library. For some strange reason (perhaps someone can - investigate) my Linux 2.0.0 kernel with RedHat 3.0.3 system - segfaults when I compile it to be a dynamic library. The segfault - seems to be inside the call to the ** dl_XXX ** function...!? - - There is a simple flag in the libpam_misc/Makefile to turn on dynamic - compiles. - -* Added a little unofficial code for delay support in libpam (will probably - disappear later..) There is some documentation for it in the pam_modules - doc now. That will obviously go too. - -* rewritten pam_time to use *logic* to specify the stringing together of - users/times/terminals etc.. (what was there before was superficially - logical but basically un-predictable!) - -* added pam_group. Its syntax is almost identical to pam_time but it - has another field added; a list of groups to make the user a member - of if they pass the previous tests. It seems to not co-exist too well - with the groups in the /etc/group but I hope to have that fixed by - the next release... - -* minor re-formatting of pam_modules documentation - -* removed ...// since it wasn't being used and didn't look like it - would be! - -GCCSunday 23 22:35:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -* The major change is the addition of a new module: pam_time for - restricting access on terminals at given times for indicated users - it comes with its own configuration file /etc/security/time.conf - and the sample file simply restricts 'you' from satisfying the blank - application if they try to use blank from any tty* - -* Small changes include -- altered pam.conf to demonstrate above new module (try typing username: you) -- very minor changes to the docs (pam_appl and pam_modules) - -Saturday June 2 01:40:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -*** PLEASE READ THE README, it has changed *** - -* NOTE, 'su' exhibits a "system error", when static linking is - used. This is because the pam_unix_... module currently only has - partial static linking support. This is likely to change on Monday - June 3, when Alex makes his latest version availible. I will include - the updated module in next release. - -changes for .42: - -* modified the way in which libpam/pam_modules.h defines prototypes for - the pam_sm_ functions. Now the module must declare which functions it - is to provide *before* the #include <security/pam_modules.h> line. - (for contrasting examples, see the pam_deny and pam_rootok modules) - This removed the ugly hack of defining functions that are never called - to overcome warnings... This seems much tidier. -insterted* updated the TODO list. (changed mailing list address) -* updated README in .../modules to reflect modifications to static - compliation protocol -* modified the pam_modules documentation to describe this. -* corrected last argument of pam_get_item( ... ) in - pam_appl/modules.sgml, to "const void **". -* altered GNU GPL's in the documentation, and various other parts of - the distribution. *Please check* that any code you are responsible for - is corrected. -* Added ./Copyright (please check that it is acceptable) -* updated ./README to make current and indicate the new mailing list - address -* have completely rewritten pam_filter. It now runs modular filter - executables (stored in /usr/sbin/pam_filter/) This should make it - trivial for others to write their own filters.. If you want yours - included in the distribution please email the list/me. -* changes to libpam; there was a silly bug with multiple arguments on a - pam.conf line that was broken with a '\<LF>'. -* 'su' rearranged code (to make better use of PAM) - *Also* now uses POSIX signals--this should help the Alpha port. -* 'passwd' now uses getlogin() to determine who's passwords to change. - -Sunday May 26 9:00:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -* fixed module makefiles to create needed dynamic/static subdirectories - -Saturday May 25 20:30:27.8 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -* LOTS has changed regarding how the modules/libpam are built. -* Michael's mostly complete changes for static support--see below - (Andrew got a little carried away and automated the static linking - of modules---bugs are likely mine ;( ) -* Thanks mostly to Michael, libpam now compiles without a single warning :^] -* made static modules/library optional. -CFLAGS* added 'make sterile' to top level makefile. This does extraclean and remove -* added Michael and Joseph to documentation credits (and a subsection for - future documentation of static module support in pam_modules.sgml) -* libpam; many changes to makefiles and also automated the inclusion of - static module objects in pam_static.c -* modified modules for automated static/dynamic support. Added static & - dynamic subdirectories, as instructed by Michael -* removed an annoying syslog message from pam_filter: "parent exited.." -* updated todo list (anyone know anything about svgalib/X? we probably should - have some support for these...) - -Friday May 24 16:30:15 EDT 1996 (Michael K. Johnson <johnsonm@redhat.com>) - -* Added first (incomplete) cut at static support. - This includes: - . changes in libpam, including a new file, pam_static.c - . changes to modules including exporting struct of function pointers - . static and dynamic linking can be combined - . right now, the only working combinations are just dynamic - linking and dynamic libpam.so with static modules linked - into libpam.so. That's on the list of things to fix... - . modules are built differently depending on whether they - are static or dynamic. Therefore, there are two directories - under each module directory, one for static, and one for - dynamic modules. -* Fixed random brokenness in the Makefiles. [ foo -nt bar ] is - rather redundant in a makefile, for instance. Also, passing - on the command line is broken because it cannot be - overridden in any way (even adding important parts) in lower-level - makefiles. -* Unfortunately, fixing some of the brokenness meant that I used - GNU-specific stuff. However, I *think* that there was GNU-specific - stuff already. And I think that we should just use the GNU - extensions, because any platform that GNU make doesn't port to - easily will be hard to port to anyway. It also won't be likely -passwd to handle autoconf, which was Ted's suggestion for getting - around limitations in standard make... - For now, I suggest that we just use some simple GNU-specific - extensions. - -Monday May 20 22:00:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -* added some text to pam_modules.sgml -* corrected Marek's name in all documentation -* made pam_stress conform to chauthtok conventions -- ie can now request - old password before proceeding. -* included Alex's latest unix module -* included Al's + password strength checking module -* included pam_rootok module -* fixed too many bugs in libpam.. all subtly related to the argument lists - or use of syslog. Added more debugging lines here too. -* fixed the pam.conf file -* deleted pam_test module. It is pretty old and basically superceeded - by pam_stress - -Friday May 9 1:00:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -* updated documentaion, added Al Longyear to credits and corrected the - spelling of Jeff's name(!). Most changes to pam.sgml (even added a figure!) -* new module pam_rhosts_auth (from Al Longyear) -* new apps rlogind and ftpd (a patch) from Al. -* modified 'passwd' to not call pam_authenticate (note, none of the - modules respect this convention yet!) -* fixed bug in libpam that caused trouble if the last line of a - pam.conf file ends with a module name and no newline character -* also made more compatable with documentation, in that bad lines in - pam.conf are now ignored rather than causing libpam to return an - error to the app. -* libpam now overwrites the AUTHTOKs when returning from - pam_authenticate and pam_chauthtok calls (as per Sun/RFC too) -* libpam is now installed as libpam.so.XXX in a way that ldconfig can - handle! - - -Wednesday May 1 22:00:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>) - -* removed .../test directory, use .../examples from now on. -* added .../apps directory for fully functional applications - - the apps directory contains directories that actually contain the apps. - the idea is to make application compilation conditional on the presence - of the directory. Note, there are entries in the Makefile for - 'login' and 'ftpd' that are ready for installation... Email me if - you want to reserve a directory name for an application you are - working on... -* similar changes to .../modules makefile [entries for pam_skey and - pam_kerberos created---awaiting the directories.] Email me if you - want to register another module... -* minor changes to docs.. Not really worth reprinting them quite yet! - [save the trees] -* added misc_conv to libmisc. it is a generic conversation function - for text based applications. [would be nice to see someone create - an Xlib and/or svgalib version] -* fixed ctrl-z/c bug with pam_filter module [try xsh with the default - pam.conf file] -* added 'required' argument to 'pam_stress' module. -* added a TODO list... other suggestions to the list please. - -Saturday April 7 00:00:00 PST 1996 ( Andrew Morgan <morgan@physics.ucla.edu> ) - -* Alex and Marek please note I have altered _pam_auth_unix a little, to - make it get the passwords with the "proper method" (and also fixed it - to not have as many compiler warnings) -* updated the conf/pam.conf file -* added new example application examples/xsh.c (like blank but invokes - /bin/sh) -* Marc's patches for examples/blank.c (and AGM's too) -* fixed stacking of modules in libpam/pam_handlers.c -* fixed RESETing in libpam/pam_item.c -* added new module modules/pam_filter/ to demonstrate the possibility - of inserting an arbitrary filter between the terminal and the - application that could do customized logging etc... (see use of - bin/xsh as defined in conf/pam.conf) - - -Saturday March 16 19:00:00 PST 1996 ( Andrew Morgan <morgan@physics.ucla.edu> ) - -These notes are for 0.3 I don't think I've left anything important -out, but I will use emacs 'C-x v a' next time! (Thanks Jeff) - - * not much has changed with the functionality of the Linux-PAM lib - .../libpam - - pam_password calls module twice with different arguments - - added const to some of the function arguments - - added PAM_MAX_MES_ to <security/_pam_types.h> - - was a lot over zealous about purging old passwords... - I have removed much of this from source to make it - more compatible with SUN. - - moved some PAM_... tokens to pam_modules.h from _pam_types.h - (no-one should notice) - - * added three modules: pam_permit pam_deny pam_stress - no prizes for guessing what the first two do. The third is - a reasonably complete (functional) module. Is intended for testing - applications with. - - * fixed a few pieces of examples/blank.c so that it works (with - pam_stress) - - * ammended the documentation. Looking better, but suggestions/comments - very welcome! - -Sunday March 10 10:50:00 PST 1996 ( Andrew Morgan <morgan@physics.ucla.edu> ) - -These notes are for Linux-PAM release 0.21. They cover what's changed -since I relased 0.2. - - * am now using RCS - * substantially changed ./README - * fixed bug reading \\\n in pam.conf file - * small changes to documentation - * added `blank' application to ./examples (could be viewed as - a `Linux-PAM aware' application template.) - * oops. now including pam_passwd.o and pam_session.o in pamlib.so - * compute md5 checksums for all the source when making a release - - added `make check' and `make RCScheck' to compute md5 checksums - * create a second tar file with all the RCS files in. - * removed the .html and .txt docs, supplying sgml sources instead. - - see README for info on where to get .ps files - -Thursday March 6 0:44:?? PST 1996 ( Andrew Morgan <morgan@physics.ucla.edu> ) - -These notes are for Linux-PAM release 0.2. They cover what's changed -since Marc Ewing relased 0.1. - -**** Please note. All of the directories in this release have been modified -**** slightly to conform to the new pamlib. A couple of new directories have -**** been added. As well as some documentation. If some of your code -**** was in the previous release. Feel free to update it, but please -**** try to conform to the new headers and Makefiles. - -* Andrew Morgan (morgan@physics.ucla.edu) is making this release - availible, Marc has been busy...! - -* Marc's pam-0.1/lib has been (quietly) enhanced and integrated into - Alex Yurie's collected tree of library and module code - (linux-pam.prop.1.tar.gz). Most of the changes are to do with error - checking. Some more robustness in the reading of the pam.conf file - and the addition of the pam_get_user() function. - -* The pam_*.h files have been reorganized to logically enforce the - separation of modules from applications. [Don't panic! Apart from - changing references of the form - - #include "pam_appl.h" - - to - - #include <security/pam_appl.h> - - The reorganization should be backwardly compatable (ie. a module - written for SUN will be as compatable as it was before with the - previous version ;)~ ] - - (All of the source in this tree now conforms to this scheme...) - - The new reorganization means that modules can be compiled with a - single header, <security/pam_modules.h>, and applications with - <security/pam_appl.h>. - -* I have tried to remove all the compiler warnings from the updated - "pamlib/*.c" files. On my system, (with a slightly modified <dlfcn.h> - email me if it interests you..) there are only two warnings that - remain: they are that ansi does not permit void --> fn ptr - assignment. K&Rv2 doesn't mention this....? As a matter of principle, - if anyone knows how to get rid of that warning... please - tell. Thanks! "-pedantic" - -* you can "make all" as a plain user, but - -* to "make install" you must be root. The include files are placed in - /usr/include/security. The libpam.so library is installed in /usr/lib - and the modules in /usr/lib/security. The two test binaries - are installed in the Linux-PAM-0.2/bin directory and a chance is given to - replace your /etc/pam.conf file with the one in Linux-PAM-0.2/conf. - -* I have included some documentation (pretty preliminary at the -moment) which I have been working on in .../doc . - -I have had a little trouble with the modules, but atleast there are no -segfaults! Please try it out and discuss your results... I actually -hope it all works for you. But, Email any bugs/suggestions to the -Linux-PAM list: linux-pam@mit.edu ..... - -Regards, - -Andrew Morgan -(morgan@physics.ucla.edu) - - -Sat Feb 17 17:30:24 EST 1996 (Alexander O. Yuriev alex@bach.cis.temple.edu) - - * conf directory created with example of pam_conf - * stable code from pam_unix is added to modules/pam_unix - * test/test.c now requests username and password and attempts - to perform authentication diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index daf343bf..00000000 --- a/ChangeLog +++ /dev/null @@ -1,8760 +0,0 @@ -2023-05-07 Christian Göttsche <cgzones@googlemail.com> - - modules: update Linux detection. - GCC and Clang only define the macro `linux` when using the GNU dialect - of C (e.g. -std=gnu11 instead of -std=c11). Since `linux` is also not - in a reserved namespace it might be target of collisions. - Use the canonical macro `__linux__` instead (already used in - pam_limits.c). - -2023-04-29 Dmitry V. Levin <ldv@strace.io> - - po: update .pot and .po files. - Regenerate po/Linux-PAM.pot and po/*.po using "make -C po update-po" - command. This essentially updates the project version, line numbers, - and timestamps. - - Prepare for 1.5.3 release. - * configure.ac (AC_INIT): Raise version to 1.5.3. - * NEWS: Update. - -2023-04-23 Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org> - - po: update translations using Weblate (Romanian) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ro/ - -2023-04-23 ê¹€ì¸ìˆ˜ <simmon@nplob.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2023-04-20 Dmitry V. Levin <ldv@strace.io> - - pam_succeed_if: do not use the result of keyword substitution for keyword match - * modules/pam_succeed_if/pam_succeed_if.c (evaluate): Do not use the - result of keyword substitution for keyword match. - - Resolves: https://github.com/linux-pam/linux-pam/issues/560 - -2023-04-20 Dmitry V. Levin <ldv@strace.io> - - ci: add --enable-openssl jobs to the ci matrix. - Link: https://github.com/linux-pam/linux-pam/pull/550#issuecomment-1490362439 - -2023-04-20 Stefan Schubert <schubi@suse.de> - - build: fix --enable-openssl. - * Make.xml.rules.in: Avoid conflicting profile.condition settings. - * configure.ac: Likewise. - - Resolves: https://github.com/linux-pam/linux-pam/issues/553 - -2023-04-20 Iker Pedrosa <ipedrosa@redhat.com> - - pam_timestamp: Only build hmacfile when no openssl. - * modules/pam_timestamp/Makefile.am: Only build hmacfile target when - openssl isn't enabled. - -2023-04-20 Luca Boccassi <bluca@debian.org> - - man: clarify PAM_DATA_SILENT in pam_set_data.3. - pam_end.3 has additional and important information about PAM_DATA_SILENT, - copy it to pam_set_data.3 since that describes the cleanup callback where - it will be set. - -2023-04-20 Mark Huang <huangyuxi99@gmail.com> - - fix a grammar mistake. - -2023-04-06 Thorsten Kukuk <kukuk@suse.com> - - configure: Disable NIS if header files are missing. - configure.ac: Disable NIS if RPC or YP header files are missing - modules/pam_unix/support.c: Use HAVE_NIS to check for header file presence - modules/pam_unix/pam_unix_passwd.c: Use HAVE_NIS, too - -2023-04-04 Thorsten Kukuk <kukuk@suse.com> - - doc: Include custom-html.xsl.in and custom-man.xsl.in. - doc/Makefile.am: Replace custom-html.xsl and custom-man.xsl with - custom-html.xsl.in and custom-man.xsl.in EXTRA_DIST - -2023-03-31 Dmitry V. Levin <ldv@strace.io> - - treewide: fix unnecessary $ on arithmetic variables. - This should fix shellcheck warning SC2004. - -2023-03-30 Dmitry V. Levin <ldv@strace.io> - - pgp.keys.asc: update. - * pgp.keys.asc: Replace with the key used to sign v1.5.2. - - Resolves: https://github.com/linux-pam/linux-pam/issues/544 - -2023-03-30 Iker Pedrosa <ipedrosa@redhat.com> - - pam_timestamp: fix build failure. - bcba17939e1b1a568cd4a764534cde74d37078cc started using pam_overwrite_n() - without providing the definition to this function, which causes a build - failure. - - modules/pam_timestamp/hmac_openssl_wrapper.c: include pam_inline.h - -2023-03-14 A S Alam <amanpreet.alam@gmail.com> - - po: update translations using Weblate (Punjabi) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pa/ - -2023-03-14 Thorsten Kukuk <kukuk@suse.com> - - manual pages: document usage of $DISPLAY and PAM_TTY. - man/pam_item_types_std.inc.xml: In the past, PAM_TTY was used for tty - devices and $DISPLAY variables for X-based applications. With the - introduction of PAM_DISPLAY PAM_TTY should only be used for devices. - -2023-03-04 Christian Göttsche <cgzones@googlemail.com> - - libpam: simplify string copying using strdup. - -2023-02-28 Christian Göttsche <cgzones@googlemail.com> - - modules: make use of secure memory erasure. - Use empty initialization of structs to minimize the memset() usage, to - reduce the amount of calls which are not sensitive. - - Non trivial changes: - - - pam_env: - * erase environment variables where possible - - - pam_exec: - * erase responce on error - * erase auth token - - - pam_pwhistory: - * erase buffers containing old passwords - - - pam_selinux: skip overwriting data structure consisting of only - pointers to insensitive data, which also gets free'd afterwards (so - it currently does not protect against double-free or use-after-free on - the member pointers) - - - pam_unix: erase cipher data in more places - - - pam_userdb: erase password hashes - -2023-02-28 Christian Göttsche <cgzones@googlemail.com> - - libpamc: make use of secure memory erasure. - - libpam_misc: make use of secure memory erasure. - -2023-02-28 Christian Göttsche <cgzones@googlemail.com> - - libpam: make use of secure memory erasure. - Non trivial changes: - - - erase responses in pam_get_authtok_internal() on error branch - -2023-02-28 Christian Göttsche <cgzones@googlemail.com> - - libpam: introduce secure memory erasure helpers. - Avoid compiler optimizations to elide the memory erasure by using a - secure method: either memset_explicit() [C23], bzero_explicit() [glibc - 2.25] or a manual memory barrier. - - Since the current helpers _pam_overwrite*() and _pam_drop_reply() are - publicly exported, create new ones in "pam_inline.h" and deprecate the - old ones. - -2023-02-28 Christian Göttsche <cgzones@googlemail.com> - - pam_env: use helper to free string list. - Free the environment variables list via the designated helper - free_string_array() rather than free its elements in a loop, which might - skip some. - - pam_env: override undefined pointer after asprintf failure. - On failure the content of the string pointer passed to asprintf(3) is - undefined. Set to NULL before free'ing the parent array. - -2023-02-28 Thorsten Kukuk <kukuk@suse.com> - - Y2038: use logind instead of utmp. - The struct utmp from glibc uses on many 64bit architectures a 32bit - time_t for compatibility with a 32bit userland, which means utmp will - not survive the year 2038 (32bit time_t overflow). Use the data from - logind instead of utmp. - - * configure.ac: Add option --enable-logind - * modules/pam_issue/Makefile.am: Add CFLAGS/LIBS for logind support - * modules/pam_issue/pam_issue.c: Use sd_get_sessions instead of utmp - * modules/pam_timestamp/Makefile.am: Add CFLAGS/LIBS for logind support - * modules/pam_timestamp/pam_timestamp.c: query logind for login time - -2023-02-20 Martin Srebotnjak <miles@filmsi.net> - - po: update translations using Weblate (Slovenian) - Currently translated at 16.8% (17 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sl/ - -2023-02-20 Yaron Shahrabani <sh.yaron@gmail.com> - - po: update translations using Weblate (Hebrew) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/ - -2023-02-17 Thorsten Kukuk <kukuk@suse.com> - - manual pages: enhance pam.d documentation. - Make /usr/lib/pam.d and <vendordir>/pam.d more visible in the standard - manual pages, so that people don't assume there is only /etc/pam.d - - * doc/man/pam.8.xml: Don't always speak about /etc/pam.d only - * doc/man/pam.conf-desc.xml: Don't always speak about /etc/pam.d only - * doc/man/pam.conf-dir.xml: Explain search path for pam config files - * doc/man/pam.conf.5.xml: Add filelist with all pam.d directories - -2023-02-15 Thorsten Kukuk <kukuk@suse.com> - - pam_lastlog: deprecate it and disable by default. - pam_lastlog uses utmp, wtmp, btmp and lastlog. None of them is Y2038 - safe, even on 64bit architectures. Most 64bit architectures use 32bit - time_t for compat reasons with 32bit userland. - Additionally, all relevant tools for which pam_lastlog would make sense - already have their own support for all four files, so this module will - most likely only create duplicate entries. - - * configure.ac: don't build pam_lastlog by default. - * ci/run-build-and-tests.sh: enable pam_lastlog. - -2023-02-14 Thorsten Kukuk <kukuk@suse.com> - - libpam: use getlogin() from libc and not utmp. - utmp uses 32bit time_t for compatibility with 32bit userland on some - 64bit systems and is thus not Y2038 safe. Use getlogin() from libc - which avoids using utmp and is more safe than the old utmp-based - implementation by using /proc/self/loginuid. - - * libpam/pam_modutil_getlogin.c: Use getlogin() instead of parsing utmp - -2023-02-07 Josef Hruska <hrusjos@gmail.com> - - po: update translations using Weblate (Czech) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/cs/ - -2023-02-07 Seong-ho Cho <darkcircle.0426@gmail.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2023-02-07 Gogo Gogsi <linux.hr@protonmail.com> - - po: update translations using Weblate (Croatian) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hr/ - -2023-02-07 Baurzhan Muftakhidinov <baurthefirst@gmail.com> - - po: update translations using Weblate (Kazakh) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/kk/ - -2023-02-07 Ettore Atalan <atalanttore@googlemail.com> - - po: update translations using Weblate (German) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/ - -2023-02-07 Luna Jernberg <bittin@reimu.nl> - - po: update translations using Weblate (Swedish) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sv/ - -2023-02-07 Jan Kuparinen <copper_fin@hotmail.com> - - po: update translations using Weblate (Finnish) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/ - -2023-02-07 Yuri Chornoivan <yurchor@ukr.net> - - po: update translations using Weblate (Ukrainian) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/ - -2023-02-07 OÄŸuz Ersen <oguz@ersen.moe> - - po: update translations using Weblate (Turkish) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/ - -2023-02-07 Piotr DrÄ…g <piotrdrag@gmail.com> - - po: update translations using Weblate (Polish) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/ - -2023-02-07 ê¹€ì¸ìˆ˜ <simmon@nplob.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2023-02-07 Temuri Doghonadze <temuri.doghonadze@gmail.com> - - po: update translations using Weblate (Georgian) - Currently translated at 100.0% (101 of 101 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ka/ - -2023-02-07 Stefan Schubert <schubi@suse.de> - - build: use <vendordir>/security directory for installation if it has been set - Otherwise the corresponding files are still installed in /etc/security. - - * configure.ac (AC_SUBST): Add VENDOR_SCONFIGDIR. - (AM_CONDITIONAL): Add HAVE_VENDORDIR. - * modules/*/Makefile.am (secureconfdir): Set to VENDOR_SCONFIGDIR - if HAVE_VENDORDIR has been set, otherwise to SCONFIGDIR. - -2023-02-07 Dmitry V. Levin <ldv@strace.io> - - ci: make VENDORDIR based on $prefix for the clang case as well. - * .github/workflows/ci.yml (clang-14): Change VENDORDIR from /usr/etc to - ${prefix}/share/etc, this should help to check that the code no longer - relies on the assumption that VENDORDIR == /usr/etc. - - Complements: 0d1c62eb4733 ("ci: make VENDORDIR based on $prefix") - -2023-02-05 Dmitry V. Levin <ldv@strace.io> - - ci: make VENDORDIR based on $prefix. - * ci/run-build-and-tests.sh: Accept VENDORDIR that does not start with /. - * .github/workflows/ci.yml (VENDORDIR): Change from /usr/etc to - ${prefix}/share/etc, this should help to check that the code no longer - relies on the assumption that VENDORDIR == /usr/etc. - -2023-02-04 Dmitry V. Levin <ldv@strace.io> - - pam_env: do not assume in tests that VENDORDIR is /usr/etc. - * modules/pam_env/tst-pam_env-retval.c: Include <errno.h> and <libgen.h>. - [VENDORDIR] (dir, dir_usr, dir_usr_etc): Remove. - [VENDORDIR] (mkdir_p, rmdir_p): New functions. - (setup, cleanup) [VENDORDIR]: Use them. - -2023-02-03 Dmitry V. Levin <ldv@strace.io> - - pam_env: do not hardcode /usr/etc into tests. - * modules/pam_env/tst-pam_env-retval.c: Replace /usr/etc/security with - VENDOR_SCONFIGDIR, /usr/etc with VENDORDIR. Do not define and use - VENDORDIR based variables unless VENDORDIR is defined. - - Fixes: 6135c45347b6 ("pam_env: Use vendor specific pam_env.conf and environment as fallback") - -2023-02-02 Dmitry V. Levin <ldv@strace.io> - - pam_env: do not hardcode /usr/etc into documentation. - * modules/pam_env/pam_env.conf.5.xml: Replace /usr/etc with %vendordir%. - - Fixes: 6135c45347b6 ("pam_env: Use vendor specific pam_env.conf and environment as fallback") - -2023-02-01 Dmitry V. Levin <ldv@strace.io> - - pam_env: fix VENDOR_DEFAULT_ETC_ENVFILE. - * modules/pam_env/pam_env.c (VENDOR_DEFAULT_ETC_ENVFILE): Assume that - VENDORDIR already includes "/etc". - - Fixes: 6135c45347b6 ("pam_env: Use vendor specific pam_env.conf and environment as fallback") - -2023-01-31 Thorsten Kukuk <kukuk@suse.com> - - pam_unix: don't link against yppasswd_xdr if NIS is disabled. - * configure.ac: Define HAVE_NIS if NIS is enabled. - * modules/pam_unix/Makefile.am: Don't link against yppasswd_xdr.c - if NIS is disabled. - * modules/pam_unix/pam_unix_passwd.c: Don't redefine HAVE_NIS. - - Resolves: https://github.com/linux-pam/linux-pam/issues/523 - -2023-01-30 Christian Göttsche <cgzones@googlemail.com> - - Enable format compiler warnings. - * libpam/include/pam_cc_compat.h (DIAG_PUSH_IGNORE_FORMAT_NONLITERAL, - DIAG_POP_IGNORE_FORMAT_NONLITERAL): New macros. - * libpam/pam_handlers.c (_pam_open_config_file): Use them to exempt - usage of format string literals from a constant array. - * m4/warn_lang_flags.m4 (gl_WARN_ADD): Add -Wformat=2. - - Enable undef warning. - * modules/pam_unix/pam_unix_passwd.c: Wrap checks for configure macros - into defined() operator. - * m4/warn_lang_flags.m4 (gl_WARN_ADD): Add -Wundef. - -2023-01-30 Christian Göttsche <cgzones@googlemail.com> - - Enable additional compiler warnings. - The current codebase should comply with those. - - * m4/warn_lang_flags.m4 (gl_WARN_ADD): Add -Winit-self, - -Wnull-dereference, and -Wunused. - -2023-01-27 Stefan Schubert <schubi@suse.de> - - pam_pwhistory: use vendor specific pwhistory.conf as fallback. - Use the vendor directory defined by --enable-vendordir=DIR configure - option as fallback for the distribution provided default config file - if there is no configuration in /etc. - - * modules/pam_pwhistory/pam_pwhistory.8.xml: Describe pwhistory.conf - * modules/pam_pwhistory/pwhistory_config.c [VENDOR_SCONFIGDIR] - (VENDOR_PWHISTORY_DEFAULT_CONF): New macro. - (parse_config_file) [VENDOR_PWHISTORY_DEFAULT_CONF]: Try to open - VENDOR_PWHISTORY_DEFAULT_CONF if PWHISTORY_DEFAULT_CONF file does not - exist. - -2023-01-27 Stefan Schubert <schubi@suse.de> - - pam_pwhistory: add a basic test for return values. - * modules/pam_pwhistory/tst-pam_pwhistory-retval.c: New file. - * modules/pam_pwhistory/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_pwhistory_retval_LDADD): New variables. - -2023-01-25 Christian Göttsche <cgzones@googlemail.com> - - examples: ignore generated tty_conv. - -2023-01-24 Thorsten Kukuk <kukuk@suse.com> - - pam_unix: regenerate yppasswd.h/yppasswd_xdr.c (#480) - Regenerate yppasswd.h and yppasswd_xdr.c from yppasswd.x (libnsl) to - avoid GPL code in a PAM module. - - Link: https://github.com/thkukuk/libnsl/blob/master/src/rpcsvc/yppasswd.x - -2023-01-24 Dmitry V. Levin <ldv@strace.io> - - libpam: remove dead code in pam_dynamic.c. - Apparently, the PAM_SHL variant cannot be compiled since the very first - commit back in 2005 when it was introduced, and another variant uses - PAM_DYLD which is virtually unknown to search engines. - - * libpam/pam_dynamic.c [PAM_SHL || PAM_DYLD]: Remove. - - Resolves: https://github.com/linux-pam/linux-pam/issues/477 - -2023-01-24 Christian Göttsche <cgzones@googlemail.com> - - pam_selinux: treat getenforce failures as enforcing. - security_getenforce(3) can return -1 on error; either because the - selinuxfs is not mounted or reading from /sys/fs/selinux/enforce failed. - - Since security_getenforce(3) is either called after an approving call to - is_selinux_enabled(3) in create_context() or with populated module - data in restore_context(), which requires a previous pass of - create_context(), the selinuxfs should be mounted. - Reading from /sys/fs/selinux/enforce should never fail (except being - prohibited by the SElinux policy itself) since it is a public interface. - - In the unlikely case of security_getenforce(3) nevertheless failing - continue execution as if the result was enforcing (likewise to - pam_sepermit and pam_rootok). - -2023-01-21 Dmitry V. Levin <ldv@strace.io> - - .github: add gcc-12, clang-13, and clang-14 jobs. - * .github/workflows/ci.yml (gcc12-x86_64, clang14-x86_64, - clang13-x86_64): New jobs. - (gcc11-x86_64-vendordir): Rename to gcc12-x86_64-vendordir, - replace gcc-11 with gcc-12. - (clang12-x86_64-vendordir): Rename to clang14-x86_64-vendordir, - replace clang-12 with clang-14. - -2023-01-20 Dmitry V. Levin <ldv@strace.io> - - .github: switch from ubuntu-20.04 to ubuntu-latest. - Switch runners to the latest Ubuntu LTS available, which is currently - Ubuntu 22.04. Also, remove old compiler versions from the ci matrix. - - * .github/workflows/ci.yml (gcc8-x86_64, clang10-x86_64, clang9-x86_64, - clang8-x86_64): Remove. - (gcc11-x86_64-vendordir, gcc11-x86_64, gcc10-x86_64, gcc9-x86_64, - clang12-x86_64-vendordir, clang12-x86_64, clang11-x86_64): Replace - ubuntu-20.04 with ubuntu-latest. - - Link: https://github.blog/changelog/2022-11-09-github-actions-ubuntu-latest-workflows-will-use-ubuntu-22-04/ - -2023-01-19 Dmitry V. Levin <ldv@strace.io> - - pam_unix: silence compiler warning in md5.c. - clang-14 insists on issuing the following warning: - - In file included from md5_good.c:4: - md5.c:92:15: error: passing 1-byte aligned argument to 4-byte aligned parameter 1 of 'byteReverse' may result in an unaligned pointer access [-Werror,-Walign-mismatch] - byteReverse(ctx->in.c, 16); - ^ - md5.c:101:15: error: passing 1-byte aligned argument to 4-byte aligned parameter 1 of 'byteReverse' may result in an unaligned pointer access [-Werror,-Walign-mismatch] - byteReverse(ctx->in.c, 16); - ^ - md5.c:136:15: error: passing 1-byte aligned argument to 4-byte aligned parameter 1 of 'byteReverse' may result in an unaligned pointer access [-Werror,-Walign-mismatch] - byteReverse(ctx->in.c, 16); - ^ - md5.c:145:14: error: passing 1-byte aligned argument to 4-byte aligned parameter 1 of 'byteReverse' may result in an unaligned pointer access [-Werror,-Walign-mismatch] - byteReverse(ctx->in.c, 14); - ^ - md5.c:151:14: error: passing 1-byte aligned argument to 4-byte aligned parameter 1 of 'byteReverse' may result in an unaligned pointer access [-Werror,-Walign-mismatch] - byteReverse(ctx->buf.c, 4); - ^ - - * modules/pam_unix/md5.c (byteReverse): Use uint32 instead of - uint8_aligned, update all users. - (uint8_aligned): Remove unused type. - -2023-01-19 Dmitry V. Levin <ldv@strace.io> - - pam_client.h: silence compiler warning. - gcc-12 insists on issuing the following warning: - - In file included from libpamc.h:13, - from pamc_converse.c:9: - pamc_converse.c: In function 'pamc_converse': - include/security/pam_client.h:129:27: error: array subscript 'struct <anonymous>[0]' is partly outside array bounds of 'unsigned char[6]' [-Werror=array-bounds] - 129 | (*(old_p))->control = cntrl; \ - | ^~ - pamc_converse.c:209:5: note: in expansion of macro 'PAM_BP_RENEW' - 209 | PAM_BP_RENEW(prompt_p, PAM_BPC_FAIL, 0); - | ^~~~~~~~~~~~ - include/security/pam_client.h:87:29: note: object of size 6 allocated by 'calloc' - 87 | # define PAM_BP_CALLOC calloc - | ^ - include/security/pam_client.h:124:29: note: in expansion of macro 'PAM_BP_CALLOC' - 124 | if ((*(old_p) = PAM_BP_CALLOC(1, 1+__size))) { \ - | ^~~~~~~~~~~~~ - pamc_converse.c:209:5: note: in expansion of macro 'PAM_BP_RENEW' - 209 | PAM_BP_RENEW(prompt_p, PAM_BPC_FAIL, 0); - | ^~~~~~~~~~~~ - - * libpamc/include/security/pam_client.h (pamc_bp_t): Decorate the - structure pointed by pamc_bp_t pointer as packed. Despite being a part - of the API, the structure is not supposed to be used directly, and all - the interface macros were assuming from the very beginning that this - structure is packed. - -2023-01-19 Dmitry V. Levin <ldv@strace.io> - - pam_limits: silence compiler warning. - gcc-12 insists on issuing the following warning: - - In file included from /usr/include/string.h:535, - from pam_limits.c:24: - In function 'strncat', - inlined from 'check_logins' at pam_limits.c:287:6, - inlined from 'setup_limits' at pam_limits.c:1066:13, - inlined from 'pam_sm_open_session' at pam_limits.c:1267:14: - /usr/include/x86_64-linux-gnu/bits/string_fortified.h:138:10: error: '__builtin___strncat_chk' argument 2 declared attribute 'nonstring' [-Werror=stringop-overread] - 138 | return __builtin___strncat_chk (__dest, __src, __len, - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 139 | __glibc_objsize (__dest)); - | ~~~~~~~~~~~~~~~~~~~~~~~~~ - In file included from /usr/include/utmp.h:29, - from pam_limits.c:37: - /usr/include/x86_64-linux-gnu/bits/utmp.h: In function 'pam_sm_open_session': - /usr/include/x86_64-linux-gnu/bits/utmp.h:66:8: note: argument 'ut_user' declared here - 66 | char ut_user[UT_NAMESIZE] - | ^~~~~~~ - - * modules/pam_limits/pam_limits.c (check_logins): Use memcpy instead of - strncat to pacify the compiler. - -2023-01-18 Dmitry V. Levin <ldv@altlinux.org> - - .github: remove x86 and x32 jobs. - These types of jobs were implemented using the old version of the OS - that is currently being deprecated by github actions. - - * .github/workflows/ci.yml (gcc11-x86-vendordir, gcc11-x86, gcc10-x86, - gcc9-x86, gcc8-x86, clang10-x86, clang9-x86, clang8-x86, gcc11-x32, - gcc10-x32, gcc9-x32, gcc8-x32): Remove. - - Link: https://github.com/actions/runner-images/issues/6002 - -2023-01-18 Cyril Duval <cyril.duval@diabolocom.com> - - pam_listfile: fix pointer misuse leading to data corruption. - pam_listfile assumes the group being tested will be written at the end - of the argument list by carrying only a pointer to the value being - examined in 'myval'. - - Therefore example - - ''' - auth required pam_listfile.so \ - onerr=succeed apply=ftp item=user sense=deny file=/etc/ftpusers - ''' - - modified from https://linux.die.net/man/8/pam_listfile is not working because - 'apply_val' will point to the latest value of 'myval', which in this case will - be "/etc/ftpusers" instead of "ftp". - - Fix this issue by copying the value of 'myval' instead of just taking - a reference pointer. - -2022-12-16 Stefan Schubert <schubi@suse.de> - - doc: Update PAM documentation from DockBook 4 to DocBook 5. - Changed files - -------------- - - Make.xml.rules.in: - - Using RNG file instead of DTD file for checking XML files. - - Taking the correct stylesheet for README files. - - doc/sag/Makefile.am, doc/adg/Makefile.am, doc/mwg/Makefile.am: - - Using RNG file instead of DTD file for checking XML files. - - configure.ac: - - Adding a new option for selecting RNG check file (-enable-docbook-rng) - - Switching stylesheets to docbook 5 - - Checking DocBook 5 environment instead of DocBook 4 environment - - *.xml: - Update from DockBook 4 to DocBook 5 - -2022-12-14 Stefan Schubert <schubi@suse.de> - - pam_env: Use vendor specific pam_env.conf and environment as fallback. - Use the vendor directory as fallback for a distribution provided default - config if there is no one in /etc. - - * Makefile.am: Add libeconf setting. - * pam_env.c: Take care about the fallback configuration in the vendor directory. - * pam_env.8.xml: Add description for the vendor directory. - * pam_env.conf.5.xml: Add description for the vendor directory. - * tst-pam_env-retval.c: Add tests for libeconf. - * configure.ac: Add ECONF settings for building man pages. - -2022-12-12 Stefan Schubert <schubi@suse.de> - - pam_shells: Use the vendor directory as fallback for a distribution provided default config if there is no one in /etc. - If pam will be compiled with the option --enable-vendordir=<vendor_dir> and - NOT defined --disable-econf, the files which define valid login shells will - be parsed in following order: - - <vendor_dir>/shells - - <vendor_dir>/shells.d/* - - /etc/shells.d/shells - But all files in <vendor_dir> will be ingnored if the user has defined his - own file /etc/shells. - This commit solves issue: https://github.com/linux-pam/linux-pam/issues/498 - -2022-12-07 Stefan Schubert <schubi@suse.de> - - pam_shells: Added xtest test case. - Test case for checking pam_authenticate in pam_shells. - -2022-12-06 Thorsten Kukuk <kukuk@suse.com> - - doc/man/Makefile.am: fix XMLS list. - The XMLS list of xml sources for the manual pages missed some xml files - and instead contained some nroff sources. - -2022-12-01 Valentin Lefebvre <valentin.lefebvre@suse.com> - - pam_env: _parse_line: fix quoteflg handled. - Check if quote flag is positive before decrementing it. Otherwise, for - some use case, it could become negative, and have an unwanted empty string - instead of an undefined variable. - -2022-12-01 Dmitry V. Levin <ldv@altlinux.org> - - .github: switch from actions/checkout@v2 to actions/checkout@v3. - This fixes the following diagnostic warning: - - Node.js 12 actions are deprecated. For more information see: - https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. - - * .github/workflows/ci.yml: Replace actions/checkout@v2 with - actions/checkout@v3. - -2022-11-11 Dmitry V. Levin <ldv@altlinux.org> - - po: update .pot and .po files. - Regenerate po/Linux-PAM.pot and po/*.po using "make -C po update-po" - command. This updates translations of pam_faillock and pam_mail - modules. - -2022-11-11 ed neville <ed@s5h.net> - - pam_mail: adjust wording for no new mail. - Wording of no new mail message should be significantly different from - new mail so that it does not align in length or similar words. - - * modules/pam_mail/pam_mail.c (report_mail): Change the wording of - no new mail message. - - Resolves: https://github.com/linux-pam/linux-pam/issues/465 - -2022-11-11 Dmitry V. Levin <ldv@altlinux.org> - - pam_faillock: fix typo in usage diagnostics. - * modules/pam_faillock/main.c (usage): Remove extra whitespace from the - usage diagnostics. - - Fixes: 94f0f5ebb ("faillock: add support to print login failure info in legacy format") - -2022-11-11 Emilio Herrera <ehespinosa57@gmail.com> - - po: update translations using Weblate (Spanish) - Currently translated at 90.0% (90 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/es/ - -2022-11-11 ê¹€ì¸ìˆ˜ <simmon@nplob.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2022-11-11 Temuri Doghonadze <temuri.doghonadze@gmail.com> - - po: update translations using Weblate (Georgian) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ka/ - Resolves: https://github.com/linux-pam/linux-pam/pull/485 - -2022-11-07 Davin Shearer <2205472+scholarsmate@users.noreply.github.com> - - pam_lastlog: fix file locking. - Fixed 2 instances in the pam_lastlog module where file locks were - not being enforced when reading and writing last login records. - - * modules/pam_lastlog/pam_lastlog.c (last_login_write): The write lock - failure is fatal after 3 tries. - (last_login_read): The read lock failure is non-fatal after 3 tries. - It is non-fatal in the read case due to concerns about a possible DoS. - -2022-11-07 Deepak Das <ddas@redhat.com> - - pam_faillock: avoid logging an erroneous consecutive login failure message - * modules/pam_faillock/pam_faillock.c (write_tally): Avoid logging - a consecutive login failure message for the root user in case when - even_deny_root is not set. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2082442 - -2022-11-07 Deepak Das <ddas@redhat.com> - - pam_faillock: Clarify missing user faillock files after reboot. - * modules/pam_faillock/faillock.conf.5.xml: Adding note related to missing - user specific faillock files after reboot. - - * modules/pam_faillock/pam_faillock.8.xml: Adding note related to missing - user specific faillock files after reboot. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2062512 - -2022-10-27 Stefan Schubert <schubi@suse.de> - - doc: make stylesheets configurable. - Before this change, all stylesheets were hardcoded. - With this change, stylesheets can be defined at configure stage. - - * configure.ac: Add new options to configure stylesheets: - --enable-html-stylesheet=FILE - --enable-txt-stylesheet=FILE - --enable-pdf-stylesheet=FILE - --enable-man-stylesheet=FILE - * doc/custom-html.xsl: Rename to doc/custom-html.xsl.in, parametrize html - stylesheet. - * doc/custom-man.xsl: Rename to doc/custom-man.xsl.in, parametrize man - stylesheet. - * doc/.gitignore: Add custom-man.xsl and custom-html.xsl. - * doc/adg/Makefile.am: Use stylesheet variables. - * doc/mwg/Makefile.am: Likewise. - * doc/sag/Makefile.am: Likewise. - - Resolves: https://github.com/linux-pam/linux-pam/pull/499 - -2022-09-28 Felix Lechner <felix.lechner@lease-up.com> - - libpam*: For uncommon prefixes, provide substitution variables in pkgconfig files. - Fix undefined references to ${exec_prefix} in pkgconfig files on Guix. - The subsequent declarations of ${libdir} and ${includedir} in the same - files require this commit when ${prefix} is set to something other - than /usr. - - When the pkgconfig files were initially provided, the two lines added - here were dropped for what seemed like a good reason. [1] In the - common case of a /usr prefix, 'configure.ac' sets ${libdir} and - possibly ${includedir} explicitly [2] so the additional lines were - then not needed. - - Guix and probably Nix too, however, depart from the Filesystem - Hierarchy Standard and require the missing lines. Without those lines, - the pkgconfig files are defective on Guix. [3] - - Since working systems are not affected, the lines are added for all. - The fix was confirmed for Guix. One of the files looked like this: - - prefix=/gnu/store/3mcmjilqrivrpb3hvps32lnbnyrxrzr8-linux-pam-1.5.2-1.dc2f566 - exec_prefix=${prefix} - libdir=${exec_prefix}/lib - includedir=/gnu/store/3mcmjilqrivrpb3hvps32lnbnyrxrzr8-linux-pam-1.5.2-1.dc2f566/include/security - - Name: PAM - Description: The primary Linux-PAM library. It is used by PAM modules and PAM-aware applications. - URL: http://www.linux-pam.org/ - Version: 1.5.2 - Cflags: -I${includedir} - Libs: -L${libdir} -lpam - - * libpam/pam.pc.in, libpamc/pamc.pc.in, libpam_misc/pam_misc.pc.in: - Add @prefix@ and @exec_prefix@. - - Resolves: https://github.com/linux-pam/linux-pam/issues/466 - - [1] https://github.com/linux-pam/linux-pam/pull/369#discussion_r650557756 - [2] https://github.com/linux-pam/linux-pam/blob/40c271164dbcebfc5304d0537a42fb42e6b6803c/configure.ac#L28-L36 - [3] https://github.com/linux-pam/linux-pam/issues/466 - -2022-09-27 Iker Pedrosa <ipedrosa@redhat.com> - - pam_lastlog: check localtime_r() return value. - Check the return value of localtime_r() before calling strftime(). This - function crashes if the argument is NULL. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2012871 - -2022-09-12 Sam James <sam@gentoo.org> - - configure.ac: fix implicit function declaration in mail spool directory check - Fixes the following error with Clang 15 (which makes implicit function - declarations an error by default): - ``` - +error: call to undeclared library function 'exit' with type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] - exit(0); - ^ - note: include the header <stdlib.h> or explicitly provide a declaration for 'exit' - ``` - -2022-07-18 H A <contact+fedora@hen.ee> - - po: update translations using Weblate (Estonian) - Currently translated at 28.0% (28 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/et/ - -2022-07-18 ê¹€ì¸ìˆ˜ <simmon@nplob.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2022-07-18 Dingzhong Chen <wsxy162@gmail.com> - - po: update translations using Weblate (Chinese (Simplified) (zh_CN)) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_CN/ - -2022-07-16 Dmitry V. Levin <ldv@altlinux.org> - - pam_namespace: make sure the SIGCHLD handler is not reset too early. - * modules/pam_namespace/pam_namespace.c (inst_init): Make sure - the SIGCHLD handler is not reset too early by moving the sigaction - call right before the fork call. - - pam_mkhomedir: make sure the SIGCHLD handler is not reset too early. - * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Make sure - the SIGCHLD handler is not reset too early by moving the sigaction - call right before the fork call. - -2022-07-15 dengbo <dengbo@uniontech.com> - - pam_xauth: add SIGCHLD protection handle. - * modules/pam_xauth/pam_xauth.c (run_coprocess): Save the SIGCHLD - handler and reset it to the default before calling fork, restore the - handler after waitpid returns. - - Resolves: https://github.com/linux-pam/linux-pam/pull/469 - -2022-07-15 dengbo <dengbo@uniontech.com> - - pam_exec: add SIGCHLD protection handle. - * modules/pam_exec/pam_exec.c (call_exec): Save the SIGCHLD handler and - reset it to the default before calling fork, restore the handler after - waitpid returns. - - Resolves: https://github.com/linux-pam/linux-pam/issues/405 - -2022-07-15 Iker Pedrosa <ipedrosa@redhat.com> - - pam_pwhistory: document config load from file. - * modules/pam_pwhistory/pam_pwhistory.8.xml: Add new option to select - configuration file to read. - * modules/pam_pwhistory/pwhistory.conf.5.xml: Document configuration - options for the file. - * modules/pam_pwhistory/Makefile.am (dist_man_MANS): Add pwhistory.conf.5. - (XMLS): Add pwhistory.conf.5.xml. - -2022-07-15 Iker Pedrosa <ipedrosa@redhat.com> - - pam_pwhistory: load config from file. - * modules/pam_pwhistory/pam_pwhistory.c: Load config from file and - provide new conf option to select the file. - * modules/pam_pwhistory/pwhistory_config.c: Parse config from file and - load to options structure. - * modules/pam_pwhistory/pwhistory_config.h: Move options_t structure and - define parse_config_file(). - * modules/pam_pwhistory/Makefile.am (noinst_HEADERS): Add pwhistory_config.h. - (pam_pwhistory_la_SOURCES): Add pwhistory_config.c. - (dist_secureconf_DATA): Add pwhistory.conf. - * modules/pam_pwhistory/pwhistory.conf: New configuration file. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2068461 - -2022-07-15 Iker Pedrosa <ipedrosa@redhat.com> - - libpam: improve pam_modutil_search_key() doc. - * libpam/include/security/pam_modutil.h: Improve the - pam_modutil_search_key() interface documentation. - -2022-07-15 Dmitry V. Levin <ldv@altlinux.org> - - _pam_add_handler: make sure struct handler is properly initialized on error path - * libpam/pam_handlers.c (_pam_add_handler): Use calloc instead of malloc - for struct handler allocation to avoid returning garbage in some fields - of the structure on error path. - - Resolves: https://github.com/linux-pam/linux-pam/issues/475 - -2022-07-01 Dmitry V. Levin <ldv@altlinux.org> - - .github: switch whitespace-errors job to ubuntu-latest. - While ubuntu-latest in ci is not necessarily the latest version of the - OS available in ci, whitespace-errors job should be agnostic to the - version being used, so use the default one. - - * .github/workflows/ci.yml (whitespace-errors) <runs-on>: Change from - ubuntu-20.04 to ubuntu-latest. - -2022-07-01 Shreenidhi Shedi <sshedi@vmware.com> - - faillock: add support to print login failure info in legacy format. - pam_tally2 had a simple and minimalstic output to show login failure - info, new output of faillock makes the output look a bit complex and - doesn't show failure counts in a straight manner. - - This patch fixes the above issue by adding "--legacy-output" flag to - faillock which makes it possible to get output in pam_tally2 style. - -2022-07-01 Shreenidhi Shedi <sshedi@vmware.com> - - faillock: refactor faillock info printing code. - Move the code to it's own function. - -2022-07-01 Shreenidhi Shedi <sshedi@vmware.com> - - faillock: error out if user does not exist. - No need to do any further processing if a non existent username is given - to faillock. - - For first time successful login, failure field should be 0 and faillock - should show something like pam_tally2 did. - -2022-06-30 Per Jessen <per@jessen.ch> - - pam_motd: do not rely on all filesystems providing a filetype. - When using scandir() to look for MOTD files to display, we wrongly - relied on all filesystems providing a filetype. This is a fix to divert - to lstat() when we have no filetype. To maintain MT safety, it isn't - possible to use lstat() in the scandir() filter function, so all of the - filtering has been moved to an additional loop after scanning all the - motd dirs. - Also, remove superfluous alphasort from scandir(), we are doing - a qsort() later. - - Resolves: https://github.com/linux-pam/linux-pam/issues/455 - -2022-06-30 Stefan Schubert <schubi@suse.de> - - pam_namespace: use vendor specific namespace.conf and namespace.init as fallback - Use the vendor directory as fallback for a distribution provided default - config and scripts if there is no configuration in /etc. - - pam_namespace.c: Take care about the fallback configuration in vendor directory. - pam_namespace.h: Define vendor specific files and directories. - pam_namespace.8.xml: Add description for vendor directories and files. - namespace.conf.5.xml: Add description for vendor directories and files. - -2022-06-30 Stefan Schubert <schubi@suse.de> - - pam_limits: use vendor specific content in limits.d directory as fallback - Use the vendor directory as fallback for a distribution provided default - config if there is no configuration in /etc. - - pam_limits.c: Take care about the fallback configuration in vendor directory. - pam_limits.8.xml: Add description for vendor directory. - -2022-06-30 Stefan Schubert <schubi@suse.de> - - pam_access: use vendor specific access.conf as fallback. - Use the vendor directory as fallback for a distribution provided default config if there is no configuration in /etc. - - * pam_access.c: Take care about the fallback configuration in vendor directory. - * pam_access.8.xml: Added description for vendor directory. - -2022-06-19 Dmitry V. Levin <ldv@altlinux.org> - - .github: add a few vendordir enabled jobs. - * .github/workflows/ci.yml (gcc11-x86_64-vendordir, - clang12-x86_64-vendordir, gcc11-x86-vendordir): New jobs. - - ci: add vendor directory configuration support. - * ci/run-build-and-tests.sh: Configure using --enable-vendordir option - when VENDORDIR environment variable is set. - -2022-05-24 liaohanqin <liaohanqin@uniontech.com> - - doc: add pam_faillock module to SAG. - -2022-05-24 Iker Pedrosa <ipedrosa@redhat.com> - - faillock: load configuration from file. - * modules/pam_faillock/main.c: Load configuration from file - * modules/pam_faillock/pam_faillock: Improve tally directory management - * modules/pam_faillock/faillock_config.c: Print errors - * modules/pam_faillock/faillock_config.h: Extend options structure and - define get_tally_dir(). - * modules/pam_faillock/Makefile.am: Compile faillock_config.c for - faillock binary. - * modules/pam_faillock/faillock.8.xml: Update with the new configuration - option. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1978029 - -2022-05-24 Iker Pedrosa <ipedrosa@redhat.com> - - pam_faillock: move config to its own file. - The configuration load can be reused by faillock. - - * modules/pam_faillock/faillock_config.c: Move configuration loading - functions (read_config_file and set_conf_opt) to this file. - * modules/pam_faillock/faillock_config.h: Move configuration loading - macros and structures. - * modules/pam_faillock/Makefile.am: Add faillock_config. - * modules/pam_faillock/faillock.h: Remove configuration loading macros. - * modules/pam_faillock/pam_faillock.c: Remove configuration loading - functions, macros and structures. - -2022-04-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_env: reorder definitions of static functions to avoid forward declarations - * modules/pam_env/pam_env.c (_assemble_line, _parse_line, _check_var, - _clean_var, _expand_arg, _pam_get_item_byname, _define_var, - _undefine_var): Move definitions of static functions before their first - use to avoid forward declarations cluttering the code. - - pam_issue: reorder definitions of static functions to avoid forward declarations - * modules/pam_issue/pam_issue.c (read_issue_raw, read_issue_quoted): - Move definitions of static functions before their first use to avoid - forward declarations cluttering the code. - -2022-04-18 A S Alam <amanpreet.alam@gmail.com> - - po: update translations using Weblate (Punjabi) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pa/ - -2022-04-18 Seong-ho Cho <darkcircle.0426@gmail.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2022-03-11 Stefan Schubert <schubi@suse.de> - Dmitry V. Levin <ldv@altlinux.org> - - pam_env: add a test of return values. - * modules/pam_env/tst-pam_env-retval.c: New file. - * modules/pam_env/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_env_retval_LDADD): New variables. - -2022-03-11 Thorsten Kukuk <kukuk@suse.com> - - pam_access: handle hostnames in access.conf. - According to the manual page, the following entry is valid but does not - work: - -:root:ALL EXCEPT localhost - - See https://bugzilla.suse.com/show_bug.cgi?id=1019866 - - Patched is based on PR#226 from Josef Moellers - -2022-02-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_exec: remove redundant free() invocations. - In the child process, freeing memory right before pam_syslog() - followed by _exit(ENOMEM) is useless. - - * modules/pam_exec/pam_exec.c (call_exec): Do not call free(envlist). - - Resolves: https://github.com/linux-pam/linux-pam/issues/444 - -2022-02-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_exec: remove redundant strdup. - In the child process, the elements of argv[] are not modified, so there - is no need to copy strings. - - * modules/pam_exec/pam_exec.c (call_exec): Do not call strdup on argv[] - elements during arggv[] initialization. - - Resolves: https://github.com/linux-pam/linux-pam/pull/446 - -2022-02-24 Thorsten Kukuk <kukuk@suse.com> - - pam_nologin: don't print empty message. - -2022-02-21 Stefan Schubert <schubi@suse.de> - - pam_time: fix clang compilation warning. - Fix the following compilation warning reported by clang: - "result of comparison against a string literal is unspecified - (use strcmp instead)". - - * pam_time.c (_pam_parse): Do not compare char* string with a constant. - -2022-02-21 Iker Pedrosa <ipedrosa@redhat.com> - - pam_usertype: only use SYS_UID_MAX for system users. - * modules/pam_usertype/pam_usertype.c (pam_usertype_is_system): Stop - using SYS_UID_MIN to check if it is a system account, because all - accounts below the SYS_UID_MAX are system users. - * modules/pam_usertype/pam_usertype.8.xml: Remove reference to SYS_UID_MIN - as it is no longer used to calculate the system accounts. - * configure.ac: Remove PAM_USERTYPE_SYSUIDMIN. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1949137 - -2022-02-21 Iker Pedrosa <ipedrosa@redhat.com> - - pam_keyinit: thread-safe implementation. - * modules/pam_keyinit/pam_keyinit.c: Bypass setre*id() C library calls - with kernel calls and change global variables definitions to be - thread-safe. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1997969 - Co-Authored-By: Andreas Schneider <asn@samba.org> - -2022-02-09 pan chenbo <panchenbo@uniontech.com> - - po: update translations using Weblate (Chinese (Simplified) (zh_CN)) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_CN/ - -2022-02-09 Gogo Gogsi <linux.hr@protonmail.com> - - po: update translations using Weblate (Croatian) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hr/ - -2022-02-09 Emilio Herrera <ehespinosa57@gmail.com> - - po: update translations using Weblate (Spanish) - Currently translated at 82.0% (82 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/es/ - -2022-02-09 simmon <simmon@nplob.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2022-02-09 Ondrej Sulek <feonsu@gmail.com> - - po: update translations using Weblate (Slovak) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sk/ - -2022-02-09 chong gao <zhuzaifangxuele@gmail.com> - - po: update translations using Weblate (Chinese (Hong Kong) (zh_HK)) - Currently translated at 1.0% (1 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_HK/ - -2022-02-09 Tomohiro KATO <tomop@teamgedoh.net> - - po: update translations using Weblate (Japanese) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ja/ - -2022-02-08 Stefan Schubert <schubi@suse.de> - Dmitry V. Levin <ldv@altlinux.org> - - pam_time: use vendor specific time.conf as fallback. - Use the vendor directory defined by --enable-vendordir=DIR configure - option as fallback for the distribution provided default config file - if there is no configuration in /etc. - - * modules/pam_time/pam_time.8.xml: Describe this. - * modules/pam_time/time.h [VENDOR_SCONFIGDIR] (VENDOR_PAM_TIME_CONF): - New macro. - * modules/pam_time/pam_time.c (_pam_parse) [VENDOR_PAM_TIME_CONF]: - Try to open VENDOR_PAM_TIME_CONF file when no conffile= option was - specified and PAM_TIME_CONF file does not exist. - - Resolves: https://github.com/linux-pam/linux-pam/pull/409 - -2022-02-08 Stefan Schubert <schubi@suse.de> - Dmitry V. Levin <ldv@altlinux.org> - - pam_time: add a test of return values. - * modules/pam_time/tst-pam_time-retval.c: New file. - * modules/pam_time/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_time_retval_LDADD): New variables. - -2022-02-07 Martyn Welch <martyn@welchs.me.uk> - - pam_pwhistory: Enable alternate location for password history file (#396) - Sometimes, especially in embedded devices, the /etc directory can be
- read-only and/or not saved over upgrades. In order to ensure password
- policies are maintained across upgrades and the module functions on
- read-only file systems, allow the location of the password history file
- to be set in the PAM configuration.
-
- Signed-off-by: Edward <jinzhou.zhu1@ge.com>
- [Martyn Welch: Updated commit message and ported to latest version]
- Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
- -2022-02-04 Jakov Smolić <jsmolic@gentoo.org> - - libpam: Fix undefined reference to `libintl_dgettext` on musl. - * libpam/Makefile.am (libpam_la_LIBADD): Add @LTLIBINTL@. - - Resolves: https://github.com/linux-pam/linux-pam/pull/433 - -2022-02-04 Stefan Schubert <schubi@suse.de> - - pam_faillock: add a test of return values. - * modules/pam_faillock/tst-pam_faillock-retval.c: New file. - * modules/pam_faillock/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_faillock_retval_LDADD): New variables. - - Resolves: https://github.com/linux-pam/linux-pam/pull/431 - -2022-02-01 Stefan Schubert <schubi@suse.de> - Dmitry V. Levin <ldv@altlinux.org> - - pam_faillock: use vendor specific faillock.conf as fallback. - Use the vendor directory defined by --enable-vendordir=DIR configure - option as fallback for the distribution provided default config file - if there is no configuration in /etc. - - * modules/pam_faillock/pam_faillock.8.xml: Describe this. - * modules/pam_faillock/faillock.h [VENDOR_SCONFIGDIR] - (VENDOR_FAILLOCK_DEFAULT_CONF): New macro. - * modules/pam_faillock/pam_faillock.c (read_config_file) - [VENDOR_FAILLOCK_DEFAULT_CONF]: Try to open VENDOR_FAILLOCK_DEFAULT_CONF - file when FAILLOCK_DEFAULT_CONF file does not exist. - - Resolves: https://github.com/linux-pam/linux-pam/pull/423 - -2022-01-25 Stefan Schubert <schubi@suse.de> - Dmitry V. Levin <ldv@altlinux.org> - - pam_group: use vendor specific group.conf as fallback. - Use the vendor directory defined by --enable-vendordir=DIR configure - option as fallback for the distribution provided default config file - if there is no configuration in /etc. - - * modules/pam_group/pam_group.c: Include <errno.h>. - [VENDOR_SCONFIGDIR] (VENDOR_PAM_GROUP_CONF): New macro. - (read_field): Add conf_filename argument, use it instead of PAM_GROUP_CONF. - (check_account) <conf_filename>: New variable, initialize it to - PAM_GROUP_CONF, pass it to read_field(). - [VENDOR_PAM_GROUP_CONF]: Assign VENDOR_PAM_GROUP_CONF to conf_filename - when PAM_GROUP_CONF file does not exist. - * modules/pam_group/pam_group.8.xml: Describe it. - - Resolves: https://github.com/linux-pam/linux-pam/pull/412 - -2022-01-24 Stefan Schubert <schubi@suse.de> - Dmitry V. Levin <ldv@altlinux.org> - - pam_sepermit: use vendor specific sepermit.conf as fallback. - Use the vendor directory defined by --enable-vendordir=DIR configure - option as fallback for the distribution provided default config file - if there is no configuration in /etc. - - * modules/pam_sepermit/pam_sepermit.c [VENDOR_SCONFIGDIR] - (SEPERMIT_VENDOR_CONF_FILE): New macro. - (pam_sm_authenticate) [SEPERMIT_VENDOR_CONF_FILE]: Use it as default - config file when conf= option is not specified and the file pointed - by SEPERMIT_CONF_FILE does not exist. - * modules/pam_sepermit/pam_sepermit.8.xml: Describe it. - - Resolves: https://github.com/linux-pam/linux-pam/pull/411 - -2022-01-24 Dmitry V. Levin <ldv@altlinux.org> - - Drop Travis CI support. - The last build of Linux-PAM by travis-ci.org was in March of 2020, - and travis-ci.org says that all building is ceased since June of 2021. - - Given that in foreseeable future travis-ci.com is not going to welcome - free software projects, there is no use to keep Travis CI support - in the tree. - - * .travis.yml: Remove. - - Link: https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing - -2022-01-24 Dmitry V. Levin <ldv@altlinux.org> - - ci: add a git status check. - * ci/run-build-and-tests.sh: Check that "git status" does not report - any untracked files. - - Update .gitignore file. - * .gitignore: Add Make.xml.rules. - -2022-01-23 Dmitry V. Levin <ldv@altlinux.org> - - pam_limits: use VENDOR_SCONFIGDIR macro. - * modules/pam_limits/pam_limits.c (parse_config_file): Use - VENDOR_SCONFIGDIR macro instead of VENDORDIR. - -2022-01-23 Dmitry V. Levin <ldv@altlinux.org> - - Introduce VENDOR_SCONFIGDIR macro. - This is a VENDORDIR version of SCONFIGDIR macro, defined to - VENDORDIR"/security" when --enable-vendordir is used for build. - - * configure.ac (AC_DEFINE_UNQUOTED): Add VENDOR_SCONFIGDIR. - -2022-01-23 Dmitry V. Levin <ldv@altlinux.org> - - modules: move SCONFIGDIR-based macro definitions from Makefile.am to the source code - Since SCONFIGDIR macro is available, the is no need to define macros - based on SCONFIGDIR in Makefile.am files. - - * modules/pam_access/Makefile.am (AM_CFLAGS): Move definitions of - PAM_ACCESS_CONFIG and ACCESS_CONF_GLOB macros ... - * modules/pam_access/pam_access.c: ... here. - * modules/pam_env/Makefile.am (AM_CFLAGS): Move definition of - DEFAULT_CONF_FILE macro ... - * modules/pam_env/pam_env.c: ... here. - * modules/pam_group/Makefile.am (AM_CFLAGS): Move definition of - PAM_GROUP_CONF macro ... - * modules/pam_group/pam_group.c: ... here. - * modules/pam_limits/Makefile.am (AM_CFLAGS): Move definition of - LIMITS_FILE macro ... - * modules/pam_limits/pam_limits.c: ... here. - * modules/pam_sepermit/Makefile.am (AM_CFLAGS): Move definition of - SEPERMIT_CONF_FILE macro ... - * modules/pam_sepermit/pam_sepermit.c: ... here. - * modules/pam_time/Makefile.am (AM_CFLAGS): Move definition of - PAM_TIME_CONF macro ... - * modules/pam_time/pam_time.c: ... here. - -2022-01-23 Dmitry V. Levin <ldv@altlinux.org> - - pam_limits: make LIMITS_FILE_DIR macro consistent. - LIMITS_FILE_DIR used to define a glob pattern instead of a directory - name, fix that inconsistency. - - * modules/pam_limits/Makefile.am (AM_CFLAGS): Move "/*.conf" ending of - LIMITS_FILE_DIR macro ... - * modules/pam_limits/pam_limits.c (LIMITS_CONF_GLOB): ... here. - -2022-01-23 Dmitry V. Levin <ldv@altlinux.org> - - modules: use SCONFIGDIR macro. - Use SCONFIGDIR macro instead of open-coding "/etc/security", - the latter is not correct when configured using --enable-sconfigdir - with an argument different from /etc/security. - - * modules/pam_faillock/faillock.h (FAILLOCK_DEFAULT_CONF): Use - SCONFIGDIR. - * modules/pam_namespace/pam_namespace.h (SECURECONF_DIR): Remove. - (PAM_NAMESPACE_CONFIG, NAMESPACE_INIT_SCRIPT, NAMESPACE_D_DIR, - NAMESPACE_D_GLOB): Use SCONFIGDIR. - * modules/pam_namespace/Makefile.am (AM_CFLAGS): Remove - -DSECURECONF_DIR. - * modules/pam_pwhistory/opasswd.c (OLD_PASSWORDS_FILE): Use SCONFIGDIR. - * modules/pam_unix/passverify.h: Likewise. - * modules/pam_unix/passverify.c (OPW_TMPFILE): Use SCONFIGDIR. - -2022-01-23 Dmitry V. Levin <ldv@altlinux.org> - - Introduce SCONFIGDIR macro. - Follow the VENDORDIR example and introduce a macro defined to the - argument of --enable-sconfigdir option. Unlike --enable-vendordir, - --enable-sconfigdir has a default value, so when --enable-sconfigdir - is not used for build, SCONFIGDIR will be defined to that default value. - - * configure.ac (AC_DEFINE_UNQUOTED): Add SCONFIGDIR. - -2022-01-22 Dmitry V. Levin <ldv@altlinux.org> - Stefan Schubert <schubi@suse.de> - - pam_sepermit: fix conf= option support. - The parser of conf= option failed to recognize the option unless - it was specified without an argument, making it useless. - - * modules/pam_sepermit/pam_sepermit.c: Include "pam_inline.h". - (pam_sm_authenticate): Fix parsing of conf= option. - * modules/pam_sepermit/tst-pam_sepermit-retval.c: Check conf= option. - - Resolves: https://github.com/linux-pam/linux-pam/pull/429 - -2022-01-22 Dmitry V. Levin <ldv@altlinux.org> - - pam_sepermit: add a basic test for return values. - * modules/pam_sepermit/tst-pam_sepermit-retval.c: New file. - * modules/pam_sepermit/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_sepermit_retval_LDADD): New variables. - -2022-01-18 liaohanqin <liaohanqin@gmail.com> - - Update xsh.c. - fix: typing error - -2022-01-14 planc <hubenchang0515@outlook.com> - - Add a conversation function example. - * examples/Makefile.am: Add tty_conv to noinst_PROGRAMS - * examples/tty_conv.c: A new example of conversation function. - -2022-01-14 Thorsten Kukuk <5908016+thkukuk@users.noreply.github.com> - - pam_limits: adjust docu if config file is missing (#426) - This adjustes the documentation for the changes from PR#418
- We no longer fail if the config file does not exist. - -2022-01-13 Stefan Schubert <schubi@suse.de> - - pam_rootok: fix compilation warning when HAVE_LIBAUDIT is not defined. - * modules/pam_rootok/pam_rootok.c (log_callback): Move audit_fd - definition under HAVE_LIBAUDIT guard. - -2022-01-13 Ludwig Nussel <ludwig.nussel@suse.de> - - pam_limits: don't fail on missing config files (#418) - A config with only comments or an empty one is completely fine for
- pam_limits. So don't complain about missing config files either. - -2022-01-12 pyllyukko <pyllyukko@maimed.org> - - Check the return value of localtime in faillock (#421) - -2022-01-06 Dmitry V. Levin <ldv@altlinux.org> - - README: fix typo. - * README: Rename install_dependencies.sh to install-dependencies.sh. - - Fixes: v1.4.0~211 ("Adjust README with instructions for package prerequsities") - -2021-11-24 Mingli Yu <mingli.yu@windriver.com> - - run-xtests.sh: check whether files exist. - Fixes: - # ./run-xtests.sh . tst-pam_access1 - mv: cannot stat '/etc/security/opasswd': No such file or directory - PASS: tst-pam_access1 - mv: cannot stat '/etc/security/opasswd-pam-xtests': No such file or directory - ================== - 1 tests passed - 0 tests not run - ================== - -2021-11-24 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_limits: fix build with old Linux kernel headers. - As PR_SET_NO_NEW_PRIVS was introduced by Linux kernel commit - v3.5-rc1~161^2~37, provide a fallback definition to fix build - with older Linux kernel headers. - - * modules/pam_limits/pam_limits.c [!PR_SET_NO_NEW_PRIVS] - (PR_SET_NO_NEW_PRIVS): New macro. - - Resolves: https://github.com/linux-pam/linux-pam/issues/406 - Fixes: dd9cf929 ("modules/pam_limits: add support for nonewprivs") - -2021-11-03 Thorsten Kukuk <5908016+thkukuk@users.noreply.github.com> - - Use vendor specific limits.conf as fallback (#402) - * Use vendor specific limits.conf as fallback - -2021-11-02 Thorsten Kukuk <5908016+thkukuk@users.noreply.github.com> - - Only include vendordir in manual page if set (#401) - - Include pam_xauth_data.3.xml in source archive (#400) - -2021-09-03 Dmitry V. Levin <ldv@altlinux.org> - - Fix a typo found using codespell tool. - * modules/pam_pwhistory/pam_pwhistory.c: Replace "crypted password" with - "hashed password" in comment. - * modules/pam_unix/passverify.c (create_password_hash): Rename "crypted" - local variable to "hashed". - -2021-08-30 Fabrice Fontaine <fontaine.fabrice@gmail.com> - - configure.ac: also search libcrypt through pkg-config. - libxcrypt provides a libcrypt.pc file so use it if available as this - will allow to retrieve the library path (e.g. - -L/home/buildroot/output/host//riscv64-buildroot-linux-musl/sysroot/usr/lib) - which is useful when cross-compiling and will avoid the following build - failure on buildroot: - - /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/riscv64-buildroot-linux-musl/10.2.0/../../../../riscv64-buildroot-linux-musl/bin/ld: .libs/passverify.o: in function `.L30': - passverify.c:(.text+0x368): undefined reference to `crypt_checksalt' - - Fixes: - - http://autobuild.buildroot.org/results/20b14e222b35c2d1269960075832b784ba81aa1a - -2021-08-19 Dmitry V. Levin <ldv@altlinux.org> - - pam_unix: workaround the problem caused by libnss_systemd. - The getspnam(3) manual page says that errno shall be set to EACCES when - the caller does not have permission to access the shadow password file. - Unfortunately, this contract is broken when libnss_systemd is used in - the nss stack. - - Workaround this problem by falling back to the helper invocation when - pam_modutil_getspnam returns NULL regardless of errno. As pam_unix - already behaves this way when selinux is enabled, it should be OK - for the case when selinux is not enabled, too. - - * modules/pam_unix/passverify.c (get_account_info): When - pam_modutil_getspnam returns NULL, unconditionally fall back - to the helper invocation. - - Complements: f220cace2053 ("Permit unix_chkpwd & pam_unix.so to run without being setuid-root") - Resolves: https://github.com/linux-pam/linux-pam/issues/379 - -2021-08-18 Jérôme Fenal <jfenal@free.fr> - - po: update translations using Weblate (French) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/ - -2021-08-02 panchenbo <panchenbo@uniontech.com> - - po/zh_CN.po: fix pam_lastlog translation errors. - Closes: https://github.com/linux-pam/linux-pam/issues/383 - -2021-07-24 simmon <simmon@nplob.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Swedish) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sv/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Portuguese (Brazil)) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Portuguese (Brazil)) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Dutch) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Italian) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Hebrew) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Finnish) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Danish) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/ - -2021-07-22 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Catalan) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/ - -2021-07-22 Yuri Chornoivan <yurchor@ukr.net> - - po: update translations using Weblate (Ukrainian) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/ - -2021-07-22 Oğuz Ersen <oguzersen@protonmail.com> - - po: update translations using Weblate (Turkish) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/ - -2021-07-21 Piotr Drąg <piotrdrag@gmail.com> - - po: update translations using Weblate (Polish) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/ - -2021-07-21 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (German) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/ - -2021-07-21 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Russian) - Currently translated at 100.0% (100 of 100 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/ - -2021-07-21 Seong-ho Cho <darkcircle.0426@gmail.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (99 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2021-07-20 Dmitry V. Levin <ldv@altlinux.org> - - po: update .pot and .po files. - Regenerate po/Linux-PAM.pot and po/*.po using "make -C po update-po" - command. - - Prepare for 1.5.2 release. - * configure.ac (AC_INIT): Raise version to 1.5.2. - * NEWS: Update. - - pam_faillock: remove confusing comment. - * modules/pam_faillock/pam_faillock.c (faillock_message): Remove the - comment that meant to help translators but actually confused xgettext. - -2021-07-09 Iker Pedrosa <ipedrosa@redhat.com> - - pam_filter: Close file after controlling tty. - Failing to check the descriptor value meant that there was a bug in the - attempt to close the controlling tty. Moreover, this would lead to a - file descriptor leak as pointed out by the static analyzer tool: - - Error: RESOURCE_LEAK (CWE-772): [#def26] - Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:356: open_fn: Returning handle opened by "open". [Note: The source code implementation of the function has been overridden by a user model.] - Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:356: var_assign: Assigning: "t" = handle returned from "open("/dev/tty", 2)". - Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:357: off_by_one: Testing whether handle "t" is strictly greater than zero is suspicious. "t" leaks when it is zero. - Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:357: remediation: Did you intend to include equality with zero? - Linux-PAM-1.5.1/modules/pam_filter/pam_filter.c:367: leaked_handle: Handle variable "t" going out of scope leaks the handle. - 365| pam_syslog(pamh, LOG_ERR, - 366| "child cannot become new session: %m"); - 367|-> return PAM_ABORT; - 368| } - 369| - -2021-06-29 Andrew G. Morgan <morgan@kernel.org> - - Permit unix_chkpwd & pam_unix.so to run without being setuid-root. - Remove the hard-coding of the idea that the only way pam_unix.so can - read the shadow file is if it can, in some way, run setuid-root. - Linux capabilities only require cap_dac_override to read the /etc/shadow - file. - - This change achieves two things: it opens a path for a linux-pam - application to run without being setuid-root; further, it allows - unix_chkpwd to run non-setuid-root if it is installed: - - sudo setcap cap_dac_override=ep unix_chkpwd - - If we wanted to link against libcap, we could install this binary with - cap_dac_override=p, and use cap_set_proc() to raise the effective bit - at runtime. However, some distributions already link unix_chkpwd - against libcap-ng for some, likely spurious, reason so "ep" is fine - for now. - -2021-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com> - - configure.ac: fix build with libxcrypt and uclibc-ng. - Fix the following build failure with libxcrypt and uclibc-ng: - - ld: unix_chkpwd-passverify.o: in function `verify_pwd_hash': - passverify.c:(.text+0xab4): undefined reference to `crypt_checksalt' - - Fixes: - - http://autobuild.buildroot.org/results/65d68b7c9c7de1c7cb0f941ff9982f93a49a56f8 - -2021-06-14 Mathieu Trossevin <mathieu.trossevin@gmail.com> - - Add pkgconfig files for provided libraries. - * .gitignore: Add .pc files as they are generated by autoconf. - * configure.ac: Generate .pc files for libpam, libpam_misc and libpamc. - * libpam/Makefile.am: Install pam.pc. - * libpam/pam.pc.in: New file. - * libpam_misc/Makefile.am: Install pam_misc.pc - * libpam_misc/pam_misc.pc.in: New file. - * libpamc/Makefile.am: Install pamc.pc - - This allow applications and PAM modules to automatically find libpam, - libpam_misc and libpamc if they are installed instead of having to - manually search for them. - -2021-06-14 Björn Esser <besser82@fedoraproject.org> - - Remove support for legacy xcrypt. - Since many distributions are shipping a version of libxcrypt >= 4.0.0 - as a replacement for glibc's libcrypt now, older versions of xcrypt, - which could be installed in parallel, are not relevant anymore. - - * configure.ac (AC_CHECK_HEADERS): Remove xcrypt.h. - (AC_SEARCH_LIBS): Remove xcrypt. - (AC_CHECK_FUNCS): Remove crypt_gensalt_r. - (AC_DEFINE): Remove HAVE_LIBXCRYPT. - * modules/pam_pwhistory/opasswd.c [HAVE_LIBXCRYPT]: Remove. - * modules/pam_unix/bigcrypt.c [HAVE_LIBXCRYPT]: Likewise. - * modules/pam_userdb/pam_userdb.c [HAVE_LIBXCRYPT]: Likewise. - * modules/pam_unix/passverify.c [HAVE_LIBXCRYPT]: Likewise. - (create_password_hash) [HAVE_LIBXCRYPT]: Likewise. - -2021-06-14 Jeff Squyres <jsquyres@cisco.com> - - pam_misc: set default length of misc_conv() buffer to 4096. - - pam_misc: make length of misc_conv() configurable. - Add --with-misc-conv-bufsize=<number> option to configure to allow - a longer buffer size for libpam_misc's misc_conv() function (it still - defaults to 512 bytes). - -2021-06-14 Iker Pedrosa <ipedrosa@redhat.com> - - pam_timestamp: replace hmac implementation. - sha1 is no longer recommended as a cryptographic algorithm for - authentication. Thus, the idea of this change is to replace the - implementation provided by hmacsha1 included in pam_timestamp module by - the one in the openssl library. This way, there's no need to maintain - the cryptographic algorithm implementation and it can be easily changed - with a single configuration change. - - modules/pam_timestamp/hmac_openssl_wrapper.c: implement wrapper - functions around openssl's hmac implementation. Moreover, manage the key - generation and its read and write in a file. Include an option to - configure the cryptographic algorithm in login.defs file. - modules/pam_timestamp/hmac_openssl_wrapper.h: likewise. - modules/pam_timestamp/pam_timestamp.c: replace calls to functions - provided by hmacsha1 by functions provided by openssl's wrapper. - configure.ac: include openssl dependecy if it is enabled. - modules/pam_timestamp/Makefile.am: include new files and openssl library - to compilation. - ci/install-dependencies.sh: include openssl library to dependencies. - NEWS: add new item to next release. - Make.xml.rules.in: add stringparam profiling for hmac - doc/custom-man.xsl: change import docbook to one with profiling - modules/pam_timestamp/pam_timestamp.8.xml: add conditional paragraph to - indicate the value in /etc/login.defs that holds the value for the - encryption algorithm - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1947294 - -2021-06-13 Dmitry V. Levin <ldv@altlinux.org> - - .github: add gcc-11, clang-12, and clang-11 jobs. - * .github/workflows/ci.yml (gcc11-x86_64, gcc11-x86, gcc11-x32, - clang12-x86_64, clang11-x86_64): New jobs. - -2021-06-13 Dmitry V. Levin <ldv@altlinux.org> - - tests: fix -Wmaybe-uninitialized warnings. - Fix the following class of compilation warnings reported by gcc 11: - - tst-pam_end.c: In function ‘main’: - tst-pam_end.c:55:12: error: ‘conv’ may be used uninitialized [-Werror=maybe-uninitialized] - 55 | retval = pam_start (service, user, &conv, &pamh); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - In file included from tst-pam_end.c:41: - ../libpam/include/security/pam_appl.h:23:1: note: by argument 3 of type ‘const struct pam_conv *’ to ‘pam_start’ declared here - 23 | pam_start(const char *service_name, const char *user, - | ^~~~~~~~~ - tst-pam_end.c:49:19: note: ‘conv’ declared here - 49 | struct pam_conv conv; - | ^~~~ - - * tests/tst-pam_end.c (main): Initialize conv variable. - * tests/tst-pam_fail_delay.c: Likewise. - * tests/tst-pam_get_item.c: Likewise. - * tests/tst-pam_getenvlist.c: Likewise. - * tests/tst-pam_set_data.c: Likewise. - * tests/tst-pam_set_item.c: Likewise. - * tests/tst-pam_start.c: Likewise. - * tests/tst-pam_start_confdir.c: Likewise. - -2021-06-10 Dmitry V. Levin <ldv@altlinux.org> - - pam_unix: do not use crypt_checksalt when checking for password expiration - According to Zack Weinberg, the intended meaning of - CRYPT_SALT_METHOD_LEGACY is "passwd(1) should not use this hashing - method", it is not supposed to mean "force a password change on next - login for any user with an existing stored hash using this method". - - This reverts commit 4da9febc39b955892a30686e8396785b96bb8ba5. - - * modules/pam_unix/passverify.c (check_shadow_expiry) - [CRYPT_CHECKSALT_AVAILABLE]: Remove. - - Closes: https://github.com/linux-pam/linux-pam/issues/367 - -2021-06-10 Patrick Schleizer <adrelanos@whonix.org> - - pam_exec: implement quiet_log option. - * modules/pam_exec/pam_exec.c (call_exec): Implement quiet_log option. - * modules/pam_exec/pam_exec.8.xml: Document it. - - Resolves: https://github.com/linux-pam/linux-pam/issues/334 - -2021-05-24 Jeff Squyres <jsquyres@cisco.com> - - pam.conf: clarify default action for unspecified return codes. - Add short blurbs explaining that if a return code is not specified in - the "[value1=action1 value2=action2 ...]" form and "default=action" is - not specified, that return code's action defaults to "bad". - -2021-05-01 Hasan <aliyevH@hotmail.com> - - man: fix spelling bug in pam_end.3.xml. - * doc/man/pam_end.3.xml: Fix repeated words. - -2021-04-25 simmon <simmon@nplob.com> - - po: update translations using Weblate (Korean) - Currently translated at 100.0% (99 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ko/ - -2021-04-25 Emilio Herrera <ehespinosa57@gmail.com> - - po: update translations using Weblate (Spanish) - Currently translated at 81.8% (81 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/es/ - -2021-04-22 Josef Moellers <jmoellers@suse.de> - - pam_limits: "Unlimited" is not a valid value for RLIMIT_NOFILE. - Replace it with a value obtained from /proc/sys/fs/nr_open - - * modules/pam_limits/limits.conf.5.xml: Document the replacement. - * modules/pam_limits/pam_limits.c: Replace unlimited RLIMIT_NOFILE - value with a value obtained from /proc/sys/fs/nr_open - -2021-04-21 Stanislav Zidek <szidek@redhat.com> - - pam_userdb: Prevent garbage characters from db. - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1791965 - -2021-04-12 Tomas Mraz <tmraz@fedoraproject.org> - - misc_conv: Flush the terminal input after the password is read. - Fixes #347 - - * libpam_misc/misc_conv.c (read_string): Use TCSAFLUSH instead - of TCSADRAIN when resetting the terminal echo state - -2021-04-12 Tomas Mraz <tmraz@fedoraproject.org> - - pam_access: clean up the remote host matching code. - * modules/pam_access/pam_access.c (from_match): Split out remote_match() - function and avoid calling it when matching against LOCAL keyword. - There is also no point in doing domain match against TTY or SERVICE. - -2021-03-25 chuanqin <chuanqing.qin@nokia-sbell.com> - - pam_faillock: convert spaces to tab to keep code style. - convert spaces to tab which mixture use in modules/pam_faillock/main.c - -2021-03-08 theslimshaney <33791263+theslimshaney@users.noreply.github.com> - - pam_env: fix example in pam_env.conf.5 for setting variable. - -2021-03-05 dshein-alt <76520100+dshein-alt@users.noreply.github.com> - - pam_mkhomedir: use HOME_MODE or UMASK from /etc/login.defs. - Follow the example of useradd(8) and set the user home directory mode
- to the value of HOME_MODE or UMASK configuration item from
- /etc/login.defs when umask option is not specified.
- -2021-02-13 Ricky Tigg <ricky.tigg@gmail.com> - Ricky Tigg <ricky.tigg@gmail.com> - - po: update translations using Weblate (Finnish) - Currently translated at 100.0% (99 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/ - -2021-02-13 Balázs Meskó <meskobalazs@mailbox.org> - Balázs Meskó <meskobalazs@mailbox.org> - - po: update translations using Weblate (Hungarian) - Currently translated at 77.7% (77 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hu/ - -2021-02-13 Carmen Bianca Bakker <carmen@carmenbianca.eu> - Carmen Bianca Bakker <carmen@carmenbianca.eu> - - po: update translations using Weblate (Esperanto) - Currently translated at 43.4% (43 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/eo/ - -2021-02-13 Weblate <noreply@weblate.org> - Weblate <noreply@weblate.org> - - Update translation files. - Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ - Translation: linux-pam/master - -2021-01-27 Changqing Li <changqing.li@windriver.com> - - configure.ac: add --with-systemdunitdir option. - * Add this option to support the following scenario: - prefix = '/usr' - servicedir = '/lib/systemd/system' - - * The default behavior is changed: - If this option is not given, servicedir will be set to the value that is - obtained from systemd pkg-config file. If the value cannot be obtained, - servicedir will be set to the default value '$(prefix)/lib/systemd/system'. - -2021-01-27 Changqing Li <changqing.li@windriver.com> - - faillock: create tallydir before creating tallyfile. - The default tallydir is "/var/run/faillock", and this default - tallydir may not exist. - - Function open may fail as tallydir does not exist when creating - the tallyfile. Therefore, faillock will not work well. - - Fix this problem by creating tallydir before creating tallyfile - when the tallydir does not exist. - -2021-01-27 Ludwig Nussel <ludwig.nussel@suse.de> - - pam_securetty: don't complain about missing config. - Not shipping a config file should be perfectly valid for distros while - still having eg login pre-configured to honor securetty when present. - PAM itself doesn't ship any template either. So avoid spamming the log - file if /etc/securetty wasn't found. - -2021-01-25 Kolja <razzeee@gmail.com> - - faillock: Use pluralization via dngettext or fallback. - -2021-01-18 Andreas-Johann Ø Ulvestad <aj@aju.no> - Andreas-Johann Ø Ulvestad <aj@aju.no> - - po: update translations using Weblate (Norwegian Nynorsk) - Currently translated at 100.0% (99 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nn/ - -2021-01-18 Jan Kuparinen <copper_fin@hotmail.com> - Jan Kuparinen <copper_fin@hotmail.com> - - po: update translations using Weblate (Finnish) - Currently translated at 100.0% (99 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/ - -2020-12-28 Dmitry V. Levin <ldv@altlinux.org> - - pam_umask: fix handling of umask parameter. - Potential failures of strdup(3) were ignored, fix this by not using - strdup(3) at all. - - * modules/pam_umask/pam_umask.c (struct options_t): Add const to umask - field, add login_umask field. - (parse_option): Do not use strdup. - (get_options): Assign pam_modutil_search_key return values - to options->login_umask. - (pam_sm_open_session): Free options.login_umask instead of - options.umask. - -2020-12-28 Sven Hartge <sven@svenhartge.de> - - pam_setquota: Minor whitespace, spelling and mail address fixes. - -2020-12-26 Vlad <milovlad@outlook.com> - Vlad <milovlad@outlook.com> - - po: update translations using Weblate (Romanian) - Currently translated at 100.0% (99 of 99 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ro/ - -2020-12-23 Dmitry V. Levin <ldv@altlinux.org> - - pam_mkhomedir: fix umask wording in documentation. - * modules/pam_mkhomedir/pam_mkhomedir.8.xml (umask): Fix wording. - -2020-12-20 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Bulgarian) - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/bg/ - -2020-12-17 Issam E. Maghni <issam.e.maghni@mailbox.org> - - configure: test -a|o is not POSIX. - Fixes `test: too many arguments` when building Linux-PAM using sbase. - This is due to a non-POSIX syntax test ... -a ... and test ... -o .... - - > The XSI extensions specifying the -a and -o binary primaries and the - > '(' and ')' operators have been marked obsolescent. - - See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html - -2020-12-08 Christian Göttsche <cgzones@googlemail.com> - - pam_namespace: check for string_to_security_class failure. - Check for the unlikely case string_to_security_class() does not find the - associated SELinux security class. - This will only happen if the loaded SELinux policy does not define the - class "dir" (which no sane policy does) or querying the selinuxfs - fails. - - Suggested by #309 - -2020-12-08 Christian Göttsche <cgzones@googlemail.com> - - pam_selinux: check for string_to_security_class failure. - Check for the unlikely case string_to_security_class() does not find the - associated SELinux security class. - This will only happen if the loaded SELinux policy does not define the - class "chr_file" (which no sane policy does) or querying the selinuxfs - fails. - - Suggested by #309 - -2020-12-07 Tomas Mraz <tmraz@fedoraproject.org> - - Clarify the effect of 'done' in documentation. - The done action does not terminate the stack processing in case - there is a failing module with bad action up in the stack. - - Fixes #307 - - * doc/man/pam.conf-syntax.xml: Clarify the effect of 'done'. - -2020-11-28 Dmitry V. Levin <ldv@altlinux.org> - - .github: partially migrate from ubuntu-18.04 to ubuntu-20.04. - * .github/workflows/ci.yml (runs-on): Switch from ubuntu-latest to - ubuntu-20.04 for whitespace-errors and *-x86_64 jobs. Stick with - ubuntu-18.04 for *-x86 and *-x32 jobs until we figure out how to - obtain -lcrypt on ubuntu-20.04 for these architectures. - -2020-11-28 Dmitry V. Levin <ldv@altlinux.org> - - ci: do not install libxcrypt-dev. - Apparently, both -lcrypt and -lxcrypt from ubuntu-18.04 already provide - crypt_r. - - * ci/install-dependencies.sh (packages): Remove libxcrypt-dev. - -2020-11-24 Thomas M. DuBuisson <tommd@muse.dev> - - pam_unix: fix memory leak on error path. - * modules/pam_unix/bigcrypt.c (bigcrypt) [HAVE_CRYPT_R]: Do not leak - cdata if crypt_r() fails. - -2020-11-24 Dmitry V. Levin <ldv@altlinux.org> - - maint: update release procedure. - * maint/README-release: Update. - -2020-11-24 Dmitry V. Levin <ldv@altlinux.org> - - po: update .po and .pot files. - Regenerate po/Linux-PAM.pot and po/*.po using "make -C po update-po" - command. This removes translations of pam_cracklib, pam_tally, and - pam_tally2 modules that were removed in v1.5.0. - - Complements: v1.5.0~10 "Remove deprecated pam_cracklib module" - Complements: v1.5.0~9 "Remove deprecated pam_tally and pam_tally2 modules" - -2020-11-24 Dmitry V. Levin <ldv@altlinux.org> - - po: cleanup POTFILES.in. - * po/POTFILES.in: Strip "./" prefix, sort the list. - -2020-11-24 Jan Kuparinen <copper_fin@hotmail.com> - Jan Kuparinen <copper_fin@hotmail.com> - - po: update translations using Weblate (Finnish) - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/ - -2020-11-24 Dmitry V. Levin <ldv@altlinux.org> - - Prepare for 1.5.1 release. - * configure.ac (AC_INIT): Raise version to 1.5.1. - - Fix various typos found using codespell tool. - * modules/pam_limits/limits.conf: Replace "overriden" with "overridden". - * modules/pam_mkhomedir/mkhomedir_helper.c (create_homedir): Replace - "preseves" with "preserves". - * modules/pam_setquota/pam_setquota.8.xml: Replace "specifed" with - "specified". - * modules/pam_setquota/pam_setquota.c (pam_sm_open_session): Replace - "fileystem" with "filesystem", "conditons" with "conditions". - - Fix grammar: replace "an user" with "a user" everywhere. - * NEWS: Replace "an user" with "a user". - * modules/pam_faillock/pam_faillock.8.xml: Likewise. - * modules/pam_lastlog/pam_lastlog.8.xml: Likewise. - * modules/pam_limits/pam_limits.c: Likewise. - * modules/pam_sepermit/sepermit.conf: Likewise. - * modules/pam_tty_audit/pam_tty_audit.8.xml: Likewise. - * modules/pam_userdb/pam_userdb.c: Likewise. - -2020-11-24 Tomas Mraz <tmraz@fedoraproject.org> - - pam_wheel: Use pam_modutil_user_in_group_uid_gid instead of reimplementation - The pam_modutil_user_in_group... functions use getgrouplist to check - the membership so they work also in setups with remote services which do - not provide group members in struct group. - - Fixes #297 - - * modules/pam_wheel/pam_wheel.c (perform_check): Call pam_modutil_user_in_group_uid_gid - to do the group check. - -2020-11-24 Tomas Mraz <tmraz@fedoraproject.org> - - Add NEWS entries for the 1.5.1 security fix release. - -2020-11-20 Tomas Mraz <tmraz@fedoraproject.org> - - Second blank check with root for non-existent users must never return 1. - The commit af0faf66 ("pam_unix: avoid determining if user exists") introduced - a regression where the blank check could return 1 if root had an empty - password hash because in the second case the password hash of root was - used. We now always return 0 in this case. - - The issue was found by Johannes Löthberg. - - Fixes #284 - - * modules/pam_unix/support.c (_unix_blankpasswd): Make the loop - to cover the complete blank check so both existing and non existing - cases are identical except for the possible return value. - -2020-11-12 Tavian Barnes <tavianator@tavianator.com> - - faillock: Add a nodelay option. - Fixes #295 - -2020-11-10 Allison Karlitskaya <allison.karlitskaya@redhat.com> - - libpam: add supplementary groups on priv drop. - Replace the setgroups(0, NULL) call in pam_modutil_drop_priv() with a - call to initgroups(). This makes sure that the user's supplementary - groups are also configured. Fall back to setgroups(0, NULL) in case the - initgroups() call fails. - - This fixes the permission check in pam_motd: this feature was intended - to allow setting permissions on a motd file to prevent it from being - shown to users who are not a member of a particular group (for example, - wheel). - - Closes #292 - -2020-11-05 Tomas Mraz <tmraz@fedoraproject.org> - - pam_env: deprecation notice of reading the user environment. - * modules/pam_env/pam_env.8.xml: Add the notice to the manual. - * modules/pam_env/pam_env.c (_pam_parse): Log deprecation warning - if user_readenv is set. - -2020-11-04 Andreas Schneider <asn@cryptomilk.org> - - libpam: Fix memory leak on error path in _pam_start_internal() - -2020-11-04 Andreas Schneider <asn@cryptomilk.org> - - libpam: Fix memory leak with pam_start_confdir() - Found with AddressSanitzer in pam_wrapper tests. - - ==985738== 44 bytes in 4 blocks are definitely lost in loss record 18 of 18 - ==985738== at 0x4839809: malloc (vg_replace_malloc.c:307) - ==985738== by 0x48957E1: _pam_strdup (pam_misc.c:129) - ==985738== by 0x489851B: _pam_start_internal (pam_start.c:85) - ==985738== by 0x4849C8C: libpam_pam_start_confdir (pam_wrapper.c:418) - ==985738== by 0x484AF94: pwrap_pam_start (pam_wrapper.c:1461) - ==985738== by 0x484AFEE: pam_start (pam_wrapper.c:1483) - ==985738== by 0x401723: setup_noconv (test_pam_wrapper.c:189) - ==985738== by 0x4889E82: ??? (in /usr/lib64/libcmocka.so.0.7.0) - ==985738== by 0x488A444: _cmocka_run_group_tests (in /usr/lib64/libcmocka.so.0.7.0) - ==985738== by 0x403EE5: main (test_pam_wrapper.c:1059) - -2020-11-04 Tomas Mraz <tmraz@fedoraproject.org> - - pam_env: allow environment files without EOL at EOF. - Fixes #263 - - * modules/pam_env/pam_env.c (_assemble_line): Do not error out if at feof() - -2020-11-03 Dmitry V. Levin <ldv@altlinux.org> - - Prepare for 1.5.0 release. - * configure.ac (AC_INIT): Raise version to 1.5.0. - * NEWS: Update. - -2020-11-03 ikerexxe <ipedrosa@redhat.com> - - pam_ftp: fix potential memory leak. - modules/pam_ftp/pam_ftp.c: free anon_user before returning as it may be - still in use. - - pam_faillock: fix unread store statement. - modules/pam_faillock/main.c: remove store statement since the value is - only read in the enclosing expression. - - pam_dispatch: fix unread store statement. - libpam/pam_dispatch: remove store statement since the value is never - read. - -2020-10-29 Dmitry V. Levin <ldv@altlinux.org> - - Remove deprecated pam_tally and pam_tally2 modules. - * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Remove - --enable-tally --enable-tally2. - * configure.ac: Remove --enable-tally and --enable-tally2 options. - (AM_CONDITIONAL): Remove COND_BUILD_PAM_TALLY and COND_BUILD_PAM_TALLY2. - (AC_CONFIG_FILES): Remove modules/pam_tally/Makefile and - modules/pam_tally2/Makefile. - * doc/sag/pam_tally.xml: Remove. - * doc/sag/pam_tally2.xml: Likewise. - * doc/sag/Linux-PAM_SAG.xml: Do not include pam_tally.xml and - pam_tally2.xml. - * modules/Makefile.am (MAYBE_PAM_TALLY, MAYBE_PAM_TALLY2): Remove. - (SUBDIRS): Remove MAYBE_PAM_TALLY and MAYBE_PAM_TALLY2. - * modules/pam_tally/.gitignore: Remove. - * modules/pam_tally/Makefile.am: Likewise. - * modules/pam_tally/README.xml: Likewise. - * modules/pam_tally/faillog.h: Likewise. - * modules/pam_tally/pam_tally.8.xml: Likewise. - * modules/pam_tally/pam_tally.c: Likewise. - * modules/pam_tally/pam_tally_app.c: Likewise. - * modules/pam_tally/tst-pam_tally: Likewise. - * modules/pam_tally2/.gitignore: Likewise. - * modules/pam_tally2/Makefile.am: Likewise. - * modules/pam_tally2/README.xml: Likewise. - * modules/pam_tally2/pam_tally2.8.xml: Likewise. - * modules/pam_tally2/pam_tally2.c: Likewise. - * modules/pam_tally2/pam_tally2_app.c: Likewise. - * modules/pam_tally2/tallylog.h: Likewise. - * modules/pam_tally2/tst-pam_tally2: Likewise. - * modules/pam_timestamp/pam_timestamp_check.8.xml: Fix typo by replacing - pam_tally with pam_timestamp. - * po/POTFILES.in: Remove ./modules/pam_tally/pam_tally_app.c, - ./modules/pam_tally/pam_tally.c, ./modules/pam_tally2/pam_tally2_app.c, - and ./modules/pam_tally2/pam_tally2.c. - * NEWS: Document this change. - - Remove deprecated pam_cracklib module. - * ci/install-dependencies.sh: Remove libcrack2-dev. - * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Remove - --enable-cracklib=check. - * conf/pam.conf: Remove references to pam_cracklib.so. - * configure.ac: Remove --enable-cracklib option. - (AC_SUBST): Remove LIBCRACK. - (AM_CONDITIONAL): Remove COND_BUILD_PAM_CRACKLIB. - (AC_CONFIG_FILES): Remove modules/pam_cracklib/Makefile. - * doc/sag/pam_cracklib.xml: Remove. - * doc/sag/Linux-PAM_SAG.xml: Do not include pam_cracklib.xml. - * modules/Makefile.am (MAYBE_PAM_CRACKLIB): Remove. - (SUBDIRS): Remove MAYBE_PAM_CRACKLIB. - * modules/pam_cracklib/Makefile.am: Remove. - * modules/pam_cracklib/README.xml: Likewise. - * modules/pam_cracklib/pam_cracklib.8.xml: Likewise. - * modules/pam_cracklib/pam_cracklib.c: Likewise. - * modules/pam_cracklib/tst-pam_cracklib: Likewise. - * xtests/tst-pam_cracklib1.c: Likewise. - * xtests/tst-pam_cracklib1.pamd: Likewise. - * xtests/tst-pam_cracklib2.c: Likewise. - * xtests/tst-pam_cracklib2.pamd: Likewise. - * modules/pam_pwhistory/pam_pwhistory.8.xml: Replace pam_cracklib - in examples with pam_passwdqc. - * modules/pam_unix/pam_unix.8.xml: Likewise. - * po/POTFILES.in: Remove ./modules/pam_cracklib/pam_cracklib.c. - * xtests/.gitignore: Remove tst-pam_cracklib1 and tst-pam_cracklib2. - * xtests/Makefile.am (EXTRA_DIST): Remove tst-pam_cracklib1.pamd - and tst-pam_cracklib2.pamd. - (XTESTS): Remove tst-pam_cracklib1 and tst-pam_cracklib2. - * NEWS: Document this change. - -2020-10-27 DDoSolitary <DDoSolitary@gmail.com> - - pam_env: fix a typo in doc of pam_env.conf. - -2020-10-25 Christian Göttsche <cgzones@googlemail.com> - - Add missing format function attributes and enable -Wmissing-format-attribute - Exported functions already have these attributes, add them to other functions. - This enables compilers to find format specifier mismatches, like: - - foo_print("Hello %d", "world") - - * m4/warn_lang_flags.m4 (gl_WARN_ADD): Add -Wmissing-format-attribute. - * conf/pam_conv1/Makefile.am (AM_CFLAGS): Add -I$(top_srcdir)/libpam/include. - * conf/pam_conv1/pam_conv_y.y: Include <security/_pam_types.h>. - (yyerror): Add printf format attribute. - * modules/pam_pwhistory/opasswd.c (helper_log_err): Likewise. - * modules/pam_rootok/pam_rootok.c (log_callback): Likewise. - * modules/pam_tally/pam_tally.c (tally_log): Likewise. - * modules/pam_tally2/pam_tally2.c (tally_log): Likewise. - * modules/pam_unix/passverify.c (helper_log_err): Likewise. - -2020-10-21 Milo Casagrande <milo@milo.name> - Milo Casagrande <milo@milo.name> - - po: update translations using Weblate (Italian) - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/ - -2020-10-21 Yaron Shahrabani <sh.yaron@gmail.com> - Yaron Shahrabani <sh.yaron@gmail.com> - - po: update translations using Weblate (Hebrew) - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/ - -2020-10-21 ikerexxe <ipedrosa@redhat.com> - - pam_motd: unset prompt value to drop privileges. - modules/pam_motd/pam_motd.c: set NULL value instead of "key user" for the - prompt when dropping privileges. - -2020-10-20 Tomas Mraz <tmraz@fedoraproject.org> - - pam_modutil_sanitize_fds: Add explicit casts to avoid warnings. - - Revert "libpam/pam_modutil_sanitize.c: optimize the way to close fds" - This reverts commit 1b087edc7f05237bf5eccc405704cd82b848e761. - -2020-10-14 ikerexxe <ipedrosa@redhat.com> - - pam_motd: document file filtering. - modules/pam_motd/pam_motd.8.xml: document file filtering of motd - messages. - NEWS: annotate change. - -2020-10-14 ikerexxe <ipedrosa@redhat.com> - - pam_motd: filter motd by user and group. - modules/pam_motd/pam_motd.c: filter motd by user and group owning the - proper files. This is achieved by changing the ids of the process - reading the files from root to the target user. - - Resolves: - https://bugzilla.redhat.com/show_bug.cgi?id=1861640 - -2020-10-13 Mikhail Labiuk <m.labyuk@omprussia.ru> - - pam_faillock: fix invalid error message. - args_parse function pass "conf=" argument to set_conf_opt() after handling by self. - set_conf_opt is not able to handle "conf" argument and write error: - sddm-helper[415]: pam_faillock(sddm:auth): Unknown option: conf - -2020-10-05 ikerexxe <ipedrosa@redhat.com> - - pam_namespace: polyinstantiation refer to gdm doc. - modules/pam_namespace/pam_namespace.8.xml: delete obsolete information - about polyinstantiation and refer to gdm's documentation. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1861841 - -2020-09-30 Anton D. Kachalov <rnouse@google.com> - - Prevent SEGFAULT for unknown UID. - When running systemd service with DynamicUser being set, the dynamic UID - might be not mapped to user name (/etc/nsswitch.conf is not configured - with systemd nss module). - - The getuidname() routine might return NULL and this is not checked by callee. - -2020-09-10 ikerexxe <ipedrosa@redhat.com> - - pam_wheel: clarify use_uid option in man page. - modules/pam_wheel/pam_wheel.8.xml: indicate that use_uid option uses the - real uid of the calling process. - -2020-09-10 ikerexxe <ipedrosa@redhat.com> - - pam_wheel: if getlogin fails fallback to PAM_RUSER. - modules/pam_wheel/pam_wheel.c: if getlogin fails to obtain the real user - ID, then try with PAM_RUSER. - - Resolves: - https://bugzilla.redhat.com/show_bug.cgi?id=1866866 - -2020-09-10 ikerexxe <ipedrosa@redhat.com> - - pam_wheel: improve coding style. - modules/pam_wheel/pam_wheel.c: improve indentation and explicitly state - condition statements - -2020-08-08 Dmitry V. Levin <ldv@altlinux.org> - - configure: add --disable-unix option. - Some distributions do not build pam_unix, e.g. ALT uses pam_tcb instead. - Add a configure option to disable build of pam_unix so that those who - choose not to build pam_unix no longer have to edit modules/Makefile.am - file. The default is unchanged, i.e. build of pam_unix is enabled. - - * configure.ac (AC_ARG_ENABLE): Add unix. - (AM_CONDITIONAL): Add COND_BUILD_PAM_UNIX. - * modules/Makefile.am [COND_BUILD_PAM_UNIX] (MAYBE_PAM_UNIX): Define. - (SUBDIRS): Replace pam_unix with $(COND_BUILD_PAM_UNIX). - -2020-08-07 Dmitry V. Levin <ldv@altlinux.org> - - Build all installed executables with -Wl,-z,now if available. - This makes them built with full RELRO if -Wl,-z,relro is specified. - - * m4/ld-z-now.m4: New file. - * m4/.gitignore: Add it to exclude list. - * configure.ac: Call PAM_LD_Z_NOW. - (EXE_LDFLAGS): Append $ZNOW_LDFLAGS. - -2020-08-07 Dmitry V. Levin <ldv@altlinux.org> - - modules: build all helpers with proper CFLAGS and LDFLAGS. - This makes all installed executables built with @EXE_CFLAGS@ and - @EXE_LDFLAGS@. - - * modules/pam_mkhomedir/Makefile.am (mkhomedir_helper_CFLAGS, - mkhomedir_helper_LDFLAGS): New variables. - * modules/pam_tally/Makefile.am (pam_tally_CFLAGS, pam_tally_LDFLAGS): - Likewise. - * modules/pam_tally2/Makefile.am (pam_tally2_CFLAGS, - pam_tally2_LDFLAGS): Likewise. - -2020-08-07 Dmitry V. Levin <ldv@altlinux.org> - - build: rename PIE_* AC_SUBST variables to EXE_* - There are going to be other options added to CFLAGS and LDFLAGS - of executables made along with modules. - - * configure.ac (EXE_CFLAGS, EXE_LDFLAGS): New variables initialized from - PIE_CFLAGS and PIE_LDFLAGS, respectively. AC_SUBST them instead of - PIE_CFLAGS and PIE_LDFLAGS. All users updated. - -2020-08-07 Dmitry V. Levin <ldv@altlinux.org> - - m4: make libprelude-config diagnostics less noisy. - Before this change, every normal build of Linux-PAM used to contain - the following diagnostics: - - checking for libprelude-config... no - checking for libprelude - version >= 0.9.0... no - *** The libprelude-config script installed by LIBPRELUDE could not be found - *** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in - *** your path, or set the LIBPRELUDE_CONFIG environment variable to the - *** full path to libprelude-config. - - Given that libprelude-config is rarely used nowadays, - the first two lines of diagnostics should be enough. - - * m4/libprelude.m4 (AM_PATH_LIBPRELUDE): When libprelude-config - is not found, do not print the lengthy diagnostics unless - --with-libprelude-prefix was specified. - -2020-08-07 Dmitry V. Levin <ldv@altlinux.org> - - configure.ac: rewrite --disable-pie and -fpie/pie check. - * configure.ac: Rewrite -fpie/pie check using AC_LINK_IFELSE to make - the code more readable. Add --enable-pie=check support and make it - the default, terminate if --enable-pie is specified but -fpie/pie - support is not available. - - m4: rewrite ld --no-undefined check. - * m4/ld-no-undefined.m4: Rewrite using AC_LINK_IFELSE to create a more readable - autoconf macro. - - m4: rewrite ld --as-needed check. - * m4/ld-as-needed.m4: Rewrite using AC_LINK_IFELSE to create a more readable - autoconf macro. - - m4: rewrite ld -O1 check. - * m4/ld-O1.m4: Rewrite using AC_LINK_IFELSE to create a more readable - autoconf macro. - -2020-08-07 Dmitry V. Levin <ldv@altlinux.org> - - m4: rewrite __attribute__((unused)) check. - Rewrite using AC_CACHE_CHECK to create a more readable autoconf macro. - - * m4/attribute.m4: New file. - * m4/japhar_grep_cflags.m4: Remove. - * m4/.gitignore: Replace japhar_grep_cflags.m4 with attribute.m4. - * configure.ac: Replace AC_C___ATTRIBUTE__ with PAM_ATTRIBUTE_UNUSED. - -2020-08-06 Dmitry V. Levin <ldv@altlinux.org> - - build: add -Wcast-align=strict to WARN_CFLAGS. - This way -Wcast-align will be tested regardless of the target machine. - - * m4/warn_lang_flags.m4: Add gl_WARN_ADD([-Wcast-align=strict]). - -2020-08-06 Dmitry V. Levin <ldv@altlinux.org> - - configure.ac: rewrite WARN_CFLAGS initialization. - As the old machinery was not prepared for adding compiler options - conditionally when the compiler supports them, replace it with - a new machinery that implements this. - - * m4/warnings.m4: New file. - * m4/warn_lang_flags.m4: Likewise. - * m4/.gitignore: Add exclusions for them. - * m4/japhar_grep_cflags.m4 (JAPHAR_GREP_CFLAGS): Remove. - * configure.ac: Call pam_WARN_LANG_FLAGS. Remove all uses - of JAPHAR_GREP_CFLAGS. - -2020-08-06 Dmitry V. Levin <ldv@altlinux.org> - - Fix -Wcast-align compilation warnings on arm. - Apparently, gcc is also not smart enough to infer the alignment - of structure fields, for details see - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89133 - - Use unions to avoid these casts altogether, this fixes compilation - warnings reported by gcc on arm, e.g.: - - md5.c: In function 'MD5Update': - md5.c:92:35: error: cast increases required alignment of target type [-Werror=cast-align] - 92 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in); - | ^ - md5.c:101:35: error: cast increases required alignment of target type [-Werror=cast-align] - 101 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in); - | ^ - md5.c: In function 'MD5Final': - md5.c:136:35: error: cast increases required alignment of target type [-Werror=cast-align] - 136 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in); - | ^ - md5.c:147:9: error: cast increases required alignment of target type [-Werror=cast-align] - 147 | memcpy((uint32 *)ctx->in + 14, ctx->bits, 2*sizeof(uint32)); - | ^ - md5.c:149:34: error: cast increases required alignment of target type [-Werror=cast-align] - 149 | MD5Name(MD5Transform)(ctx->buf, (uint32 *) ctx->in); - | ^ - - * modules/pam_namespace/md5.h (struct MD5Context): Replace "buf" and - "in" fields with unions. All users updated. - * modules/pam_unix/md5.h (struct MD5Context): Likewise. - * modules/pam_timestamp/sha1.h (struct sha1_context.pending): Replace - with a union. All users updated. - - Complements: v1.4.0~195 ("Fix most of clang -Wcast-align compilation warnings") - -2020-08-05 Dmitry V. Levin <ldv@altlinux.org> - - pam_namespace: fix big-endian check in md5 implementation. - * modules/pam_namespace/md5.c: Do not check against the list of - architectures that are known to be little-endian, instead check - for WORDS_BIGENDIAN macro defined by AC_C_BIGENDIAN autoconf macro - on big-endian platforms. - -2020-08-05 Christian Göttsche <cgzones@googlemail.com> - - pam_namespace: skip context translation. - These retrieved contexts are just passed to libselinux functions and not - printed or otherwise made available to the outside, so a context - translation to human readable MCS/MLS labels is not needed. - (see man:setrans.conf(5)) - - pam_xauth: skip context translation. - The retrieved context is just passed to libselinux functions and not - printed or otherwise made available to the outside, so a context - translation to human readable MCS/MLS labels is not needed. - (see man:setrans.conf(5)) - - pam_xauth: replace deprecated security_context_t. - libselinux 3.1 deprecated the typedef security_context_t. - Use the underlaying type. - - pam_unix: skip context translation. - These retrieved contexts are just passed to libselinux functions and not - printed or otherwise made available to the outside, so a context - translation to human readable MCS/MLS labels is not needed. - (see man:setrans.conf(5)) - - pam_unix: replace deprecated security_context_t. - libselinux 3.1 deprecated the typedef security_context_t. - Use the underlaying type. - - pam_rootok: skip context translation. - The retrieved context is just passed to the libselinux function - 'selinux_check_access()', so a context translation to human readable - MCS/MLS labels is not needed. (see man:setrans.conf(5)) - - pam_rootok: replace deprecated security_context_t. - libselinux 3.1 deprecated the typedef security_context_t. - Use the underlaying type. - - pam_namespace: replace deprecated matchpathcon. - The matchpathcon family is deprecated. - Use the selabel family. - - pam_namespace: replace deprecated security_context_t. - libselinux 3.1 deprecated the typedef security_context_t. - Use the underlaying type. - -2020-08-03 Christian Göttsche <cgzones@googlemail.com> - - autotools: enable warnings. - -2020-08-03 Christian Göttsche <cgzones@googlemail.com> - - autotools: update deprecated macros. - see https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html - - - update AC_HELP_STRING to AS_HELP_STRING - - update AC_TRY_COMPILE to AC_COMPILE_IFELSE - - update AC_TRY_RUN to AC_RUN_IFELSE - - update AC_TRY_LINK to AC_LINK_IFELSE - -2020-08-03 Issam Maghni <concatime@users.noreply.github.com> - - configure.ac: fix typo in --with-kernel-overflow-uid= option to match its documentation - -2020-07-22 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Add comment for the ignored PAM_AUTHTOK_ERR case. - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Add comment - about the reason for ignoring PAM_AUTHTOK_ERR. - -2020-07-22 Tomas Mraz <tmraz@fedoraproject.org> - - Fix missing initialization of daysleft. - The daysleft otherwise stays uninitialized if there is no shadow entry. - - Regression from commit f5adefa. - - Fixes #255 - - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Initialize daysleft. - -2020-07-20 Charles Lee <lchopn@gmail.com> - - po: update translations using Weblate (Chinese (Simplified)) - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_CN/ - -2020-07-20 ikerexxe <ipedrosa@redhat.com> - - pam_pwhistory: add helper to handle SELinux. - The purpose of the helper is to enable tighter confinement of login and - password changing services. The helper is thus called only when SELinux - is enabled on the system. - - Resolves: https://github.com/linux-pam/linux-pam/pull/247 - -2020-07-19 A S Alam <amanpreet.alam@gmail.com> - - po: update translations using Weblate (Punjabi) - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pa/ - -2020-07-15 Dmitry V. Levin <ldv@altlinux.org> - - pam_inline.h: cleanup pam_read_passwords a bit. - * libpam/include/pam_inline.h (pam_read_passwords): Increment pptr once - instead of using pptr+1 several times. This change is not expected - to affect the code generated by the compiler as the latter is likely - to perform the optimization itself. - -2020-07-15 ikerexxe <ipedrosa@redhat.com> - - Move read_passwords function from pam_unix to pam_inline.h. - [ldv: rewrote commit message] - - * modules/pam_unix/passverify.h (read_passwords): Remove prototype. - * modules/pam_unix/passverify.c (read_passwords): Move ... - * libpam/include/pam_inline.h: ... here, rename to pam_read_passwords, - add static inline qualifiers. - Include <unistd.h> and <errno.h>. - * modules/pam_unix/unix_chkpwd.c: Include "pam_inline.h". - (main): Replace read_passwords with pam_read_passwords. - * modules/pam_unix/unix_update.c: Include "pam_inline.h". - (set_password): Replace read_passwords with pam_read_passwords. - -2020-07-15 Dmitry V. Levin <ldv@altlinux.org> - - pam_unix: use PAM_MAX_RESP_SIZE instead of its alias MAXPASS. - * modules/pam_unix/passverify.h (MAXPASS): Remove. - * modules/pam_unix/passverify.c (read_passwords): Replace MAXPASS - with PAM_MAX_RESP_SIZE. - * modules/pam_unix/pam_unix_passwd.c (_pam_unix_approve_pass): Likewise. - * modules/pam_unix/support.c (_unix_verify_password): Likewise. - * modules/pam_unix/unix_chkpwd.c (main): Likewise. - * modules/pam_unix/unix_update.c (set_password): Likewise. - -2020-07-09 Lucas Ramage <ramage.lucas@protonmail.com> - - pam_stress: create man page. - Resolves: https://github.com/linux-pam/linux-pam/issues/148 - - * modules/pam_stress/README: Remove. - * modules/pam_stress/README.xml: New file. - * modules/pam_stress/pam_stress.8.xml: Likewise. - * modules/pam_stress/Makefile.am (MAINTAINERCLEANFILES): Add - $(MANS) and README. - (EXTRA_DIST): Add $(XMLS). - (XMLS): Add README.xml and pam_stress.8.xml. - [HAVE_DOC] (dist_man_MANS): Add pam_stress.8. - [ENABLE_REGENERATE_MAN] (dist_noinst_DATA): Add README. - [ENABLE_REGENERATE_MAN]: Include $(top_srcdir)/Make.xml.rules. - * modules/pam_stress/.gitignore: Remove. - - Resolves: https://github.com/linux-pam/linux-pam/pull/184 - -2020-07-05 Dmitry V. Levin <ldv@altlinux.org> - - po: update translations using Weblate (Slovak) - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sk/ - - po: update translations using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/ - - po: update translations using Weblate (Dutch) - - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/ - - po: update translations using Weblate (Italian) - - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/ - - po: update translations using Weblate (German) - - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/ - - po: update translations using Weblate (Catalan) - - Currently translated at 100.0% (122 of 122 strings). - - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/ - -2020-07-05 Yaron Shahrabani <sh.yaron@gmail.com> - - Translated using Weblate (Hebrew) - Currently translated at 75.4% (92 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/ - - Translated using Weblate (Arabic) - - Currently translated at 61.4% (75 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ar/ - -2020-07-02 Dmitry V. Levin <ldv@altlinux.org> - - misc_conv: fix potential information leak on error path. - * libpam_misc/misc_conv.c (read_string): Clear the stack buffer from - data read earlier from stdin in case of a read error. - -2020-07-01 ikerexxe <ipedrosa@redhat.com> - - pam_loginuid: fix unlikely negative 3rd argument of strncmp on error path - [ldv: rewrote commit message] - - * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Do not pass to - strncmp the return value of pam_modutil_read in an unlikely case when - the latter fails to read from /proc/self/uid_map. - -2020-07-01 ikerexxe <ipedrosa@redhat.com> - - pam_namespace, pam_mkhomedir: fix unlikely descriptor leaks on error path - [ldv: rewrote commit message] - - * modules/pam_mkhomedir/mkhomedir_helper.c (create_homedir): Close just - opened file descriptor "srcfd" in an unlikely case when it cannot be - fstat'ed. - * modules/pam_namespace/pam_namespace.c (create_instance): Close just - opened file descriptor "fd" in an unlikely case when it cannot be - fstat'ed. - -2020-07-01 ikerexxe <ipedrosa@redhat.com> - - pam_rootok: fix use of va_list. - CPPCHECK_WARNING (CWE-843): - error[va_end_missing]: va_list 'ap' was opened but not closed by - va_end(). - - [ldv: According to POSIX documentation, each invocation of va_start() - must be matched by a corresponding invocation of va_end(). - - According to the GNU libc documentation, "with most C compilers, - calling 'va_end' does nothing. This is always true in the GNU C - compiler. But you might as well call 'va_end' just in case your - program is someday compiled with a peculiar compiler." - - The main reason for applying this change is to pacify static analysis - tools like cppcheck that insist on strict POSIX conformance in this - respect.] - -2020-07-01 ikerexxe <ipedrosa@redhat.com> - - misc_conv: fix potential stack buffer overflow. - [ldv: rewrote commit message] - - * libpam_misc/misc_conv.c (read_string): Use _pam_overwrite_n instead - of _pam_overwrite to clear stack buffer "line" because the latter does - not have to be null-terminated. - -2020-07-01 Yaron Shahrabani <sh.yaron@gmail.com> - - Translated using Weblate (Hebrew) - Currently translated at 60.6% (74 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/ - -2020-06-30 Dmitry V. Levin <ldv@altlinux.org> - - misc_conv: remove redundant check. - * libpam_misc/misc_conv.c (read_string): Remove redundant nc > 0 - check as it has already been tested in the previous condition. - -2020-06-29 ikerexxe <ipedrosa@redhat.com> - - pam_limits: clarify configuration file. - Resolves: https://github.com/linux-pam/linux-pam/pull/249 - -2020-06-26 Dmitry V. Levin <ldv@altlinux.org> - - .gitignore: move doc-specific entries to doc/.gitignore. - - .gitignore: move module-specific entries to modules/.gitignore. - -2020-06-26 ikerexxe <ipedrosa@redhat.com> - - pam_namespace: add systemd service file to gitignore. - * modules/pam_namespace/.gitignore: Add pam_namespace.service. - - Complements: v1.4.0~247 ("pam_namespace: secure tmp-inst directories") - -2020-06-26 ikerexxe <ipedrosa@redhat.com> - - pam_faillock: add faillock executable to gitignore. - * modules/pam_faillock/.gitignore: Add faillock. - - Complements: v1.4.0~76 ("pam_faillock: New module for locking after multiple auth failures") - -2020-06-25 ikerexxe <ipedrosa@redhat.com> - - pam_env: clarify user_readenv option. - -2020-06-24 Baurzhan Muftakhidinov <baurthefirst@gmail.com> - - Translated using Weblate (Kazakh) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/kk/ - -2020-06-24 Yaron Shahrabani <sh.yaron@gmail.com> - - Translated using Weblate (Hebrew) - Currently translated at 44.2% (54 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/he/ - -2020-06-22 Vito Caputo <vcaputo@pengaru.com> - - modules/pam_limits: add support for nonewprivs. - Expose prctl(PR_SET_NO_NEW_PRIVS) as "nonewprivs" item. - - The valid values are a boolean toggle 0/1 to keep semi-consistent - with the other numeric limits. It's slightly awkward as this is - an oddball relative to the other items in pam_limits but outside - of the item value itself this does seem at home in pam_limits. - - Resolves: https://github.com/linux-pam/linux-pam/issues/224 - Resolves: https://github.com/linux-pam/linux-pam/pull/225 - -2020-06-17 ikerexxe <ipedrosa@redhat.com> - - pam_usertype: avoid determining if user exists. - Taking a look at the time for the password prompt to appear it was - possible to determine if a user existed in a system. Solved it by - matching the runtime until the password prompt was shown by always - checking the password hash for an existing and a non-existing user. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598 - -2020-06-17 ikerexxe <ipedrosa@redhat.com> - - pam_unix: avoid determining if user exists. - Taking a look at the time for the password prompt to appear it was - possible to determine if a user existed in a system. Solved it by - matching the runtime until the password prompt was shown by always - checking the password hash for an existing and a non-existing user. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598 - -2020-06-17 ikerexxe <ipedrosa@redhat.com> - - pam_faillock: change /run/faillock/$USER permissions to 0660. - Nowadays, /run/faillock/$USER files have user:root ownership and 0600 - permissions. This forces the process that writes to these files to have - CAP_DAC_OVERRIDE capabilites. Just by changing the permissions to 0660 - the capability can be removed, which leads to a more secure system. - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1661822 - -2020-06-16 Dmitry V. Levin <ldv@altlinux.org> - - pam_modutil_check_user_in_passwd: avoid timing attacks. - * libpam/pam_modutil_check_user.c (pam_modutil_check_user_in_passwd): Do - not exit the file reading loop when the user is found, continue reading - the file to avoid timing attacks. - -2020-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com> - - pam_faillock: fix build on musl. - Use pam_modutil_check_user_in_passwd in pam_faillock.c instead of - fgetpwent_r which is not available on musl. - - Resolves: https://github.com/linux-pam/linux-pam/issues/236 - Resolves: https://github.com/linux-pam/linux-pam/pull/237 - Fixes: http://autobuild.buildroot.org/results/0432736ffee376dd84757469434a4bbcfdcdaf4b - -2020-06-15 Fabrice Fontaine <fontaine.fabrice@gmail.com> - Dmitry V. Levin <ldv@altlinux.org> - - Move check_user_in_passwd from pam_localuser.c to pam_modutil. - - * modules/pam_localuser/pam_localuser.c: Include - <security/pam_modutil.h>. - (pam_sm_authenticate): Replace check_user_in_passwd with - pam_modutil_check_user_in_passwd. - (check_user_in_passwd): Rename to pam_modutil_check_user_in_passwd, - move to ... - * libpam/pam_modutil_check_user.c: ... new file. - * libpam/Makefile.am (libpam_la_SOURCES): Add pam_modutil_check_user.c. - * libpam/include/security/pam_modutil.h - (pam_modutil_check_user_in_passwd): New function declaration. - * libpam/libpam.map (LIBPAM_MODUTIL_1.4.1): New interface. - -2020-06-15 Dmitry V. Levin <ldv@altlinux.org> - - configure.ac: fix non-portable use of test builtin. - Portable code should not assume that test builtin supports == operator. - - * configure.ac (opt_uidmin, opt_sysuidmin, opt_kerneloverflowuid): Fix - initialization. - - Resolves: https://github.com/linux-pam/linux-pam/issues/241 - Fixes: 926d7935e ("pam_usertype: new module to tell if uid is in login.defs ranges") - -2020-06-11 Fabrice Fontaine <fontaine.fabrice@gmail.com> - - configure.ac: fix build failure when crypt() does not require libcrypt. - Since commit 522246d20e4cd92fadc2d760228cb7e78cbeb4c5, the build fails - if "none required" is returned by AC_SEARCH_LIBS for libcrypt. - - Resolves: https://github.com/linux-pam/linux-pam/pull/235 - Fixes: http://autobuild.buildroot.org/results/92b3dd7c984d2b843ac9aacacd69eec99f28743e - Fixes: v1.4.0~228 ("Use cached 'crypt' library result correctly") - -2020-06-04 Dmitry V. Levin <ldv@altlinux.org> - - build: do not generate tarballs compressed with bzip2 and gzip. - There are tarballs compressed with xz, that should be enough. - - * Makefile.am (AUTOMAKE_OPTIONS): Remove dist-bzip2, add no-dist-gzip. - (releasedocs): Do not create Linux-PAM-$(VERSION)-docs.tar.bz2 - and Linux-PAM-$(VERSION)-docs.tar.gz. - -2020-06-04 Dmitry V. Levin <ldv@altlinux.org> - - maint: document release procedure. - * maint/README-release: New file. - - maint: introduce gen-tag-message. - * maint/gen-tag-message: New script for preparing tag message. - - maint: introduce make-dist. - * maint/make-dist: New script for preparing release tarballs. - -2020-06-03 Dmitry V. Levin <ldv@altlinux.org> - - gitlog-to-changelog: update from gnulib. - -2020-05-29 Josef Möllers <jmoellers@suse.de> - Tomáš Mráz <tmraz@redhat.com> - Dmitry V. Levin <ldv@altlinux.org> - - pam_setquota: skip mountpoints equal to the user's $HOME. - Matthias Gerstner found the following issue: - - <quote> - So this pam_setquota module iterates over all mounted file systems using - `setmntent()` and `getmntent()`. It tries to find the longest match of - a file system mounted on /home/$USER or above (except when the - fs=/some/path parameter is passed to the pam module). - - The thing is that /home/$USER is owned by the unprivileged user. And - there exist tools like fusermount from libfuse which is by default - installed setuid-root for everybody. fusermount allows to mount a FUSE - file system using an arbitrary "source device name" as the unprivileged - user. - - Thus considering the following use case: - - 1) there is only the root file system (/) or a file system is mounted on - /home, but not on /home/$USER. - 2) the attacker mounts a fake FUSE file system over its own home directory: - - ``` - user $ export _FUSE_COMMFD=0 - user $ fusermount $HOME -ononempty,fsname=/dev/sda1 - ``` - - This will result in a mount entry in /proc/mounts looking like this: - - ``` - /dev/sda1 on /home/$USER type fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=100) - ``` - 3) when the attacker now logs in with pam_setquota configured then - pam_setquota will identify /dev/sda1 and the file system where - to apply the user's quota on. - - As a result an unprivileged user has full control over onto which block - device the quota is applied. - </quote> - - If the user's $HOME is on a separate partition, setting a quota on the - user's $HOME does not really make sense, so this patch skips mountpoints - equal to the user's $HOME, preventing the above mentioned bug as - a side-effect (or vice-versa). - - Reported-by: Matthias Gerstner <mgerstner@suse.de> - Resolves: https://github.com/linux-pam/linux-pam/pull/230 - -2020-05-25 Dmitry V. Levin <ldv@altlinux.org> - - pam_debug: do not invoke pam_get_user and do not set PAM_USER. - pam_debug used to invoke pam_get_user and set PAM_USER to "nobody" when - pam_get_user returns an empty string as the user name. When either of - these functions returned an error value, it used to return that error - value. This hasn't been documented, and I couldn't find any rationale - for this behaviour. - - * modules/pam_debug/pam_debug.c (pam_sm_authenticate): Do not invoke - pam_get_user and pam_set_item. - -2020-05-24 Yi-Jyun Pan <pan93412@gmail.com> - - Translated using Weblate (Chinese (Traditional)) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_TW/ - -2020-05-22 Dmitry V. Levin <ldv@altlinux.org> - - modules: downgrade syslog level for errors related to pam_get_user. - * modules/pam_faillock/pam_faillock.c (get_pam_user): Downgrade - the syslog level for diagnostics of errors returned by - pam_modutil_getpwnam for users returned by pam_get_user - from LOG_ERR to LOG_NOTICE. - * modules/pam_keyinit/pam_keyinit.c (do_keyinit): Likewise. - * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Likewise. - * modules/pam_listfile/pam_listfile.c (pam_sm_authenticate): Likewise. - * modules/pam_loginuid/pam_loginuid.c (_pam_loginuid): Likewise. - * modules/pam_mail/pam_mail.c (_do_mail): Likewise. - * modules/pam_sepermit/pam_sepermit.c (sepermit_lock): Likewise. - * modules/pam_tally/pam_tally.c (pam_get_uid): Likewise. - * modules/pam_tally2/pam_tally2.c (pam_get_uid): Likewise. - * modules/pam_umask/pam_umask.c (pam_sm_open_session): Likewise. - * modules/pam_xauth/pam_xauth.c (pam_sm_open_session, - pam_sm_close_session): Likewise. - * modules/pam_tty_audit/pam_tty_audit.c (pam_sm_open_session): Downgrade - the syslog level for diagnostics of errors returned by - pam_modutil_getpwnam for users returned by pam_get_user - from LOG_WARNING to LOG_NOTICE. - - Suggested-by: Tomáš Mráz <tmraz@fedoraproject.org> - -2020-05-22 Dmitry V. Levin <ldv@altlinux.org> - - modules: downgrade syslog level for pam_get_user errors. - * modules/pam_access/pam_access.c (pam_sm_authenticate): Downgrade - the syslog level for pam_get_user errors from LOG_ERR to LOG_NOTICE. - * modules/pam_cracklib/pam_cracklib.c (_pam_unix_approve_pass): Likewise. - * modules/pam_ftp/pam_ftp.c (pam_sm_authenticate): Likewise. - * modules/pam_group/pam_group.c (pam_sm_setcred): Likewise. - * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Likewise. - * modules/pam_loginuid/pam_loginuid.c (_pam_loginuid): Likewise. - * modules/pam_mail/pam_mail.c (_do_mail): Likewise. - * modules/pam_nologin/pam_nologin.c (perform_check): Likewise. - * modules/pam_rhosts/pam_rhosts.c (pam_sm_authenticate): Likewise. - * modules/pam_sepermit/pam_sepermit.c (pam_sm_authenticate): Likewise. - * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Likewise. - * modules/pam_tally/pam_tally.c (pam_get_uid): Likewise. - * modules/pam_tally2/pam_tally2.c (pam_get_uid): Likewise. - * modules/pam_time/pam_time.c (pam_sm_acct_mgmt): Likewise. - * modules/pam_tty_audit/pam_tty_audit.c (pam_sm_open_session): Likewise. - * modules/pam_umask/pam_umask.c (pam_sm_open_session): Likewise. - * modules/pam_userdb/pam_userdb.c (pam_sm_authenticate, - pam_sm_acct_mgmt): Likewise. - * modules/pam_usertype/pam_usertype.c (pam_usertype_get_uid): Likewise. - * modules/pam_xauth/pam_xauth.c (pam_sm_open_session, - pam_sm_close_session): Likewise. - * modules/pam_securetty/pam_securetty.c (securetty_perform_check): - Downgrade the syslog level for pam_get_user errors from LOG_WARNING - to LOG_NOTICE. - * modules/pam_stress/pam_stress.c (pam_sm_authenticate): Likewise. - - Suggested-by: Tomáš Mráz <tmraz@fedoraproject.org> - -2020-05-22 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: add a test for return values. - * modules/pam_localuser/tst-pam_localuser-retval.c: New file. - * modules/pam_localuser/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_localuser_retval_LDADD): New variables. - - pam_localuser: refactor pam_sm_authenticate. - * modules/pam_localuser/pam_localuser.c (check_user_in_passwd): New - function. - (pam_sm_authenticate): Use it. - -2020-05-22 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: downgrade syslog level for errors related to user input. - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Downgrade - the syslog level for errors related to pam_get_user from LOG_ERR to - LOG_NOTICE. - - Suggested-by: Tomáš Mráz <tmraz@fedoraproject.org> - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: re-format pam_sm_* function declarations. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: remove unused includes. - Also, remove unused MODULE_NAME macro. - - * modules/pam_localuser/pam_localuser.c: Stop including unused header - files. - (MODULE_NAME): Remove. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: forward error values returned by pam_get_user. - Starting with commit c2c601f5340a59c5c62193d55b555d384380ea38, - pam_get_user is guaranteed to return one of the following values: - PAM_SUCCESS, PAM_BUF_ERR, PAM_CONV_AGAIN, or PAM_CONV_ERR. - - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Do not - replace non-PAM_CONV_AGAIN error values returned by pam_get_user with - PAM_SERVICE_ERR. - * modules/pam_localuser/pam_localuser.8.xml (RETURN VALUES): Document - new return values. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: return PAM_INCOMPLETE when pam_get_user returns PAM_CONV_AGAIN - Give the application a chance to handle PAM_INCOMPLETE. - - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Return - PAM_INCOMPLETE instead of PAM_SERVICE_ERR when pam_get_user returns - PAM_CONV_AGAIN. - * modules/pam_localuser/pam_localuser.8.xml (RETURN VALUES): Document - it. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: open the passwd file after user name validation. - Since user name is untrusted input, it should be validated earlier - rather than later. - - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Open - the passwd file after user name validation. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: use BUFSIZ as the line buffer size. - As BUFSIZ is the buffer size used in stdio, it must be an efficient size - for the line buffer. Also, it's larger than LINE_MAX used as the line - buffer size before this change, effectively raising the maximum user - name length supported by this module. - - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Replace - LINE_MAX with BUFSIZ. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: handle long lines in passwd files properly. - Before this change, a long line in the passwd file used to be treated as - several lines which could potentially result to false match and, - consequently, to incorrect PAM_SUCCESS return value. - - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Handle - long lines in passwd files properly. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: get rid of a temporary buffer. - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Do not - copy the user name into a temporary buffer, use the user name itself in - comparisons. - - pam_localuser: log unrecognized options. - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Log - unrecognized options. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: return PAM_SERVICE_ERR instead of PAM_SYSTEM_ERR. - When passwd file cannot be opened or the user name either cannot be - obtained or is not valid, return PAM_SERVICE_ERR instead of - PAM_SYSTEM_ERR. - - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Return - PAM_SERVICE_ERR instead of PAM_SYSTEM_ERR. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: reject user names that are too long. - Too long user names used to be truncated which could potentially result - to false match and, consequently, to incorrect PAM_SUCCESS return value. - - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Return - PAM_SERVICE_ERR if the user name is too long. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_localuser: reject user names containing a colon. - "root:x" is not a local user name even if the passwd file contains - a line starting with "root:x:". - - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Return - PAM_PERM_DENIED if the user name contains a colon. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - pam_mkhomedir: add a test for return values. - * modules/pam_mkhomedir/tst-pam_mkhomedir-retval.c: New file. - * modules/pam_mkhomedir/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_mkhomedir_retval_LDADD): New variables. - - pam_faildelay: add a test for return values. - * modules/pam_faildelay/tst-pam_faildelay-retval.c: New file. - * modules/pam_faildelay/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_faildelay_retval_LDADD): New variables. - - pam_rootok: add a test for return values. - * modules/pam_rootok/tst-pam_rootok-retval.c: New file. - * modules/pam_rootok/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_rootok_retval_LDADD): New variables. - - pam_nologin: add a test for return values. - * modules/pam_nologin/tst-pam_nologin-retval.c: New file. - * modules/pam_nologin/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_nologin_retval_LDADD): New variables. - - pam_echo: add a test for return values. - * modules/pam_echo/tst-pam_echo-retval.c: New file. - * modules/pam_echo/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_echo_retval_LDADD): New variables. - - pam_warn: add a test for return values. - * modules/pam_warn/tst-pam_warn-retval.c: New file. - * modules/pam_warn/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_warn_retval_LDADD): New variables. - - pam_debug: add a test for return values. - * modules/pam_debug/tst-pam_debug-retval.c: New file. - * modules/pam_debug/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_debug_retval_LDADD): New variables. - - pam_permit: add a test for return values. - * modules/pam_permit/tst-pam_permit-retval.c: New file. - * modules/pam_permit/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_permit_retval_LDADD): New variables. - - pam_deny: add a test for return values. - * modules/pam_deny/tst-pam_deny-retval.c: New file. - * modules/pam_deny/Makefile.am (TESTS): Add $(check_PROGRAMS). - (check_PROGRAMS, tst_pam_deny_retval_LDADD): New variables. - -2020-05-21 Dmitry V. Levin <ldv@altlinux.org> - - Introduce test_assert.h. - Introduce a new internal header file for definitions of handy macros - providing convenient assertion testing functionality. - - * libpam/include/test_assert.h: New file. - * libpam/Makefile.am (noinst_HEADERS): Add include/test_assert.h. - -2020-05-21 Andreas Henriksson <andreas+fedora@fatal.se> - - Translated using Weblate (Swedish) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sv/ - -2020-05-17 Dmitry V. Levin <ldv@altlinux.org> - - doc: fix the description of stack jump effects. - Every stack jump, besides the jump itself, has a side effect which is - one of 'ignore', 'ok', or 'bad'. Unfortunately, the side effect is far - from obvious because it depends on the PAM function call, and the - documentation that contradicts the implementation does not help either. - - * doc/man/pam.conf-syntax.xml (actionN): Rewrite the description - of stack jump effects to match the implementation. - - Fixes: 871a6e14d65c3c446ae0af51166dabc7a47a2b56 - -2020-05-17 Weblate (bot) <noreply@weblate.org> - Allan Nordhøy <epost@anotheragency.no>
- Dmitry V. Levin <ldv@altlinux.org> - - Translations update from Weblate (#227) - * Translated using Weblate (Norwegian Bokmål)
-
- Currently translated at 99.1% (121 of 122 strings)
-
- Translation: linux-pam/master
- Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nb_NO/
-
- * Translated using Weblate (Catalan)
-
- Currently translated at 98.3% (120 of 122 strings)
-
- Translation: linux-pam/master
- Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/
- -2020-05-16 Dmitry V. Levin <ldv@altlinux.org> - - modules: do not check user name for emptyness before passing it to pam_modutil_getpwnam - pam_modutil_getpwnam is perfectly capable of handling empty strings as - user names, no need to double check that. - - * modules/pam_access/pam_access.c (pam_sm_authenticate): Do not check - the user name for emptyness before passing it to pam_modutil_getpwnam. - * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Likewise. - * modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Likewise. - * modules/pam_shells/pam_shells.c (perform_check): Likewise. - * modules/pam_tally/pam_tally.c (pam_get_uid): Likewise. - * modules/pam_tally2/pam_tally2.c (pam_get_uid): Likewise. - * modules/pam_umask/pam_umask.c (pam_sm_open_session): Likewise. - -2020-05-15 Dmitry V. Levin <ldv@altlinux.org> - - pam_usertype: Document return values forwarded from pam_get_user. - * modules/pam_usertype/pam_usertype.8.xml (RETURN VALUES): Document - PAM_BUF_ERR and PAM_CONV_ERR return values. - -2020-05-15 Dmitry V. Levin <ldv@altlinux.org> - - pam_usertype: return PAM_INCOMPLETE when pam_get_user returns PAM_CONV_AGAIN - Give the application a chance to handle PAM_INCOMPLETE. - - * modules/pam_usertype/pam_usertype.c (pam_usertype_get_uid): Return - PAM_INCOMPLETE instead of PAM_CONV_AGAIN when pam_get_user returns - PAM_CONV_AGAIN. - * modules/pam_usertype/pam_usertype.8.xml (RETURN VALUES): Document it. - -2020-05-15 Dmitry V. Levin <ldv@altlinux.org> - - pam_faillock: Document return values forwarded from pam_get_user. - * modules/pam_faillock/pam_faillock.8.xml (RETURN VALUES): Document - PAM_BUF_ERR and PAM_CONV_ERR return values. - -2020-05-15 Dmitry V. Levin <ldv@altlinux.org> - - pam_faillock: return PAM_INCOMPLETE when pam_get_user returns PAM_CONV_AGAIN - Give the application a chance to handle PAM_INCOMPLETE. - - * modules/pam_faillock/pam_faillock.c (get_pam_user): Return - PAM_INCOMPLETE instead of PAM_CONV_AGAIN when pam_get_user returns - PAM_CONV_AGAIN. - * modules/pam_faillock/pam_faillock.8.xml (RETURN VALUES): Document it. - -2020-05-15 Dmitry V. Levin <ldv@altlinux.org> - - pam_securetty: forward error values returned by pam_get_user. - Starting with commit c2c601f5340a59c5c62193d55b555d384380ea38, - pam_get_user is guaranteed to return one of the following values: - PAM_SUCCESS, PAM_BUF_ERR, PAM_CONV_AGAIN, or PAM_CONV_ERR. - - * modules/pam_securetty/pam_securetty.c (pam_sm_authenticate): Do not - replace non-PAM_CONV_AGAIN error values returned by pam_get_user with - PAM_SERVICE_ERR. - * modules/pam_securetty/pam_securetty.8.xml (RETURN VALUES): Document - new return values. - -2020-05-15 Dmitry V. Levin <ldv@altlinux.org> - - modules: do not check user name for NULL if pam_get_user returned PAM_SUCCESS - If pam_get_user returned PAM_SUCCESS, the user name is guaranteed - to be a valid C string, no need to double check that. - - * modules/pam_access/pam_access.c (pam_sm_authenticate): Do not check - for NULL the user name returned by pam_get_user when the latter returned - PAM_SUCCESS. - * modules/pam_cracklib/pam_cracklib.c (_pam_unix_approve_pass): Likewise. - * modules/pam_debug/pam_debug.c (pam_sm_authenticate): Likewise. - * modules/pam_filter/pam_filter.c (process_args): Likewise. - * modules/pam_ftp/pam_ftp.c (pam_sm_authenticate): Likewise. - * modules/pam_group/pam_group.c (pam_sm_setcred): Likewise. - * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Likewise. - * modules/pam_listfile/pam_listfile.c (pam_sm_authenticate): Likewise. - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): Likewise. - * modules/pam_mail/pam_mail.c (_do_mail): Likewise. - * modules/pam_nologin/pam_nologin.c (perform_check): Likewise. - * modules/pam_permit/pam_permit.c (pam_sm_authenticate): Likewise. - * modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Likewise. - * modules/pam_rhosts/pam_rhosts.c (pam_sm_authenticate): Likewise. - * modules/pam_securetty/pam_securetty.c (pam_sm_authenticate): Likewise. - * modules/pam_sepermit/pam_sepermit.c (pam_sm_authenticate): Likewise. - * modules/pam_shells/pam_shells.c (perform_check): Likewise. - * modules/pam_stress/pam_stress.c (pam_sm_authenticate): Likewise. - * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Likewise. - * modules/pam_time/pam_time.c (pam_sm_acct_mgmt): Likewise. - * modules/pam_timestamp/pam_timestamp.c (get_timestamp_name): Likewise. - * modules/pam_umask/pam_umask.c (pam_sm_open_session): Likewise. - * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Likewise. - * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Likewise. - * modules/pam_usertype/pam_usertype.c (pam_usertype_get_uid): Likewise. - * modules/pam_wheel/pam_wheel.c (perform_check): Likewise. - * modules/pam_userdb/pam_userdb.c (pam_sm_authenticate, pam_sm_acct_mgmt): - Likewise. - -2020-05-14 Dmitry V. Levin <ldv@altlinux.org> - - pam_umask: Document return values forwarded from pam_get_user. - * modules/pam_umask/pam_umask.8.xml (RETURN VALUES): Document - PAM_BUF_ERR, PAM_CONV_ERR, and PAM_INCOMPLETE return values. - - pam_exec: Document return values forwarded from pam_get_user. - * modules/pam_exec/pam_exec.8.xml (RETURN VALUES): Document - PAM_BUF_ERR, PAM_CONV_ERR, and PAM_INCOMPLETE return values. - -2020-05-13 Dmitry V. Levin <ldv@altlinux.org> - - Deprecate pam_cracklib, pam_tally, and pam_tally2. - Deprecate pam_cracklib, there are two better alternatives to this - obsolete module: pam_passwdqc from passwdqc project and pam_pwquality - from libpwquality project. - - Deprecate pam_tally and pam_tally2 in favour of pam_faillock. - - * configure.ac: Implement --enable-cracklib=check that enables build - of pam_cracklib when libcrack is available. - Disable build of pam_cracklib, pam_tally, and pam_tally2 by default. - * NEWS: Mention this change. - * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Add - --enable-tally, --enable-tally2, and --enable-cracklib=check - to check build of these deprecated modules. - -2020-05-13 Dmitry V. Levin <ldv@altlinux.org> - - NEWS: update. - -2020-05-12 Thorsten Kukuk <5908016+thkukuk@users.noreply.github.com> - - Use correct path for pam_namespace.service file (#223) - -2020-05-09 Dmitry V. Levin <ldv@altlinux.org> - - pam_setquota: fix return value when the user is unknown. - Following the bad example in pam_mkhomedir module, from the very - beginning pam_setquota module used to return PAM_CRED_INSUFFICIENT - when pam_modutil_getpwnam() returned an error. Fix this now - by changing the return value to PAM_USER_UNKNOWN. - - * modules/pam_setquota/pam_setquota.c (pam_sm_open_session): Return - PAM_USER_UNKNOWN instead of PAM_CRED_INSUFFICIENT. - * modules/pam_setquota/pam_setquota.8.xml (PAM_CRED_INSUFFICIENT): - Replace with PAM_USER_UNKNOWN. - -2020-05-09 Dmitry V. Levin <ldv@altlinux.org> - - pam_mkhomedir: fix return value when the user is unknown. - From the very beginning pam_mkhomedir module used to return - PAM_CRED_INSUFFICIENT when getpwnam() or pam_modutil_getpwnam() - returned an error. Fix this now by changing the return value - to PAM_USER_UNKNOWN. - - * modules/pam_mkhomedir/mkhomedir_helper.c (main): Return - PAM_USER_UNKNOWN instead of PAM_CRED_INSUFFICIENT. - * modules/pam_mkhomedir/pam_mkhomedir.c (pam_sm_open_session): Likewise. - * modules/pam_mkhomedir/pam_mkhomedir.8.xml (PAM_CRED_INSUFFICIENT): - Remove. - -2020-05-06 Dmitry V. Levin <ldv@altlinux.org> - - pam_get_user: do not override valid values returned by the conversation function - When the conversation function returned a value different from - PAM_CONV_AGAIN and provided no response, pam_get_user used to replace - the return value with PAM_CONV_ERR. Fix this and replace the return - value only if it was PAM_SUCCESS. - - * libpam/pam_item.c (pam_get_user): Do not override valid values - returned by the conversation function. - -2020-05-06 Dmitry V. Levin <ldv@altlinux.org> - - pam_get_user: filter conversation function return values. - Do not assume that the conversation function provided by the application - strictly follows the return values guidelines, replace undocumented - return values with PAM_CONV_ERR. - - * libpam/pam_item.c (pam_get_user): If the value returned by the - conversation function is not one of PAM_SUCCESS, PAM_BUF_ERR, - PAM_CONV_AGAIN, or PAM_CONV_ERR, replace it with PAM_CONV_ERR. - -2020-05-06 Dmitry V. Levin <ldv@altlinux.org> - - man: document other valid pam_get_user return values. - * doc/man/pam_get_user.3.xml (pam_get_user-return_values): Add - PAM_BUF_ERR, PAM_ABORT, and PAM_CONV_AGAIN. - -2020-05-06 Dmitry V. Levin <ldv@altlinux.org> - - pam_get_user: consistently return PAM_SYSTEM_ERR if user specified a NULL pointer - pam_get_user returns PAM_SYSTEM_ERR in case of pamh == NULL. - In case of user == NULL, however, it used to return PAM_PERM_DENIED, - and in case of NULL conversation function it used to return - PAM_SERVICE_ERR. - - According to the documentation, PAM_SYSTEM_ERR shall be returned - if a NULL pointer was submitted. - - Fix this inconsistency and return PAM_SYSTEM_ERR in each of these - programming error cases. - - * libpam/pam_item.c (pam_get_user): Return PAM_SYSTEM_ERR instead of - PAM_PERM_DENIED if user == NULL. Return PAM_SYSTEM_ERR instead of - PAM_SERVICE_ERR if pamh->pam_conversation == NULL. - -2020-05-06 Weblate (bot) <noreply@weblate.org> - - Translations update from Weblate. - * Translated using Weblate (Spanish)
-
- Currently translated at 81.9% (100 of 122 strings)
-
- * Translated using Weblate (Portuguese)
-
- Currently translated at 100.0% (122 of 122 strings)
- -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - doc: remove references to PAM_SM_* macros. - Starting with commit a684595c0bbd88df71285f43fb27630e3829121e aka - Linux-PAM-1.3.0~14 (Remove "--enable-static-modules" option and support - from Linux-PAM), PAM_SM_* macros have no effect. - - modules: remove PAM_SM_* macros. - Starting with commit a684595c0bbd88df71285f43fb27630e3829121e aka - Linux-PAM-1.3.0~14 (Remove "--enable-static-modules" option and support - from Linux-PAM), PAM_SM_* macros have no effect. - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - pam_usertype: do not override the default prompt. - Following the bad example in pam_succeed_if module, from the very - beginning pam_usertype used to override the default prompt used by - pam_get_user() with "login: ". Fix this now. - - * modules/pam_usertype/pam_usertype.c (pam_sm_authenticate): Do not - request PAM_USER_PROMPT item, invoke pam_get_user() with the default - prompt. - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - pam_succeed_if: do not override the default prompt. - From the very beginning pam_succeed_if used to override the default - prompt used by pam_get_user() with "login: ". Fix this now. - - * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Do not - request PAM_USER_PROMPT item, invoke pam_get_user() with the default - prompt. - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: rename TESTS to dist_check_SCRIPTS. - ... and remove $(TESTS) from EXTRA_DIST. - - The change is performed automatically using the following script: - sed -i -e 's/^TESTS = \(tst.*\)/dist_check_SCRIPTS = \1\nTESTS = $(dist_check_SCRIPTS)/' \ - -e '/^EXTRA_DIST/ s/ \$(TESTS)//' modules/*/Makefile.am - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: rename man_MANS to dist_man_MANS. - ... and remove $(MANS) from EXTRA_DIST. - - The change is performed automatically using the following script: - sed -i 's/^man_MANS/dist_&/; /^EXTRA_DIST/ s/ \$(MANS)//' modules/*/Makefile.am - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - pam_namespace: cleanup pam_namespace.service installation. - * modules/pam_namespace/Makefile.am (service_DATA): New variable. - (install-data-local): Remove all commands related to servicedir. - (uninstall-local): Remove. - - Fixes: 59812d1cf ("pam_namespace: secure tmp-inst directories") - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: add dist_ prefix to *_DATA. - ... and remove $(DATA) from EXTRA_DIST. - - The change is performed automatically using the following script: - sed -i 's/^[a-z]*_DATA/dist_&/; /^EXTRA_DIST/ s/ \$(DATA)//' modules/*/Makefile.am - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_timestamp/Makefile.am: rename noinst_PROGRAMS to check_PROGRAMS - ... and remove nodist_TESTS. - - * modules/pam_timestamp/Makefile.am (nodist_TESTS): Remove. - (TESTS): Replace $(nodist_TESTS) with $(check_PROGRAMS). - (noinst_PROGRAMS): Rename to check_PROGRAMS. - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_timestamp/Makefile.am: rename dist_TESTS to dist_check_SCRIPTS - ... and remove it from EXTRA_DIST - - * modules/pam_timestamp/Makefile.am (EXTRA_DIST): Remove $(dist_TESTS). - (dist_TESTS): Rename to dist_check_SCRIPTS. - (TESTS): Replace $(dist_TESTS) with $(dist_check_SCRIPTS). - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_namespace/Makefile.am: add dist_ prefix to secureconf_SCRIPTS - ... and remove $(SCRIPTS) from EXTRA_DIST. - - * modules/pam_namespace/Makefile.am (EXTRA_DIST): Remove $(SCRIPTS). - (secureconf_SCRIPTS): Rename to dist_secureconf_SCRIPTS. - -2020-05-03 Dmitry V. Levin <ldv@altlinux.org> - - Translated using Weblate (Russian) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/ - -2020-05-03 Yuri Chornoivan <yurchor@ukr.net> - - Translated using Weblate (Ukrainian) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/ - -2020-05-03 OÄŸuz Ersen <oguzersen@protonmail.com> - - Translated using Weblate (Turkish) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/ - -2020-05-03 Julien Humbert <julroy67@gmail.com> - - Translated using Weblate (French) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/ - -2020-05-03 scootergrisen <scootergrisen@gmail.com> - - Translated using Weblate (Danish) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/ - -2020-05-03 Piotr DrÄ…g <piotrdrag@gmail.com> - - Translated using Weblate (Polish) - Currently translated at 100.0% (122 of 122 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/ - -2020-04-30 Tomas Mraz <tmraz@fedoraproject.org> - - Update .po and .pot files after adding pam_faillock. - - pam_faillock: Correct the grammar of translated strings. - Also make the message the same as in pam_tally2. - - pam_faillock: Add conf option to use a different config file. - - pam_faillock: New module for locking after multiple auth failures. - -2020-04-29 Weblate (bot) <noreply@weblate.org> - Alesker Abdullayev - FEDORA Azerbaijan <tech@abdullaeff.com>
- Allan Nordhøy <epost@anotheragency.no> - - Translations update from Weblate (#215) - Updated translation using Weblate
-
- * Translated using Weblate (Azerbaijani)
-
- Currently translated at 15.8% (19 of 120 strings)
-
- * Translated using Weblate (Norwegian Bokmål)
-
- Currently translated at 100.0% (120 of 120 strings)
- -2020-04-28 Dmitry V. Levin <ldv@altlinux.org> - - build: rework vendordir substitution. - Since Make.xml.rules is the only place where XSLTPROC_CUSTOM was used, - remove stereotypic definitions from other Makefiles, this way we no - longer have to worry about vendordir being used somewhere else in - documentation files. - - Likewise, define VENDORDIR in config.h and remove stereotypic - -DVENDORDIR= additions from other Makefiles, this way we no longer - have to worry about VENDORDIR being used somewhere else in the code. - - * configure.ac (AM_CONDITIONAL): Remove HAVE_VENDORDIR. - (AC_DEFINE_UNQUOTED): Add VENDORDIR. - (AC_SUBST): Remove VENDORDIR, add STRINGPARAM_VENDORDIR. - * Make.xml.rules.in: Replace $(XSLTPROC_CUSTOM) with - @STRINGPARAM_VENDORDIR@. - * doc/man/Makefile.am (XSLTPROC_CUSTOM): Remove. - * libpam/Makefile.am [HAVE_VENDORDIR]: Remove. - * modules/pam_securetty/Makefile.am [HAVE_VENDORDIR]: Remove. - (XSLTPROC_CUSTOM): Remove. - * modules/pam_securetty/pam_securetty.c: Move definitions of local - macros after config.h to benefit from macros defined there. - -2020-04-28 Dmitry V. Levin <ldv@altlinux.org> - - Make.xml.rules: prepare for configure substitutions. - * Make.xml.rules: Rename to ... - * Make.xml.rules.in: ... new file. - * Makefile.am (EXTRA_DIST): Remove Make.xml.rules. - * configure.ac (AC_CONFIG_FILES): Add Make.xml.rules. - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - pam_namespace: replace namespace.init with $(SCRIPTS) in EXTRA_DIST. - As namespace.init is listed in secureconf_SCRIPTS which is part of - generated SCRIPTS variable. - - * modules/pam_namespace/Makefile.am (EXTRA_DIST): Replace namespace.init - with $(SCRIPTS). - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - pam_env: remove environment from EXTRA_DIST. - * modules/pam_env/Makefile.am (EXTRA_DIST): Remove environment as it is - listed in sysconf_DATA which is part of DATA which is already listed in - EXTRA_DIST. - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: remove $(secureconf_DATA) from EXTRA_DIST. - Since the whole $(DATA) is listed in EXTRA_DIST, $(secureconf_DATA) - can be safely de-listed. - - * modules/pam_access/Makefile.am (EXTRA_DIST): Remove - $(secureconf_DATA). - * modules/pam_env/Makefile.am: Likewise. - * modules/pam_group/Makefile.am: Likewise. - * modules/pam_limits/Makefile.am: Likewise. - * modules/pam_namespace/Makefile.am: Likewise. - * modules/pam_sepermit/Makefile.am: Likewise. - * modules/pam_time/Makefile.am: Likewise. - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: replace README with $(DATA) in EXTRA_DIST. - Since the GNU Automake distributes README files by default, the only - reason why README had to be listed in EXTRA_DIST was to make these - README files generated. - - Since README is also listed in noinst_DATA, we can safely replace - README in EXTRA_DIST with $(DATA), this also opens the way for - further EXTRA_DIST cleanup. - - * modules/*/Makefile.am (EXTRA_DIST): Replace README with $(DATA). - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: reorder lines to promote uniformity. - This is essentially a no-op change that makes modules/*/Makefile.am - files less divergent. - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - build: move README prerequisites rule from modules/*/Makefile.am to Make.xml.rules - As the rule is now the same in every modules/*/Makefile.am file, - move it to Make.xml.rules. - - * Make.xml.rules (README): New prerequisites rule. - * modules/pam_access/Makefile.am (README): Remove rule. - * modules/pam_cracklib/Makefile.am (README): Likewise. - * modules/pam_debug/Makefile.am (README): Likewise. - * modules/pam_deny/Makefile.am (README): Likewise. - * modules/pam_echo/Makefile.am (README): Likewise. - * modules/pam_env/Makefile.am (README): Likewise. - * modules/pam_exec/Makefile.am (README): Likewise. - * modules/pam_faildelay/Makefile.am (README): Likewise. - * modules/pam_filter/Makefile.am (README): Likewise. - * modules/pam_ftp/Makefile.am (README): Likewise. - * modules/pam_group/Makefile.am (README): Likewise. - * modules/pam_issue/Makefile.am (README): Likewise. - * modules/pam_keyinit/Makefile.am (README): Likewise. - * modules/pam_lastlog/Makefile.am (README): Likewise. - * modules/pam_limits/Makefile.am (README): Likewise. - * modules/pam_listfile/Makefile.am (README): Likewise. - * modules/pam_localuser/Makefile.am (README): Likewise. - * modules/pam_loginuid/Makefile.am (README): Likewise. - * modules/pam_mail/Makefile.am (README): Likewise. - * modules/pam_mkhomedir/Makefile.am (README): Likewise. - * modules/pam_motd/Makefile.am (README): Likewise. - * modules/pam_namespace/Makefile.am (README): Likewise. - * modules/pam_nologin/Makefile.am (README): Likewise. - * modules/pam_permit/Makefile.am (README): Likewise. - * modules/pam_pwhistory/Makefile.am (README): Likewise. - * modules/pam_rhosts/Makefile.am (README): Likewise. - * modules/pam_rootok/Makefile.am (README): Likewise. - * modules/pam_securetty/Makefile.am (README): Likewise. - * modules/pam_selinux/Makefile.am (README): Likewise. - * modules/pam_sepermit/Makefile.am (README): Likewise. - * modules/pam_setquota/Makefile.am (README): Likewise. - * modules/pam_shells/Makefile.am (README): Likewise. - * modules/pam_succeed_if/Makefile.am (README): Likewise. - * modules/pam_tally/Makefile.am (README): Likewise. - * modules/pam_tally2/Makefile.am (README): Likewise. - * modules/pam_time/Makefile.am (README): Likewise. - * modules/pam_timestamp/Makefile.am (README): Likewise. - * modules/pam_tty_audit/Makefile.am (README): Likewise. - * modules/pam_umask/Makefile.am (README): Likewise. - * modules/pam_unix/Makefile.am (README): Likewise. - * modules/pam_userdb/Makefile.am (README): Likewise. - * modules/pam_usertype/Makefile.am (README): Likewise. - * modules/pam_warn/Makefile.am (README): Likewise. - * modules/pam_wheel/Makefile.am (README): Likewise. - * modules/pam_xauth/Makefile.am (README): Likewise. - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: list prerequisites of README target uniformly. - There is no need to list prerequisites of README targets manually as - all README targets depend on $(XMLS). - - The change is performed automatically using the following script: - sed -i 's/^README: pam_.*/README: $(XMLS)/' modules/*/Makefile.am - - * modules/pam_access/Makefile.am (README): Replace pam_access.8.xml - and access.conf.5.xml with $(XMLS). - * modules/pam_cracklib/Makefile.am (README): Replace pam_cracklib.8.xml - with $(XMLS). - * modules/pam_debug/Makefile.am (README): Replace pam_debug.8.xml - with $(XMLS). - * modules/pam_deny/Makefile.am (README): Replace pam_deny.8.xml - with $(XMLS). - * modules/pam_echo/Makefile.am (README): Replace pam_echo.8.xml - with $(XMLS). - * modules/pam_env/Makefile.am (README): Replace pam_env.8.xml and - pam_env.conf.5.xml with $(XMLS). - * modules/pam_exec/Makefile.am (README): Replace pam_exec.8.xml - with $(XMLS). - * modules/pam_faildelay/Makefile.am (README): Replace - pam_faildelay.8.xml with $(XMLS). - * modules/pam_filter/Makefile.am (README): Replace pam_filter.8.xml - with $(XMLS). - * modules/pam_ftp/Makefile.am (README): Replace pam_ftp.8.xml with - $(XMLS). - * modules/pam_group/Makefile.am (README): Replace pam_group.8.xml - and group.conf.5.xml with $(XMLS). - * modules/pam_issue/Makefile.am (README): Replace pam_issue.8.xml - with $(XMLS). - * modules/pam_keyinit/Makefile.am (README): Replace pam_keyinit.8.xml - with $(XMLS). - * modules/pam_lastlog/Makefile.am (README): Replace pam_lastlog.8.xml - with $(XMLS). - * modules/pam_limits/Makefile.am (README): Replace pam_limits.8.xml - and limits.conf.5.xml with $(XMLS). - * modules/pam_listfile/Makefile.am (README): Replace pam_listfile.8.xml - with $(XMLS). - * modules/pam_localuser/Makefile.am (README): Replace - pam_localuser.8.xml with $(XMLS). - * modules/pam_loginuid/Makefile.am (README): Replace pam_loginuid.8.xml - with $(XMLS). - * modules/pam_mail/Makefile.am (README): Replace pam_mail.8.xml - with $(XMLS). - * modules/pam_mkhomedir/Makefile.am (README): Replace - pam_mkhomedir.8.xml with $(XMLS). - * modules/pam_motd/Makefile.am (README): Replace pam_motd.8.xml - with $(XMLS). - * modules/pam_namespace/Makefile.am (README): Replace - pam_namespace.8.xml, namespace.conf.5.xml, - and pam_namespace_helper.8.xml with $(XMLS). - * modules/pam_nologin/Makefile.am (README): Replace pam_nologin.8.xml - with $(XMLS). - * modules/pam_permit/Makefile.am (README): Replace pam_permit.8.xml - with $(XMLS). - * modules/pam_pwhistory/Makefile.am (README): Replace - pam_pwhistory.8.xml with $(XMLS). - * modules/pam_rhosts/Makefile.am (README): Replace pam_rhosts.8.xml - with $(XMLS). - * modules/pam_rootok/Makefile.am (README): Replace pam_rootok.8.xml - with $(XMLS). - * modules/pam_securetty/Makefile.am (README): Replace - pam_securetty.8.xml with $(XMLS). - * modules/pam_selinux/Makefile.am (README): Replace pam_selinux.8.xml - with $(XMLS). - * modules/pam_sepermit/Makefile.am (README): Replace pam_sepermit.8.xml - with $(XMLS). - * modules/pam_setquota/Makefile.am (README): Replace pam_setquota.8.xml - with $(XMLS). - * modules/pam_shells/Makefile.am (README): Replace pam_shells.8.xml - with $(XMLS). - * modules/pam_succeed_if/Makefile.am (README): Replace - pam_succeed_if.8.xml with $(XMLS). - * modules/pam_tally/Makefile.am (README): Replace pam_tally.8.xml - with $(XMLS). - * modules/pam_tally2/Makefile.am (README): Replace pam_tally2.8.xml - with $(XMLS). - * modules/pam_time/Makefile.am (README): Replace pam_time.8.xml and - time.conf.5.xml with $(XMLS). - * modules/pam_timestamp/Makefile.am (README): Replace - pam_timestamp.8.xml with $(XMLS). - * modules/pam_tty_audit/Makefile.am (README): Replace - pam_tty_audit.8.xml with $(XMLS). - * modules/pam_umask/Makefile.am (README): Replace pam_umask.8.xml - with $(XMLS). - * modules/pam_unix/Makefile.am (README): Replace pam_unix.8.xml - with $(XMLS). - * modules/pam_userdb/Makefile.am (README): Replace pam_userdb.8.xml - with $(XMLS). - * modules/pam_usertype/Makefile.am (README): Replace pam_usertype.8.xml - with $(XMLS). - * modules/pam_warn/Makefile.am (README): Replace pam_warn.8.xml - with $(XMLS). - * modules/pam_wheel/Makefile.am (README): Replace pam_wheel.8.xml - with $(XMLS). - * modules/pam_xauth/Makefile.am (README): Replace pam_xauth.8.xml - with $(XMLS). - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: list secureconf_DATA files in EXTRA_DIST uniformly - The change was prepared using the following script: - git grep -l secureconf_DATA modules/*/Makefile.am |while read m; do - t="$(sed '/^secureconf_DATA = /!d;s///;q' -- "$m")" - sed -i "/^EXTRA_DIST =/ s/\\<$t\\>/\$(secureconf_DATA)/" -- "$m" - done - - * modules/pam_access/Makefile.am (EXTRA_DIST): Replace access.conf with - $(secureconf_DATA). - * modules/pam_env/Makefile.am (EXTRA_DIST): Replace pam_env.conf with - $(secureconf_DATA). - * modules/pam_group/Makefile.am (EXTRA_DIST): Replace group.conf with - $(secureconf_DATA). - * modules/pam_limits/Makefile.am (EXTRA_DIST): Replace limits.conf with - $(secureconf_DATA). - * modules/pam_namespace/Makefile.am (EXTRA_DIST): Replace namespace.conf - with $(secureconf_DATA). - * modules/pam_sepermit/Makefile.am (EXTRA_DIST): Replace sepermit.conf - with $(secureconf_DATA). - * modules/pam_time/Makefile.am (EXTRA_DIST): Replace time.conf with - $(secureconf_DATA). - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: list manual pages in EXTRA_DIST uniformly. - List in EXTRA_DIST those manual pages that are listed in man_MANS - as $(MANS). - - * modules/pam_cracklib/Makefile.am (EXTRA_DIST): Replace pam_cracklib.8 - with $(MANS). - * modules/pam_keyinit/Makefile.am (EXTRA_DIST): Replace pam_keyinit.8 - with $(MANS). - * modules/pam_selinux/Makefile.am (EXTRA_DIST): Replace pam_selinux.8 - with $(MANS). - * modules/pam_sepermit/Makefile.am (EXTRA_DIST): Replace pam_sepermit.8 - and sepermit.conf.5 with $(MANS). - * modules/pam_tty_audit/Makefile.am (EXTRA_DIST): Replace - pam_tty_audit.8 with $(MANS). - * modules/pam_userdb/Makefile.am (EXTRA_DIST): Replace pam_userdb.8 with - $(MANS). - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: list tests in EXTRA_DIST uniformly. - The change was prepared using the following script: - git grep -l '^TESTS = tst-pam_' modules/ |while read m; do - t="$(sed '/^TESTS = tst-pam_/!d;s/^TESTS = //;q' -- "$m")" - sed -i "/^EXTRA_DIST =/ s/$t\\>/\$(TESTS)/" -- "$m" - done - - * modules/pam_access/Makefile.am (EXTRA_DIST): Replace tst-pam_access - with $(TESTS). - * modules/pam_cracklib/Makefile.am (EXTRA_DIST): Replace - tst-pam_cracklib with $(TESTS). - * modules/pam_debug/Makefile.am (EXTRA_DIST): Replace tst-pam_debug with - $(TESTS). - * modules/pam_deny/Makefile.am (EXTRA_DIST): Replace tst-pam_deny with - $(TESTS). - * modules/pam_echo/Makefile.am (EXTRA_DIST): Replace tst-pam_echo with - $(TESTS). - * modules/pam_env/Makefile.am (EXTRA_DIST): Replace tst-pam_env with - $(TESTS). - * modules/pam_exec/Makefile.am (EXTRA_DIST): Replace tst-pam_exec with - $(TESTS). - * modules/pam_faildelay/Makefile.am (EXTRA_DIST): Replace - tst-pam_faildelay with $(TESTS). - * modules/pam_filter/Makefile.am (EXTRA_DIST): Replace tst-pam_filter - with $(TESTS). - * modules/pam_ftp/Makefile.am (EXTRA_DIST): Replace tst-pam_ftp with - $(TESTS). - * modules/pam_group/Makefile.am (EXTRA_DIST): Replace tst-pam_group with - $(TESTS). - * modules/pam_issue/Makefile.am (EXTRA_DIST): Replace tst-pam_issue with - $(TESTS). - * modules/pam_keyinit/Makefile.am (EXTRA_DIST): Replace tst-pam_keyinit - with $(TESTS). - * modules/pam_lastlog/Makefile.am (EXTRA_DIST): Replace tst-pam_lastlog - with $(TESTS). - * modules/pam_limits/Makefile.am (EXTRA_DIST): Replace tst-pam_limits - with $(TESTS). - * modules/pam_listfile/Makefile.am (EXTRA_DIST): Replace - tst-pam_listfile with $(TESTS). - * modules/pam_localuser/Makefile.am (EXTRA_DIST): Replace - tst-pam_localuser with $(TESTS). - * modules/pam_loginuid/Makefile.am (EXTRA_DIST): Replace - tst-pam_loginuid with $(TESTS). - * modules/pam_mail/Makefile.am (EXTRA_DIST): Replace tst-pam_mail with - $(TESTS). - * modules/pam_mkhomedir/Makefile.am (EXTRA_DIST): Replace - tst-pam_mkhomedir with $(TESTS). - * modules/pam_motd/Makefile.am (EXTRA_DIST): Replace tst-pam_motd with - $(TESTS). - * modules/pam_namespace/Makefile.am (EXTRA_DIST): Replace - tst-pam_namespace with $(TESTS). - * modules/pam_nologin/Makefile.am (EXTRA_DIST): Replace tst-pam_nologin - with $(TESTS). - * modules/pam_permit/Makefile.am (EXTRA_DIST): Replace tst-pam_permit - with $(TESTS). - * modules/pam_pwhistory/Makefile.am (EXTRA_DIST): Replace - tst-pam_pwhistory with $(TESTS). - * modules/pam_rhosts/Makefile.am (EXTRA_DIST): Replace tst-pam_rhosts - with $(TESTS). - * modules/pam_rootok/Makefile.am (EXTRA_DIST): Replace tst-pam_rootok - with $(TESTS). - * modules/pam_securetty/Makefile.am (EXTRA_DIST): Replace - tst-pam_securetty with $(TESTS). - * modules/pam_sepermit/Makefile.am (EXTRA_DIST): Replace - tst-pam_sepermit with $(TESTS). - * modules/pam_setquota/Makefile.am (EXTRA_DIST): Replace - tst-pam_setquota with $(TESTS). - * modules/pam_shells/Makefile.am (EXTRA_DIST): Replace tst-pam_shells - with $(TESTS). - * modules/pam_stress/Makefile.am (EXTRA_DIST): Replace tst-pam_stress - with $(TESTS). - * modules/pam_succeed_if/Makefile.am (EXTRA_DIST): Replace - tst-pam_succeed_if with $(TESTS). - * modules/pam_tally/Makefile.am (EXTRA_DIST): Replace tst-pam_tally with - $(TESTS). - * modules/pam_tally2/Makefile.am (EXTRA_DIST): Replace tst-pam_tally2 - with $(TESTS). - * modules/pam_time/Makefile.am (EXTRA_DIST): Replace tst-pam_time with - $(TESTS). - * modules/pam_tty_audit/Makefile.am (EXTRA_DIST): Replace - tst-pam_tty_audit with $(TESTS). - * modules/pam_umask/Makefile.am (EXTRA_DIST): Replace tst-pam_umask with - $(TESTS). - * modules/pam_userdb/Makefile.am (EXTRA_DIST): Replace tst-pam_userdb - with $(TESTS). - * modules/pam_usertype/Makefile.am (EXTRA_DIST): Replace - tst-pam_usertype with $(TESTS). - * modules/pam_warn/Makefile.am (EXTRA_DIST): Replace tst-pam_warn with - $(TESTS). - * modules/pam_wheel/Makefile.am (EXTRA_DIST): Replace tst-pam_wheel with - $(TESTS). - * modules/pam_xauth/Makefile.am (EXTRA_DIST): Replace tst-pam_xauth with - $(TESTS). - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - pam_namespace: simplify distribution of manual pages. - * modules/pam_namespace/Makefile.am: Merge MAN5 and MAN8 into man_MANS. - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - modules/*/Makefile.am: remove manual pages from noinst_DATA. - Manual pages already belong to man_MANS, listing them also - in noinst_DATA does not help in any way. - - * modules/pam_cracklib/Makefile.am (noinst_DATA): Remove pam_cracklib.8. - * modules/pam_selinux/Makefile.am (noinst_DATA): Remove pam_selinux.8. - * modules/pam_sepermit/Makefile.am (noinst_DATA): Remove pam_sepermit.8 - and sepermit.conf.5. - * modules/pam_userdb/Makefile.am (noinst_DATA): Remove pam_userdb.8. - -2020-04-27 Dmitry V. Levin <ldv@altlinux.org> - - configure: fix dlopen check. - * configure.ac: Check for the library providing dlopen using - AC_SEARCH_LIBS instead of AC_CHECK_LIB to handle the case when - dlopen is a part of libc. - - configure: add --disable-tally and --disable-tally2 options. - * configure.ac (AC_ARG_ENABLE): Add tally and tally2. - (AM_CONDITIONAL): Add COND_BUILD_PAM_TALLY and COND_BUILD_PAM_TALLY2. - * modules/Makefile.am [COND_BUILD_PAM_TALLY] (MAYBE_PAM_TALLY): Define. - [COND_BUILD_PAM_TALLY2] (MAYBE_PAM_TALLY2): Likewise. - (SUBDIRS): Replace pam_tally with $(COND_BUILD_PAM_TALLY), pam_tally2 - with $(COND_BUILD_PAM_TALLY2). - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - build: move pam_selinux and pam_sepermit build conditions to modules/Makefile.am - * configure.ac (AM_CONDITIONAL): Replace HAVE_LIBSELINUX with - COND_BUILD_PAM_SELINUX and COND_BUILD_PAM_SEPERMIT. - * modules/Makefile.am [COND_BUILD_PAM_SELINUX] (MAYBE_PAM_SELINUX): - Define. - [COND_BUILD_PAM_SEPERMIT] (MAYBE_PAM_SEPERMIT): Likewise. - (SUBDIRS): Replace pam_selinux with $(MAYBE_PAM_SELINUX), - pam_sepermit with MAYBE_PAM_SEPERMIT. - * modules/pam_selinux/Makefile.am: Assume HAVE_LIBSELINUX. - * modules/pam_sepermit/Makefile.am: Likewise. - - build: simplify the check for unshare function. - * configure.ac (AC_CHECK_FUNCS): Do not set UNSHARE when checking for - unshare function. - (COND_BUILD_PAM_NAMESPACE): Check for $ac_cv_func_unshare instead of - $UNSHARE. - - build: move pam_namespace build condition to modules/Makefile.am. - * configure.ac (AM_CONDITIONAL): Replace HAVE_UNSHARE with - COND_BUILD_PAM_NAMESPACE. - * modules/Makefile.am [COND_BUILD_PAM_NAMESPACE] (MAYBE_PAM_NAMESPACE): - Define. - (SUBDIRS): Replace pam_namespace with $(MAYBE_PAM_NAMESPACE). - * modules/pam_namespace/Makefile.am: Assume HAVE_UNSHARE. - - build: move pam_userdb build condition to modules/Makefile.am. - * configure.ac (AM_CONDITIONAL): Replace HAVE_LIBDB with - COND_BUILD_PAM_USERDB. - * modules/Makefile.am [COND_BUILD_PAM_USERDB] (MAYBE_PAM_USERDB): - Define. - (SUBDIRS): Replace pam_userdb with $(MAYBE_PAM_USERDB). - * modules/pam_userdb/Makefile.am: Assume HAVE_LIBDB. - - build: remove unused HAVE_LIBCRACK. - * configure.ac (AC_DEFINE): Remove unused HAVE_LIBCRACK. - - build: move pam_cracklib build condition to modules/Makefile.am. - * configure.ac (AM_CONDITIONAL): Replace HAVE_LIBCRACK with - COND_BUILD_PAM_CRACKLIB. - * modules/Makefile.am [COND_BUILD_PAM_CRACKLIB] (MAYBE_PAM_CRACKLIB): - Define. - (SUBDIRS): Replace pam_cracklib with $(MAYBE_PAM_CRACKLIB). - * modules/pam_cracklib/Makefile.am: Assume HAVE_LIBCRACK. - - build: remove unused HAVE_KEY_MANAGEMENT. - * configure.ac (AC_DEFINE, AC_SUBST): Remove unused HAVE_KEY_MANAGEMENT. - (AC_CHECK_DECL): Remove unused ENOKEY. - - build: move pam_keyinit build condition to modules/Makefile.am. - * configure.ac (AM_CONDITIONAL): Replace HAVE_KEY_MANAGEMENT with - COND_BUILD_PAM_KEYINIT. - * modules/Makefile.am [COND_BUILD_PAM_KEYINIT] (MAYBE_PAM_KEYINIT): - Define. - (SUBDIRS): Replace pam_keyinit with $(MAYBE_PAM_KEYINIT). - * modules/pam_keyinit/Makefile.am: Assume HAVE_KEY_MANAGEMENT. - - build: remove unused AC_DEFINE([HAVE_AUDIT_TTY_STATUS]) - * configure.ac (AC_DEFINE): Remove unused HAVE_AUDIT_TTY_STATUS. - - build: move pam_tty_audit build condition to modules/Makefile.am. - * configure.ac (AM_CONDITIONAL): Replace HAVE_AUDIT_TTY_STATUS with - COND_BUILD_PAM_TTY_AUDIT. - * modules/Makefile.am [COND_BUILD_PAM_TTY_AUDIT] (MAYBE_PAM_TTY_AUDIT): - Define. - (SUBDIRS): Replace pam_tty_audit with $(MAYBE_PAM_TTY_AUDIT). - * modules/pam_tty_audit/Makefile.am: Assume HAVE_AUDIT_TTY_STATUS. - - configure.ac: sort COND_BUILD_* conditionals. - ... and move them closer to the end of configure.ac. - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - modules/Makefile.am: sort SUBDIRS. - Also list one element of SUBDIRS per line for the ease of maintenance. - - * modules/Makefile.am (SUBDIRS): List one per line, sort. - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - ci: add gcc-10 jobs. - * .github/workflows/ci.yml (gcc10-x86_64, gcc10-x86, gcc10-x32): - New jobs. - * .travis.yml (matrix): Add gcc-10 jobs on x86_64, x86, x32, - and ppc64le. - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_issue: fix potential read out of bounds. - Reported by gcc-10 -Warray-bounds: - - In file included from /usr/include/string.h:494, - from modules/pam_issue/pam_issue.c:19: - In function 'strncat', - inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:197:3: - /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [260, 389] from the object at 'uts' is out of the bounds of referenced subobject 'version' with type 'char[65]' at offset 195 [-Werror=array-bounds] - 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - In file included from modules/pam_issue/pam_issue.c:26: - modules/pam_issue/pam_issue.c: In function 'read_issue_quoted': - /usr/include/x86_64-linux-gnu/sys/utsname.h:59:10: note: subobject 'version' declared here - 59 | char version[_UTSNAME_VERSION_LENGTH]; - | ^~~~~~~ - In file included from /usr/include/string.h:494, - from modules/pam_issue/pam_issue.c:19: - In function 'strncat', - inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:188:3: - /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [65, 389] from the object at 'uts' is out of the bounds of referenced subobject 'sysname' with type 'char[65]' at offset 0 [-Werror=array-bounds] - 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - In file included from modules/pam_issue/pam_issue.c:26: - modules/pam_issue/pam_issue.c: In function 'read_issue_quoted': - /usr/include/x86_64-linux-gnu/sys/utsname.h:51:10: note: subobject 'sysname' declared here - 51 | char sysname[_UTSNAME_SYSNAME_LENGTH]; - | ^~~~~~~ - In file included from /usr/include/string.h:494, - from modules/pam_issue/pam_issue.c:19: - In function 'strncat', - inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:194:3: - /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [195, 389] from the object at 'uts' is out of the bounds of referenced subobject 'release' with type 'char[65]' at offset 130 [-Werror=array-bounds] - 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - In file included from modules/pam_issue/pam_issue.c:26: - modules/pam_issue/pam_issue.c: In function 'read_issue_quoted': - /usr/include/x86_64-linux-gnu/sys/utsname.h:57:10: note: subobject 'release' declared here - 57 | char release[_UTSNAME_RELEASE_LENGTH]; - | ^~~~~~~ - In file included from /usr/include/string.h:494, - from modules/pam_issue/pam_issue.c:19: - In function 'strncat', - inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:191:3: - /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [130, 389] from the object at 'uts' is out of the bounds of referenced subobject 'nodename' with type 'char[65]' at offset 65 [-Werror=array-bounds] - 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - In file included from modules/pam_issue/pam_issue.c:26: - modules/pam_issue/pam_issue.c: In function 'read_issue_quoted': - /usr/include/x86_64-linux-gnu/sys/utsname.h:54:10: note: subobject 'nodename' declared here - 54 | char nodename[_UTSNAME_NODENAME_LENGTH]; - | ^~~~~~~~ - In file included from /usr/include/string.h:494, - from modules/pam_issue/pam_issue.c:19: - In function 'strncat', - inlined from 'read_issue_quoted' at modules/pam_issue/pam_issue.c:200:3: - /usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: error: '__builtin___strncat_chk' offset [325, 389] from the object at 'uts' is out of the bounds of referenced subobject 'machine' with type 'char[65]' at offset 260 [-Werror=array-bounds] - 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - In file included from modules/pam_issue/pam_issue.c:26: - modules/pam_issue/pam_issue.c: In function 'read_issue_quoted': - /usr/include/x86_64-linux-gnu/sys/utsname.h:62:10: note: subobject 'machine' declared here - 62 | char machine[_UTSNAME_MACHINE_LENGTH]; - | ^~~~~~~ - - * modules/pam_issue/pam_issue.c (read_issue_quoted): Rewrite to avoid - strncat from potentially not null-terminated string buffer fields - of struct utsname. - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_motd: fix NULL dereference when at least one of motd directories is not available - * modules/pam_motd/pam_motd.c - (try_to_display_directories_with_overrides): Do not assign -1U to - dirscans_sizes[i] when scandir(motd_dir_path_split[i]) returns an error. - - Resolves: https://bugzilla.altlinux.org/38389 - Fixes: d57ab221 ("pam_motd: Cleanup the code and avoid unnecessary logging") - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_motd: cleanup calloc invocations. - Apply the following calloc invocation idiom: - ptr = calloc(nmemb, sizeof(*ptr)); - - * modules/pam_motd/pam_motd.c (pam_split_string, - try_to_display_directories_with_overrides): Cleanup calloc invocations. - - Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)") - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_motd: fix NULL dereference on error path. - * modules/pam_motd/pam_motd.c - (try_to_display_directories_with_overrides): Do not access - elements of dirscans_sizes array if dirscans_sizes == NULL - due to an earlier memory allocation error. - - Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)") - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_motd: remove redundant return statement. - * modules/pam_motd/pam_motd.c - (try_to_display_directories_with_overrides): Remove return statement - at the end of the function returning void. - - Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)") - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_motd: remove redundant prefix from syslog messages. - pam_syslog already does all the prefixing we need. - - * modules/pam_motd/pam_motd.c (pam_split_string, - try_to_display_directories_with_overrides): Remove "pam_motd: " prefix - from strings passed to pam_syslog. - - Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)") - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_motd: fix memory leak. - pam_motd used to leak memory allocated for each motd file - successfully opened in try_to_display_directories_with_overrides. - - * modules/pam_motd/pam_motd.c - (try_to_display_directories_with_overrides): Free abs_path. - - Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)") - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_motd: fix misleading error diagnostics. - Do not invoke calloc with the first argument equal to zero as the return - value can be NULL which is undistinguishable from memory allocation - error. - - * modules/pam_motd/pam_motd.c - (try_to_display_directories_with_overrides): Skip if there are no - directory entries (dirscans_size_total == 0). - - Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)") - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_motd: do not zero the memory allocated by calloc. - As dirnames_all is allocated with calloc, zeroing it out is pointless. - - * modules/pam_motd/pam_motd.c - (try_to_display_directories_with_overrides): Remove redundant zeroing - of dirnames_all. - - Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)") - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - build: cleanup: do not add -DWITH_SELINUX to CFLAGS. - As WITH_SELINUX is already AC_DEFINE'd in configure.ac, - there is no point in adding -DWITH_SELINUX to CFLAGS. - - * libpam/Makefile.am [HAVE_LIBSELINUX] (AM_CFLAGS): Do not add - -DWITH_SELINUX. - * modules/pam_rootok/Makefile.am: Likewise. - * modules/pam_unix/Makefile.am: Likewise. - -2020-04-26 Dmitry V. Levin <ldv@altlinux.org> - - build: cleanup: replace "test ! -z" with "test -n" - * configure.ac: replace "test ! -z" with "test -n". - -2020-04-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_filter: fix potential off-by-one heap buffer overflow. - Reported by gcc-10 -Wstringop-overflow: - - In file included from /usr/include/string.h:494, - from modules/pam_filter/pam_filter.c:14: - In function 'strcpy', - inlined from 'process_args' at modules/pam_filter/pam_filter.c:137:2, - inlined from 'need_a_filter.isra' at modules/pam_filter/pam_filter.c:618:12: - /usr/include/x86_64-linux-gnu/bits/string_fortified.h:90:10: warning: '__builtin_memcpy' writing 6 bytes into a region of size 5 [-Wstringop-overflow=] - 90 | return __builtin___strcpy_chk (__dest, __src, __bos (__dest)); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - modules/pam_filter/pam_filter.c: In function 'need_a_filter.isra': - modules/pam_filter/pam_filter.c:128:21: note: at offset 0 to an object with size 5 allocated by 'malloc' here - 128 | levp[0] = (char *) malloc(size); - | ^~~~~~~~~~~~ - - * modules/pam_filter/pam_filter.c (process_args): Fix off-by-one heap - buffer overflow in case of a filter without arguments (argc == 0). - -2020-04-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_setquota: remove PAM_EXTERN and PAM_STATIC parts. - In other modules they were removed by commit Linux-PAM-1.3.0~14. - - * modules/pam_setquota/pam_setquota.c: Remove PAM_EXTERN and PAM_STATIC - parts. - -2020-04-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_setquota: fix more harmless compilation warnings. - On ppc64le the compiler complains with the following diagnostics: - - pam_setquota.c: In function 'debug': - pam_setquota.c:48:59: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 6 has type '__u64' {aka 'const long unsigned int'} [-Wformat=] - 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu " - | ~~~^ - | | - | long long unsigned int - | %lu - ...... - 51 | p->dqb_bsoftlimit, p->dqb_bhardlimit, - | ~~~~~~~~~~~~~~~~~ - | | - | __u64 {aka const long unsigned int} - pam_setquota.c:48:75: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 7 has type '__u64' {aka 'const long unsigned int'} [-Wformat=] - 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu " - | ~~~^ - | | - | long long unsigned int - | %lu - ...... - 51 | p->dqb_bsoftlimit, p->dqb_bhardlimit, - | ~~~~~~~~~~~~~~~~~ - | | - | __u64 {aka const long unsigned int} - pam_setquota.c:48:31: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 8 has type '__u64' {aka 'const long unsigned int'} [-Wformat=] - 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu " - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ...... - 52 | p->dqb_isoftlimit, p->dqb_ihardlimit, - | ~~~~~~~~~~~~~~~~~ - | | - | __u64 {aka const long unsigned int} - pam_setquota.c:49:46: note: format string is defined here - 49 | "isoftlimit=%llu ihardlimit=%llu btime=%llu itime=%llu", - | ~~~^ - | | - | long long unsigned int - | %lu - pam_setquota.c:48:31: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 9 has type '__u64' {aka 'const long unsigned int'} [-Wformat=] - 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu " - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ...... - 52 | p->dqb_isoftlimit, p->dqb_ihardlimit, - | ~~~~~~~~~~~~~~~~~ - | | - | __u64 {aka const long unsigned int} - pam_setquota.c:49:62: note: format string is defined here - 49 | "isoftlimit=%llu ihardlimit=%llu btime=%llu itime=%llu", - | ~~~^ - | | - | long long unsigned int - | %lu - pam_setquota.c:48:31: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 10 has type '__u64' {aka 'const long unsigned int'} [-Wformat=] - 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu " - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ...... - 53 | p->dqb_btime, p->dqb_itime); - | ~~~~~~~~~~~~ - | | - | __u64 {aka const long unsigned int} - pam_setquota.c:49:73: note: format string is defined here - 49 | "isoftlimit=%llu ihardlimit=%llu btime=%llu itime=%llu", - | ~~~^ - | | - | long long unsigned int - | %lu - pam_setquota.c:48:31: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 11 has type '__u64' {aka 'const long unsigned int'} [-Wformat=] - 48 | pam_syslog(pamh, LOG_DEBUG, "%s device=%s bsoftlimit=%llu bhardlimit=%llu " - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ...... - 53 | p->dqb_btime, p->dqb_itime); - | ~~~~~~~~~~~~ - | | - | __u64 {aka const long unsigned int} - pam_setquota.c:49:84: note: format string is defined here - 49 | "isoftlimit=%llu ihardlimit=%llu btime=%llu itime=%llu", - | ~~~^ - | | - | long long unsigned int - | %lu - - * modules/pam_setquota/pam_setquota.c (debug): Cast fields of type __u64 - to unsigned long long. - -2020-04-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_timestamp: include "config.h" in hmacsha1.c as the first header. - This ensures "config.h" is included before any system header - which fixes the following bug reported by ALT diagnostics: - - verify-elf: ERROR: ./lib/security/pam_timestamp.so: uses non-LFS functions: __fxstat open - - * modules/pam_timestamp/hmacsha1.c: Include "config.h". - -2020-04-24 Dmitry V. Levin <ldv@altlinux.org> - - libpamc.h: include "config.h" as the first header. - This ensures "config.h" is included before any system header included by - libpamc.h, which fixes the following bug reported by ALT diagnostics: - - verify-elf: ERROR: ./lib/libpamc.so.0.82.1: uses non-LFS functions: __xstat readdir - - * libpamc/libpamc.h: Include "config.h". - -2020-04-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_setquota: apply WARN_CFLAGS. - All other modules already build with WARN_CFLAGS. - - * modules/pam_setquota/Makefile.am (AM_CFLAGS): Add $(WARN_CFLAGS). - -2020-04-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_setquota: fix harmless compilation warnings. - Fix -Wunused-variable compilation warnings: - - pam_setquota.c: In function 'pam_sm_open_session': - pam_setquota.c:173:9: warning: unused variable 'ep' [-Wunused-variable] - 173 | char *ep, *val, *mntdevice = NULL; - | ^~ - pam_setquota.c:172:17: warning: unused variable 'ul' [-Wunused-variable] - 172 | unsigned long ul; - | ^~ - - Fix -Wunused-parameter compilation warnings: - - pam_setquota.c: In function 'pam_sm_open_session': - pam_setquota.c:169:60: warning: unused parameter 'flags' [-Wunused-parameter] - 169 | PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, - | ~~~~^~~~~ - pam_setquota.c: In function 'pam_sm_close_session': - pam_setquota.c:382:40: warning: unused parameter 'pamh' [-Wunused-parameter] - 382 | int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, - | ~~~~~~~~~~~~~~^~~~ - pam_setquota.c:382:50: warning: unused parameter 'flags' [-Wunused-parameter] - 382 | int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, - | ~~~~^~~~~ - pam_setquota.c:382:61: warning: unused parameter 'argc' [-Wunused-parameter] - 382 | int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, - | ~~~~^~~~ - pam_setquota.c:383:39: warning: unused parameter 'argv' [-Wunused-parameter] - 383 | const char **argv) { - | ~~~~~~~~~~~~~^~~~ - - * modules/pam_setquota/pam_setquota.c (pam_sm_open_session): Mark - 'flags' parameter as unused. Remove unused 'ep' and 'ul' variables. - (pam_sm_close_session): Mark all parameters as unused. - -2020-04-18 Oğuz Ersen <oguzersen@protonmail.com> - - Translated using Weblate (Turkish) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/ - Resolves: https://github.com/linux-pam/linux-pam/pull/214 - -2020-04-17 Sven Hartge <sven@svenhartge.de> - - pam_setquota: new module to set or modify disk quotas on session start. - This makes disk quotas usable with central user databases, such as MySQL or - LDAP. - - Resolves: https://github.com/linux-pam/linux-pam/issues/92 - -2020-04-15 Dmitry V. Levin <ldv@altlinux.org> - - pam_access, pam_issue: do not assume that getdomainname always exists. - * modules/pam_access/pam_access.c (netgroup_match): Place the code - that calls getdomainname under HAVE_GETDOMAINNAME guard. - * modules/pam_issue/pam_issue.c (read_issue_quoted): Likewise. - - Resolves: https://github.com/linux-pam/linux-pam/issues/43 - -2020-04-13 Oğuz Ersen <oguzersen@protonmail.com> - - Translated using Weblate (Turkish) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/ - -2020-04-13 Ankit Behera <proneon267@gmail.com> - - Translated using Weblate (Odia) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/or/ - -2020-04-12 Topi Miettinen <toiwoton@gmail.com> - - pam_unix: modernize example in manual page. - According to crypt(5), md5 should not be used for new hashes. Let's - give a modern example with yescrypt. - -2020-04-10 Robert Antoni Buj Gelonch <robert.buj@gmail.com> - - Translated using Weblate (Catalan) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ca/ - Resolves: https://github.com/linux-pam/linux-pam/pull/207 - -2020-04-07 Dmitry V. Levin <ldv@altlinux.org> - - travis: remove faulty jobs. - * .travis.yml: Remove faulty gcc-9 jobs on aarch64 and s390x, - gcc-9 became uninstallable on these platforms several days ago - and hasn't been fixed yet. - -2020-04-07 Lucas Ramage <oxr463@gmx.us> - - pam_access: add an example of using groups in access.conf to permit access - Resolves: https://github.com/linux-pam/linux-pam/issues/65 - Resolves: https://github.com/linux-pam/linux-pam/pull/199 - -2020-04-07 Dmitry V. Levin <ldv@altlinux.org> - - github: add CI action. - Somewhat similar to Travis CI, this runs "make distcheck" on Ubuntu - 18.04 using gcc-9, gcc-8, gcc, clang-9, clang-8, and clang on x86_64, - x86, and x32 architectures. - - Compared with Travis CI, GitHub Actions service currently provides - a significantly better parallelism as well as (unsurprisingly) - better integration with github. - - However, GitHub Actions cannot replace Travis CI completely yet as - the latter can build on aarch64, s390x, and ppc64le architectures. - - * .github/workflows/whitespace-errors-check.yml: Remove - * .github/workflows/ci.yml: New file. - -2020-04-07 scootergrisen <scootergrisen@gmail.com> - - Translated using Weblate (Danish) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/ - -2020-04-07 scootergrisen <scootergrisen@gmail.com> - - Translated using Weblate (Danish) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/da/ - -2020-03-31 Petr Lautrbach <plautrba@redhat.com> - - pam_timestamp: Fix // in TIMESTAMPDIR. - _PATH_VARRUN already provides trailing slash for building paths - - Fixes: - $ strings /usr/lib64/security/pam_timestamp.so | grep /run/ - /var/run//pam_timestamp - /var/run//pam_timestamp/_pam_timestamp_key - -2020-03-30 James Ralston <ralston@pobox.com> - - pam_unix: Return PAM_AUTHINFO_UNAVAIL when appropriate. - The pam_unix.so will never return PAM_AUTHINFO_UNAVAIL on systems - that use the unix_chkpwd helper. - - The reason is that in unix_chkpwd.c, towards the end of main(), if - helper_verify_password() does not return PAM_SUCCESS, main() ignores - the actual error that helper_verify_password() returned and instead - returns PAM_AUTH_ERR. - - This commit corrects this behavior. Specifically, if - helper_verify_password() returns PAM_USER_UNKNOWN, which it does - when /etc/passwd entry indicates that shadow information is present - but the /etc/shadow entry is missing, the unix_chkpwd now exits - with PAM_AUTHINFO_UNAVAIL. For any other error from - helper_verify_password(), unix_chkpwd continues to exit with - PAM_AUTH_ERR. - - * modules/pam_unix/unix_chkpwd.c (main): Return PAM_AUTHINFO_UNAVAIL - when helper_verify_password() returns PAM_USER_UNKNOWN. - -2020-03-28 Dmitry V. Levin <ldv@altlinux.org> - - Fix various typos found using codespell tool. - - po: semi-automatically fix translations of pam_get_authtok default prompts - Complements: 4daceedd ("pam_get_authtok: fix i18n of default prompts") - -2020-03-24 Dmitry V. Levin <ldv@altlinux.org> - - _pam_load_module: reduce redundancy. - * libpam/pam_handlers.c (_pam_load_module): Reorganize $ISA handling - to reduce redundancy. - - Resolves: https://github.com/linux-pam/linux-pam/pull/198 - -2020-03-24 blueskycs2c <lili.ding@cs2c.com> - - pam_time: add conffile option to specify an alternative configuration file - Resolves: https://github.com/linux-pam/linux-pam/pull/163 - Resolves: https://github.com/linux-pam/linux-pam/pull/191 - -2020-03-23 Alexander Zubkov <green@qrator.net> - - pam_exec: require user name to be ready for the command. - pam_exec module can be called when a user name has not been prompted - yet. And thus the command is called without a user name available. - This fix asks PAM for the user name to ensure it is ready or to force - the prompt. - - Resolves: https://github.com/linux-pam/linux-pam/issues/131 - Resolves: https://github.com/linux-pam/linux-pam/pull/195 - -2020-03-23 Christian Göttsche <cgzones@googlemail.com> - - pam_selinux: fall back to log to syslog if audit logging fails. - Resolves: https://github.com/linux-pam/linux-pam/pull/194 - - pam_selinux: sanitize asprintf argument on failure. - - pam_selinux: print additional information on failures. - - pam_selinux: convert send_audit_message to void function. - The result is nowhere checked and other logging functions like - pam_syslog are also not checked. - - pam_selinux: fix indentation. - -2020-03-23 Christian Göttsche <cgzones@googlemail.com> - - pam_selinux: substitute legacy security_context_t type. - `security_context_t` is a legacy typedef to `char *`, substitute all usage. - - See - https://github.com/SELinuxProject/selinux/commit/9eb9c9327563014ad6a807814e7975424642d5b9 - https://github.com/SELinuxProject/selinux/blob/f8c110c8a615eb640510eab39640a0957a6ba19c/libselinux/include/selinux/selinux.h#L16 - -2020-03-20 Jiri Grönroos <jiri.gronroos@iki.fi> - - Translated using Weblate (Finnish) - Currently translated at 90.8% (109 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fi/ - -2020-03-20 Dmitry V. Levin <ldv@altlinux.org> - - Translated using Weblate (Slovak) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sk/ - - Translated using Weblate (Czech) - - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/cs/ - - Translated using Weblate (French) - - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/ - -2020-03-20 Yuri Chornoivan <yurchor@ukr.net> - - Translated using Weblate (Ukrainian) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/ - -2020-03-20 Oğuz Ersen <oguzersen@protonmail.com> - - Translated using Weblate (Turkish) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/ - -2020-03-20 Geert Warrink <geert.warrink@onsnet.nu> - - Translated using Weblate (Dutch) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/ - -2020-03-20 Julien Humbert <julroy67@gmail.com> - - Translated using Weblate (French) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/ - -2020-03-20 Dmitry V. Levin <ldv@altlinux.org> - - Translated using Weblate (Russian) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/ - - Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/ - - Translated using Weblate (Portuguese) - - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt/ - - Translated using Weblate (German) - - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/ - -2020-03-20 Piotr Drąg <piotrdrag@gmail.com> - - Translated using Weblate (Polish) - Currently translated at 100.0% (120 of 120 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/ - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_userdb: use pam_str_skip_icase_prefix. - * modules/pam_userdb/pam_userdb.c: Include "pam_inline.h". - (_pam_parse, user_lookup): Use pam_str_skip_icase_prefix - instead of ugly strncasecmp invocations. - - modules/pam_umask: use pam_str_skip_icase_prefix. - * modules/pam_umask/pam_umask.c: Include "pam_inline.h". - (parse_option, setup_limits_from_gecos): Use pam_str_skip_icase_prefix - instead of ugly strncasecmp invocations. - - modules/pam_pwhistory: use pam_str_skip_icase_prefix. - * modules/pam_pwhistory/pam_pwhistory.c: Include "pam_inline.h". - (parse_option): Use pam_str_skip_icase_prefix instead of ugly - strncasecmp invocations. - - modules/pam_exec: use pam_str_skip_icase_prefix. - * modules/pam_exec/pam_exec.c (call_exec): Use pam_str_skip_icase_prefix - instead of ugly strncasecmp invocations. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - Introduce pam_str_skip_icase_prefix_len and pam_str_skip_icase_prefix. - Every time I see a code like - if (strncasecmp(argv, "remember=", 9) == 0) - options->remember = strtol(&argv[9], NULL, 10); - my eyes are bleeding. - - Similar to pam_str_skip_prefix_len() and pam_str_skip_prefix(), - introduce a new helper inline function pam_str_skip_icase_prefix_len() - and a new macro pam_str_skip_icase_prefix() on top of it, to be used - in subsequent commits to cleanup the ugliness. - - * libpam/include/pam_inline.h (pam_str_skip_icase_prefix_len): New - function. - (pam_str_skip_icase_prefix): New macro. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_xauth: use pam_str_skip_prefix. - * modules/pam_xauth/pam_xauth.c: Include "pam_inline.h". - (pam_sm_open_session, pam_sm_close_session): Use pam_str_skip_prefix - instead of ugly strncmp invocations. - - modules/pam_wheel: use pam_str_skip_prefix. - * modules/pam_wheel/pam_wheel.c: Include "pam_inline.h". - (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_unix: use pam_str_skip_prefix and pam_str_skip_prefix_len. - * modules/pam_unix/passverify.c: Include "pam_inline.h". - (verify_pwd_hash): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - * modules/pam_unix/support.c: Include "pam_inline.h". - (_set_ctrl): Use pam_str_skip_prefix_len instead of hardcoding string - lengths. - * modules/pam_unix/md5_crypt.c: Include "pam_inline.h". - (crypt_md5): Use pam_str_skip_prefix_len. - - squash! modules/pam_unix: use pam_str_skip_prefix and pam_str_skip_prefix_len - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_tty_audit: use pam_str_skip_prefix. - * modules/pam_tty_audit/pam_tty_audit.c: Include "pam_inline.h". - (pam_sm_open_session): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_timestamp: use pam_str_skip_prefix. - * modules/pam_timestamp/pam_timestamp.c: Include "pam_inline.h". - (check_tty, get_timestamp_name, pam_sm_authenticate): Use - pam_str_skip_prefix instead of ugly strncmp invocations. - - modules/pam_tally: use pam_str_skip_prefix. - * modules/pam_tally/pam_tally.c: Include "pam_inline.h". - (tally_parse_args, getopts): Use pam_str_skip_prefix instead of ugly - strncmp invocations. - - modules/pam_tally2: use pam_str_skip_prefix. - * modules/pam_tally2/pam_tally2.c: Include "pam_inline.h". - (tally_parse_args, getopts): Use pam_str_skip_prefix instead of ugly - strncmp invocations. - - modules/pam_selinux: use pam_str_skip_prefix. - * modules/pam_selinux/pam_selinux.c: Include "pam_inline.h". - (compute_exec_context, compute_tty_context): Use pam_str_skip_prefix - instead of ugly strncmp invocations. - - modules/pam_securetty: use pam_str_skip_prefix and pam_str_skip_prefix_len - * modules/pam_securetty/pam_securetty.c: Include "pam_inline.h". - (securetty_perform_check): Use pam_str_skip_prefix and - pam_str_skip_prefix_len instead of ugly strncmp invocations. - - modules/pam_rhosts: use pam_str_skip_prefix. - * modules/pam_rhosts/pam_rhosts.c: Include "pam_inline.h". - (pam_sm_authenticate): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_nologin: use pam_str_skip_prefix. - * modules/pam_nologin/pam_nologin.c: Include "pam_inline.h". - (parse_args): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_namespace: use pam_str_skip_prefix. - * modules/pam_namespace/pam_namespace.c (root_shared): Use - pam_str_skip_prefix instead of ugly strncmp invocations. - - modules/pam_motd: use pam_str_skip_prefix. - * modules/pam_motd/pam_motd.c: Include "pam_inline.h". - (pam_sm_open_session): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_mkhomedir: use pam_str_skip_prefix. - * modules/pam_mkhomedir/pam_mkhomedir.c: Include "pam_inline.h". - (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_mail: use pam_str_skip_prefix. - * modules/pam_mail/pam_mail.c: Include "pam_inline.h". - (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_localuser: use pam_str_skip_prefix. - * modules/pam_localuser/pam_localuser.c: Include "pam_inline.h". - (pam_sm_authenticate): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_listfile: use pam_str_skip_prefix. - * modules/pam_listfile/pam_listfile.c: Include "pam_inline.h". - (pam_sm_authenticate): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_limits: use pam_str_skip_prefix. - * modules/pam_limits/pam_limits.c: Include "pam_inline.h". - (_pam_parse, parse_kernel_limits): Use pam_str_skip_prefix instead of - ugly strncmp invocations. - - modules/pam_lastlog: use pam_str_skip_prefix. - * modules/pam_lastlog/pam_lastlog.c: Include "pam_inline.h". - (_pam_auth_parse, get_tty): Use pam_str_skip_prefix instead of ugly - strncmp invocations. - - modules/pam_issue: use pam_str_skip_prefix. - * modules/pam_issue/pam_issue.c: Include "pam_inline.h". - (pam_sm_authenticate, read_issue_quoted): Use pam_str_skip_prefix - instead of ugly strncmp invocations. - - modules/pam_ftp: use pam_str_skip_prefix. - * modules/pam_ftp/pam_ftp.c: Include "pam_inline.h". - (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp invocations. - - modules/pam_env: use pam_str_skip_prefix. - * modules/pam_env/pam_env.c: Include "pam_inline.h". - (_pam_parse, _parse_line): Use pam_str_skip_prefix instead of ugly - strncmp invocations. - - modules/pam_echo: use pam_str_skip_prefix. - * modules/pam_echo/pam_echo.c: Include "pam_inline.h". - (pam_echo): Use pam_str_skip_prefix instead of ugly strncmp invocations. - - modules/pam_cracklib: use pam_str_skip_prefix. - * modules/pam_cracklib/pam_cracklib.c: Include "pam_inline.h". - (_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp - invocations. - - modules/pam_access: use pam_str_skip_prefix. - * modules/pam_access/pam_access.c: Include "pam_inline.h". - (parse_args): Use pam_str_skip_prefix instead of ugly strncmp invocations. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - Introduce pam_str_skip_prefix_len and pam_str_skip_prefix. - Every time I see a code like - if (!strncmp(*argv,"user_readenv=",13)) - *user_readenv = atoi(13+*argv); - my eyes are bleeding. - - Introduce a new helper inline function pam_str_skip_prefix_len() and - a new macro pam_str_skip_prefix() on top of it, to be used in subsequent - commits to cleanup the ugliness. - - * libpam/include/pam_inline.h: Include <string.h>. - (pam_str_skip_prefix_len): New function. - (pam_str_skip_prefix): New macro. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - Use PAM_ARRAY_SIZE. - Replace all instances of sizeof(x) / sizeof(*x) with PAM_ARRAY_SIZE(x) - which is less error-prone and implements an additional type check. - - * libpam/pam_handlers.c: Include "pam_inline.h". - (_pam_open_config_file): Use PAM_ARRAY_SIZE. - * modules/pam_exec/pam_exec.c: Include "pam_inline.h". - (call_exec): Use PAM_ARRAY_SIZE. - * modules/pam_namespace/pam_namespace.c: Include "pam_inline.h". - (filter_mntopts): Use PAM_ARRAY_SIZE. - * modules/pam_timestamp/hmacfile.c: Include "pam_inline.h". - (testvectors): Use PAM_ARRAY_SIZE. - * modules/pam_xauth/pam_xauth.c: Include "pam_inline.h". - (run_coprocess, pam_sm_open_session): Use PAM_ARRAY_SIZE. - * tests/tst-pam_get_item.c: Include "pam_inline.h". - (main): Use PAM_ARRAY_SIZE. - * tests/tst-pam_set_item.c: Likewise. - * xtests/tst-pam_pwhistory1.c: Likewise. - * xtests/tst-pam_time1.c: Likewise. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - Introduce pam_inline.h. - Introduce a new internal header file for definitions of handly inline - functions and macros providing some convenient functionality to libpam - and its modules. - - * libpam/include/pam_cc_compat.h (PAM_SAME_TYPE): New macro. - * libpam/include/pam_inline.h: New file. - * libpam/Makefile.am (noinst_HEADERS): Add include/pam_inline.h. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_cracklib: fix parsing of options without arguments. - Prefix match for options without arguments such as use_first_pass - is not correct, there has to be an exact match for these options. - - * modules/pam_cracklib/pam_cracklib.c (_pam_parse): Fix parsing - of reject_username, gecoscheck, enforce_for_root, use_authtok, - use_first_pass, and try_first_pass options. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - ci: enable -Werror for all builds. - The main purpose of fixing all compilation warnings in the current code - base was to enable -Werror in CI builds so that no new warnings would - creep in. - - * ci/run-build-and-tests.sh (DISTCHECK_CONFIGURE_FLAGS): Add --enable-Werror. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - configure: implement --enable-Werror option. - When configure is invoked with --enable-Werror option, - -Werror compiler option is added to WARN_CFLAGS. - - This new configure option is intended primarily for CI purposes. - - * configure.ac (AC_ARG_ENABLE): Add Werror. Forward -Werror - to JAPHAR_GREP_CFLAGS. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - Fix remaining clang -Wcast-align compilation warnings. - Introduce DIAG_PUSH_IGNORE_CAST_ALIGN and DIAG_POP_IGNORE_CAST_ALIGN - macros, use them to silence remaining clang -Wcast-align compilation - warnings. - - * libpam/include/pam_cc_compat.h (DIAG_PUSH_IGNORE_CAST_ALIGN, - DIAG_POP_IGNORE_CAST_ALIGN): New macros. - * modules/pam_access/pam_access.c: Include "pam_cc_compat.h". - (from_match, network_netmask_match): Wrap inet_ntop invocations - in DIAG_PUSH_IGNORE_CAST_ALIGN and DIAG_POP_IGNORE_CAST_ALIGN. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - Fix most of clang -Wcast-align compilation warnings. - Unlike gcc, clang is not smart enough to infer the alignment - of structure fields, so add some alignment hints to the code. - - * libpam/include/pam_cc_compat.h (PAM_ATTRIBUTE_ALIGNED): New macro. - * modules/pam_namespace/md5.h: Include "pam_cc_compat.h". - (struct MD5Context): Add PAM_ATTRIBUTE_ALIGNED to "in" field. - * modules/pam_namespace/md5.c [!(__i386__ || __x86_64__)] - (uint8_aligned): New type. - [!(__i386__ || __x86_64__)] (byteReverse): Use it instead of - unsigned char. - * modules/pam_timestamp/sha1.h: Include "pam_cc_compat.h". - (struct sha1_context): Add PAM_ATTRIBUTE_ALIGNED to pending field. - * modules/pam_unix/md5.h: Include "pam_cc_compat.h". - (struct MD5Context): Add PAM_ATTRIBUTE_ALIGNED to "in" field. - * modules/pam_unix/md5.c [!HIGHFIRST] (uint8_aligned): New type. - [!HIGHFIRST] (byteReverse): Use it instead of unsigned char. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_tally, modules/pam_tally2: fix compilation warnings. - Fix the following compilation warnings reported by gcc - when sizeof(time_t) > sizeof(long), e.g. on x32: - - modules/pam_tally/pam_tally.c:541:7: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘time_t’ {aka ‘long long int’} [-Wformat=] - 541 | _("The account is temporarily locked (%ld seconds left)."), - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - modules/pam_tally/pam_tally.c:546:40: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘time_t’ {aka ‘long long int’} [-Wformat=] - 546 | "user %s (%lu) has time limit [%lds left]" - | ~~^ - | | - | long int - | %lld - ...... - 549 | oldtime+lock_time-time(NULL)); - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - | | - | time_t {aka long long int} - - modules/pam_tally2/pam_tally2.c:592:27: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘time_t’ {aka ‘long long int’} [-Wformat=] - 592 | pam_info(pamh, _("The account is temporarily locked (%ld seconds left)."), - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - modules/pam_tally2/pam_tally2.c:597:50: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘time_t’ {aka ‘long long int’} [-Wformat=] - 597 | "user %s (%lu) has time limit [%lds left]" - | ~~^ - | | - | long int - | %lld - ...... - 600 | oldtime+opts->lock_time-time(NULL)); - | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - | | - | time_t {aka long long int} - - This change doesn't attempt to fix handling of 64-bit time_t on 32-bit - systems in these modules. - - * modules/pam_tally/pam_tally.c (tally_check): Cast time_t expressions - to long int before passing them to pam_info and pam_syslog. - * modules/pam_tally2/pam_tally2.c (tally_check): Likewise. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_timestamp: fix compilation warnings. - Fix the following compilation warnings reported by gcc on ilp32 platforms: - - modules/pam_timestamp/hmacfile.c: In function ‘testvectors’: - modules/pam_timestamp/hmacfile.c:121:44: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=] - 121 | printf("Incorrect result for vector %lu\n", i + 1); - | ~~^ ~~~~~ - | | | - | | size_t {aka unsigned int} - | long unsigned int - | %u - modules/pam_timestamp/hmacfile.c:128:30: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=] - 128 | printf("Error in vector %lu.\n", i + 1); - | ~~^ ~~~~~ - | | | - | | size_t {aka unsigned int} - | long unsigned int - | %u - In function ‘strncpy’, - inlined from ‘pam_sm_open_session’ at modules/pam_timestamp/pam_timestamp.c:584:4: - /usr/include/bits/string_fortified.h:106:10: warning: ‘__builtin___strncpy_chk’ output may be truncated copying between 1 and 4095 bytes from a string of length 4095 [-Wstringop-truncation] - - * modules/pam_timestamp/hmacfile.c (testvectors): Cast the argument - of type size_t to unsigned long before passing it to printf. - * modules/pam_timestamp/pam_timestamp.c (pam_sm_open_session): Use - memcpy instead of strncpy as the source is not NUL-terminated, add an - extra check to ensure that iterator stays inside bounds. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_unix: fix gcc compilation warnings. - When setreuid() fails, there is no way to proceed any further: either - the process credentials are unchanged but inappropriate, or they are - in an inconsistent state and nothing good could be made out of it. - This fixes the following compilation warnings: - - modules/pam_unix/passverify.c:209:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:211:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:213:6: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:214:6: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:222:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:224:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:225:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:226:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:209:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:211:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:213:6: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:214:6: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:222:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:224:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:225:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - modules/pam_unix/passverify.c:226:5: warning: ignoring return value of 'setreuid', declared with attribute warn_unused_result [-Wunused-result] - - * modules/pam_unix/passverify.c (get_account_info) [HELPER_COMPILE]: - Always check setreuid return code and return PAM_CRED_INSUFFICIENT - if setreuid failed. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_access: fix compilation warning. - Fix the following compilation warning reported by gcc - when HAVE_LIBAUDIT is not set: - - modules/pam_access/pam_access.c: In function ‘login_access’: - modules/pam_access/pam_access.c:338:13: warning: variable ‘nonall_match’ set but not used [-Wunused-but-set-variable] - 338 | int nonall_match = NO; - | ^~~~~~~~~~~~ - - * modules/pam_access/pam_access.c (login_access): Enclose nonall_match - variable with HAVE_LIBAUDIT #ifdef's. - -2020-03-19 Dmitry V. Levin <ldv@altlinux.org> - - conf/pam_conv1: fix clang compilation warnings. - Fix the following compilation warnings reported by clang: - - pam_conv_y.y:12:23: warning: unused variable 'bisonid' [-Wunused-const-variable] - static const char bisonid[]= - ^ - pam_conv_l.l:12:23: warning: unused variable 'lexid' [-Wunused-const-variable] - static const char lexid[]= - ^ - - These static variables lost their meaning after repository conversion - from cvs to git and can be safely removed. - - * conf/pam_conv1/pam_conv_l.l (lexid): Remove. - * conf/pam_conv1/pam_conv_y.y (bisonid): Remove. - -2020-03-18 Dmitry V. Levin <ldv@altlinux.org> - - modules/pam_timestamp: fix clang compilation warning. - modules/pam_timestamp/pam_timestamp.c:807:17: warning: logical not - is only applied to the left hand side of this comparison - [-Wlogical-not-parentheses] - } else if (!timestamp_good(st.st... - ^ - - * modules/pam_timestamp/pam_timestamp.c (main): Change timestamp_good - return code check to a more traditional form. - -2020-03-18 Dmitry V. Levin <ldv@altlinux.org> - - github: check for whitespace errors on push and pull requests. - * .github/workflows/whitespace-errors-check.yml: New file. - - modules/pam_timestamp: fix EXTRA_DIST. - * modules/pam_timestamp/Makefile.am (EXTRA_DIST): Replace "$(man_MANS)" - with "$(MANS)" as the former is conditional on HAVE_DOC. - - modules/pam_namespace: fix EXTRA_DIST. - * modules/pam_namespace/Makefile.am (EXTRA_DIST): Replace - "$(MAN5) $(MAN8)" with "$(MANS)" as the former is conditional - on HAVE_DOC. - -2020-03-17 Christian Göttsche <cgzones@googlemail.com> - - pam_usertype: exclude man-page generation when configured with --disable-doc - * modules/pam_usertype/Makefile.am (man_MANS): Make conditional - on HAVE_DOC. - - Resolves: https://github.com/linux-pam/linux-pam/pull/193 - -2020-03-17 Christian Göttsche <cgzones@googlemail.com> - - pam_namespace: ignore pam_namespace_helper in git. - * modules/pam_namespace/.gitignore: New file. - - Resolves: https://github.com/linux-pam/linux-pam/pull/192 - -2020-03-13 Weblate <noreply@weblate.org> - - Update translation files. - Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ - -2020-03-13 Ondrej Sulek <feonsu@gmail.com> - - Translated using Weblate (Slovak) - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/sk/ - -2020-03-13 Yuri Chornoivan <yurchor@ukr.net> - - Translated using Weblate (Ukrainian) - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/uk/ - -2020-03-13 Dmitry V. Levin <ldv@altlinux.org> - - Translated using Weblate (Portuguese (Brazil)) - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/ - - Translated using Weblate (Portuguese) - - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt/ - - Translated using Weblate (German) - - Currently translated at 91.4% (107 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/ - -2020-03-13 Tomas Mraz <tmraz@fedoraproject.org> - - Adjust README with instructions for package prerequsities. - Also remove obsolete static modules instructions - -2020-03-11 Dmitry V. Levin <ldv@altlinux.org> - - pam_get_authtok: fix i18n of default prompts. - Change formatting of default prompts, making them translatable - to those languages that use a different word order. - From non-i18n perspective this change is essentially a no-op. - - * libpam/pam_get_authtok.c (PROMPTCURRENT): Replace with - PROMPT_CURRENT_ARG and PROMPT_CURRENT_NOARG. - (PROMPT1): Replace with PROMPT_NEW_ARG and PROMPT_NEW_NOARG. - (PROMPT2): Replace with PROMPT_RETYPE_ARG and PROMPT_RETYPE_NOARG. - (pam_get_authtok_internal, pam_get_authtok_verify): Use new macros. - * po/Linux-PAM.pot: Regenerated. - - Resolves: https://github.com/linux-pam/linux-pam/issues/29 - -2020-03-11 ikerexxe <ipedrosa@redhat.com> - - pam_selinux: check unknown object classes or permissions in current policy - Explanation: check whether unknown object classes or permissions are allowed or denied in the current policy - - Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1680961 - -2020-03-06 Weblate <noreply@weblate.org> - - Update translation files. - Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ - -2020-03-06 Milo Casagrande <milo@milo.name> - - Translated using Weblate (Italian) - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/it/ - -2020-03-06 Dmitry V. Levin <ldv@altlinux.org> - - Translated using Weblate (Zulu) - Currently translated at 63.2% (74 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zu/ - - Translated using Weblate (Chinese (Traditional)) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_TW/ - - Translated using Weblate (Chinese (Simplified)) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/zh_CN/ - - Translated using Weblate (Tamil) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ta/ - - Translated using Weblate (Sinhala) - - Currently translated at 65.8% (77 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/si/ - - Translated using Weblate (Russian) - - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ru/ - - Translated using Weblate (Portuguese (Brazil)) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pt_BR/ - - Translated using Weblate (Kazakh) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/kk/ - - Translated using Weblate (Japanese) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ja/ - - Translated using Weblate (Hungarian) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hu/ - - Translated using Weblate (Hindi) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/hi/ - - Translated using Weblate (Spanish) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/es/ - - Translated using Weblate (German) - - Currently translated at 81.1% (95 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/de/ - -2020-03-06 Oğuz Ersen <oguzersen@protonmail.com> - - Translated using Weblate (Turkish) - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/ - -2020-03-06 Geert Warrink <geert.warrink@onsnet.nu> - - Translated using Weblate (Dutch) - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/nl/ - -2020-03-06 Julien Humbert <julroy67@gmail.com> - - Translated using Weblate (French) - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/ - -2020-03-06 Piotr Drąg <piotrdrag@gmail.com> - - Translated using Weblate (Polish) - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/ - - Translated using Weblate (Polish) - - Currently translated at 100.0% (117 of 117 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/ - -2020-03-06 Tomas Mraz <tmraz@fedoraproject.org> - - Add missing file to EXTRA_DIST. - * tests/Makefile.am: Add confdir to EXTRA_DIST. - - New API call pam_start_confdir() - To load PAM stack configurations from specified directory - -2020-03-05 Dmitry V. Levin <ldv@altlinux.org> - - Fix remaining references to sourceforge.net. - Linux-PAM moved to github long time ago, update the remaining - bug tracking references to point to github issues tracker. - - * README: Refer to https://github.com/linux-pam/linux-pam/issues - instead of sourceforge.net. - * po/Makevars: Refer to https://github.com/linux-pam/linux-pam/issues - instead of http://sourceforge.net/projects/pam . - * po/Linux-PAM.pot: Regenerated. - -2020-03-05 Dmitry V. Levin <ldv@altlinux.org> - - pam_unix: fix --disable-nis compilation warnings. - When the build is configured using --disable-nis option, gcc complains: - - pam_unix_passwd.c: In function '_do_setpass': - pam_unix_passwd.c:398:8: warning: unused variable 'master' [-Wunused-variable] - - support.c: In function '_unix_getpwnam': - support.c:305:21: warning: parameter 'nis' set but not used [-Wunused-but-set-parameter] - - * modules/pam_unix/pam_unix_passwd.c (_do_setpass): Move the definition - of "master" variable to [HAVE_NIS]. - * modules/pam_unix/support.c (_unix_getpwnam) [!(HAVE_YP_GET_DEFAULT_DOMAIN - && HAVE_YP_BIND && HAVE_YP_MATCH && HAVE_YP_UNBIND)]: Do not assign - the unused parameter but mark it as used. - -2020-03-05 Dmitry V. Levin <ldv@altlinux.org> - - Sort NEWS entries. - * NEWS (1.4.0): Sort module-related news entries. - -2020-03-05 Dmitry V. Levin <ldv@altlinux.org> - - Fix whitespace issues. - Remove trailing whitespace introduced by commit - f9c9c72121eada731e010ab3620762bcf63db08f. - Remove blank lines at EOF introduced by commit - 65d6735c5949ec233df9813f734e918a93fa36cf. - - This makes the project free of warnings reported by - git diff --check 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD - - * doc/custom-html.xsl: Remove blank line at EOF. - * doc/custom-man.xsl: Likewise. - * modules/pam_motd/pam_motd.c: Remove trailing whitespace. - -2020-03-04 ed@s5h.net <ed@s5h.net> - - Adding package dependency hints to README. - -2020-03-04 Mark Wutzke <mark.wutzke@alliedtelesis.co.nz> - - Use cached 'crypt' library result correctly. - Configure script incorrectly used a non-cached variable (ac_lib) in the - cached code path. This results in no -lcrypt being defined resulting in - link errors on a re-build. - - Update configure.ac to use ac_cv_search_crypt (via ac_res) to setup the - correct library arguments. - -2020-03-03 Tomas Mraz <tmraz@fedoraproject.org> - - Prepare for the 1.4.0 release. - - Updated LINGUAS to remove completely untranslated languages. - Updated pot and po files - -2020-03-03 Tomáš Mráz <tmraz@redhat.com> - - Translated using Weblate (Czech) - Currently translated at 100.0% (116 of 116 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/cs/ - -2020-03-03 Oğuz Ersen <oguzersen@protonmail.com> - - Translated using Weblate (Turkish) - Currently translated at 100.0% (121 of 121 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/tr/ - -2020-03-03 Julien Humbert <julroy67@gmail.com> - - Translated using Weblate (French) - Currently translated at 100.0% (121 of 121 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/fr/ - -2020-03-03 Piotr Drąg <piotrdrag@gmail.com> - - Translated using Weblate (Polish) - Currently translated at 100.0% (121 of 121 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/ - - Translated using Weblate (Polish) - - Currently translated at 100.0% (121 of 121 strings) - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/pl/ - -2020-03-03 Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr> - - Deleted translation using Weblate (Cornish) - Deleted translation using Weblate (German (Low)) - - Deleted translation using Weblate (Angika) - - Deleted translation using Weblate (English (United Kingdom)) - - Deleted translation using Weblate (Asturian) - - Deleted translation using Weblate (bal (generated)) - - Deleted translation using Weblate (Bodo) - - Deleted translation using Weblate (Breton) - - Deleted translation using Weblate (Cornish) - - Deleted translation using Weblate (Cornish) - - Deleted translation using Weblate (ilo (generated)) - - Deleted translation using Weblate (Maithili) - - Deleted translation using Weblate (Pedi) - - Deleted translation using Weblate (Tibetan) - - Deleted translation using Weblate (Twi) - - Deleted translation using Weblate (wba (generated)) - -2020-03-03 Weblate <noreply@weblate.org> - - Update translation files. - Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. - - Translation: linux-pam/master - Translate-URL: https://translate.fedoraproject.org/projects/linux-pam/master/ - -2020-02-27 Iker Pedrosa <ikerpedrosam@gmail.com> - - pam_tty_audit: if kernel audit is disabled return PAM_IGNORE. - If kernel audit is disabled the socket open will return
- EPROTONOSUPPORT.
- Return PAM_IGNORE from pam_tty_audit and log a warning
- in this situation so login is not blocked by the module. - -2020-02-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_modutil_sanitize_helper_fds: fix SIGPIPE effect of PAM_MODUTIL_PIPE_FD - When pam_modutil_sanitize_helper_fds() is invoked with - PAM_MODUTIL_PIPE_FD to provide a dummy pipe descriptor for stdout - or stderr, it closes the read end of the newly created dummy pipe. - The negative side effect of this approach is that any write to such - descriptor triggers a SIGPIPE. Avoid this by closing the write end of - the dummy pipe and using its read end as a dummy pipe descriptor for - output. Any read from such descriptor returns 0, and any write just - fails with EBADF, which should work better with unprepared writers. - - * libpam/pam_modutil_sanitize.c (redirect_out_pipe): Remove. - (redirect_out): Call redirect_in_pipe instead of redirect_out_pipe. - - Fixes: b0ec5d1e ("Introduce pam_modutil_sanitize_helper_fds") - -2020-02-26 TBK <tbk@jjtc.eu> - - libpamc: Use ISO C99 uintX_t types instead of u_intX_t. - u_intX_t is a glibcism this fixes the issue of compiling against musl libc. - -2020-02-25 Tomas Mraz <tmraz@fedoraproject.org> - - pam_group, pam_time: Fix regression in documentation from last change. - * modules/pam_group/group.conf.5.xml: Replace bare & with &. - * modules/pam_time/time.conf.5.xml: Likewise. - -2020-02-24 Tomas Mraz <tmraz@fedoraproject.org> - - pam_limits: Document the unwanted effect of set_all with systemd. - - misc_conv: Use PAM_MAX_RESP_SIZE to limit the length of the input. - - pam_group, pam_time: Fix logical error with multiple ! operators. - * modules/pam_group/group.conf.5.xml: Document what logic list means. - * modules/pam_time/time.conf.5.xml: Likewise. - * modules/pam_group/pam_group.c (logic_field): Clear the not operator for the - further operations. - * modules/pam_time/pam_time.c (logic_field): Likewise. - -2020-02-24 Tomas Mraz <tmraz@fedoraproject.org> - - pam_shells: Recognize /bin/sh as the default shell. - If the shell is empty in /etc/passwd entry it means /bin/sh. - - * modules/pam_shells/pam_shells.c (perform_check): Use /bin/sh as default shell. - -2020-02-24 Tomas Mraz <tmraz@fedoraproject.org> - - pam_env: Change the default to not read the user .pam_environment file. - * modules/pam_env/pam_env.8.xml: Document the change. - * modules/pam_env/pam_env.c: Set DEFAULT_USER_READ_ENVFILE to 0. - -2020-02-24 Tomas Mraz <tmraz@fedoraproject.org> - - pam_env: code cleanups. - Raise BUF_SIZE to 8192 bytes. - - * modules/pam_env/pam_env.c (_parse_env_file): Ignore lines starting with '='. - (_assemble_line): Detect long lines and binary files. - (_check_var): Avoid overwriting global variable. - (_expand_arg): Avoid repeated strlen calls. - -2020-02-18 Topi Miettinen <toiwoton@gmail.com> - - pam_namespace: secure tmp-inst directories. - When using polyinstantiation for /tmp and/or /var/tmp, pam_namespace - creates subdirectories with fixed name tmp-inst. These paths should be - secured as early as possible to avoid that somehow these directories - could created and controlled by for example a malicious user or - service. - - Ship a systemd service, which creates the directories early in - boot sequence with correct permissions and ownership. - - Closes #111. - -2020-02-18 Tomas Mraz <tmraz@fedoraproject.org> - - Fix warnings from the recent PR merges. - * modules/pam_succeed_if/pam_succeed_if.c: Fix const issues. - * modules/pam_usertype/pam_usertype.c: Avoid maybe used uninitialized warning. - -2020-02-18 Pavel Březina <pbrezina@redhat.com> - - pam_unix: add nullresetok option to allow reset blank passwords. - Adding nullresetok to auth phase of pam_unix module will allow users - with blank password to authenticate in order to immediatelly change - their password even if nullok is not set. - - This allows to have blank password authentication disabled but still - allows administrator to create new user accounts with expired blank - password that must be change on the first login. - -2020-02-18 Serghei Anicheev <serghei.anicheev@gmail.com> - - pam_succeed_if: Add list support for group membership checks. - Examples:
- account requisite pam_succeed_if.so user ingroup group1:group2
- OR
- account requisite pam_succeed_if.so user notingroup group1:group2
- OR
- account requisite pam_succeed_if.so user ingroup wheel
- OR
- account requisite pam_succeed_if.so user notingroup wheel
-
- Can be very convenient to grant access based on complex group memberships (LDAP, etc)
- -2020-02-18 MIZUTA Takeshi <mizuta.takeshi@fujitsu.com> - - Remove redundant header file inclusion. - There are some source code including the same header file redundantly. - We remove these redundant header file inclusion. - -2020-01-29 edneville <ed-github@s5h.net> - - pam_tally[2]: Updating man pages to indicate account leakage without silent - * modules/pam_tally/pam_tally.8.xml: Mention account leakage without silent
- * modules/pam_tally2/pam_tally2.8.xml: Mention account leakage without silent
- -2020-01-29 Jakub Wilk <jwilk@jwilk.net> - - pam_keyinit.8: add missing comma. - -2020-01-28 Pavel Březina <pbrezina@redhat.com> - - pam_usertype: new module to tell if uid is in login.defs ranges. - This module will check if the user account type is system or regular based - on its uid. To evaluate the condition it will use 0-99 reserved range - together with `SYS_UID_MIN` and `SYS_UID_MAX` values from `/etc/login.defs`. - - If these values are not set, it uses configure-time defaults - `--with-sys-uid-min` and `--with-uid-min` (according to `login.defs` man page - `SYS_UID_MAX` defaults to `UID_MIN - 1`. - - This information can be used to skip specific module in pam stack - based on the account type. `pam_succeed_if uid < 1000` is used at the moment - however it does not reflect changes to `login.defs`. - -2020-01-27 Fabrice Fontaine <fontaine.fabrice@gmail.com> - - configure.ac: add --enable-doc option. - Allow the user to disable documentation through --disable-doc (enabled - by default), this is especially useful when cross-compiling for embedded - targets - -2020-01-20 Dmitry V. Levin <ldv@altlinux.org> - - Fix remaining -Wcast-qual compilation warnings. - Introduce a new internal header file with definitions of - DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL macros, - use them to temporary silence -Wcast-qual compilation warnings - in various modules. - - * libpam/include/pam_cc_compat.h: New file. - * libpam/Makefile.am (noinst_HEADERS): Add include/pam_cc_compat.h. - * modules/pam_mkhomedir/pam_mkhomedir.c: Include "pam_cc_compat.h". - (create_homedir): Wrap execve invocation in DIAG_PUSH_IGNORE_CAST_QUAL - and DIAG_POP_IGNORE_CAST_QUAL. - * modules/pam_namespace/pam_namespace.c: Include "pam_cc_compat.h". - (pam_sm_close_session): Wrap the cast that discards ‘const’ qualifier - in DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL. - * modules/pam_tty_audit/pam_tty_audit.c: Include "pam_cc_compat.h". - (nl_send): Wrap the cast that discards ‘const’ qualifier in - DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL. - * modules/pam_unix/pam_unix_acct.c: Include "pam_cc_compat.h". - (_unix_run_verify_binary): Wrap execve invocation in - DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL. - * modules/pam_unix/pam_unix_passwd.c: Include "pam_cc_compat.h". - (_unix_run_update_binary): Wrap execve invocation in - DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL. - * modules/pam_unix/passverify.c: Include "pam_cc_compat.h". - (unix_update_shadow): Wrap the cast that discards ‘const’ qualifier - in DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL. - * modules/pam_unix/support.c: Include "pam_cc_compat.h". - (_unix_run_helper_binary): Wrap execve invocation in - DIAG_PUSH_IGNORE_CAST_QUAL and DIAG_POP_IGNORE_CAST_QUAL. - * modules/pam_xauth/pam_xauth.c: Include "pam_cc_compat.h". - (run_coprocess): Wrap execv invocation in DIAG_PUSH_IGNORE_CAST_QUAL - and DIAG_POP_IGNORE_CAST_QUAL. - -2020-01-20 Dmitry V. Levin <ldv@altlinux.org> - - _pam_mkargv: add const qualifier to the first argument. - Also fix the following compilation warning: - - tests/tst-pam_mkargv.c:21:22: warning: initialization discards ‘const’ - qualifier from pointer target type [-Wdiscarded-qualifiers] - char *argvstring = "user = XENDT\\userα user=XENDT\\user1"; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - * libpam/pam_misc.c (_pam_mkargv): Add const qualifier to the first - argument. - * libpam/pam_private.h (_pam_mkargv): Likewise. - * tests/tst-pam_mkargv.c (main): Convert argvstring from a pointer into - a static const string, make argvresult array static const. - -2020-01-20 Tomas Mraz <tmraz@fedoraproject.org> - - Fix miscellaneous const issues. - * libpam/pam_modutil_searchkey.c: Avoid assigning empty string literal to - non-const char *. - * modules/pam_filter/pam_filter.c: Avoid using const char **. - * modules/pam_mkhomedir/pam_mkhomedir.c: Properly cast out const for execve(). - * modules/pam_namespace/pam_namespace.c: Properly cast out const from pam data. - * modules/pam_tally2/pam_tally2.c: String literal must be assigned to - const char *. - -2020-01-17 Björn Esser <besser82@fedoraproject.org> - - pam_unix: Return NULL instead of calling crypt_md5_wrapper(). - If the call to the crypt(3) function failed for some reason during - hashing a new login passphrase, the wrapper function for computing - a hash with the md5crypt method was called internally by the pam_unix - module in previous versions of linux-pam. - - With CVE-2012-3287 in mind, the md5crypt method is not considered to - be a safe nor recommended hashing method for a new login passphrase - since at least 2012. Thus pam_unix should error out in case of a - failure in crypt(3) instead of silently computing a hashed passphrase - using a potentially unsafe method. - - * modules/pam_unix/pam_unix.8.xml: Update documentation. - * modules/pam_unix/passverify.c (create_password_hash): Return NULL - on error instead of silently invoke crypt_md5_wrapper(). - -2020-01-15 Hulto <jack.m.mckenna@gmail.com> - - Changed variable salt to hash. - helper_verify_password's variable salt is not just the salt but the whole hash. Renamed for clarity and conformity with the rest of the code. - -2020-01-15 Josef Moellers <jmoellers@suse.de> - - Add two missing va_end() calls According to the man pages, "Each invocation of va_start() must be matched by a corresponding invocation of va_end() in the same function." - -2020-01-15 Steve Langasek <steve.langasek@canonical.com> - - Further grammar fixes. - - Bug-Debian: https://bugs.debian.org/651560 - -2020-01-15 Steve Langasek <steve.langasek@canonical.com> - - Miscellaneous spelling fixes. - - Miscellaneous grammar fixes. - -2020-01-10 Andreas Henriksson <andreas@fatal.se> - - pam_umask: document the 'nousergroups' option. - Add a short description of the nousergroups to the pam_umask(8) - man-page. - -2020-01-10 Andreas Henriksson <andreas@fatal.se> - - pam_umask: add new 'nousergroups' module argument. - This is particularly useful when pam has been built with the new - --enable-usergroups configure switch, allowing users to override - the default-enabled state and disabling usergroups at runtime. - - This is synonymous but opposite to current and previous pam_umask - default that could be changed to enabled at runtime with the usergroups - argument. - -2020-01-10 Andreas Henriksson <andreas@fatal.se> - - pam_umask: build-time usergroups option default. - This change adds a configure option to set the default value of the - usergroups option (of the pam_umask module) at build-time. - - Distributions usually makes the decision if usergroups should be used or - not. This allows them to control the built-in default value, without - having to ship the value in a config file (cluttering up the view - of actually relevant user/system configuration overrides). - -2020-01-02 msalle <mischa.salle@gmail.com> - - pam_access: Fix (IPv6) address prefix size matching. - IPv6 address prefix sizes larger than 128 (i.e. not larger or equal to) should
- be discarded. Additionally, for IPv4 addresses, the largest valid prefix size
- should be 32.
-
- Fixes #161 - -2019-12-18 Tomas Mraz <tmraz@fedoraproject.org> - - Do not use CFLAGS for warning flags set from configure. - To be able to set CFLAGS from make command-line but not to lose the - warning flags. - - * configure.ac: Put warning flags to WARN_CFLAGS instead of CFLAGS. - * */Makefile.am: Apply WARN_CFLAGS to AM_CFLAGS. - -2019-12-17 Balint Reczey <balint.reczey@canonical.com> - - Return only PAM_IGNORE or error from pam_motd. - Follow-up for c81280b16e1831ab0bdd0383486c7e2d1eaf1b5e.
- * modules/pam_motd/pam_motd.c: Return PAM_IGNORE if pam_putenv succeeds.
- * modules/pam_motd/pam_motd.8.xml: Document additional possible return values of the module. - -2019-12-16 Dmitry V. Levin <ldv@altlinux.org> - - Add initial Travis CI support. - This runs "make distcheck" using gcc-9, gcc-8, gcc-7, and clang - on x86_64, x86, x32, aarch64, s390x, and ppc64le architectures. - - * .travis.yml: New file. - * ci/install-dependencies.sh: Likewise. - * ci/run-build-and-tests.sh: Likewise. - - Resolves: https://github.com/linux-pam/linux-pam/issues/28 - -2019-12-16 Dmitry V. Levin <ldv@altlinux.org> - - pam_pwhistory: fix build when -lxcrypt is not available. - When xcrypt.h is available but -lxcrypt is not, pam_pwhistory fails to - build with the following diagnostics: - modules/pam_pwhistory/opasswd.c:111: undefined reference to `xcrypt_r' - - Fix this by using the same check for xcrypt as in other modules. - - * modules/pam_pwhistory/opasswd.c: Replace HAVE_XCRYPT_H with - HAVE_LIBXCRYPT. - -2019-12-16 Tomas Mraz <tmraz@fedoraproject.org> - - Fix or suppress various warnings when compiling with -Wall -Wextra. - * conf/pam_conv1/Makefile.am: Add -Wno-unused-function -Wno-sign-compare to CFLAGS. - * doc/specs/Makefile.am: Likewise. - - * libpamc/include/security/pam_client.h: Explicitly compare old_p with NULL. - - * modules/pam_access/pam_access.c: Avoid double const. - - * modules/pam_filter/pam_filter.c: Avoid arbitrary constants. Avoid strncpy() - without copying the NUL byte. - - * modules/pam_group/pam_group.c: Mark switch fallthrough with comment. - * modules/pam_time/pam_time.c: Likewise. - - * modules/pam_limits/pam_limits.c: Remove unused units variable. - - * modules/pam_listfile/pam_listfile.c: Avoid unnecessary strncpy, use pointers. - - * modules/pam_rootok/pam_rootok.c (log_callback): Mark unused parameter. - - * modules/pam_selinux/pam_selinux.c: Use string_to_security_class() instead - of hardcoded value. - - * modules/pam_sepermit/pam_sepermit.c: Properly cast when comparing. - - * modules/pam_succeed_if/pam_succeed_if.c: Mark unused parameters. - - * modules/pam_unix/pam_unix_passwd.c: Remove unused variables and properly - cast for comparison. - - * modules/pam_unix/support.c: Remove unused function. - -2019-12-04 Balint Reczey <balint@balintreczey.hu> - - pam_motd: Export MOTD_SHOWN=pam after showing MOTD. - This is a useful indication for update-motd profile.d snippet which can
- also try to show MOTD when it is not already shown.
-
- The use-case for that is showing MOTD in shells in containers without
- PAM being involved.
-
- * modules/pam_motd/pam_motd.c: Export MOTD_SHOWN=pam after showing MOTD
- * modules/pam_motd/pam_motd.8.xml: Mention setting MOTD_SHOWN=pam in the man page
- -2019-11-28 ppkarwasz <piotr.github@karwasz.org> - - Adds an auth module to pam_keyinit (#150) - Adds an auth module to pam_keyinit, whose implementation of
- pam_sm_setcred
- is identical to the implementation of pam_sm_open_session.
-
- It is useful with PAM applications, which call pam_setcred,
- before calling pam_open_session.
-
- * modules/pam_keyinit/pam_keyinit.c: Add an auth module to pam_keyinit.
-
- * modules/pam_keyinit/pam_keyinit.8.xml: Update the manpage
- to describe the new functionality.
- -2019-11-28 Sophie Herold <sophie@hemio.de> - - Lower "bad username" log priority (#154) - * modules/pam_unix/pam_unix_auth.c: Use LOG_NOTICE instead of LOG_ERR.
- * modules/pam_unix/pam_unix_passwd.c: Likewise.
- * modules/pam_umask/pam_umask.c: Likewise. - -2019-11-04 Tomas Mraz <tmraz@fedoraproject.org> - - pam_namespace: Support for noexec, nosuid and nodev flags for tmpfs mounts - * modules/pam_namespace/namespace.conf.5.xml: Add documentation for the - noexec, nosuid, and nodev flags support. - * modules/pam_namespace/pam_namespace.c (filter_mntopts): New function to - filter out the flags. - (parse_method): Call the function. - (ns_setup): Apply the flags to the tmpfs mount. - * modules/pam_namespace/pam_namespace.h: Add mount_flags to polydir_s struct. - -2019-11-04 Tomas Mraz <tmraz@fedoraproject.org> - - Optimize the checkgrouplist function. - There is no point in rising the allocation size by doubling when - we can allocate required memory size at once in the second pass. - - * libpam/pam_modutil_ingroup.c (checkgrouplist): Allocate some reasonable - default size in first pass and required size in the second pass. - -2019-10-15 MIZUTA Takeshi <mizuta.takeshi@fujitsu.com> - - doc: fix module type written in MODULE TYPES PROVIDED. - -2019-10-14 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Add logging useful for debugging problems. - Two messages added about obtaining the username are guarded - by the debug option as these should not be normally - logged - they can be useful for debugging but they do not - indicate any special condition. - - The message about authenticating user with blank password is - still just LOG_DEBUG priority but it is logged unconditionally - because it is somewhat extraordinary condition to have an user - with blank password. - - * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Replace - D() macro calls which are not enabled on production builds with - regular pam_syslog() calls. - -2019-10-10 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Fix the spelling of Jan Rękorajski's name. - -2019-10-08 MIZUTA Takeshi <mizuta.takeshi@fujitsu.com> - - doc: fix typo in manpage. - -2019-10-03 MIZUTA Takeshi <mizuta.takeshi@fujitsu.com> - - pam_mkhomedir: Add debug option to pam_mkhomedir(8) man page. - -2019-09-23 Marek Černocký <marek@manet.cz> - - Fixed missing quotes in configure script. - -2019-09-16 Thorsten Kukuk <5908016+thkukuk@users.noreply.github.com> - - Add support for a vendor directory and libeconf (#136) - With this, it is possible for Linux distributors to store their
- supplied default configuration files somewhere below /usr, while
- /etc only contains the changes made by the user. The new option
- --enable-vendordir defines where Linux-PAM should additional look
- for pam.d/*, login.defs and securetty if this files are not in /etc.
- libeconf is a key/value configuration file reading library, which
- handles the split of configuration files in different locations
- and merges them transparently for the application. - -2019-09-12 Carlos Santos <casantos@redhat.com> - - pam_lastlog: document the 'unlimited' option. - -2019-09-12 Carlos Santos <casantos@redhat.com> - - pam_lastlog: prevent crash due to reduced 'fsize' limit. - It a reduced fsize limit is set in /etc/security/limits.conf and - pam_limits is in use pam_lastlog may cause a crash, e.g. - - ----- begin /etc/pam.d/su ---- - auth sufficient pam_rootok.so - auth required pam_wheel.so use_uid - auth required pam_env.so - auth required pam_unix.so nullok - account required pam_unix.so - password required pam_unix.so nullok - session required pam_limits.so - session required pam_env.so - session required pam_unix.so - session optional pam_lastlog.so - ----- end /etc/pam.d/su ----- - - ----- begin /etc/security/limits.d/fsize.conf ----- - * soft fsize 1710 - * hard fsize 1710 - ----- end /etc/security/limits.d/fsize.conf ----- - - # id user1 - uid=1000(user1) gid=1000(user1) groups=1000(user1) - # su - user1 - Last login: Wed Sep 11 01:52:44 UTC 2019 on console - $ exit - # id user2 - uid=60000(user2) gid=60000(user2) groups=60000(user2) - # su - user2 - File size limit exceeded - - This happens because pam_limits sets RLIMIT_FSIZE before pam_lastlog - attempts to write /var/log/lastlog, leading to a SIGXFSZ signal. - - In order to fix this, and an 'unlimited' option, which leads to saving - the 'fsize' limit and set it to unlimited before writing lastlog. After - that, restore the saved value. If 'fsize' is already unlimited nothing - is done. - - Failing to set the 'fsize' limit is not a fatal error. With luck the - configured limit will suffice, so we try to write lastlog anyway, even - under the risk of dying due to a SIGXFSZ. - - Failing to restore the 'fsize' limit is a fatal error, since we don't - want to keep it unlimited. - -2019-09-11 ed <ed@s5h.net> - - pam_unix_sess.c add uid for opening session. - This adds the UID of the target user to the session open log. - - Also fixing tabulation in pam_unix_sess.c. - -2019-09-09 lifecrisis <15251574+lifecrisis@users.noreply.github.com> - - Fix the man page for "pam_fail_delay()" - This man page contained the incorrect statement that setting the - PAM_FAIL_DELAY item to NULL would disable any form of delay on - authentication failure. - - I removed the incorrect statement and added a paragraph explaining - how an application should properly avoid delays. - - Closes #137. - -2019-09-06 lifecrisis <15251574+lifecrisis@users.noreply.github.com> - - Fix a typo. - There is an extra space where there should not be one. - -2019-09-06 lifecrisis <15251574+lifecrisis@users.noreply.github.com> - - Update a function comment. - The function comment for "_pam_await_timer()" does not mention the - intended behavior of prioritizing the "PAM_FAIL_DELAY" item. - - I updated the comment to make this intention clear. - -2019-09-02 Matt Cowell <matt.cowell@nokia.com> - - pwhistory: fix read of uninitialized data and memory leak when modifying opasswd - The glibc implementation of getline/getdelim does not guarantee a NUL - terminator in lineptr if getline returns failure (-1). This occurs when - the opasswd file exists but is empty. Since strdup is called - immediately afterwards, this causes strdup to read uninitialized memory - and possibly buffer overrun / crash. - - This also fixes a memory leak which always occurs when reading the last - line of the opasswd file. Since the strdup is called before checking - the return code from getline, getdelim, or fgets+strlen, it will - duplicate and never free either: - - The last successfully read line (for getline or getdelim) - - Uninitialized data (if the file is empty) - - A 0 byte string (for fgets+strlen) - - Fix by always checking the return code of getline, getdelim, or - fgets+strlen before calling strdup. - -2019-08-26 Christophe Besson <cbesson@redhat.com> - - libpam/pam_modutil_sanitize.c: optimize the way to close fds. - -2019-08-07 Tomas Mraz <tmraz@fedoraproject.org> - - pam_tty_audit: Manual page clarification about password logging. - * modules/pam_tty_audit/pam_tty_audit.8.xml: Explanation why passwords - can be sometimes logged even when the option is not set. - -2019-08-07 Tomas Mraz <tmraz@fedoraproject.org> - - pam_get_authtok_verify: Avoid duplicate password verification. - If password was already verified by previous modules in the stack - it does not need to be verified by pam_get_authtok_verify either. - - * libpam/pam_get_authtok.c (pam_get_authtok_internal): Set the authtok_verified - appropriately. - (pam_get_authtok_verify): Do not prompt if authtok_verified is set and - set it when the password is verified. - * libpam/pam_private.h: Add authtok_verified to the pam handle struct. - * libpam/pam_start.c (pam_start): Initialize authtok_verified. - -2019-07-16 2*yo <yohann@lepage.info> - - Mention that ./autogen.sh is needeed to be run if you check out the sources from git - -2019-06-27 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Correct MAXPASS define name in the previous two commits. - * modules/pam_unix/pam_unix_passwd.c: Change MAX_PASS to MAXPASS. - * modules/pam_unix/support.c: Likewise. - -2019-06-27 Florian Best <best@univention.de> - - Restrict password length when changing password. - - Trim password at PAM_MAX_RESP_SIZE chars. - Issue #118: Protect against Denial of Service attacks. - To prevent hashsum generation via crypt of very long passwords the - password is now stripped to 512 characters. This is equivalent behavior - to unix_chkpwd. - -2019-05-23 Olaf Mandel <o.mandel@menlosystems.com> - - pam_succeed_if: Request user data only when needed. - Allow for conditions that just check the user field to also work for - users not known to the system. Before this caused a PAM_USER_UNKNOWN - even if no extra data for an existing user was needed. E.g. - - auth sufficient pam_succeed_if.so user = NotKnownToSystem - - modules/pam_succeed_if/pam_succeed_if.c (evaluate): Change the pwd - parameter to an input/output parameter. Lazily request pwd with - pam_modutil_getpwnam() if needed and return PAM_USER_UNKNOWN on failure. - - modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Don't - request the pwd if !use_uid anymore and shift the output from audit to - after the evaluate() call. Also make sure not to give the normal failure - message if the lazy pwd loading failed. - -2019-02-26 Maciej S. Szmigiero <mail@maciej.szmigiero.name> - - pam_tally2: Remove unnecessary fsync() - pam_tally2 does fsync() after writing to a tally file. - This causes hard drive cache flushes on every failed SSH login on many - (if not most) filesystems. - And an internet-exposed machine can have a lot of these failed logins. - - This operation however doesn't seem to be necessary - the pam_tally2 - module does not do any operation which would need explicit post-crash - ordering, it just does simple file reads and writes. - And doing a fsync() after them doesn't close any race if the system happens - to crash between a write being posted and its fsync() completion. - - Let's remove this operation to get rid of all these extra cache flushes. - -2019-02-19 vkwitshana <vkwitshana@gmail.com> - - Fixed a grammer mistake. - -2019-01-10 Christopher Head <chead@chead.ca> - - Fix documentation for pam_wheel. - By default, pam_wheel checks for applicant membership in the wheel group - for *all* access requests, regardless of whether the target user is root - or non-root. Only if root_only is provided does it limit the membership - check to cases when the target user is root. Update the documentation to - reflect this. - -2019-01-10 Louis Sautier <sautier.louis@gmail.com> - - Fix a typo in the documentation. - -2019-01-10 Nir Soffer <nsoffer@redhat.com> - - pam_lastlog: Improve silent option documentation. - The silent option explicitly silents only the last login message and not - bad logins. Add a note to the manual to make this clear. - - * modules/pam_lastlog/pam_lastlog.8.xml: Clearify "silent showfailed" - -2019-01-10 Nir Soffer <nsoffer@redhat.com> - - pam_lastlog: Respect PAM_SILENT flag. - pam_lastlog module will not log info about failed login if the session - was opened with PAM_SILENT flag. - - Example use case enabled by this change: - - sudo --non-interactive program - - If this command is run by another program expecting specific output from - the command run by sudo, the unexpected info about failed logins will - break this program. - - * modules/pam_lastlog/pam_lastlog.c: Respect silent option. - (_pam_session_parse): Unset LASTLOG_BTMP if PAM_SILENT is set. - -2019-01-04 Tomas Mraz <tmraz@fedoraproject.org> - - Fix regressions from the last commits. - * configure.ac: Test for logwtmp needs -lutil in LIBS. - * modules/Makefile.am: Fix indentation of variable assignments causing - creation of incorrect Makefile. - -2019-01-04 Rosen Penev <rosenp@gmail.com> - - Replace strndupa with strncpy. - glibc only. A static string is better. - -2019-01-04 Yousong Zhou <yszhou4tech@gmail.com> - - build: ignore pam_lastlog when logwtmp is not available. - * configure.ac: check logwtmp and set COND_BUILD_PAM_LASTLOG - * modules/pam_lastlog/Makefile.am: check COND_BUILD_PAM_LASTLOG - - build: ignore pam_rhosts if neither ruserok nor ruserok_af is available. - * configure.ac: check for ruserok and ruserok_af - * modules/Makefile.am: ignore pam_rhosts/ if it's disabled - * modules/pam_rhosts/pam_rhosts.c: include stdlib.h for malloc and free - -2018-12-20 Tomas Mraz <tmraz@fedoraproject.org> - - pam_motd: Cleanup the code and avoid unnecessary logging. - The pam_motd module will not log if the default motd.d directories - are missing. - - Also cleanup some code cleanliness issues and fix compilation - warnings. - - * modules/pam_motd/pam_motd.c: Constification of constant strings. - (try_to_display_directory): Removed unused function. - (pam_split_string): Replace uint with unsigned int. Fix warnings. - (compare_strings): Fix warnings by proper constification. - (try_to_display_directories_with_overrides): Cleanups. Switch - off the logging if the motd.d directories are missing and they - are default ones. - (pam_sm_open_session): Cleanup warnings. Pass the information - to try_to_display_directories_with_overrides() that non-default - motd options are used. - -2018-12-20 Tomas Mraz <tmraz@fedoraproject.org> - - pam_lastlog: Limit lastlog file use by LASTLOG_UID_MAX option in login.defs. - * modules/pam_lastlog/pam_lastlog.8.xml: Add the documentation of the - LASTLOG_UID_MAX option. - * modules/pam_lastlog/pam_lastlog.c: New function get_lastlog_uid_max(). - (last_login_date): Check the uid against the get_lastlog_uid_max(). - (pam_authenticate): Likewise. - -2018-12-11 Tomas Mraz <tmraz@fedoraproject.org> - - Move the duplicated search_key function to pam_modutil. - * libpam/pam_modutil_searchkey.c: New source file with pam_modutil_search_key(). - * libpam/Makefile.am: Add the pam_modutil_searchkey.c. - * libpam/include/security/pam_modutil.h: Add the pam_modutil_search_key() prototype. - * libpam/libpam.map: Add the pam_modutil_search_key() into a new version. - * modules/pam_faildelay/pam_faildelay.c: Drop search_key() and use - pam_modutil_search_key(). - * modules/pam_umask/pam_umask.c: Likewise. - * modules/pam_unix/support.c: Likewise. - -2018-11-27 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Use pam_syslog instead of helper_log_err. - * modules/pam_unix/passverify.c (verify_pwd_hash): Add pamh argument via - PAMH_ARG_DECL. Call pam_syslog() instead of helper_log_err(). - * modules/pam_unix/passverify.h: Adjust the declaration of verify_pwd_hash(). - * modules/pam_unix/support.c (_unix_verify_password): Add the pamh argument - to verify_pwd_hash() call. - -2018-11-27 Björn Esser <besser82@fedoraproject.org> - - pam_unix: Report unusable hashes found by checksalt to syslog. - libxcrypt can be build-time configured to support (or not support) - various hashing methods. Future versions will also have support for - runtime configuration by the system's vendor and/or administrator. - - For that reason adminstrator should be notified by pam if users cannot - log into their account anymore because of such a change in the system's - configuration of libxcrypt. - - Also check for malformed hashes, like descrypt hashes starting with - "$2...", which might have been generated by unsafe base64 encoding - functions as used in glibc <= 2.16. - Such hashes are likely to be rejected by many recent implementations - of libcrypt. - - * modules/pam_unix/passverify.c (verify_pwd_hash): Report unusable - hashes found by checksalt to syslog. - -2018-11-27 Tomas Mraz <tmraz@fedoraproject.org> - - Revert "pam_unix: Add crypt_default method, if supported." - This reverts commit ad435b386b22b456724dc5c5b8d9f2d1beffc558. - -2018-11-27 Björn Esser <besser82@fedoraproject.org> - - pam_unix: Add crypt_default method, if supported. - libxcrypt since v4.4.0 supports a default method for its - gensalt function on most system configurations. As the - default method is to be considered the strongest available - hash method, it should be preferred over all other hash - methods supported by pam. - - * modules/pam_unix/pam_unix.8.xml: Documentation for crypt_default. - * modules/pam_unix/passverify.c: Add crypt_default method. - * modules/pam_unix/support.h: Likewise. - -2018-11-26 Tomas Mraz <tmraz@fedoraproject.org> - - Revert part of the commit 4da9febc. - pam_unix: Do not return a hard failure on invalid or disabled salt - as in some cases the failure actually is not interesting and can - broke things such as password-less sudo. - - * modules/pam_unix/passverify.c (check_shadow_expiry): Revert checking - of disabled or invalid salt. - -2018-11-23 Björn Esser <besser82@fedoraproject.org> - - pam_unix: Add support for (gost-)yescrypt hashing methods. - libxcrypt (v4.2 and later) has added support for the yescrypt - hashing method; gost-yescrypt has been added in v4.3. - - * modules/pam_unix/pam_unix.8.xml: Documentation for (gost-)yescrypt. - * modules/pam_unix/pam_unix_acct.c: Use 64 bit type for control flags. - * modules/pam_unix/pam_unix_auth.c: Likewise. - * modules/pam_unix/pam_unix_passwd.c: Likewise. - * modules/pam_unix/pam_unix_sess.c: Likewise. - * modules/pam_unix/passverify.c: Add support for (gost-)yescrypt. - * modules/pam_unix/passverify.h: Use 64 bit type for control flags. - * modules/pam_unix/support.c: Set sane rounds for (gost-)yescrypt. - * modules/pam_unix/support.h: Add support for (gost-)yescrypt. - -2018-11-22 Björn Esser <besser82@fedoraproject.org> - - pam_unix: Fix closing curly brace. (#77) - This has been overlooked during review of commit dce80b3f11b3. - - * modules/pam_unix/support.c (_set_ctrl): Fix closing curly brace. - - Closes: https://github.com/linux-pam/linux-pam/issues/77 - -2018-11-22 Björn Esser <besser82@fedoraproject.org> - - pam_unix: Add support for crypt_checksalt, if libcrypt supports it. - libxcrypt v4.3 has added the crypt_checksalt function to whether - the prefix at the begining of a given hash string refers to a - supported hashing method. - - Future revisions of this function will add support to check whether - the hashing method, the prefix refers to, was disabled or considered - deprecated by the system's factory presets or system administrator. - Furthermore it will be able to detect whether the parameters, which - are used by the corresponding hashing method, being encoded in the - hash string are not considered to be strong enough anymore. - - *modules/pam_unix/passverify.c: Add support for crypt_checksalt. - -2018-11-22 Björn Esser <besser82@fedoraproject.org> - - pam_unix: Prefer a gensalt function, that supports auto entropy. - * modules/pam_unix/pam_unix_passwd.c: Initialize rounds parameter to 0. - * modules/pam_unix/passverify.c: Prefer gensalt with auto entropy. - * modules/pam_unix/support.c: Fix sanitizing of rounds parameter. - -2018-11-21 Robert Fairley <rfairley@users.noreply.github.com> - - pam_motd: Fix segmentation fault when no motd_dir specified (#76) - This fixes a regression introduced by #69, where motd_path was set
- to NULL and passed into strdup() if the motd_dir argument was
- not specified in the configuration file. This caused a segmentation
- fault.
-
- * modules/pam_motd/pam_motd.c: fix checks for NULL in arguments
- * xtests/Makefile.am: add test scripts and config file
- * xtests/tst-pam_motd.sh: add running tst-pam_motd4.sh
- * xtests/tst-pam_motd4.pamd: create
- * xtests/tst-pam_motd4.sh: create - -2018-11-19 Robert Fairley <rfairley@users.noreply.github.com> - - pam_motd: Support multiple motd paths specified, with filename overrides (#69) - Adds specifying multiple paths to motd files and motd.d
- directories to be displayed. A colon-separated list of
- paths is specified as arguments motd and motd_dir to the
- pam_motd module.
-
- This gives packages several options to install motd files to.
- By default, the paths are, with highest priority first:
- /etc/motd
- /run/motd
- /usr/lib/motd
- /etc/motd.d/
- /run/motd.d/
- /usr/lib/motd.d/
-
- Which is equivalent to the following arguments:
- motd=/etc/motd:/run/motd:/usr/lib/motd
- motd_dir=/etc/motd.d:/run/motd.d:/usr/lib/motd.d
-
- Files with the same filename in a lower-priority directory,
- as specified by the order in the colon-separated list, are
- overridden, meaning PAM will not display them.
-
- This allows a package to contain motd files under
- /usr/lib instead of the host configuration in /etc.
- A service may also write a dynamically generated motd in
- /run/motd.d/ and have PAM display it without needing a
- symlink from /etc/motd.d/ installed.
-
- Closes #68
-
- * modules/pam_motd/pam_motd.8.xml: update documentation
- * modules/pam_motd/pam_motd.c: add specifying multiple motd paths
- * xtests/.gitignore: add generated test script
- * xtests/Makefile.am: add test source, scripts and config files
- * xtests/tst-pam_motd.c: create
- * xtests/tst-pam_motd.sh: create
- * xtests/tst-pam_motd1.pamd: create
- * xtests/tst-pam_motd1.sh: create
- * xtests/tst-pam_motd2.pamd: create
- * xtests/tst-pam_motd2.sh: create
- * xtests/tst-pam_motd3.pamd: create
- * xtests/tst-pam_motd3.sh: create - -2018-11-16 Björn Esser <besser82@fedoraproject.org> - - pam_unix: Use bcrypt b-variant for computing new hashes. - Bcrypt hashes used the "$2a$" prefix since 1997. - However, in 2011 an implementation bug was discovered in bcrypt - affecting the handling of characters in passphrases with the 8th - bit set. - - Besides fixing the bug, OpenBSD 5.5 introduced the "$2b$" prefix - for a behavior that exactly matches crypt_blowfish's "$2y$", and - the crypt_blowfish implementation supports it as well since v1.1. - - That said new computed bcrypt hashes should use the "$2b$" prefix. - - * modules/pam_unix/passverify.c: Use bcrypt b-variant. - -2018-06-22 Dmitry V. Levin <ldv@altlinux.org> - - pam_tally, pam_tally2: fix grammar and spelling (#54) - * modules/pam_tally/pam_tally.c (tally_check): Replace - "Account is temporary locked" with "The account is temporarily locked" - in translated messages. - * modules/pam_tally2/pam_tally2.c (tally_check): Likewise. - * po/Linux-PAM.pot: Update pam_tally and pam_tally2 messages. - - Closes: https://github.com/linux-pam/linux-pam/issues/54 - -2018-06-19 Dmitry V. Levin <ldv@altlinux.org> - - Fix grammar of messages printed via pam_prompt. - Turn into proper sentences those messages that are printed without - further modifications using pam_prompt in contexts where proper - sentences are expected. - - * libpam/pam_get_authtok.c (pam_get_authtok_internal): Fix grammar - of the message passed to pam_error. - * modules/pam_limits/pam_limits.c (pam_sm_open_session): Likewise. - * modules/pam_cracklib/pam_cracklib.c (_pam_unix_approve_pass): Fix - grammar of error messages passed to pam_error. - * modules/pam_mail/pam_mail.c (report_mail): Fix grammar of a message - passed to pam_info. - * modules/pam_timestamp/pam_timestamp.c (verbose_success): Likewise. - * modules/pam_selinux/pam_selinux.c (config_context, send_text): Fix - grammar of messages passed to pam_prompt. - * modules/pam_tally/pam_tally.c (tally_check): Fix grammar of messages - passed to pam_info. - * modules/pam_tally2/pam_tally2.c (tally_check): Likewise. - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Fix grammar - of messages passed to _make_remark. - * modules/pam_unix/pam_unix_passwd.c (_pam_unix_approve_pass, - pam_sm_chauthtok): Likewise. - * po/Linux-PAM.pot: Regenerate. - -2018-06-19 Dmitry V. Levin <ldv@altlinux.org> - - pam_stress: do not mark messages for translation. - pam_stress is not a regular module that needs to be translated. - Besides that, its messages are not easy to understand - and even harder to translate properly. - - * modules/pam_stress/pam_stress.c (pam_sm_chauthtok): Do not mark - messages for translation. - * po/Linux-PAM.pot: Remove pam_stress messages. - -2018-05-31 Dmitry V. Levin <ldv@altlinux.org> - - pam_unix: remove obsolete _UNIX_AUTHTOK, _UNIX_OLD_AUTHTOK, and _UNIX_NEW_AUTHTOK macros - The last use of these macros was removed by commit Linux-PAM-1.3.0~5 - so their definitions should go as well. - - * modules/pam_unix/pam_unix_auth.c (_UNIX_AUTHTOK): Remove. - * modules/pam_unix/pam_unix_passwd.c (_UNIX_OLD_AUTHTOK, - _UNIX_NEW_AUTHTOK): Likewise. - - Complements: 7e09188c5dc4 ("pam_unix: Use pam_get_authtok() instead of - direct pam_prompt() calls.") - -2018-05-31 Dmitry V. Levin <ldv@altlinux.org> - - pam_unix: remove obsolete _unix_read_password prototype. - The function was removed by commit Linux-PAM-1.3.0~5 - so the function prototype should go as well. - - * modules/pam_unix/support.h (_unix_read_password): Remove. - - Complements: 7e09188c5dc4 ("pam_unix: Use pam_get_authtok() instead of - direct pam_prompt() calls.") - -2018-05-18 Thorsten Kukuk <kukuk@thkukuk.de> - - Release version 1.3.1. - - Add xz compression. - -2018-05-16 Allison Karlitskaya <allison.karlitskaya@redhat.com> - - pam_motd: add support for a motd.d directory (#48) - Add a new feature to pam_motd to allow packages to install their own
- message files in a "motd.d" directory, to be displayed after the primary
- motd.
-
- Add an option motd_d= to specify the location of this directory.
-
- Modify the defaults, in the case where no options are given, to display
- both /etc/motd and /etc/motd.d.
-
- Fixes #47
-
- * modules/pam_motd/pam_motd.c: add support for motd.d
- * modules/pam_motd/pam_motd.8.xml: update the manpage - -2018-05-02 Tomas Mraz <tmraz@fedoraproject.org> - - pam_umask: Fix documentation to align with order of loading umask. - * modules/pam_umask/pam_umask.8.xml: Document the real order of loading - umask. - -2018-04-10 Joey Chagnon <joeychagnon@users.noreply.github.com> - - Fix missing word in documentation. - * doc/man/pam_get_user.3.xml: Fix it. - -2017-11-10 Dmitry V. Levin <ldv@altlinux.org> - - pam_tally2 --reset: avoid creating a missing tallylog file. - There is no need for pam_tally2 in --reset=0 mode to create a missing - tallylog file because its absence has the same meaning as its existence - with the appropriate entry reset. - - This was not a big deal until useradd(8) from shadow suite release 4.5 - started to invoke /sbin/pam_tally2 --reset routinely regardless of PAM - configuration. - - The positive effect of this change is noticeable when using tools like - cpio(1) that cannot archive huge sparse files efficiently. - - * modules/pam_tally2/pam_tally2.c [MAIN] (main) <cline_user>: Stat - cline_filename when cline_reset == 0, exit early if the file is missing. - -2017-11-10 Tomas Mraz <tmraz@fedoraproject.org> - - pam_mkhomedir: Allow creating parent of homedir under / - * modules/pam_mkhomedir/mkhomedir_helper.c (make_parent_dirs): Do not - skip creating the directory if we are under /. - -2017-10-09 Tomas Mraz <tmraz@fedoraproject.org> - - pam_tty_audit: Fix regression introduced by adding the uid range support. - * modules/pam_tty_audit/pam_tty_audit.c (parse_uid_range): Fix constification and - remove unneeded code carried from pam_limits. - (pam_sm_open_session): When multiple enable/disable options are present do not - stop after first match. - -2017-09-06 Tomas Mraz <tmraz@fedoraproject.org> - - pam_access: Add note about spaces around ':' in access.conf(5) - * modules/pam_access/access.conf.5.xml: Add note about spaces around ':' - - Workaround formatting problem in pam(8) - * doc/man/pam.8.xml: Workaround formatting problem. - -2017-07-12 Peter Urbanec <peterurbanec@users.noreply.github.com> - - pam_unix: Check return value of malloc used for setcred data (#24) - Check the return value of malloc and if it failed print debug info, send
- a syslog message and return an error code.
-
- The test in AUTH_RETURN for ret_data not being NULL becomes redundant.
- -2017-07-10 Tomas Mraz <tmraz@fedoraproject.org> - - pam_cracklib: Drop unused prompt macros. - * modules/pam_cracklib/pam_cracklib.c: Drop the unused macros. - -2017-06-28 Tomas Mraz <tmraz@fedoraproject.org> - - pam_tty_audit: Support matching users by uid range. - * modules/pam_tty_audit/pam_tty_audit.c (parse_uid_range): New function to - parse the uid range. - (pam_sm_open_session): Call parse_uid_range() and behave according to its result. - * modules/pam_tty_audit/pam_tty_audit.8.xml: Document the uid range matching. - -2017-05-31 Tomas Mraz <tmraz@fedoraproject.org> - - pam_access: support parsing files in /etc/security/access.d/*.conf. - * modules/pam_access/pam_access.c (login_access): Return NOMATCH if - there was no match in the parsed file. - (pam_sm_authenticate): Add glob() call to go through the ACCESS_CONF_GLOB - subdirectory and call login_access() on the individual files matched. - * modules/pam_access/pam_access.8.xml: Document the addition. - * modules/pam_access/Makefile.am: Add ACCESS_CONF_GLOB definition. - -2017-04-11 Tomas Mraz <tmraz@fedoraproject.org> - - pam_localuser: Correct the example in documentation. - * modules/pam_localuser/pam_localuser.8.xml: The example configuration - does something different. - - pam_localuser: Correct documentation of return value. - * modules/pam_localuser/pam_localuser.8.xml: The module returns - PAM_PERM_DENIED when the user is not listed. - -2017-03-10 Saul Johnson <saul.a.johnson@gmail.com> - - Make maxclassrepeat=1 behavior consistent with docs (#9) - * modules/pam_cracklib/pam_cracklib.c (simple): Apply the maxclassrepeat when greater than 0. - -2017-02-09 Josef Moellers <jmoellers@suse.de> - - Properly test for strtol() failure to find any digits. - * modules/pam_access/pam_access.c (network_netmask_match): Test for endptr set - to beginning and not NULL. - -2017-01-19 Daniel Abrecht <daniel.abrecht@hotmail.com> - - pam_exec: fix a potential null pointer dereference. - Fix a null pointer dereference when pam_prompt returns PAM_SUCCESS - but the response is set to NULL. - - * modules/pam_exec/pam_exec.c (call_exec): Do not invoke strndupa - with a null pointer. - - Closes: https://github.com/linux-pam/linux-pam/pull/2 - -2016-12-07 Antonio Ospite <ao2@ao2.it> - - Add missing comma in the limits.conf.5 manpage. - * modules/pam_limits/limits.conf.5.xml: add a missing comma - -2016-11-14 Tomas Mraz <tmraz@fedoraproject.org> - - Regular links doesn't work with -no-numbering -no-references. - * configure.ac: Use elinks instead of links. - -2016-11-01 Tomas Mraz <tmraz@fedoraproject.org> - - pam_access: First check for the (group) match. - The (group) match is performed first to allow for groups - containing '@'. - - * modules/pam_access/pam_access.c (user_match): First check for the (group) match. - -2016-10-17 Tomas Mraz <tmraz@fedoraproject.org> - - pam_ftp: Properly use the first name from the supplied list. - * modules/pam_ftp/pam_ftp.c (lookup): Return first user from the list - of anonymous users if user name matches. - (pam_sm_authenticate): Free the returned value allocated in lookup(). - -2016-09-12 Bartos-Elekes Zsolt <muszi@kite.hu> - - pam_issue: Fix no prompting in parse escape codes mode. - * modules/pam_issue/pam_issue.c (read_issue_quoted): Fix misplaced strcat(). - -2016-06-30 Maxin B. John <maxin.john@intel.com> - - xtests: remove bash dependency. - There are no bash specific syntax in the xtest scripts. So, remove - the bash dependency. - -2016-06-30 Tomas Mraz <tmraz@fedoraproject.org> - - Unification and cleanup of syslog log levels. - * libpam/pam_handlers.c: Make memory allocation failures LOG_CRIT. - * libpam/pam_modutil_priv.c: Make memory allocation failures LOG_CRIT. - * modules/pam_echo/pam_echo.c: Make memory allocation failures LOG_CRIT. - * modules/pam_env/pam_env.c: Make memory allocation failures LOG_CRIT. - * modules/pam_exec/pam_exec.c: Make memory allocation failures LOG_CRIT. - * modules/pam_filter/pam_filter.c: Make all non-memory call errors LOG_ERR. - * modules/pam_group/pam_group.c: Make memory allocation failures LOG_CRIT. - * modules/pam_issue/pam_issue.c: Make memory allocation failures LOG_CRIT. - * modules/pam_lastlog/pam_lastlog.c: The lastlog file creation is syslogged - with LOG_NOTICE, memory allocation errors with LOG_CRIT, other errors - with LOG_ERR. - * modules/pam_limits/pam_limits.c: User login limit messages are syslogged - with LOG_NOTICE, stale utmp entry with LOG_INFO, non-memory errors with - LOG_ERR. - * modules/pam_listfile/pam_listfile.c: Rejection of user is syslogged - with LOG_NOTICE. - * modules/pam_namespace/pam_namespace.c: Make memory allocation failures - LOG_CRIT. - * modules/pam_nologin/pam_nologin.c: Make memory allocation failures - LOG_CRIT, other errors LOG_ERR. - * modules/pam_securetty/pam_securetty.c: Rejection of access is syslogged - with LOG_NOTICE, non-memory errors with LOG_ERR. - * modules/pam_selinux/pam_selinux.c: Make memory allocation failures LOG_CRIT. - * modules/pam_succeed_if/pam_succeed_if.c: Make all non-memory call errors - LOG_ERR. - * modules/pam_time/pam_time.c: Make memory allocation failures LOG_CRIT. - * modules/pam_timestamp/pam_timestamp.c: Make memory allocation failures - LOG_CRIT. - * modules/pam_unix/pam_unix_acct.c: Make all non-memory call errors LOG_ERR. - * modules/pam_unix/pam_unix_passwd.c: Make memory allocation failures LOG_CRIT, - other errors LOG_ERR. - * modules/pam_unix/pam_unix_sess.c: Make all non-memory call errors LOG_ERR. - * modules/pam_unix/passverify.c: Unknown user is syslogged with LOG_NOTICE. - * modules/pam_unix/support.c: Unknown user is syslogged with LOG_NOTICE and - max retries ignorance by application likewise. - * modules/pam_unix/unix_chkpwd.c: Make all non-memory call errors LOG_ERR. - * modules/pam_userdb/pam_userdb.c: Password authentication error is syslogged - with LOG_NOTICE. - * modules/pam_xauth/pam_xauth.c: Make memory allocation failures LOG_CRIT. - -2016-06-14 Dmitry V. Levin <ldv@altlinux.org> - - pam_timestamp: fix typo in strncmp usage. - Before this fix, a typo in check_login_time resulted to ruser and - struct utmp.ut_user being compared by the first character only, - which in turn could lead to a too low timestamp value being assigned - to oldest_login, effectively causing bypass of check_login_time. - - * modules/pam_timestamp/pam_timestamp.c (check_login_time): Fix typo - in strncmp usage. - - Patch-by: Anton V. Boyarshinov <boyarsh@altlinux.org> - -2016-05-30 Tomas Mraz <tmraz@fedoraproject.org> - - Correct the examples in pam_fail_delay(3) man page. - doc/man/pam_fail_delay.3.xml: Correct the examples. - -2016-05-11 Tomas Mraz <tmraz@fedoraproject.org> - - Remove spaces in examples for access.conf. - The spaces are ignored only with the default listsep. To remove confusion - if non-default listsep is used they are removed from the examples. - - * modules/pam_access/access.conf: Remove all spaces around ':' in examples. - * modules/pam_access/access.conf.5.xml: Likewise. - -2016-05-05 Mike Frysinger <vapier@gentoo.org> - - build: avoid non-portable == with "test" (ticket #60) - POSIX says test only accepts =. Some shells (including bash) accept ==, - but we should still stick to = for portability. - - * configure.ac: Replace == with = in "test" invocations. - -2016-04-28 Thorsten Kukuk <kukuk@thkukuk.de> - - Release version 1.3.0. - * NEWS: add changes for 1.3.0. - * configure.ac: bump version number. - * libpam/Makefile.am: bump revision of libpam.so version. - -2016-04-28 Tomas Mraz <tmraz@fedoraproject.org> - - Updated translations from Zanata. - * po/*.po: Updated translations from Zanata. - -2016-04-19 Tomas Mraz <tmraz@fedoraproject.org> - - pam_wheel: Correct the documentation of the root_only option. - * modules/pam_wheel/pam_wheel.8.xml: Correct the documentation of the - root_only option. - - pam_unix: Document that MD5 password hash is used to store old passwords. - modules/pam_unix/pam_unix.8.xml: Document that the MD5 password hash is used - to store the old passwords when remember option is set. - -2016-04-14 Tomas Mraz <tmraz@fedoraproject.org> - - Project registered at Zanata (fedora.zanata.org) for translations. - * zanata.xml: Configuration file for zanata client. - * po/LINGUAS: Update languages as supported by Zanata. - * po/Linux-PAM.pot: Updated from sources. - * po/*.po: Updated from sources. - -2016-04-06 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Use pam_get_authtok() instead of direct pam_prompt() calls. - We have to drop support for not_set_pass option which is not much useful - anyway. Instead we get proper support for authtok_type option. - - * modules/pam_unix/pam_unix.8.xml: Removed not_set_pass option, added authtok_ty - pe - option. - * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Replace _unix_read_pas - sword() - call with equivalent pam_get_authtok() call. - * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Likewise and also drop - support for not_set_pass. - * modules/pam_unix/support.c (_unix_read_password): Remove. - * modules/pam_unix/support.h: Remove UNIX_NOT_SET_PASS add UNIX_AUTHTOK_TYPE. - -2016-04-06 Tomas Mraz <tmraz@fedoraproject.org> - - pam_get_authtok(): Add authtok_type support to current password prompt. - * libpam/pam_get_authtok.c (pam_get_authtok_internal): When changing password, - use different prompt for current password allowing for authtok_type to be - displayed to the user. - -2016-04-04 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Make password expiration messages more user-friendly. - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Make password - expiration messages more user-friendly. - -2016-04-04 Thorsten Kukuk <kukuk@thkukuk.de> - - innetgr may not be there so make sure that when innetgr is not present then we inform about it and not use it. [ticket#46] - * modules/pam_group/pam_group.c: ditto - * modules/pam_succeed_if/pam_succeed_if.c: ditto - * modules/pam_time/pam_time.c: ditto - - build: fix build when crypt() is not part of crypt_libs [ticket#46] - * configure.ac: Don't set empty -l option in crypt check - - build: use $host_cpu for lib64 directory handling [ticket#46] - * configure.ac: use $host_cpu for lib64 directory handling. - -2016-04-01 Dmitry V. Levin <ldv@altlinux.org> - - Fix whitespace issues. - Remove blank lines at EOF introduced by commit - a684595c0bbd88df71285f43fb27630e3829121e, - making the project free of warnings reported by - git diff --check 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD - - * libpam/pam_dynamic.c: Remove blank line at EOF. - * modules/pam_echo/pam_echo.c: Likewise. - * modules/pam_keyinit/pam_keyinit.c: Likewise. - * modules/pam_mkhomedir/pam_mkhomedir.c: Likewise. - * modules/pam_pwhistory/pam_pwhistory.c: Likewise. - * modules/pam_rhosts/pam_rhosts.c: Likewise. - * modules/pam_sepermit/pam_sepermit.c: Likewise. - * modules/pam_stress/pam_stress.c: Likewise. - -2016-04-01 Thorsten Kukuk <kukuk@thkukuk.de> - - Use TI-RPC functions if we compile and link against libtirpc. The old SunRPC functions don't work with IPv6. - * configure.ac: Set and restore CPPFLAGS - * modules/pam_unix/pam_unix_passwd.c: Replace getrpcport with - rpcb_getaddr if available. - -2016-03-29 Thorsten Kukuk <kukuk@thkukuk.de> - - PAM_EXTERN isn't needed anymore, but don't remove it to not break lot of external code using it. - * libpam/include/security/pam_modules.h: Readd PAM_EXTERN for compatibility - - Remove "--enable-static-modules" option and support from Linux-PAM. It was never official supported and was broken since years. - * configure.ac: Remove --enable-static-modules option. - * doc/man/pam_sm_acct_mgmt.3.xml: Remove PAM_EXTERN. - * doc/man/pam_sm_authenticate.3.xml: Likewise. - * doc/man/pam_sm_chauthtok.3.xml: Likewise. - * doc/man/pam_sm_close_session.3.xml: Likewise. - * doc/man/pam_sm_open_session.3.xml: Likewise. - * doc/man/pam_sm_setcred.3.xml: Likewise. - * libpam/Makefile.am: Remove STATIC_MODULES cases. - * libpam/include/security/pam_modules.h: Remove PAM_STATIC parts. - * libpam/pam_dynamic.c: Likewise. - * libpam/pam_handlers.c: Likewise. - * libpam/pam_private.h: Likewise. - * libpam/pam_static.c: Remove file. - * libpam/pam_static_modules.h: Remove header file. - * modules/pam_access/pam_access.c: Remove PAM_EXTERN and PAM_STATIC parts. - * modules/pam_cracklib/pam_cracklib.c: Likewise. - * modules/pam_debug/pam_debug.c: Likewise. - * modules/pam_deny/pam_deny.c: Likewise. - * modules/pam_echo/pam_echo.c: Likewise. - * modules/pam_env/pam_env.c: Likewise. - * modules/pam_exec/pam_exec.c: Likewise. - * modules/pam_faildelay/pam_faildelay.c: Likewise. - * modules/pam_filter/pam_filter.c: Likewise. - * modules/pam_ftp/pam_ftp.c: Likewise. - * modules/pam_group/pam_group.c: Likewise. - * modules/pam_issue/pam_issue.c: Likewise. - * modules/pam_keyinit/pam_keyinit.c: Likewise. - * modules/pam_lastlog/pam_lastlog.c: Likewise. - * modules/pam_limits/pam_limits.c: Likewise. - * modules/pam_listfile/pam_listfile.c: Likewise. - * modules/pam_localuser/pam_localuser.c: Likewise. - * modules/pam_loginuid/pam_loginuid.c: Likewise. - * modules/pam_mail/pam_mail.c: Likewise. - * modules/pam_mkhomedir/pam_mkhomedir.c: Likewise. - * modules/pam_motd/pam_motd.c: Likewise. - * modules/pam_namespace/pam_namespace.c: Likewise. - * modules/pam_nologin/pam_nologin.c: Likewise. - * modules/pam_permit/pam_permit.c: Likewise. - * modules/pam_pwhistory/pam_pwhistory.c: Likewise. - * modules/pam_rhosts/pam_rhosts.c: Likewise. - * modules/pam_rootok/pam_rootok.c: Likewise. - * modules/pam_securetty/pam_securetty.c: Likewise. - * modules/pam_selinux/pam_selinux.c: Likewise. - * modules/pam_sepermit/pam_sepermit.c: Likewise. - * modules/pam_shells/pam_shells.c: Likewise. - * modules/pam_stress/pam_stress.c: Likewise. - * modules/pam_succeed_if/pam_succeed_if.c: Likewise. - * modules/pam_tally/pam_tally.c: Likewise. - * modules/pam_tally2/pam_tally2.c: Likewise. - * modules/pam_time/pam_time.c: Likewise. - * modules/pam_timestamp/pam_timestamp.c: Likewise. - * modules/pam_tty_audit/pam_tty_audit.c: Likewise. - * modules/pam_umask/pam_umask.c: Likewise. - * modules/pam_userdb/pam_userdb.c: Likewise. - * modules/pam_warn/pam_warn.c: Likewise. - * modules/pam_wheel/pam_wheel.c: Likewise. - * modules/pam_xauth/pam_xauth.c: Likewise. - * modules/pam_unix/Makefile.am: Remove STATIC_MODULES part. - * modules/pam_unix/pam_unix_acct.c: Remove PAM_STATIC part. - * modules/pam_unix/pam_unix_auth.c: Likewise. - * modules/pam_unix/pam_unix_passwd.c: Likewise. - * modules/pam_unix/pam_unix_sess.c: Likewise. - * modules/pam_unix/pam_unix_static.c: Removed. - * modules/pam_unix/pam_unix_static.h: Removed. - * po/POTFILES.in: Remove removed files. - * tests/tst-dlopen.c: Remove PAM_STATIC part. - -2016-03-24 Thorsten Kukuk <kukuk@thkukuk.de> - - Fix check for libtirpc and enhance check for libnsl to include new libnsl. - * configure.ac: fix setting of CFLAGS/LIBS, enhance libnsl check - * modules/pam_unix/Makefile.am: replace NIS_* with TIRPC_* and NSL_* - -2016-03-23 Thorsten Kukuk <kukuk@thkukuk.de> - - Remove YP dependencies from pam_access, they were never used and such not needed. - * modules/pam_access/Makefile.am: Remove NIS_CFLAGS and NIS_LIBS - * modules/pam_access/pam_access.c: Remove yp_get_default_domain case, - it will never be used. - -2016-03-04 Tomas Mraz <tmraz@fedoraproject.org> - - Add checks for localtime() returning NULL. - * modules/pam_lastlog/pam_lastlog.c (last_login_read): Check for localtime_r - returning NULL. - * modules/pam_tally2/pam_tally2.c (print_one): Check for localtime returning - NULL. - -2016-03-04 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Silence warnings and fix a minor bug. - Fixes a minor bug in behavior when is_selinux_enabled() - returned negative value. - - * modules/pam_unix/passverify.c: Add parentheses to SELINUX_ENABLED macro. - (unix_update_shadow): Safe cast forwho to non-const char *. - * modules/pam_unix/support.c: Remove unused SELINUX_ENABLED macro. - -2016-02-17 Tomas Mraz <tmraz@fedoraproject.org> - - pam_env: Document the /etc/environment file. - * modules/pam_env/Makefile.am: Add the environment.5 soelim stub. - * modules/pam_env/pam_env.8.xml: Add environ(7) reference. - * modules/pam_env/pam_env.conf.5.xml: Add environment alias name. - Add a paragraph about /etc/environment. Add environ(7) reference. - - pam_unix: Add no_pass_expiry option to ignore password expiration. - * modules/pam_unix/pam_unix.8.xml: Document the no_pass_expiry option. - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): If no_pass_expiry - is on and return value data is not set to PAM_SUCCESS then ignore - PAM_NEW_AUTHTOK_REQD and PAM_AUTHTOK_EXPIRED returns. - * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Always set the - return value data. - (pam_sm_setcred): Test for likeauth option and use the return value data - only if set. - * modules/pam_unix/support.h: Add the no_pass_expiry option. - -2016-01-25 Tomas Mraz <tmraz@fedoraproject.org> - - pam_unix: Change the salt length for new hashes to 16 characters. - * modules/pam_unix/passverify.c (create_password_hash): Change the - salt length for new hashes to 16 characters. - -2015-12-17 Tomas Mraz <tmraz@fedoraproject.org> - - Relax the conditions for fatal failure on auditing. - The PAM library calls will not fail anymore for any uid if the return - value from the libaudit call is -EPERM. - - * libpam/pam_audit.c (_pam_audit_writelog): Remove check for uid != 0. - -2015-12-16 Tomas Mraz <tmraz@fedoraproject.org> - - pam_tally2: Optionally log the tally count when checking. - * modules/pam_tally2/pam_tally2.c (tally_parse_args): Add debug option. - (tally_check): Always log the tally count with debug option. - -2015-10-02 Jakub Hrozek <jakub.hrozek@posteo.se> - - Docfix: pam handle is const in pam_syslog() and pam_vsyslog() - * doc/man/pam_syslog.3.xml: Add const to pam handle in pam_syslog() and pam_vsyslog(). - -2015-09-24 Tomas Mraz <tmraz@fedoraproject.org> - - pam_loginuid: Add syslog message if required auditd is not detected. - * modules/pam_loginuid/pam_loginuid.c (_pam_loginuid): Add syslog message - if required auditd is not detected. - -2015-09-04 Tomas Mraz <tmraz@fedoraproject.org> - - Allow links to be used instead of w3m for documentation regeneration. - * configure.ac: If w3m is not found check for links. - - Add missing space in pam_misc_setenv man page. - * doc/man/pam_misc_setenv.3.xml: Add a missing space. - -2015-08-12 Tomas Mraz <tmraz@fedoraproject.org> - - pam_rootok: use rootok permission instead of passwd permission in SELinux check. - * modules/pam_rootok/pam_rootok.c (selinux_check_root): Use rootok instead of - passwd permission. - -2015-08-05 Amarnath Valluri <amarnath.valluri@intel.com> - - pam_timestamp: Avoid leaking file descriptor. - * modules/pam_timestamp/hmacsha1.c(hmac_key_create): - close 'keyfd' when failed to own it. - -2015-06-22 Thorsten Kukuk <kukuk@thkukuk.de> - - Release version 1.2.1. - Security fix: CVE-2015-3238 - - If the process executing pam_sm_authenticate or pam_sm_chauthtok method - of pam_unix is not privileged enough to check the password, e.g. - if selinux is enabled, the _unix_run_helper_binary function is called. - When a long enough password is supplied (16 pages or more, i.e. 65536+ - bytes on a system with 4K pages), this helper function hangs - indefinitely, blocked in the write(2) call while writing to a blocking - pipe that has a limited capacity. - With this fix, the verifiable password length will be limited to - PAM_MAX_RESP_SIZE bytes (i.e. 512 bytes) for pam_exec and pam_unix. - - * NEWS: Update - * configure.ac: Bump version - * modules/pam_exec/pam_exec.8.xml: document limitation of password length - * modules/pam_exec/pam_exec.c: limit password length to PAM_MAX_RESP_SIZE - * modules/pam_unix/pam_unix.8.xml: document limitation of password length - * modules/pam_unix/pam_unix_passwd.c: limit password length - * modules/pam_unix/passverify.c: Likewise - * modules/pam_unix/passverify.h: Likewise - * modules/pam_unix/support.c: Likewise - -2015-04-27 Thorsten Kukuk <kukuk@thkukuk.de> - - Update NEWS file. - - Release version 1.2.0. - * NEWS: Update - * configure.ac: Bump version - * libpam/Makefile.am: Bump version of libpam - * libpam_misc/Makefile.am: Bump version of libpam_misc - * po/*: Regenerate po files - - Fix some grammatical errors in documentation. Patch by Louis Sautier. - * doc/adg/Linux-PAM_ADG.xml: Fix gramatical errors. - * doc/man/pam.3.xml: Likewise. - * doc/man/pam_acct_mgmt.3.xml: Likewise. - * doc/man/pam_chauthtok.3.xml: Likewise. - * doc/man/pam_sm_chauthtok.3.xml: Likewise. - * modules/pam_limits/limits.conf.5.xml: Likewise. - * modules/pam_mail/pam_mail.8.xml: Likewise. - * modules/pam_rhosts/pam_rhosts.c: Likewise. - * modules/pam_shells/pam_shells.8.xml: Likewise. - * modules/pam_tally/pam_tally.8.xml: Likewise. - * modules/pam_tally2/pam_tally2.8.xml: Likewise. - * modules/pam_unix/pam_unix.8.xml: Likewise. - -2015-04-23 Thorsten Kukuk <kukuk@thkukuk.de> - - Add "quiet" option to pam_unix to suppress informential info messages from session. - * modules/pam_unix/pam_unix.8.xml: Document new option. - * modules/pam_unix/support.h: Add quiet option. - * modules/pam_unix/pam_unix_sess.c: Don't print LOG_INFO messages if - 'quiet' option is set. - -2015-04-07 Tomas Mraz <tmraz@fedoraproject.org> - - Use crypt_r if available in pam_userdb and in pam_unix. - * modules/pam_unix/passverify.c (create_password_hash): Call crypt_r() - instead of crypt() if available. - * modules/pam_userdb/pam_userdb.c (user_lookup): Call crypt_r() - instead of crypt() if available. - -2015-03-25 Thorsten Kukuk <kukuk@thkukuk.de> - - Support alternative "vendor configuration" files as fallback to /etc (Ticket#34, patch from ay Sievers <kay@vrfy.org>) - * doc/man/pam.8.xml: document additonal config directory - * libpam/pam_handlers.c: add /usr/lib/pam.d as config file fallback directory - * libpam/pam_private.h: adjust defines - - pam_env: expand @{HOME} and @{SHELL} and enhance documentation (Ticket#24 and #29) - * modules/pam_env/pam_env.c: Replace @{HOME} and @{SHELL} with passwd entries - * modules/pam_env/pam_env.conf.5.xml: Document @{HOME} and @{SHELL} - * modules/pam_env/pam_env.8.xml: Enhance documentation - -2015-03-24 Thorsten Kukuk <kukuk@thkukuk.de> - - Clarify pam_access docs re PAM service names and X $DISPLAY value testing. (Ticket #39) - * modules/pam_access/access.conf.5.xml - * modules/pam_access/pam_access.8.xml - - Don't use sudo directory, the timestamp format is different (Ticket#32) - * modules/pam_timestamp/pam_timestamp.c: Change default timestamp directory. - - Enhance group.conf examples (Ticket#35) - * modules/pam_group/group.conf.5.xml: Enhance example by logic group entry. - - Document timestampdir option (Ticket#33) - * modules/pam_timestamp/pam_timestamp.8.xml: Add timestampdir option. - - Adjust documentation (Ticket#36) - * libpam/pam_delay.c: Change 25% in comment to 50% as used in code. - * doc/man/pam_fail_delay.3.xml: Change 25% to 50% - -2015-02-18 Tomas Mraz <tmraz@fedoraproject.org> - - Updated translations from Transifex. - * po/*.po: Updated translations from Transifex. - -2015-01-07 Dmitry V. Levin <ldv@altlinux.org> - - build: raise gettext version requirement. - Raise gettext requirement to the latest oldstable version 0.18.3. - This fixes the following automake warning: - - configure.ac:581: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged. - configure.ac:581: You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead, - configure.ac:581: and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files. - - * configure.ac (AM_GNU_GETTEXT_VERSION): Raise from 0.15 to 0.18.3. - * po/Makevars: Update from gettext-0.18.3. - -2015-01-07 Ronny Chevalier <chevalier.ronny@gmail.com> - - build: adjust automake warning flags. - Enable all automake warning flags except for the portability issues, - since non portable features are used among the makefiles. - - * configure.ac (AM_INIT_AUTOMAKE): Add -Wall -Wno-portability. - -2015-01-07 Dmitry V. Levin <ldv@altlinux.org> - - build: rename configure.in to configure.ac. - This fixes the following automake warning: - aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in' - - * configure.in: Rename to configure.ac. - -2015-01-07 Dmitry V. Levin <ldv@altlinux.org> - - Remove unmodified GNU gettext files installed by autopoint. - These files are part of GNU gettext; we have not modified them, they are - installed by autopoint which is called by autoreconf, so they had to be - removed from this repository along with ABOUT-NLS, config.rpath, and - mkinstalldirs files that were removed by commit - Linux-PAM-1_1_5-7-g542ec8b. - - * po/Makefile.in.in: Remove. - * po/Rules-quot: Likewise. - * po/boldquot.sed: Likewise. - * po/en@boldquot.header: Likewise. - * po/en@quot.header: Likewise. - * po/insert-header.sin: Likewise. - * po/quot.sed: Likewise. - * po/remove-potcdate.sin: Likewise. - * po/.gitignore: Ignore these files. - -2015-01-06 Ronny Chevalier <chevalier.ronny@gmail.com> - - Update .gitignore. - * .gitignore: Ignore *.log and *.trs files. - -2015-01-02 Luke Shumaker <lukeshu@sbcglobal.net> - - libpam: Only print "Password change aborted" when it's true. - pam_get_authtok() may be used any time that a password needs to be entered, - unlike pam_get_authtok_{no,}verify(), which may only be used when - changing a password; yet when the user aborts, it prints "Password change - aborted." whether or not that was the operation being performed. - - This bug was non-obvious because none of the modules distributed with - Linux-PAM use it for anything but changing passwords; pam_unix has its - own utility function that it uses instead. As an example, the - nss-pam-ldapd package uses it in pam_sm_authenticate(). - - libpam/pam_get_authtok.c (pam_get_authtok_internal): check that the - password is trying to be changed before printing a message about the - password change being aborted. - -2014-12-10 Dmitry V. Levin <ldv@altlinux.org> - - build: extend cross compiling check to cover CPPFLAGS (ticket #21) - Use BUILD_CPPFLAGS variable to override CPPFLAGS where necessary in - case of cross compiling, in addition to CC_FOR_BUILD, BUILD_CFLAGS, - and BUILD_LDFLAGS variables introduced earlier to override CC, - CFLAGS, and LDFLAGS, respectively. - - * configure.in (BUILD_CPPFLAGS): Define. - * doc/specs/Makefile.am (CPPFLAGS): Define to @BUILD_CPPFLAGS@. - -2014-12-09 Dmitry V. Levin <ldv@altlinux.org> - - Do not use yywrap (ticket #42) - Our scanners do not really use yywrap. Explicitly disable yywrap - so that no references to yywrap will be generated and no LEXLIB - would be needed. - - * conf/pam_conv1/Makefile.am (pam_conv1_LDADD): Remove. - * conf/pam_conv1/pam_conv_l.l: Enable noyywrap option. - * doc/specs/Makefile.am (padout_LDADD): Remove. - * doc/specs/parse_l.l: Enable noyywrap option. - -2014-12-09 Kyle Manna <kyle@kylemanna.com> - - doc: fix a trivial typo in pam_authenticate return values (ticket #38) - * doc/man/pam_authenticate.3.xml: Fix a typo in PAM_AUTHINFO_UNAVAIL. - -2014-12-08 Ronny Chevalier <chevalier.ronny@gmail.com> - - doc: fix typo in pam_authenticate.3.xml. - * doc/man/pam_authenticate.3.xml: Fix typo. - -2014-10-17 Tomas Mraz <tmraz@fedoraproject.org> - - pam_succeed_if: Fix copy&paste error in rhost and tty values. - modules/pam_succeed_if/pam_succeed_if.c (evaluate): Use PAM_RHOST - and PAM_TTY properly for the rhost and tty values. - -2014-10-17 Tomas Mraz <tmraz@fedoraproject.org> - - pam_succeed_if: Use long long type for numeric values. - The currently used long with additional conversion to int is - too small for uids and gids. - - modules/pam_succeed_if/pam_succeed_if.c (evaluate_num): Replace - strtol() with strtoll() and int with long long in the parameters - of comparison functions. - -2014-09-05 Tomas Mraz <tmraz@fedoraproject.org> - - Add grantor field to audit records of libpam. - The grantor field gives audit trail of PAM modules which granted access - for successful return from libpam calls. In case of failed return - the grantor field is set to '?'. - libpam/pam_account.c (pam_acct_mgmt): Remove _pam_auditlog() call. - libpam/pam_auth.c (pam_authenticate, pam_setcred): Likewise. - libpam/pam_password.c (pam_chauthtok): Likewise. - libpam/pam_session.c (pam_open_session, pam_close_session): Likewise. - libpam/pam_audit.c (_pam_audit_writelog): Add grantors parameter, - add grantor= field to the message if grantors is set. - (_pam_list_grantors): New function creating the string with grantors list. - (_pam_auditlog): Add struct handler pointer parameter, call _pam_list_grantors() - to list the grantors from the handler list. - (_pam_audit_end): Add NULL handler parameter to _pam_auditlog() call. - (pam_modutil_audit_write): Add NULL grantors parameter to _pam_audit_writelog(). - libpam/pam_dispatch.c (_pam_dispatch_aux): Set h->grantor where appropriate. - (_pam_clear_grantors): New function to clear grantor field of handler. - (_pam_dispatch): Call _pam_clear_grantors() before executing the stack. - Call _pam_auditlog() when appropriate. - libpam/pam_handlers.c (extract_modulename): Do not allow empty module name - or just "?" to avoid confusing audit trail. - (_pam_add_handler): Test for NULL return from extract_modulename(). - Clear grantor field of handler. - libpam/pam_private.h: Add grantor field to struct handler, add handler pointer - parameter to _pam_auditlog(). - -2014-08-26 Tomas Mraz <tmraz@fedoraproject.org> - - pam_mkhomedir: Drop superfluous stat() call. - modules/pam_mkhomedir/mkhomedir_helper.c (create_homedir): Drop superfluous - stat() call. - - pam_exec: Do not depend on open() returning STDOUT_FILENO. - modules/pam_exec/pam_exec.c (call_exec): Move the descriptor to - STDOUT_FILENO if needed. - -2014-08-25 Robin Hack <rhack@redhat.com> - - pam_keyinit: Check return value of setregid. - modules/pam_keyinit/pam_keyinit.c (pam_sm_open_session): Log if setregid() fails. - - pam_filter: Avoid leaking descriptors when fork() fails. - modules/pam_filter/pam_filter.c (set_filter): Close descriptors when fork() fails. - -2014-08-14 Robin Hack <rhack@redhat.com> - - pam_echo: Avoid leaking file descriptor. - modules/pam_echo/pam_echo.c (pam_echo): Close fd in error cases. - -2014-08-13 Robin Hack <rhack@redhat.com> - - pam_tty_audit: Silence Coverity reporting uninitialized use. - modules/pam_tty_audit/pam_tty_audit.c (nl_recv): Initialize also - msg_flags. - -2014-08-13 Tomas Mraz <tmraz@fedoraproject.org> - - pam_tally2: Avoid uninitialized use of fileinfo. - Problem found by Robin Hack <rhack@redhat.com>. - modules/pam_tally2/pam_tally2.c (get_tally): Do not depend on file size - just try to read it. - - pam_access: Avoid uninitialized access of line. - * modules/pam_access/pam_access.c (login_access): Reorder condition - so line is not accessed when uninitialized. - -2014-08-05 Tomas Mraz <tmraz@fedoraproject.org> - - pam_lastlog: Properly clean up last_login structure before use. - modules/pam_lastlog/pam_lastlog.c (last_login_write): Properly clean up last_login - structure before use. - -2014-07-21 Tomas Mraz <tmraz@fedoraproject.org> - - Make pam_pwhistory and pam_unix tolerant of corrupted opasswd file. - * modules/pam_pwhistory/opasswd.c (parse_entry): Test for missing fields - in opasswd entry and return error. - * modules/pam_unix/passverify.c (save_old_password): Test for missing fields - in opasswd entry and skip it. - -2014-06-30 Dmitry V. Levin <ldv@altlinux.org> - - doc: add missing build dependencies for soelim stubs. - * doc/man/Makefile.am [ENABLE_REGENERATE_MAN]: Add dependencies for - pam_verror.3, pam_vinfo.3, pam_vprompt.3, and pam_vsyslog.3 soelim stubs. - -2014-06-23 Dmitry V. Levin <ldv@altlinux.org> - - doc: fix install in case of out of tree build (ticket #31) - * doc/adg/Makefile.am (install-data-local, releasedocs): Fall back - to srcdir if documentation files haven't been found in builddir. - (releasedocs): Treat missing documentation files as an error. - * doc/mwg/Makefile.am: Likewise. - * doc/sag/Makefile.am: Likewise. - -2014-06-19 Dmitry V. Levin <ldv@altlinux.org> - - doc: fix installation of adg-*.html and mwg-*.html files (ticket #31) - Fix a typo due to which sag-*.html files might be installed instead of - adg-*.html and mwg-*.html files. - - * doc/adg/Makefile.am (install-data-local): Install adg-*.html instead - of sag-*.html. - * doc/mwg/Makefile.am (install-data-local): Install mwg-*.html instead - of sag-*.html. - - Patch-by: Mike Frysinger <vapier@gentoo.org> - -2014-06-19 Tomas Mraz <tmraz@fedoraproject.org> - - pam_limits: nofile refers to file descriptors not files. - modules/pam_limits/limits.conf.5.xml: Correct documentation of nofile limit. - modules/pam_limits/limits.conf: Likewise. - - pam_limits: clarify documentation of maxlogins and maxsyslogins limits. - modules/pam_limits/limits.conf.5.xml: clarify documentation of - maxlogins and maxsyslogins limits. - - pam_unix: Check for NULL return from Goodcrypt_md5(). - modules/pam_unix/pam_unix_passwd.c (check_old_password): Check for - NULL return from Goodcrypt_md5(). - - pam_unix: check for NULL return from malloc() - * modules/pam_unix/md5_crypt.c (crypt_md5): Check for NULL return from malloc(). - -2014-05-22 Tomas Mraz <tmraz@fedoraproject.org> - - pam_loginuid: Document one more possible case of PAM_IGNORE return. - modules/pam_loginuid/pam_loginuid.8.xml: Document one more possible case - of PAM_IGNORE return value. - - pam_loginuid: Document other possible return values. - modules/pam_loginuid/pam_loginuid.8.xml: Document the possible return - values. - -2014-03-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_timestamp: fix potential directory traversal issue (ticket #27) - pam_timestamp uses values of PAM_RUSER and PAM_TTY as components of - the timestamp pathname it creates, so extra care should be taken to - avoid potential directory traversal issues. - - * modules/pam_timestamp/pam_timestamp.c (check_tty): Treat - "." and ".." tty values as invalid. - (get_ruser): Treat "." and ".." ruser values, as well as any ruser - value containing '/', as invalid. - - Fixes CVE-2014-2583. - - Reported-by: Sebastian Krahmer <krahmer@suse.de> - -2014-03-20 Tomas Mraz <tmraz@fedoraproject.org> - - pam_userdb: document that .db suffix should not be used. - modules/pam_userdb/pam_userdb.8.xml: Document that .db suffix - should not be used and correct the example. - -2014-03-11 Tomas Mraz <tmraz@fedoraproject.org> - - pam_selinux: canonicalize user name. - SELinux expects canonical user name for example without domain component. - - * modules/pam_selinux/pam_selinux.c (compute_exec_context): Canonicalize user name with pam_modutil_getpwnam(). - -2014-01-28 Dmitry V. Levin <ldv@altlinux.org> - - Change tarball name back to "Linux-PAM" - As a side effect of commit Linux-PAM-1_1_8-11-g3fa23ce, tarball name - changed accidentally from "Linux-PAM" to "linux-pam". - This change brings it back to "Linux-PAM". - - * configure.in (AC_INIT): Explicitly specify TARNAME argument. - -2014-01-27 Dmitry V. Levin <ldv@altlinux.org> - - Introduce pam_modutil_sanitize_helper_fds. - This change introduces pam_modutil_sanitize_helper_fds - a new function - that redirects standard descriptors and closes all other descriptors. - - pam_modutil_sanitize_helper_fds supports three types of input and output - redirection: - - PAM_MODUTIL_IGNORE_FD: do not redirect at all. - - PAM_MODUTIL_PIPE_FD: redirect to a pipe. For stdin, it is implemented - by creating a pipe, closing its write end, and redirecting stdin to - its read end. Likewise, for stdout/stderr it is implemented by - creating a pipe, closing its read end, and redirecting to its write - end. Unlike stdin redirection, stdout/stderr redirection to a pipe - has a side effect that a process writing to such descriptor should be - prepared to handle SIGPIPE appropriately. - - PAM_MODUTIL_NULL_FD: redirect to /dev/null. For stdin, it is - implemented via PAM_MODUTIL_PIPE_FD because there is no functional - difference. For stdout/stderr, it is classic redirection to - /dev/null. - - PAM_MODUTIL_PIPE_FD is usually more suitable due to linux kernel - security restrictions, but when the helper process might be writing to - the corresponding descriptor and termination of the helper process by - SIGPIPE is not desirable, one should choose PAM_MODUTIL_NULL_FD. - - * libpam/pam_modutil_sanitize.c: New file. - * libpam/Makefile.am (libpam_la_SOURCES): Add it. - * libpam/include/security/pam_modutil.h (pam_modutil_redirect_fd, - pam_modutil_sanitize_helper_fds): New declarations. - * libpam/libpam.map (LIBPAM_MODUTIL_1.1.9): New interface. - * modules/pam_exec/pam_exec.c (call_exec): Use - pam_modutil_sanitize_helper_fds. - * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Likewise. - * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): Likewise. - * modules/pam_unix/pam_unix_passwd.c (_unix_run_update_binary): - Likewise. - * modules/pam_unix/support.c (_unix_run_helper_binary): Likewise. - * modules/pam_xauth/pam_xauth.c (run_coprocess): Likewise. - * modules/pam_unix/support.h (MAX_FD_NO): Remove. - -2014-01-27 Dmitry V. Levin <ldv@altlinux.org> - - pam_xauth: avoid potential SIGPIPE when writing to xauth process. - Similar issue in pam_unix was fixed by commit Linux-PAM-0-73~8. - - * modules/pam_xauth/pam_xauth.c (run_coprocess): In the parent process, - close the read end of input pipe after writing to its write end. - -2014-01-27 Dmitry V. Levin <ldv@altlinux.org> - - pam_loginuid: log significant loginuid write errors. - * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Log those errors - during /proc/self/loginuid update that are not ignored. - -2014-01-27 Dmitry V. Levin <ldv@altlinux.org> - - Fix gratuitous use of strdup and x_strdup. - There is no need to copy strings passed as arguments to execve, - the only potentially noticeable effect of using strdup/x_strdup - would be a malformed argument list in case of memory allocation error. - - Also, x_strdup, being a thin wrapper around strdup, is of no benefit - when its argument is known to be non-NULL, and should not be used in - such cases. - - * modules/pam_cracklib/pam_cracklib.c (password_check): Use strdup - instead of x_strdup, the latter is of no benefit in this case. - * modules/pam_ftp/pam_ftp.c (lookup): Likewise. - * modules/pam_userdb/pam_userdb.c (user_lookup): Likewise. - * modules/pam_userdb/pam_userdb.h (x_strdup): Remove. - * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Do not use - x_strdup for strings passed as arguments to execve. - * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): Likewise. - * modules/pam_unix/pam_unix_passwd.c (_unix_run_update_binary): Likewise. - * modules/pam_unix/support.c (_unix_run_helper_binary): Likewise. - (_unix_verify_password): Use strdup instead of x_strdup, the latter - is of no benefit in this case. - * modules/pam_xauth/pam_xauth.c (run_coprocess): Do not use strdup for - strings passed as arguments to execv. - -2014-01-27 Dmitry V. Levin <ldv@altlinux.org> - - pam_userdb: fix password hash comparison. - Starting with commit Linux-PAM-0-77-28-g0b3e583 that introduced hashed - passwords support in pam_userdb, hashes are compared case-insensitively. - This bug leads to accepting hashes for completely different passwords in - addition to those that should be accepted. - - Additionally, commit Linux-PAM-1_1_6-13-ge2a8187 that added support for - modern password hashes with different lengths and settings, did not - update the hash comparison accordingly, which leads to accepting - computed hashes longer than stored hashes when the latter is a prefix - of the former. - - * modules/pam_userdb/pam_userdb.c (user_lookup): Reject the computed - hash whose length differs from the stored hash length. - Compare computed and stored hashes case-sensitively. - Fixes CVE-2013-7041. - - Bug-Debian: http://bugs.debian.org/731368 - -2014-01-24 Dmitry V. Levin <ldv@altlinux.org> - - pam_xauth: log fatal errors preventing xauth process execution. - * modules/pam_xauth/pam_xauth.c (run_coprocess): Log errors from pipe() - and fork() calls. - -2014-01-22 Dmitry V. Levin <ldv@altlinux.org> - - pam_loginuid: cleanup loginuid buffer initialization. - * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Move loginuid - buffer initialization closer to its first use. - -2014-01-22 Dmitry V. Levin <ldv@altlinux.org> - - libpam_misc: fix an inconsistency in handling memory allocation errors. - When misc_conv fails to allocate memory for pam_response array, it - returns PAM_CONV_ERR. However, when read_string fails to allocate - memory for a response string, it loses the response string and silently - ignores the error, with net result as if EOF has been read. - - * libpam_misc/misc_conv.c (read_string): Use strdup instead of x_strdup, - the latter is of no benefit in this case. - Do not ignore potential memory allocation errors returned by strdup, - forward them to misc_conv. - -2014-01-20 Dmitry V. Levin <ldv@altlinux.org> - - pam_limits: fix utmp->ut_user handling. - ut_user member of struct utmp is a string that is not necessarily - null-terminated, so extra care should be taken when using it. - - * modules/pam_limits/pam_limits.c (check_logins): Convert ut->UT_USER to - a null-terminated string and consistently use it where a null-terminated - string is expected. - -2014-01-20 Dmitry V. Levin <ldv@altlinux.org> - - pam_mkhomedir: check and create home directory for the same user (ticket #22) - Before pam_mkhomedir helper was introduced in commit - 7b14630ef39e71f603aeca0c47edf2f384717176, pam_mkhomedir was checking for - existance and creating the same directory - the home directory of the - user NAME returned by pam_get_item(PAM_USER). - - The change in behaviour accidentally introduced along with - mkhomedir_helper is not consistent: while the module still checks for - getpwnam(NAME)->pw_dir, the directory created by mkhomedir_helper is - getpwnam(getpwnam(NAME)->pw_name)->pw_dir, which is not necessarily - the same as the directory being checked. - - This change brings check and creation back in sync, both handling - getpwnam(NAME)->pw_dir. - - * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Replace - "struct passwd *" argument with user's name and home directory. - Pass user's name to MKHOMEDIR_HELPER. - (pam_sm_open_session): Update create_homedir call. - -2014-01-20 Tomas Mraz <tmraz@fedoraproject.org> - - pam_limits: detect and ignore stale utmp entries. - Original idea by Christopher Hailey - - * modules/pam_limits/pam_limits.c (check_logins): Use kill() to - detect if pid of the utmp entry is still running and ignore the entry - if it is not. - -2014-01-19 Stéphane Graber <stgraber@ubuntu.com> - - pam_loginuid: Always return PAM_IGNORE in userns. - The previous patch to support user namespaces works fine with containers - that are started from a desktop/terminal session but fails when dealing - with containers that were started from a remote session such as ssh. - - I haven't looked at the exact reason for that in the kernel but on the - userspace side of things, the difference is that containers started from - an ssh session will happily let pam open /proc/self/loginuid read-write, - will let it read its content but will then fail with EPERM when trying - to write to it. - - So to make the userns support bullet proof, this commit moves the userns - check earlier in the function (which means a small performance impact as - it'll now happen everytime on kernels that have userns support) and will - set rc = PAM_IGNORE instead of rc = PAM_ERROR. - - The rest of the code is still executed in the event that PAM is run on a - future kernel where we have some kind of audit namespace that includes a - working loginuid. - -2014-01-15 Steve Langasek <vorlon@debian.org> - - pam_namespace: don't use bashisms in default namespace.init script. - * modules/pam_namespace/pam_namespace.c: call setuid() before execing the - namespace init script, so that scripts run with maximum privilege regardless - of the shell implementation. - * modules/pam_namespace/namespace.init: drop the '-p' bashism from the - shebang line - - This is not a POSIX standard option, it's a bashism. The bash manpage says - that it's used to prevent the effective user id from being reset to the real - user id on startup, and to ignore certain unsafe variables from the - environment. - - In the case of pam_namespace, the -p is not necessary for environment - sanitizing because the PAM module (properly) sanitizes the environment - before execing the script. - - The stated reason given in CVS history for passing -p is to "preserve euid - when called from setuid apps (su, newrole)." This should be done more - portably, by calling setuid() before spawning the shell. - - Bug-Debian: http://bugs.debian.org/624842 - Bug-Ubuntu: https://bugs.launchpad.net/bugs/1081323 - -2014-01-10 Stéphane Graber <stgraber@ubuntu.com> - - pam_loginuid: Ignore failure in user namespaces. - When running pam_loginuid in a container using the user namespaces, even - uid 0 isn't allowed to set the loginuid property. - - This change catches the EACCES from opening loginuid, checks if the user - is in the host namespace (by comparing the uid_map with the host's one) - and only if that's the case, sets rc to 1. - - Should uid_map not exist or be unreadable for some reason, it'll be - assumed that the process is running on the host's namespace. - - The initial reason behind this change was failure to ssh into an - unprivileged container (using a 3.13 kernel and current LXC) when using - a standard pam profile for sshd (which requires success from - pam_loginuid). - - I believe this solution doesn't have any drawback and will allow people - to use unprivileged containers normally. An alternative would be to have - all distros set pam_loginuid as optional but that'd be bad for any of - the other potential failure case which people may care about. - - There has also been some discussions to get some of the audit features - tied with the user namespaces but currently none of that has been merged - upstream and the currently proposed implementation doesn't cover - loginuid (nor is it clear how this should even work when loginuid is set - as immutable after initial write). - -2014-01-10 Dmitry V. Levin <ldv@altlinux.org> - - pam_loginuid: return PAM_IGNORE when /proc/self/loginuid does not exist. - When /proc/self/loginuid does not exist, return PAM_IGNORE instead of - PAM_SUCCESS, so that we can distinguish between "loginuid set - successfully" and "loginuid not set, but this is expected". - - Suggested by Steve Langasek. - - * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Change return - code semantics: return PAM_SUCCESS on success, PAM_IGNORE when loginuid - does not exist, PAM_SESSION_ERR in case of any other error. - (_pam_loginuid): Forward the PAM error code returned by set_loginuid. - -2013-11-20 Dmitry V. Levin <ldv@altlinux.org> - - pam_access: fix debug level logging (ticket #19) - * modules/pam_access/pam_access.c (group_match): Log the group token - passed to the function, not an uninitialized data on the stack. - - pam_warn: log flags passed to the module (ticket #25) - * modules/pam_warn/pam_warn.c (log_items): Take "flags" argument and - log it using pam_syslog. - (pam_sm_authenticate, pam_sm_setcred, pam_sm_chauthtok, - pam_sm_acct_mgmt, pam_sm_open_session, pam_sm_close_session): Pass - "flags" argument to log_items. - -2013-11-20 Dmitry V. Levin <ldv@altlinux.org> - - Modernize AM_INIT_AUTOMAKE invocation. - Before this change, automake complained that two- and three-arguments - forms of AM_INIT_AUTOMAKE are deprecated. - - * configure.in: Pass PACKAGE and VERSION arguments to AC_INIT instead - of AM_INIT_AUTOMAKE. - -2013-11-20 Dmitry V. Levin <ldv@altlinux.org> - - Fix autoconf warnings. - Before this change, autoconf complained that AC_COMPILE_IFELSE - and AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS. - - * configure.in: Call AC_USE_SYSTEM_EXTENSIONS before LT_INIT. - -2013-11-20 Dmitry V. Levin <ldv@altlinux.org> - - pam_securetty: check return value of fgets. - Checking return value of fgets not only silences the warning from glibc - but also leads to a cleaner code. - - * modules/pam_securetty/pam_securetty.c (securetty_perform_check): - Check return value of fgets. - -2013-11-20 Dmitry V. Levin <ldv@altlinux.org> - - pam_lastlog: fix format string. - gcc -Wformat justly complains: - format '%d' expects argument of type 'int', but argument 5 has type 'time_t' - - * modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Fix format - string. - -2013-11-20 Darren Tucker <dtucker@zip.com.au> - - If the correct loginuid is set already, skip writing it. - modules/pam_loginuid/pam_loginuid.c (set_loginuid): Read the current loginuid - and skip writing if already correctly set. - -2013-11-11 Thorsten Kukuk <kukuk@thkukuk.de> - - Always ask for old password if changing NIS account. - * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): ask - for old password if NIS account. - -2013-11-08 Thorsten Kukuk <kukuk@thkukuk.de> - - Allow DES as compatibility option for /etc/login.defs. - * modules/pam_unix/support.h: Add UNIX_DES - -2013-10-14 Tomas Mraz <tmraz@fedoraproject.org> - - Docfix: pam_prompt() and pam_vprompt() return int. - doc/man/pam_prompt.3.xml: pam_prompt() and pam_vprompt() return int. - - Make pam_tty_audit work with old kernels not supporting log_passwd. - modules/pam_tty_audit/pam_tty_audit.c(nl_recv): Pad result with zeros - if message is short from older kernel. - -2013-09-25 Tomas Mraz <tmraz@fedoraproject.org> - - Fix pam_tty_audit log_passwd support and regression. - modules/pam_tty_audit/pam_tty_audit.c: Add missing "config.h" include. - (pam_sm_open_session): Always copy the old status as initialization of new. - -2013-09-19 Thorsten Kukuk <kukuk@thkukuk.de> - - Release version 1.1.8. - -2013-09-16 Thorsten Kukuk <kukuk@thkukuk.de> - - Check return value of setuid to remove glibc warnings. - * modules/pam_unix/pam_unix_acct.c: Check setuid return value. - * modules/pam_unix/support.c: Likewise. - -2013-09-13 Tomas Mraz <tmraz@fedoraproject.org> - - Write to *rounds only if non-NULL. - modules/pam_unix/support.c(_set_ctrl): Write to *rounds only if non-NULL. - - Add missing ')' - modules/pam_unix/pam_unix_passwd.c: Add missing ')'.. - -2013-09-11 Thorsten Kukuk <kukuk@thkukuk.de> - - Release version 1.1.7. - -2013-09-11 Tomas Mraz <tmraz@fedoraproject.org> - - Updated translations from Transifex. - po/*.po: Updated translations from Transifex. - -2013-09-04 Thorsten Kukuk <kukuk@thkukuk.de> - - Extend pam_exec by stdout and type= options (ticket #8): - * modules/pam_exec/pam_exec.c: Add stdout and type= option - * modules/pam_exec/pam_exec.8.xml: Document new options - -2013-08-30 Thorsten Kukuk <kukuk@thkukuk.de> - - Fix compile error. - * modules/pam_unix/pam_unix_acct.c: fix last change - -2013-08-29 Thorsten Kukuk <kukuk@thkukuk.de> - - Restart waitpid if it returns with EINTR (ticket #17) - * modules/pam_unix/pam_unix_acct.c: run waitpid in a while loop. - * modules/pam_unix/pam_unix_passwd.c: Likewise. - * modules/pam_unix/support.c: Likewise. - -2013-08-28 Thorsten Kukuk <kukuk@thkukuk.de> - - misc_conv.3: Fix documentation of misc_conv. - doc/man/misc_conv.3.xml: Fix return value of misc_conv - -2013-08-23 Tomas Mraz <tmraz@fedoraproject.org> - - Apply the exclusive check in pam_sepermit only when loginuid not set. - * modules/pam_sepermit/pam_sepermit.c(get_loginuid): Read loginuid from - /proc - (sepermit_match): Apply the exclusive check only when loginuid not set. - -2013-08-22 Tomas Mraz <tmraz@fedoraproject.org> - - Updated translations from Transifex. - * po/*.po: Updated translations from Transifex. - -2013-07-01 Dmitry V. Levin <ldv@altlinux.org> - - pam_rootok: fix linking in --enable-audit mode. - pam_rootok.c explicitly uses functions from libaudit, so the module has - to be linked with the library. - - * modules/pam_rootok/Makefile.am (pam_rootok_la_LIBADD): Add @LIBAUDIT@. - -2013-07-01 Richard Guy Briggs <rgb@redhat.com> - - pam_tty_audit: fix a typo that crept in during patch review. - * modules/pam_tty_audit/pam_tty_audit.c (pam_sm_open_session): Replace - all occurrences of HAVE_AUDIT_TTY_STATUS_LOG_PASSWD with - HAVE_STRUCT_AUDIT_TTY_STATUS_LOG_PASSWD. - * configure.in (HAVE_AUDIT_TTY_STATUS_LOG_PASSWD): Remove. - -2013-06-21 Richard Guy Briggs <rgb@redhat.com> - - pam_tty_audit: add an option to control logging of passwords: log_passwd - Most commands are entered one line at a time and processed as complete lines - in non-canonical mode. Commands that interactively require a password, enter - canonical mode with echo set to off to do this. This feature (icanon and - !echo) can be used to avoid logging passwords by audit while still logging the - rest of the command. Adding a member to the struct audit_tty_status passed in - by pam_tty_audit allows control of logging passwords per task. - - * configure.in: autoconf bits to conditionally add support at compile time - depending on struct audit_tty_status kernel header version. - * modules/pam_tty_audit/pam_tty_audit.8.xml: Document new pam_tty_audit module - log_passwd option. - * modules/pam_tty_audit/pam_tty_audit.c: (pam_sm_open_session): Added - "log_passwd" option parsing. - -2013-06-20 Tomas Mraz <tmraz@fedoraproject.org> - - Man page fix - unix_update runs in the permissive mode as well. - modules/pam_unix/unix_update.8.xml: unix_update helper runs in the - permissive mode as well. - -2013-06-18 Thorsten Kukuk <kukuk@orinoco.thkukuk.de> - - Use hash from /etc/login.defs as default if no other one is specified as argument. - * modules/pam_unix/support.c: Add search_key, call from __set_ctrl - * modules/pam_unix/support.h: Add define for /etc/login.defs - * modules/pam_unix/pam_unix.8.xml: Document new behavior. - * modules/pam_umask/pam_umask.c: Add missing NULL pointer check - -2013-04-12 Tomas Mraz <tmraz@fedoraproject.org> - - pam_access: better not change the default function used to get domain name. - modules/pam_access/pam_access.c (netgroup_match): As we did not use - yp_get_default_domain() in the 1.1 branch due to typo in ifdef - we should use it only as fallback. - -2013-03-28 Tomas Mraz <tmraz@fedoraproject.org> - - Fix strict aliasing issue in MD5 implementations. - modules/pam_namespace/md5.c (MD5Final): Use memcpy instead of assignment. - modules/pam_unix/md5.c (MD5Final): Use memcpy instead of assignment. - -2013-03-22 Tomas Mraz <tmraz@fedoraproject.org> - - pam_lastlog: Do not fail on short read if btmp is corrupted. - modules/pam_lastlog/pam_lastlog.c (last_login_failed): Just warn, not fail - on short read or read error. - - pam_rootok: Allow proper logging of the user AVC if access disallowed by SELinux - modules/pam_rootok/pam_rootok.c (log_callback, selinux_check_root): New functions. - (check_for_root): Use the selinux_check_root() instead of checkPasswdAccess. - -2013-02-08 Tomas Mraz <tmraz@fedoraproject.org> - - Add checks for crypt() returning NULL. - modules/pam_pwhistory/opasswd.c (compare_password): Add check for crypt() NULL return. - modules/pam_unix/bigcrypt.c (bigcrypt): Likewise. - -2013-02-07 Tomas Mraz <tmraz@fedoraproject.org> - - pam_userdb: Allow also modern password hashes supported by crypt(). - modules/pam_userdb/pam_userdb.c (user_lookup): Allow password hashes - longer than 13 characters and long salt. - -2013-01-18 Walter de Jong <walter.dejong@surfsara.nl> - - pam_access: fix typo in ifdef. - modules/pam_access/pam_access.c (netgroup_match): Fix typo - in #ifdef HAVE_YP_GET_DEFAULT_DOMAIN. - -2012-12-20 Tomas Mraz <tmraz@fedoraproject.org> - - pam_cracklib: Mention checks that are not run for root. - modules/pam_cracklib/pam_cracklib.8.xml: Add note about checks - when run as root. - - Update also the POT file. - po/Linux-PAM.pot: Update to reflect current sources. - -2012-12-12 Tomas Mraz <tmraz@fedoraproject.org> - - Updated translations from Transifex, added new languages. - po/LINGUAS: Added new languages. - po/*.po: Updated translations from Transifex including new languages. - -2012-11-30 Tomas Mraz <tmraz@fedoraproject.org> - - pam_selinux: Drop obsolete and unsupported manual context selection. - modules/pam_selinux/pam_selinux.c (manual_context): Drop function. - (compute_exec_context): Drop manual_context() call. - -2012-11-23 Tomas Mraz <tmraz@fedoraproject.org> - - pam_limits: fix grammatical mistake. - modules/pam_limits/limits.conf: Fix grammatical mistake. - -2012-11-13 Tomas Mraz <tmraz@fedoraproject.org> - - Reflect the enforce_for_root semantics change in pam_pwhistory xtest. - xtests/tst-pam_pwhistory1.pamd: Use enforce_for_root as the test is - running with real uid == 0. - -2012-10-10 Dmitry V. Levin <ldv@altlinux.org> - - pam_unix: fix build in --enable-selinux mode. - glibc's <sys/wait.h> starting with commit - http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=glibc-2.15-231-gd94a467 - does not include <sys/resource.h> for POSIX 2008 conformance reasons, so - when pam is being built with SELinux support enabled, pam_unix_passwd.c - uses getrlimit(2) and therefore should include <sys/resource.h> without - relying on other headers. - - * modules/pam_unix/pam_unix_passwd.c: Include <sys/resource.h>. - - Reported-by: Guido Trentalancia <guido@trentalancia.com> - Reported-by: "Jory A. Pratt" <anarchy@gentoo.org> - Reported-by: Diego Elio Pettenò <flameeyes@flameeyes.eu> - -2012-10-10 Tomas Mraz <tmraz@fedoraproject.org> - - pam_namespace: add mntopts flag for tmpfs mount options. - modules/pam_namespace/pam_namespace.h: Add mount_opts member to polydir - structure. - modules/pam_namespace/pam_namespace.c (del_polydir): Free the mount_opts. - (parse_method): Parse the mntopts flag. - (ns_setup): Pass the mount_opts to mount(). - modules/pam_namespace/namespace.conf.5.xml: Document the mntopts flag. - -2012-09-06 Tomas Mraz <tmraz@fedoraproject.org> - - pam_selinux, pam_tally2: Add tty and rhost to audit data. - modules/pam_selinux/pam_selinux.c (send_audit_message): Obtain tty and - rhost from PAM items and pass them to audit. - modules/pam_tally2/pam_tally2.c (tally_check): Obtain tty and - rhost from PAM items and pass them to audit. - (main): Obtain tty name of stdin and pass it to audit. - - Update configure.in to use more recent interfaces. - configure.in: Use LT_INIT instead of AC_PROG_LIBTOOL and AS_HELP_STRING instead - of AC_HELP_STRING. - -2012-08-17 Tomas Mraz <tmraz@fedoraproject.org> - - Add missing $(DESTDIR) when making directories on install. - modules/pam_namespace/Makefile.am: Add missing $(DESTDIR) when making - $(namespaceddir) on install. - modules/pam_sepermit/Makefile.am: Add missing $(DESTDIR) when making - $(sepermitlockdir) on install. - -2012-08-17 Thorsten Kukuk <kukuk@orinoco.thkukuk.de> - - release version 1.1.6. - configure.in: Bump version to 1.1.6 - NEWS: Document changes - po/*.po: Regenerate *.po files - -2012-08-16 Thorsten Kukuk <kukuk@thkukuk.de> - - Small documentation and define fixes. - modules/pam_limits/limits.conf.5.xml: Document race of maxlogins [#10] - modules/pam_namespace/pam_namespace.h: Define MS_SLAVE if necessary - modules/pam_pwhistory/pam_pwhistory.c: Document how the module works - modules/pam_unix/pam_unix.8.xml: Document remember option obsoleted by pam_pwhistory [#6] - -2012-08-13 Tomas Mraz <tmraz@fedoraproject.org> - - Respect PAM_AUTHTOK_TYPE in pam_get_authtok_verify(). - libpam/pam_get_authtok.c (pam_get_authtok_internal): Set the PAM_AUTHTOK_TYPE - item when obtained from module options. - (pam_get_authtok_verify): Use the PAM_AUTHTOK_TYPE item when prompting. - -2012-08-09 Tomas Mraz <tmraz@fedoraproject.org> - - Document limits.d also in the limits.conf manpage. - modules/pam_limits/limits.conf.5.xml: Document the limits.d existence. - -2012-07-23 Tomas Mraz <tmraz@fedoraproject.org> - - New autotools do not create empty directories on install. - modules/pam_namespace/Makefile.am: Add install-data-local target to create - namespaceddir. - modules/pam_sepermit/Makefile.am: Add install-data-local target to create - sepermitlockdir. - -2012-07-09 Stevan Bajić <stevan@bajic.ch> - - RLIMIT_* variables are no longer defined unless you explicitly include sys/resource.h. - - modules/pam_unix/pam_unix_acct.c: Include sys/resource.h. - -2012-06-27 Tomas Mraz <tmraz@fedoraproject.org> - - pam_umask: correct the documentation of GECOS field parsing. - modules/pam_umask/pam_umask.8.xml: Correct the documentation of GECOS field - parsing. - -2012-06-22 Tomas Mraz <tmraz@fedoraproject.org> - - pam_cracklib: Add monotonic character sequence checking. - modules/pam_cracklib/pam_cracklib.c (_pam_parse): Parse the maxsequence option. - (sequence): New function to check for too long monotonic sequence of characters. - (password_check): Call the sequence(). - modules/pam_cracklib/pam_cracklib.8.xml: Document the maxsequence check. - -2012-06-01 Tomas Mraz <tmraz@fedoraproject.org> - - pam_timestamp: Fix copy&paste error in manpage. - modules/pam_timestamp/pam_timestamp.8.xml: Fix AUTHOR section. - -2012-05-28 Tomas Mraz <tmraz@fedoraproject.org> - - Pulled new translations from Transifex. - po/*.po: Updated translations. - - pam_pwhistory: Always record the old password even when root changes it. - modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Use the UID of - the process instead of the target user UID (same as in pam_cracklib) to - check for root. Always record old password. - -2012-05-24 Tomas Mraz <tmraz@fedoraproject.org> - - pam_cracklib: Add enforce_for_root option. - modules/pam_cracklib/pam_cracklib.c (_pam_parse): Recognize the enforce_for_root option. - (pam_sm_chauthtok): Enforce errors for root with the option. - modules/pam_cracklib/pam_cracklib.8.xml: Document the enforce_for_root option. - -2012-04-30 Tomas Mraz <tmraz@fedoraproject.org> - - pam_cracklib: Add maxclassrepeat, gecoscheck checks and remove unused difignore. - modules/pam_cracklib/pam_cracklib.c (_pam_parse): Recognize the maxclassrepeat, gecoscheck options. Ignore difignore option. - (simple): Add the check for the same class repetition. - (usercheck): Refactor into wordcheck(). - (gecoscheck): New test for words from the GECOS field. - (password_check): Call the gecoscheck(). - (pam_sm_chauthtok): Drop the diff_ignore from options struct. - modules/pam_cracklib/pam_cracklib.8.xml: Document the maxclassrepeat and gecoscheck checks, update the documentation of the difok test. - - pam_lastlog: Never lock out the root account. - modules/pam_lastlog/pam_lastlog.c (pam_sm_authenticate): Return PAM_SUCCESS if - uid==0. - modules/pam_lastlog/pam_lastlog.8.xml: Improve documentation. - -2012-04-17 Tomas Mraz <tmraz@fedoraproject.org> - - pam_lastlog: add possibility to lock out inactive users in auth or account - * modules/pam_lastlog/pam_lastlog.8.xml: Document the new functionality and - option. - * modules/pam_lastlog/pam_lastlog.c: Add the inactive user lock out. - (_pam_session_parse): Renamed from _pam_parse. - (_pam_auth_parse): New function to parse auth arguments. - (_last_login_open): Factor out opening of the lastlog file. - (_last_login_read): Factor out opening of the lastlog file. - (pam_sm_authenticate): Implement the lockout functionality. - (pam_sm_setcred): Just return PAM_SUCCESS. - (pam_sm_acct_mgmt): Call pam_sm_authenticate(). - -2012-04-11 Paul Wouters <pwouters@redhat.com> - - Check for crypt() failure returning NULL. - * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Adjust syslog message. - * modules/pam_unix/passverify.c (create_password_hash): Check for crypt() - returning NULL. - -2012-02-03 Dmitry V. Levin <ldv@altlinux.org> - - pam_unix: make configuration consistent in --enable-static-modules mode. - In --enable-static-modules mode, it was not possible to use "pam_unix" - in PAM config files. Instead, different names had to be used for each - management group: pam_unix_auth, pam_unix_acct, pam_unix_passwd and - pam_unix_session. This change makes pam_unix configuration consistent - with other PAM modules. - - * README: Remove the paragraph describing pam_unix distinctions in - --enable-static-modules mode. - * libpam/pam_static_modules.h (_pam_unix_acct_modstruct, - _pam_unix_auth_modstruct, _pam_unix_passwd_modstruct, - _pam_unix_session_modstruct): Remove. - (_pam_unix_modstruct): New pam_module declaration. - * modules/pam_unix/pam_unix_static.h: New file. - * modules/pam_unix/pam_unix_static.c: Likewise. - * modules/pam_unix/Makefile.am (noinst_HEADERS): Add pam_unix_static.h - (pam_unix_la_SOURCES) [STATIC_MODULES]: Add pam_unix_static.c - * modules/pam_unix/pam_unix_acct.c [PAM_STATIC]: Include - pam_unix_static.h - [PAM_STATIC] (_pam_unix_acct_modstruct): Remove. - * modules/pam_unix/pam_unix_auth.c [PAM_STATIC]: Include - pam_unix_static.h - [PAM_STATIC] (_pam_unix_auth_modstruct): Remove. - * modules/pam_unix/pam_unix_passwd.c [PAM_STATIC]: Include - pam_unix_static.h - [PAM_STATIC] (_pam_unix_passwd_modstruct): Remove. - * modules/pam_unix/pam_unix_sess.c [PAM_STATIC]: Include - pam_unix_static.h - [PAM_STATIC] (_pam_unix_session_modstruct): Remove. - - Suggested-by: Matveychikov Ilya <i.matveychikov@securitycode.ru> - -2012-01-27 Dmitry V. Levin <ldv@altlinux.org> - - Make --disable-cracklib compatible with --enable-static-modules mode. - * configure.in: Define HAVE_LIBCRACK when cracklib is enabled. - * libpam/pam_static_modules.h (static_modules): Guard the use of - _pam_cracklib_modstruct by HAVE_LIBCRACK macro. - -2012-02-10 Tomas Mraz <tmraz@fedoraproject.org> - - Add missing includes for types used in the pam_modutil.h. - * libpam/include/security/pam_modutil.h: Add missing includes for used types. - -2012-01-27 Matveychikov Ilya <i.matveychikov@securitycode.ru> - - Fix compile time errors in --enable-static-modules mode. - * libpam/pam_static_modules.h (_pam_rhosts_auth_modstruct): Remove - obsolete declaration. - (static_modules): Remove undefined reference to - _pam_rhosts_auth_modstruct. - * modules/pam_pwhistory/opasswd.h: Rename {save,check}_old_password to - {save,check}_old_pass in order to avoid conflicts with pam_unix. - * modules/pam_pwhistory/opasswd.c: Likewise. - * modules/pam_pwhistory/pam_pwhistory.c: Likewise. - * modules/pam_tally2/pam_tally2.c: Rename _pam_tally_modstruct to - _pam_tally2_modstruct. - -2012-01-26 Dmitry V. Levin <ldv@altlinux.org> - - Fix SUBDIRS for --enable-static-modules mode. - There is no way to build "modules" subdirectory before "libpam" anyway. - In STATIC_MODULES mode, "libpam" subdirectory must be built twice to - produce a usable libpam.a without undefined references to multiple - _pam_*_modstruct symbols. - - * Makefile.am: Use default SUBDIRS in STATIC_MODULES mode. - -2012-01-26 Matveychikov Ilya <i.matveychikov@securitycode.ru> - - configure: fix typo in --disable-nis help string. - * configure.in: Change '-disable-nis' to '--disable-nis'. - -2012-01-26 Tomas Mraz <tmraz@fedoraproject.org> - - Do not unmount anything by default in pam_namespace close session call. - * modules/pam_namespace/pam_namespace.c (pam_sm_close_session): Recognize - the unmount_on_close option and make the default to be to not unmount. - * modules/pam_namespace/pam_namespace.h: Rename PAMNS_NO_UNMOUNT_ON_CLOSE to - PAMNS_UNMOUNT_ON_CLOSE. - * modules/pam_namespace/pam_namespace.8.xml: Document the change. - -2012-01-24 Tomas Mraz <tmraz@fedoraproject.org> - - Make / mount as rslave instead of bind mounting polydirs. - * modules/pam_namespace/pam_namespace.c (protect_dir): Drop the always argument. - (check_inst_parent): Drop the always argument from protect_dir(). - (create_polydir): Likewise. - (ns_setup): Likewise and do not mark the polydir with MS_PRIVATE. - (setup_namespace): Mark the / with MS_SLAVE|MS_REC. - * modules/pam_namespace/pam_namespace.8.xml: Reflect the change in docs. - -2012-01-13 Tomas Mraz <tmraz@fedoraproject.org> - - Add possibility to match ruser, rhost, and tty in pam_succeed_if. - * modules/pam_succeed_if/pam_succeed_if.c (evaluate): Match ruser, - rhost, and tty as left operand. - * modules/pam_succeed_if/pam_succeed_if.8.xml: Document the new - possible left operands. - -2012-01-03 Tomas Mraz <tmraz@fedoraproject.org> - - Merge branch 'master' of ssh://git.fedorahosted.org/git/linux-pam. - - Fix matching of usernames in the pam_unix remember feature. - * modules/pam_unix/pam_unix_passwd.c (check_old_password): Make - sure we match only the whole username in opasswd entry. - * modules/pam_unix/passverify.c (save_old_password): Likewise make - sure we match only the whole username in opasswd entry. - -2011-12-26 Dmitry V. Levin <ldv@altlinux.org> - - pam_start: fix memory leak on error path. - * libpam/pam_start.c (pam_start): If _pam_make_env() or - _pam_init_handlers() returned an error, release the memory allocated - for pam_conv structure. - - Patch-by: cancel <suntsu@yandex.ru>. - -2011-11-03 Dmitry V. Levin <ldv@altlinux.org> - - pam_selinux.8.xml: update. - * modules/pam_selinux/pam_selinux.8.xml (pam_selinux-cmdsynopsis): - Reorder options, add new "restore" option. - pam_selinux-description): Rewrite. - (pam_selinux-options): Reorder options, describe new "restore" option. - (pam_selinux-return_values): Remove PAM_AUTH_ERR, PAM_SESSION_ERR - and PAM_BUF_ERR. - (pam_selinux-see_also): Remove pam.conf(5). Add execve(2), tty(4) - and selinux(8). - - pam_selinux.c: add "restore" option. - * modules/pam_selinux/pam_selinux.c (pam_sm_open_session): Add new - "restore" option. - - pam_selinux.c: rewrite using pam_get_data/pam_set_data. - * modules/pam_selinux/pam_selinux.c (security_restorelabel_tty, - security_label_tty): Remove old functions. - (module_data_t): New structure. - (free_module_data, cleanup, get_module_data, get_item, - set_exec_context, set_file_context, compute_exec_context, - compute_tty_context, restore_context, set_context, - create_context): New functions. - (pam_sm_authenticate, pam_sm_setcred, pam_sm_open_session, - pam_sm_close_session): Use them. - -2011-10-28 Dmitry V. Levin <ldv@altlinux.org> - - Use libpam.la/libpam_misc.la to link with -lpam/-lpam_misc. - GNU automake documentation recommends to avoid using -l options in - LDADD or LIBADD when referring to libraries built by the package. - Instead, it recommends to write the file name of the library explicitly, - and use -l option only to list third-party libraries. As result, the - default value of *_DEPENDENCIES will list all local libraries and omit - the other ones. - * modules/pam_access/Makefile.am (pam_access_la_LIBADD): Replace - "-L$(top_builddir)/libpam -lpam" with - "$(top_builddir)/libpam/libpam.la", to follow GNU automake - recommendations. - * modules/pam_cracklib/Makefile.am (pam_cracklib_la_LIBADD): Likewise. - * modules/pam_debug/Makefile.am (pam_debug_la_LIBADD): Likewise. - * modules/pam_deny/Makefile.am (pam_deny_la_LIBADD): Likewise. - * modules/pam_echo/Makefile.am (pam_echo_la_LIBADD): Likewise. - * modules/pam_env/Makefile.am (pam_env_la_LIBADD): Likewise. - * modules/pam_exec/Makefile.am (pam_exec_la_LIBADD): Likewise. - * modules/pam_faildelay/Makefile.am (pam_faildelay_la_LIBADD): Likewise. - * modules/pam_filter/Makefile.am (pam_filter_la_LIBADD): Likewise. - * modules/pam_filter/upperLOWER/Makefile.am (LDADD): Likewise. - * modules/pam_ftp/Makefile.am (pam_ftp_la_LIBADD): Likewise. - * modules/pam_group/Makefile.am (pam_group_la_LIBADD): Likewise. - * modules/pam_issue/Makefile.am (pam_issue_la_LIBADD): Likewise. - * modules/pam_keyinit/Makefile.am (pam_keyinit_la_LIBADD): Likewise. - * modules/pam_lastlog/Makefile.am (pam_lastlog_la_LIBADD): Likewise. - * modules/pam_limits/Makefile.am (pam_limits_la_LIBADD): Likewise. - * modules/pam_listfile/Makefile.am (pam_listfile_la_LIBADD): Likewise. - * modules/pam_localuser/Makefile.am (pam_localuser_la_LIBADD): Likewise. - * modules/pam_loginuid/Makefile.am (pam_loginuid_la_LIBADD): Likewise. - * modules/pam_mail/Makefile.am (pam_mail_la_LIBADD): Likewise. - * modules/pam_mkhomedir/Makefile.am (pam_mkhomedir_la_LIBADD, - mkhomedir_helper_LDADD): Likewise. - * modules/pam_motd/Makefile.am (pam_motd_la_LIBADD): Likewise. - * modules/pam_namespace/Makefile.am (pam_namespace_la_LIBADD): Likewise. - * modules/pam_nologin/Makefile.am (pam_nologin_la_LIBADD): Likewise. - * modules/pam_permit/Makefile.am (pam_permit_la_LIBADD): Likewise. - * modules/pam_pwhistory/Makefile.am (pam_pwhistory_la_LIBADD): Likewise. - * modules/pam_rhosts/Makefile.am (pam_rhosts_la_LIBADD): Likewise. - * modules/pam_rootok/Makefile.am (pam_rootok_la_LIBADD): Likewise. - * modules/pam_securetty/Makefile.am (pam_securetty_la_LIBADD): Likewise. - * modules/pam_sepermit/Makefile.am (pam_sepermit_la_LIBADD): Likewise. - * modules/pam_shells/Makefile.am (pam_shells_la_LIBADD): Likewise. - * modules/pam_stress/Makefile.am (pam_stress_la_LIBADD): Likewise. - * modules/pam_succeed_if/Makefile.am (pam_succeed_if_la_LIBADD): - Likewise. - * modules/pam_tally/Makefile.am (pam_tally_la_LIBADD): Likewise. - * modules/pam_tally2/Makefile.am (pam_tally2_la_LIBADD, - pam_tally2_LDADD): Likewise. - * modules/pam_time/Makefile.am (pam_time_la_LIBADD): Likewise. - * modules/pam_timestamp/Makefile.am (pam_timestamp_la_LIBADD, - pam_timestamp_check_LDADD, hmacfile_LDADD): Likewise. - * modules/pam_tty_audit/Makefile.am (pam_tty_audit_la_LIBADD): Likewise. - * modules/pam_umask/Makefile.am (pam_umask_la_LIBADD): Likewise. - * modules/pam_unix/Makefile.am (pam_unix_la_LIBADD): Likewise. - * modules/pam_userdb/Makefile.am (pam_userdb_la_LIBADD): Likewise. - * modules/pam_warn/Makefile.am (pam_warn_la_LIBADD): Likewise. - * modules/pam_wheel/Makefile.am (pam_wheel_la_LIBADD): Likewise. - * modules/pam_xauth/Makefile.am (pam_xauth_la_LIBADD): Likewise. - * tests/Makefile.am (LDADD): Likewise. - * examples/Makefile.am (LDADD): Replace "-L$(top_builddir)/libpam -lpam" - with "$(top_builddir)/libpam/libpam.la", and - "-L$(top_builddir)/libpam_misc -lpam_misc" with - "$(top_builddir)/libpam_misc/libpam_misc.la", to follow GNU automake - recommendations. - * xtests/Makefile.am (LDADD): Likewise. - * modules/pam_selinux/Makefile.am (pam_selinux_la_LIBADD): Likewise. - - Fix usage of LIBADD, LDADD and LDFLAGS. - * modules/pam_selinux/Makefile.am: Rename pam_selinux_check_LDFLAGS to - pam_selinux_check_LDADD. - * modules/pam_userdb/Makefile.am: Split out pam_userdb_la_LIBADD from - AM_LDFLAGS. - * modules/pam_warn/Makefile.am: Split out pam_warn_la_LIBADD from - AM_LDFLAGS. - * modules/pam_wheel/Makefile.am: Split out pam_wheel_la_LIBADD from - AM_LDFLAGS. - * modules/pam_xauth/Makefile.am: split out pam_xauth_la_LIBADD from - AM_LDFLAGS. - * xtests/Makefile.am: Rename AM_LDFLAGS to LDADD. - -2011-10-27 Dmitry V. Levin <ldv@altlinux.org> - - Update .gitignore files. - * .gitignore: Add common ignore patterns. - * m4/.gitignore: Unignore local m4 files. - * dynamic/.gitignore: Unignore Makefile. - * libpamc/test/modules/.gitignore: Likewise. - * libpamc/test/regress/.gitignore: Likewise. - * po/.gitignore: Add Makevars.template. - * conf/.gitignore: Remove common ignore patterns. - * conf/pam_conv1/.gitignore: Likewise. - * doc/.gitignore: Likewise. - * doc/specs/.gitignore: Likewise. - * doc/specs/formatter/.gitignore: Likewise. - * examples/.gitignore: Likewise. - * modules/pam_filter/upperLOWER/.gitignore: Likewise. - * modules/pam_mkhomedir/.gitignore: Likewise. - * modules/pam_selinux/.gitignore: Likewise. - * modules/pam_stress/.gitignore: Likewise. - * modules/pam_tally/.gitignore: Likewise. - * modules/pam_tally2/.gitignore: Likewise. - * modules/pam_timestamp/.gitignore: Likewise. - * modules/pam_unix/.gitignore: Likewise. - * tests/.gitignore: Likewise. - * xtests/.gitignore: Likewise. - * doc/adg/.gitignore: Remove. - * doc/man/.gitignore: Remove. - * doc/mwg/.gitignore: Remove. - * doc/sag/.gitignore: Remove. - * libpamc/.gitignore: Remove. - * libpamc/test/.gitignore: Remove. - * libpam/.gitignore: Remove. - * libpam_misc/.gitignore: Remove. - * modules/.gitignore: Remove. - * modules/pam_access/.gitignore: Remove. - * modules/pam_cracklib/.gitignore: Remove. - * modules/pam_debug/.gitignore: Remove. - * modules/pam_deny/.gitignore: Remove. - * modules/pam_echo/.gitignore: Remove. - * modules/pam_env/.gitignore: Remove. - * modules/pam_exec/.gitignore: Remove. - * modules/pam_faildelay/.gitignore: Remove. - * modules/pam_filter/.gitignore: Remove. - * modules/pam_ftp/.gitignore: Remove. - * modules/pam_group/.gitignore: Remove. - * modules/pam_issue/.gitignore: Remove. - * modules/pam_keyinit/.gitignore: Remove. - * modules/pam_lastlog/.gitignore: Remove. - * modules/pam_limits/.gitignore: Remove. - * modules/pam_listfile/.gitignore: Remove. - * modules/pam_localuser/.gitignore: Remove. - * modules/pam_loginuid/.gitignore: Remove. - * modules/pam_mail/.gitignore: Remove. - * modules/pam_motd/.gitignore: Remove. - * modules/pam_namespace/.gitignore: Remove. - * modules/pam_nologin/.gitignore: Remove. - * modules/pam_permit/.gitignore: Remove. - * modules/pam_pwhistory/.gitignore: Remove. - * modules/pam_rhosts/.gitignore: Remove. - * modules/pam_rootok/.gitignore: Remove. - * modules/pam_securetty/.gitignore: Remove. - * modules/pam_sepermit/.gitignore: Remove. - * modules/pam_shells/.gitignore: Remove. - * modules/pam_succeed_if/.gitignore: Remove. - * modules/pam_time/.gitignore: Remove. - * modules/pam_tty_audit/.gitignore: Remove. - * modules/pam_umask/.gitignore: Remove. - * modules/pam_userdb/.gitignore: Remove. - * modules/pam_warn/.gitignore: Remove. - * modules/pam_wheel/.gitignore: Remove. - * modules/pam_xauth/.gitignore: Remove. - - Move generated auxiliary files to build-aux directory. - * configure.in: Add AC_CONFIG_AUX_DIR([build-aux]). - - Remove generated files. - * ABOUT-NLS: Remove. - * INSTALL: Remove. - * config.rpath: Remove. - * install-sh: Remove. - * mkinstalldirs: Remove. - * Makefile.am (EXTRA_DIST): Remove config.rpath and mkinstalldirs. - * .gitignore: Add ABOUT-NLS and INSTALL. - - Create release tarballs using safe ownership and permissions. - * Makefile.am: Define and export TAR_OPTIONS. - - Generate ChangeLog from git log. - * .gitignore: Add ChangeLog - * ChangeLog: Rename to ChangeLog-CVS. - * Makefile.am (gen-changelog): New rule. - (dist-hook, .PHONY): Depend on it. - (EXTRA_DIST): Add ChangeLog-CVS. - * README-hacking: New file. - * gitlog-to-changelog: Import from gnulib. - * autogen.sh: Create empty ChangeLog file to make automake strictness - check happy. Use automated "autoreconf -fiv" instead of manual - invocations of various autotools. - - Fix "make distcheck" - There is no use to distribute m4 files manually, because automake does - the right thing, while manual distribution is not only redundant but - also very fragile. - * Makefile.am (M4_FILES): Remove. - (EXTRA_DIST): Remove M4_FILES. - - Remove modules/pam_timestamp/hmacfile from distribution. - * modules/pam_timestamp/Makefile.am (dist_TESTS): Add tst-pam_timestamp. - (nodist_TESTS): Add hmacfile. - (EXTRA_DIST): Replace TESTS with dist_TESTS. - - Rename all .cvsignore files to .gitignore. - -2011-10-26 Dmitry V. Levin <ldv@altlinux.org> - - Fix whitespace issues. - Cleanup trailing whitespaces, indentation that uses spaces before tabs, - and blank lines at EOF. Make the project free of warnings reported by - git diff --check 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD - - -See ChangeLog-CVS for earlier changes. diff --git a/ChangeLog-CVS b/ChangeLog-CVS deleted file mode 100644 index 47b54cea..00000000 --- a/ChangeLog-CVS +++ /dev/null @@ -1,5099 +0,0 @@ -2011-10-26 Dmitry V. Levin <ldv@altlinux.org> - - NB: ChangeLog file is no longer manually maintained. - See README-hacking for details. - -2011-10-25 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.1.5 - - * configure.in: Bump version number. - - * modules/pam_tally2/pam_tally2.8.xml: Remove never used option - "no_lock_time". - -2011-10-14 Kees Cook <kees@debian.org> - - * modules/pam_env/pam_env.c (_expand_arg): Abort when encountering an - overflowed environment variable expansion. - Fixes CVE-2011-3149. - Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/874565 - - * modules/pam_env/pam_env.c (_assemble_line): Correctly count leading - whitespace. - Fixes CVE-2011-3148. - Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/874469 - -2011-10-10 Tomas Mraz <tm@t8m.info> - - * modules/pam_access/pam_access.c: Add hostname resolution - cache. - (user_match): Clear the cache in fake_item. - (from_match): If from is not hostname, do not try to resolve it. - Cache the getaddrinfo() result. - (network_netmask_match): Cache the getaddrinfo() result. - (pam_sm_authenticate): Free the getaddrinfo() result. - - * modules/pam_access/pam_access.c (netgroup_match): If getdomainname() - fails or domainname not set use NULL as domain in innetgr(). - -2011-09-30 Tomas Mraz <tm@t8m.info> - - * doc/man/pam.conf-syntax.xml: Improve documentation of the - sufficient and requisite control values. (Red Hat Bug #742413) - -2011-08-25 Tomas Mraz <tm@t8m.info> - - * modules/pam_access/pam_access.c (user_match): Fix the split - on @ in the user field. (Red Hat Bug #732081) - - * modules/pam_loginuid/pam_loginuid.c: Correct the FSF address. - -2011-08-23 Tomas Mraz <tm@t8m.info> - - * modules/pam_env/pam_env.c (_pam_parse): Fix missing dereference. - -2011-06-22 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.1.4 - - * configure.in: Bump version number. - * NEWS: Document changes since 1.1.3 - * libpam/Makefile.am: Bump release number of shared library - * po/de.po: Translate new string. - - * modules/pam_unix/Makefile.am (pam_unix_la_LIBADD): Reorder - Libraries. - -2011-06-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_limits/pam_limits.c: Add set_all option, - read limits from PID one if no limit is specified and set_all - is set. - * modules/pam_limits/pam_limits.8.xml: Document set_all option. - Based on Patch by Kees Cook. - -2011-06-15 Tomas Mraz <tm@t8m.info> - - * modules/pam_sepermit/pam_sepermit.c (check_running): Avoid - leaking memory and dir handle on realloc failure. - (sepermit_unlock): Cast fcntl() and close() calls to void. - - * modules/pam_pwhistory/opasswd.c (check_old_password): Do not - needlessly call strdupa(). - (save_old_password): Avoid memleaks in error paths. Avoid memleak of - buf. Make the opasswd entry parsing more robust. - * modules/pam_pwhistory/pam_pwhistory.8.xml: Document the - special meaning of remember=0. - - * modules/pam_unix/support.c (_set_ctrl): Do not crash when remember, - minlen, or rounds options are used with wrong module type. - - * modules/pam_timestamp/pam_timestamp.c (pam_sm_authenticate): Avoid - memleak in error path. - (pam_sm_open_session): Avoid memleak and fd leak in error path. - - * modules/pam_access/pam_access.c (user_match): Initialize the - fake_item from item. - -2011-06-14 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Check for libtirpc by default. - * libpam/Makefile.am: Add support for libtirpc. - * modules/pam_access/Makefile.am: Likewise. - * modules/pam_unix/Makefile.am: Likewise. - * modules/pam_unix/pam_unix_passwd.c: Change ifdefs for - new libtirpc support. - * modules/pam_unix/yppasswd_xdr.c: Only compile if we have rpc/rpc.h. - -2011-06-13 Tomas Mraz <tm@t8m.info> - - * modules/pam_securetty/pam_securetty.c (securetty_perform_check): Test - also whether the tty is in the /sys/class/tty/console/active file. - * modules/pam_securetty/pam_securetty.8.xml: Document the new check of - /sys/class/tty/console/active/file. - -2011-06-07 Tomas Mraz <tm@t8m.info> - - * modules/pam_namespace/pam_namespace.c (root_shared): New - function to detect shared / mount. - (pam_sm_open_session): Call the root_shared() and enable - private mounts based on that. - * modules/pam_namespace/pam_namespace.8.xml: Document the - automatic detection of shared / mount. - -2011-06-06 Tomas Mraz <tm@t8m.info> - - * modules/pam_group/pam_group.c (shift_bytes): Removed. - (shift_buf, trim_spaces): Added new functions. - (read_field): Thorough rewrite of the parsing. - (check_account): read_field() now uses state information. No - extra read_field() call at the end of configuration line. - * modules/pam_time/pam_time.c (shift_bytes): Removed. - (shift_buf, trim_spaces): Added new functions. - (read_field): Thorough rewrite of the parsing. - (check_account): read_field() now uses state information. No - extra read_field() call at the end of configuration line. - - * modules/pam_namespace/pam_namespace.h: Define the MS_PRIVATE and - MS_REC flags if they are not in sys/mount.h. - -2011-06-06 Nguyá»…n Thái Ngá»c Duy <pclouds@gmail.com> - - * po/LINGUAS: Add vietnamese. - * po/vi.po: Add vietnamese translation. - -2011-06-02 Tomas Mraz <tm@t8m.info> - - * modules/pam_namespace/pam_namespace.c (protect_dir): Add parameter - to always do protect mount the last directory in the path. - (check_inst_parent, create_polydir): Update the protect_dir() call. - (ns_setup): Likewise and add the MS_PRIVATE mount() call. - (pam_sm_open_session): Check the mount_private option. - * modules/pam_namespace/pam_namespace.h: Add the PAMNS_MOUNT_PRIVATE. - * modules/pam_namespace/pam_namespace.8.xml: Document the mount_private - option. - - * modules/pam_cracklib/pam_cracklib.c (str_lower): Make it no-op - on NULL strings. - (password_check): Guard for NULLs returned from memory allocation. - - * modules/pam_filter/pam_filter.c (process_args): Guard for error return - from pam_get_user(). - - * modules/pam_echo/pam_echo.c (replace_and_print): Guard for error return - from pam_get_item(). - -2011-05-30 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_timestamp/pam_timestamp.c (main): Remove unsused - variable pretval. - - * modules/pam_stress/pam_stress.c (converse): **message is const. - (stress_get_password): pmsg is const. - (pam_sm_chauthtok): Likewise. - * libpam/pam_item.c (pam_get_user): Make pmsg const and remove - casts. - -2011-05-30 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_env/pam_env.c (_pam_parse): Implement debug option. - Based on patch by Tomas Mraz. - -2011-05-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_listfile/pam_listfile.c (pam_sm_authenticate): quiet - option has no argument, print no missing file if quiet is set - [sf#3194930]. - -2011-05-04 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_lastlog/pam_lastlog.c (last_login_failed): Don't - abort with error if btmp file does not exist. - -2011-03-21 Tomas Mraz <tm@t8m.info> - - * modules/pam_unix/md5.c (MD5Final): Clear the whole ctx. - -2011-03-18 Tomas Mraz <tm@t8m.info> - - * modules/pam_namespace/md5.c (MD5Final): Clear the whole ctx. - * modules/pam_namespace/pam_namespace.c (del_polydir): Guard for NULL poly. - (protect_dir): Guard for -1 passing to close(). - (ns_setup): Likewise. - (pam_sm_open_session): Correctly test for SELinux enabled flag. - -2011-03-17 Tomas Mraz <tm@t8m.info> - - * modules/pam_selinux/pam_selinux.c (config_context): Fix leak of type. - (manual_context): Likewise. - (context_from_env): Remove extraneous auditing in success case. - - * modules/pam_unix/support.c (_unix_run_helper_binary): Remove extra - close() call. - -2011-02-22 Tomas Mraz <tm@t8m.info> - - * modules/pam_nologin/pam_nologin.8.xml: Add missing space. - * modules/pam_limits/limits.conf.5.xml: Fix typo. - -2010-12-21 Tomas Mraz <tm@t8m.info> - - * modules/pam_selinux/pam_selinux.c (mls_range_allowed): Unhardcode - values for security class and av permission bit. - -2010-12-14 Tomas Mraz <tm@t8m.info> - - * modules/pam_limits/pam_limits.c (parse_uid_range): New function - to parse the range of uids or gids. - (parse_config_file): Call parse_uid_range() and if uid/gid range - is identified, setup the limits if the range matches. New parameters - containing user's uid and primary gid. - (pam_sm_open_session): Pass the user's uid and primary gid to - parse_config_file(). - * modules/pam_limits/limits.conf.5.xml: Document the uid/gid ranges. - -2010-12-14 Bahadır Kandemir <bahadir@pardus.org.tr> - - * po/tr.po: Updated translations. - -2010-11-25 Tomas Mraz <tm@t8m.info> - - * modules/pam_securetty/pam_securetty.8.xml: Improve documentation - of the kernel console feature and the noconsole option. - -2010-11-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_securetty/pam_securetty.c: Parse console= kernel - option, add noconsole option. - * modules/pam_securetty/pam_securetty.8.xml: Document new behavior - for serial console. - Patch from Lennart Poettering. - -2010-11-24 Tomas Mraz <tm@t8m.info> - - * modules/pam_limits/limits.conf.5.xml: Document the %group syntax. - -2010-11-18 Tomas Mraz <tm@t8m.info> - - * modules/pam_limits/pam_limits.c (pam_parse,pam_sm_open_session): - Drop obsolete and broken option change_uid. - * modules/pam_limits/pam_limits.8.xml: Likewise. - -2010-11-16 Tomas Mraz <tm@t8m.info> - - * modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Remove - dead and duplicate code. Return PAM_INCOMPLETE instead of - PAM_CONV_AGAIN. - -2010-11-11 Tomas Mraz <tm@t8m.info> - - * modules/pam_selinux/pam_selinux.c (pam_sm_open_session): Fix - potential use after free in case SELinux is misconfigured. - - * modules/pam_namespace/pam_namespace.c (process_line): Fix memory - leak when parsing empty config file lines. - -2010-10-28 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.1.3 - - * configure.in: Increase version to 1.1.3 - - * NEWS: document visible changes - - * libpam/Makefile.am (libpam_la_LDFLAGS): Bump version number. - -2010-10-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/adg/Makefile.am: Use UTF-8 for html docu. - * doc/mwg/Makefile.am: Likewise. - * doc/sag/Makefile.am: Likewise. - -2010-10-22 Tomas Mraz <tm@t8m.info> - - * modules/pam_namespace/pam_namespace.c (inst_init): Use execle() - to execute the init script with clean environment. (CVE-2010-3853) - (cleanup_tmpdirs): Likewise for executing rm. - -2010-10-21 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_mkhomedir/mkhomedir_helper.c (rec_mkdir): Remove. - (create_homedir): Use mkdir() instead of rec_mkdir(). - (make_parent_dirs): New function. - (main): Use make_parent_dirs() to create parent directories only - for the home directory itself. - -2010-10-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/support.c (_unix_getpwnam): Don't allocate - unneeded buffer for uid/gid [sf#3059572]. - -2010-10-20 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam_get_authtok.3.xml: Fix xml code. - - * doc/man/Makefile.am: Fix build dependencys of pam_get_authtok.3. - - * xtests/Makefile.am: Only build xtests if we run xtests. - * configure.in: Check for libdb with symbol versions, too. - Patch from Diego Elio Pettenò. - - * modules/pam_mkhomedir/mkhomedir_helper.c (rec_mkdir): Create - parent directories always with mode 0755. - (create_homedir): Create main directory with mode 0700 at first. - -2010-10-19 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_selinux/Makefile.am (pam_selinux_la_LIBADD): Add - @LIBAUDIT@. - - * m4/ld-O1.m4 (PAM_LD_O1): Fix typo. - - * m4/ld-no-undefined.m4: New file. - * configure.in: Use PAM_LD_NO_UNDEFINED. - * Makefile.am (M4_FILES): Add m4/ld-no-undefined.m4. - - * modules/pam_selinux/pam_selinux.c (verbose_message): Remove. - (pam_sm_open_session): Call send_text() instead of verbose_message(). - -2010-10-19 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_env/pam_env.8.xml: Document side effects of - environment variables in the stack. - * modules/pam_exec/pam_exec.8.xml: Document that user can - have controll over the environment. - -2010-10-07 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_selinux/pam_selinux.c (verbose_message): Fix format - string. - -2010-10-04 Dmitry V. Levin <ldv@altlinux.org> - - * libpam/pam_modutil_priv.c: New file. - * libpam/Makefile.am (libpam_la_SOURCES): Add it. - * libpam/include/security/pam_modutil.h (struct pam_modutil_privs, - PAM_MODUTIL_DEF_PRIVS, pam_modutil_drop_priv, - pam_modutil_regain_priv): New declarations. - * libpam/libpam.map (LIBPAM_MODUTIL_1.1.3): New interface. - * modules/pam_env/pam_env.c (handle_env): Use new pam_modutil interface. - * modules/pam_mail/pam_mail.c (_do_mail): Likewise. - * modules/pam_xauth/pam_xauth.c (check_acl, pam_sm_open_session, - pam_sm_close_session): Likewise. - (pam_sm_open_session): Remove redundant fchown call. - Fixes CVE-2010-3430, CVE-2010-3431. - -2010-10-01 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Extend cross compiling check. - * doc/specs/Makefile.am: Set CFLAGS and LDFLAGS to BUILD_CFLAGS - and BUILD_LDFLAGS. - Bug #3078936 / gentoo #339174 - -2010-09-30 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_xauth/pam_xauth.c (pam_sm_close_session): Warn if - unlink() fails. - -2010-09-27 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_xauth/pam_xauth.c (pam_sm_close_session): Return - PAM_SUCCESS immediately if no cookie file is defined. Return - PAM_SESSION_ERR if cookie file is defined but target uid cannot be - determined. Do not modify cookiefile string returned by pam_get_data. - - * modules/pam_xauth/pam_xauth.c (check_acl): Ensure that the given - access control file is a regular file. - -2010-09-16 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_env/pam_env.c (handle_env): Use setfsuid() return code. - * modules/pam_mail/pam_mail.c (_do_mail): Likewise. - * modules/pam_xauth/pam_xauth.c (check_acl, pam_sm_open_session, - pam_sm_close_session): Likewise. - -2010-08-31 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.1.2 - - * configure.in: Bump version number. - * NEWS: Document changes since 1.1.1. - * doc/adg/Linux-PAM_ADG.xml: Bump version number. - * doc/mwg/Linux-PAM_MWG.xml: Likewise. - * doc/sag/Linux-PAM_SAG.xml: Likewise. - * libpam/Makefile.am: Bump revision of shared library. - * po/*.po: Regenerate. - -2010-08-26 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_nologin/pam_nologin.c (perform_check): Try first - /var/run/nologin if the nologin file is not explicitly specified. - * modules/pam_nologin/pam_nologin.8.xml: Document that /var/run/nologin - is tried first. - -2010-08-26 Sweta Kothari <swkothar@redhat.com> - - * po/gu.po: Updated translations. - -2010-08-26 Geert Warrink <geert.warrink@onsnet.nu> - - * po/nl.po: Updated translations. - -2010-08-26 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/specs/Makefile.am: Use CC_FOR_BUILD as compiler (cross - compile support). - * configure.in: Check for host compiler if cross compiling. - Bug #2315432, debian#284854#42. - -2010-08-17 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/pam_unix_passwd.c: Implement minlen option. - * modules/pam_unix/support.c: Likewise. - * modules/pam_unix/support.h: Likewise. - - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Adjust - arguments for _set_ctrl call. - * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Likewise. - * modules/pam_unix/pam_unix_session.c: Likewise. - - * modules/pam_unix/pam_unix.8.xml: Document minlen option. - Based on patch by Steve Langasek. - -2010-08-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_mail/pam_mail.c: Check for mail only with user - privilegs. - - * modules/pam_xauth/pam_xauth.c (run_coprocess): Check return - value of setgid, setgroups and setuid. - - * modules/pam_xauth/pam_xauth.c (check_acl): Save errno for - later usage. - - * modules/pam_env/pam_env.c (handle_env): Check if user exists, - read local user config only with user privilegs.` - -2010-08-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_tally/pam_tally.8.xml: Document that pam_tally is - deprecated. - - * modules/pam_tty_audit/Makefile.am (EXTRA_DIST): Fix make dist. - - * modules/pam_unix/passverify.c (check_shadow_expiry): Correct - check for expired date. - - * modules/pam_unix/pam_unix_passwd.c (_pam_unix_approve_pass): Remove - check for password length. Bug #2923437. - -2010-08-04 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_tally2/pam_tally2.c (get_tally): Create file - with correct permissions. Patch by Diego Elio “Flameeyes†Pettenò. - - * modules/pam_unix/passverify.c (PAMH_ARG_DECL): Don't request - password change if time is not yet set (1.1.1970). Bug #2730965. - - * modules/pam_access/pam_access.c (user_match): Make sure - that user@host will not match @@netgroup. Bug #3035919. - - * modules/pam_group/pam_group.c (check_account): Add '%' for - UNIX groups. - * modules/pam_group/group.conf: Add example for '%'. - * modules/pam_group/group.conf.5.xml: Document '%' syntax. - Bug #3002340, #3037155. - -2010-08-02 Steve Langasek <vorlon@debian.org> - - * modules/pam_mkhomedir/Makefile.am: don't pass --version-script - options when linking executables, only when linking libraries - Patch from Julien Cristau <jcristau@debian.org> - -2010-07-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): Add - audit flag to enable logging about unknown user (#2917257). - * modules/pam_succeed_if/pam_succeed_if.8.xml: Document audit. - * modules/pam_succeed_if/pam_succeed_if.8: Regenerated from xml. - * modules/pam_succeed_if/README: Regenerated from xml. - -2010-06-22 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_umask/pam_umask.8.xml: Remove comparisation of - gid and uid for usergroups. - * modules/pam_umask/pam_umask.c (setup_limits_from_gecos): Likewise. - Bug #3004656 - - * configure.in: Don't check for libxcrypt if no xcrypt.h exists, - fix typo introduced with 1.1.1. - Reported by Diego Elio “Flameeyes†Pettenò. - -2010-06-15 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_xauth/pam_xauth.c (pam_sm_close_session): Call - setfsuid to be allowed to remove temporary files (#3010705). - (pam_sm_open_session): Call fchown with correct permissions. - -2010-06-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_tty_audit/Makefile.am (TESTS): Add tst-pam_tty_audit. - * modules/pam_tty_audit/tst-pam_tty_audit: New. - -2010-06-07 Steve Langasek <vorlon@debian.org> - - * modules/pam_tty_audit/Makefile.am: If we don't have the libraries - required for building pam_tty_audit, we shouldn't install the manpage - either. - -2010-05-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_userdb/pam_userdb.c: Define HAVE_DBM - for BerkDB 5.0 support. Patch by Diego Elio Pettenò. - -2010-04-15 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_exec/pam_exec.8.xml: Fix example. - -2010-04-13 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_pwhistory/opasswd.c: Fix compilation if - cyprt_r() is not available. - * configure.in: check for getutent_r. - * modules/pam_timestamp/pam_timestamp.c: Use getutent() - if getutent_r() does not exist. - Patch from Diego Elio “Flameeyes†Pettenò. - -2010-04-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam.conf-syntax.xml: Better documentation of - "actionN". Patch from Michal Soltys <soltys@ziu.info>. - -2010-04-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_rootok/pam_rootok.c: Add support for acct_mgmt - and chauthtok. - * modules/pam_rootok/pam_rootok.8.xml: Document new module - types. - -2010-03-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/ar.po: Add missing Plural-Forms entry to header. - -2010-03-25 Daniel Nylander <po@danielnylander.se> - - * po/sv.po: Updated translations. - -2010-03-24 Ani Peter <anipeter@fedoraproject.org> - - * po/ml.po: Updated translations. - -2010-03-08 Yuri Chornoivan <yurchor@ukr.net> - - * po/uk.po: Updated translations. - -2010-02-09 Tomas Mraz <t8m@centrum.cz> - - * libpam/pam_get_authtok.c (pam_get_authtok_internal): Fix - regression in the new password prompt. - -2010-01-04 Elad <el.il@doom.co.il> - - * po/he.po: New translation to Hebrew. - * po/LINGUAS: Add Hebrew to the list. - -2009-12-16 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.1.1 - - * NEWS: Adjust for 1.1.1 - * configure.in: Likewise. - * doc/adg/Linux-PAM_ADG.xml: Likewise. - * doc/mwg/Linux-PAM_MWG.xml: Likewise. - * doc/sag/Linux-PAM_SAG.xml: Likewise. - * po/*.po: Regenerated. - -2009-12-08 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Rename DEBUG to PAM_DEBUG. - * libpam/pam_env.c: Likewise - * libpam/pam_handlers.c: Likewise - * libpam/pam_miscc.c: Likewise - * libpam/pam_password.c: Likewise - * libpam/include/security/_pam_macros.h: Likewise - * libpamc/test/modules/pam_secret.c: Likewise - * modules/pam_group/pam_group.c: Likewise - * modules/pam_listfile/pam_listfile.c: Likewise - * modules/pam_unix/pam_unix_auth.c: Likewise - * modules/pam_unix/pam_unix_passwd.c: Likewise - -2009-12-08 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/passverify.c(unix_update_shadow): Create a shadow - entry if not present in the file. - - * modules/pam_listfile/pam_listfile.c(pam_sm_authenticate): Remove - unused function and variable. - -2009-11-19 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_sepermit/pam_sepermit.c(sepermit_match): Return - PAM_AUTH_ERR from the module if sepermit_lock() fails. - -2009-11-18 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_access/pam_access.c(user_match): Revert the netgroup - match to the original behavior, add new syntax for adding the local - hostname. - * modules/pam_access/access.conf.5.xml: Document the new syntax - for adding the local hostname to the netgroup match. - -2009-11-10 Thorsten Kukuk <kukuk@suse.de> - - * doc/man/pam_get_authtok.3.xml: Document pam_get_authtok_noverify - and pam_get_authtok_verify. - - * libpam/Makefile.am (libpam_la_LDFLAGS): Bump revesion of libpam. - - * libpam/pam_get_authtok.c (pam_get_authtok_internal): Renamed - from pam_get_authtok, add flags argument, always check return - values. - - * modules/pam_cracklib/pam_cracklib.c (pam_sm_chauthtok): Use - pam_get_authtok_noverify and pam_get_authtok_verify. - - * libpam/include/security/pam_ext.h: Add prototypes for - pam_get_authtok_noverify and pam_get_authtok_verify. - - * libpam/libpam.map: Add new pam_get_authtok_* functions. - -2009-11-02 Ani Peter <anipeter@fedoraproject.org> - - * po/ml.po: Updated translations. - -2009-11-02 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_sepermit/Makefile.am: Add sepermit.conf(5) manual page. - * modules/pam_sepermit/pam_sepermit.8.xml: Add reference to - sepermit.conf(5). Drop some redundant text. - * modules/pam_sepermit/sepermit.conf.5.xml: New file. - - * modules/pam_sepermit/pam_sepermit.c(sepermit_match): Implement the ignore - option in sepermit.conf. - -2009-10-29 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_xauth/Makefile.am: Link with libselinux. - * modules/pam_xauth/pam_xauth.c(pam_sm_open_session): Call - setfscreatecon() if selinux is enabled to create the .xauth file - with the right label. Original idea by Dan Walsh. - -2009-10-08 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_tty_audit/pam_tty_audit.8.xml: Add notice about aureport - add SEE ALSO section. - -2009-10-06 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_listfile/pam_listfile.c(pam_sm_authenticate): Just - call pam_modutil_user_in_group_nam_nam() instead of reimplementation - of group matching. - -2009-10-05 Kris Thomsen <lakristho@gmail.com> - - * po/da.po: Updated translations. - -2009-09-29 Piotr DrÄ…g <piotrdrag@gmail.com> - - * po/pl.po: Updated translations. - -2009-09-21 Yulia Poyarkova <yulia.poyarkova@redhat.com> - - * po/ru.po: Updated translations. - -2009-09-17 Kiyoto Hashida <khashida@redhat.com> - - * po/ja.po: Updated translations. - -2009-09-17 Eunju Kim <eukim@redhat.com> - - * po/ko.po: Updated translations. - -2009-09-17 Yulia Poyarkova <yulia.poyarkova@redhat.com> - - * po/ru.po: Updated translations. - -2009-09-10 Steve Langasek <vorlon@debian.org> - - * modules/pam_securetty/pam_securetty.c: pam_securetty should not - return PAM_USER_UNKNOWN when the tty is secure, regardless of what - was entered as a username. - Patch from Nicolas François <nicolas.francois@centraliens.net>. - -2009-08-31 Steve Langasek <vorlon@debian.org> - - * modules/pam_namespace/namespace.init: make this portable to POSIX - awk, instead of using GNU awk extensions. - -2009-08-25 Steve Langasek <vorlon@debian.org> - - * modules/pam_sepermit/pam_sepermit.8.xml: fix up one reference - to pam.d(8) left behind because I've forgotten how CVS works - * po/es.po: fix missing whitespace in password prompts. - -2009-08-24 Steve Langasek <vorlon@debian.org> - - * doc/pam_get_authtok.3.xml: grammar fix. - * doc/adg/Linux-PAM-ADG.xml: Likewise. - * doc/mwg/Linux-PAM_MWG.xml: Likewise. - * doc/man/pam_setcred.3.xml: fix a typo. - -2009-07-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_cracklib/pam_cracklib.c (pam_sm_chauthtok): Delete - new token if it does not match strength criteria. - -2009-06-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/yppasswd_xdr.c: Remove unnecessary header files. - - * modules/pam_unix/support.c (_unix_getpwnam): Only compile in NIS - support if all necessary functions exist. - - * modules/pam_unix/pam_unix_passwd.c (getNISserver): Add debug - option, handle correct if OS has no NIS support. - - * modules/pam_access/pam_access.c (netgroup_match): Check if - yp_get_default_domain and innetgr are available at compile time. - - * configure.in: Check for functions: innetgr, getdomainname - check for headers: rpcsvc/ypclnt.h, rpcsvc/yp_prot.h. - -2009-06-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/pam_unix.8.xml: Fix blowfish description. - Reported by Diego E. “Flameeyes†Pettenò. - -2009-06-26 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_namespace/Makefile.am: Fix make maintainer-clean, - fix docu dependencies. - - * modules/pam_xauth/Makefile.am: Fix make maintainer-clean. - * modules/pam_access/Makefile.am: Likewise. - * modules/pam_debug/Makefile.am: Likewise. - * modules/pam_deny/Makefile.am: Likewise. - * modules/pam_echo/Makefile.am: Likewise. - * modules/pam_env/Makefile.am: Likewise. - * modules/pam_faildelay/Makefile.am: Likewise. - * modules/pam_ftp/Makefile.am: Likewise. - * modules/pam_group/Makefile.am: Likewise. - * modules/pam_issue/Makefile.am: Likewise. - * modules/pam_keyinit/Makefile.am: Likewise. - * modules/pam_lastlog/Makefile.am: Likewise. - * modules/pam_limits/Makefile.am: Likewise. - * modules/pam_listfile/Makefile.am: Likewise. - * modules/pam_localuser/Makefile.am: Likewise. - * modules/pam_loginuid/Makefile.am: Likewise. - * modules/pam_mail/Makefile.am: Likewise. - * modules/pam_mkhomedir/Makefile.am: Likewise. - * modules/pam_motd/Makefile.am: Likewise. - * modules/pam_nologin/Makefile.am: Likewise. - * modules/pam_pwhistory/Makefile.am: Likewise. - * modules/pam_rhosts/Makefile.am: Likewise. - * modules/pam_rootok/Makefile.am: Likewise. - * modules/pam_securetty/Makefile.am: Likewise. - * modules/pam_shells/Makefile.am: Likewise. - * modules/pam_succeed_if/Makefile.am: Likewise. - * modules/pam_tally2/Makefile.am: Likewise. - * modules/pam_tally/Makefile.am: Likewise. - * modules/pam_time/Makefile.am: Likewise. - * modules/pam_timestamp/Makefile.am: Likewise. - * modules/pam_tty_audit/Makefile.am: Likewise. - * modules/pam_umask/Makefile.am: Likewise. - * modules/pam_unix/Makefile.am: Likewise. - * modules/pam_warn/Makefile.am: Likewise. - * modules/pam_wheel/Makefile.am: Likewise. - * modules/pam_filter/Makefile.am: Likewise. - - * configure.in: Make regeneration of docu configureable, - rename enable_man to enable_docu. - - * modules/pam_env/pam_env.c (_pam_parse): Fix typo in debug - code. - - * modules/pam_cracklib/Makefile.am: Don't install docu if - module is disabled for building. - * modules/pam_userdb/Makefile.am: Likewise. - - * modules/pam_unix/pam_unix_passwd.c: Remove dead SELinux - code. - - * modules/pam_lastlog/pam_lastlog.c (last_login_failed): Fix - usage of wrong variable [bug#2809661]. - -2009-06-25 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Rename crypt_gensalt_rn to crypt_gensalt_r - * modules/pam_unix/passverify.c: Likewise. - -2009-06-19 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.1.0 - -2009-06-16 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/sag/Linux-PAM_SAG.xml: Fix typos. - * doc/adg/Linux-PAM_ADG.xml: Likewise. - * doc/mwg/Linux-PAM_MWG.xml: Likewise. - -2009-06-08 Rajesh Ranjan <rajesh672@gmail.com> - - * po/hi.po: Updated translations. - -2009-06-01 Jaswinder Singh <jsingh@redhat.com> - - * po/pa.po: Updated translations. - -2009-06-01 Tomáš Mráz <t8m@centrum.cz> - - * modules/pam_pwhistory/opasswd.c (save_old_password): Don't - call fclose() on NULL descriptor. Found by Steve Grubb. - -2009-06-01 Ville Skyttä <ville.skytta@iki.fi> - - * modules/pam_limits/pam_limits.8.xml: Only *.conf - files are parsed. Spelling fixes. - * modules/pam_access/pam_access.8.xml: Spelling fixes. - * modules/pam_cracklib/pam_cracklib.8.xml: Likewise. - * modules/pam_echo/pam_echo.8.xml: Likewise. - * modules/pam_env/pam_env.8.xml: Likewise. - * modules/pam_exec/pam_exec.8.xml: Likewise. - * modules/pam_filter/pam_filter.8.xml: Likewise. - * modules/pam_ftp/pam_ftp.8.xml: Likewise. - * modules/pam_group/pam_group.8.xml: Likewise. - * modules/pam_issue/pam_issue.8.xml: Likewise. - * modules/pam_lastlog/pam_lastlog.8.xml: Likewise. - * modules/pam_listfile/pam_listfile.8.xml: Likewise. - * modules/pam_localuser/pam_localuser.8.xml: Likewise. - * modules/pam_loginuid/pam_loginuid.8.xml: Likewise. - * modules/pam_mkhomedir/pam_mkhomedir.8.xml: Likewise. - * modules/pam_motd/pam_motd.8.xml: Likewise. - * modules/pam_namespace/pam_namespace.8.xml: Likewise. - * modules/pam_pwhistory/pam_pwhistory.8.xml: Likewise. - * modules/pam_selinux/pam_selinux.8.xml: Likewise. - * modules/pam_succeed_if/pam_succeed_if.8.xml: Likewise. - * modules/pam_tally/pam_tally.8.xml: Likewise. - * modules/pam_tally2/pam_tally2.8.xml: Likewise. - * modules/pam_time/pam_time.8.xml: Likewise. - * modules/pam_timestamp/pam_timestamp.8.xml: Likewise. - * modules/pam_timestamp/pam_timestamp_check.8.xml: Likewise. - * modules/pam_tty_audit/pam_tty_audit.8.xml: Likewise. - * modules/pam_umask/pam_umask.8.xml: Likewise. - * modules/pam_unix/pam_unix.8.xml: Likewise. - * modules/pam_xauth/pam_xauth.8.xml: Likewise. - -2009-05-28 Jaswinder Singh <jsingh@redhat.com> - - * po/pa.po: Updated translations. - -2009-05-21 Albert Carabasa Giribet <albertc@asic.udl.cat> - - * po/ca.po: Updated translations. - -2009-05-11 Ani Peter <anipeter@fedoraproject.org> - - * po/ml.po: Updated translations. - -2009-05-11 Charles-Antoine Couret <cacouret@wanadoo.fr> - - * po/fr.po: Updated translations. - -2009-05-11 Tomáš Mráz <t8m@centrum.cz> - - * modules/pam_unix/pam_unix_passwd.c (_unix_run_update_binary): Remove - unnecessary setuid() call. - -2009-05-05 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.0.92 - * libpamc/Makefile.am (libpamc_la_LDFLAGS): Increase revesion. - * configure.in: Increase version to 1.0.92. - -2009-04-20 Mario Santagiuliana <mario@marionline.it> - - * po/it.po: Updated translations. - -2009-04-17 Fabian Affolter <fab@fedoraproject.org> - - * po/de.po: Updated translations. - -2009-04-16 Tomáš Mráz <t8m@centrum.cz> - - * modules/pam_succeed_if/pam_succeed_if.c (evaluate): Add user - parameter. Use user instead of pwd->pw_name in comparsions. - (pam_sm_authenticate): Pass the original user to evaluate(). - -2009-04-14 Amitakhya Phukan <aphukan@fedoraproject.org> - - * po/as.po: Updated translations. - -2009-04-14 Runa Bhattacharjee <runab@fedoraproject.org> - - * po/bn_IN.po: Updated translations. - -2009-04-14 Sweta Kothari <swkothar@redhat.com> - - * po/gu.po: Updated translations. - -2009-04-14 Sandeep Shedmake <sandeep.shedmake@gmail.com> - - * po/mr.po: Updated translations. - -2009-04-14 Rui Gouveia <rui.gouveia@globaltek.pt> - - * po/pt.po: Updated translations. - -2009-04-14 I. Felix <ifelix@redhat.com> - - * po/ta.po: Updated translations. - -2009-04-14 Krishna Babu K <kkrothap@redhat.com> - - * po/te.po: Updated translations. - -2009-04-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/yppasswd.h: Update license to GPLv2 or later - on request of Olaf Kirch (Author). - * modules/pam_unix/yppasswd_xdr.c: Likewise. - -2009-04-06 R.E. van der Luit <nippur@fedoraproject.org> - - * po/nl.po: Updated translations. - -2009-04-06 Terry Chuang <tchuang@redhat.com> - - * po/zh_TW.po: Updated translations. - -2009-04-03 Shankar Prasad <svenkate@redhat.com> - - * po/kn.po: Updated translations. - -2009-04-03 Manoj Kumar Giri <mgiri@redhat.com> - - * po/or.po: Updated translations. - -2009-04-03 MiloÅ¡ KomarÄević <kmilos@gmail.com> - - * po/sr.po: Updated translations. - * po/sr@latin.po: Updated translations. - -2009-04-03 Leah Liu <lliu@redhat.com> - - * po/zh_CN.po: Updated translations. - -2009-04-03 Dmitry V. Levin <ldv@altlinux.org> - - * libpamc/pamc_load.c (__pamc_exec_agent): Replace call to exit(3) - in child process with call to _exit(2). - * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Likewise. - * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): - Likewise. - * modules/pam_unix/pam_unix_passwd.c (_unix_run_update_binary): - Likewise. - * modules/pam_unix/support.c (_unix_run_helper_binary): Likewise. - * modules/pam_xauth/pam_xauth.c (run_coprocess): Likewise. - * modules/pam_exec/pam_exec.c (call_exec): Replace all calls to - exit(3) in child process with calls to _exit(2). - * modules/pam_filter/pam_filter.c (set_filter): Likewise. - * modules/pam_namespace/pam_namespace.c (inst_init, - cleanup_tmpdirs): Likewise. - -2009-03-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/support.c (_unix_run_helper_binary): Don't - ignore return value of write(). - - * libpamc/include/security/pam_client.h (PAM_BP_ASSERT): Honour - NDEBUG. - * modules/pam_timestamp/pam_timestamp.c: don't ignore return - values of lchown and fchown. - -2009-03-25 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_mkhomedir/pam_mkhomedir.c: Make option handling - reentrant (#2487654) - (_pam_parse): Fix umask option. - - * modules/pam_unix/passverify.c: Fix typo. - - * modules/pam_issue/pam_issue.c: Fix compiler warning. - * modules/pam_ftp/pam_ftp.c: Likewise. - -2009-03-25 Pavol Å imo <palo.simo@gmail.com> - - * po/sk.po: Updated translations. - -2009-03-24 Sulyok Péter <peti@sulyok.hu> - - * po/hu.po: Updated translations. - -2009-03-24 Domingo Becker <domingobecker@gmail.com> - - * po/es.po: Updated translations. - -2009-03-24 Diego Búrigo Zacarão <diegobz@projetofedora.org> - - * po/pt_BR.po: Updated translations. - -2009-03-24 Piotr DrÄ…g <piotrdrag@gmail.com> - - * po/pl.po: Updated translations. - -2009-03-24 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/passverify.c(save_old_password): Call fflush() and - fsync(). - (unix_update_passwd, unix_update_shadow): Likewise. - * modules/pam_pwhistory/opasswd.c(save_old_password): Likewise. - - * po/cs.po: Updated translations. - -2009-03-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.0.91 - - * libpam/Makefile.am (libpam_la_LDFLAGS): Bump version number. - * xtests/Makefile.am: Add tst-pam_unix4.pamd, tst-pam_unix4.sh - and time.conf. - -2009-03-03 Dmitry V. Levin <ldv@altlinux.org> - - * tests/tst-pam_mkargv.c (main): Fix for non-64bit architectures. - -2009-03-03 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/pam_unix_acct.c(_unix_run_verify_binary): Test - for abnormal exit of the helper binary. - * modules/pam_unix/pam_unix_passwd.c(_unix_run_update_binary): Likewise. - * modules/pam_unix/support.c(_unix_run_helper_binary): Likewise. - * modules/pam_mkhomedir/pam_mkhomedir.c(create_homedir): Likewise. - -2009-02-27 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_mkhomedir/pam_mkhomedir.c(create_homedir): Replace - signal() with sigaction(). - * modules/pam_namespace/pam_namespace.c(inst_init, cleanup_tmpdirs): - Likewise. - * modules/pam_unix/pam_unix_acct.c(_unix_run_verify_binary): Likewise. - * modules/pam_unix/pam_unix_passwd.c(_unix_run_update_binary): - Likewise. - * modules/pam_unix/passverify.c(su_sighandler): Likewise. - * modules/pam_unix/support.c(_unix_run_helper_binary): Likewise. - - * modules/pam_tally2/Makefile.am: Link the pam_tally2 app to libpam - for auxiliary functions. - * modules/pam_tally2/pam_tally2.8.xml: Drop non-existing no_reset - option. Document new serialize option. - * modules/pam_tally2/pam_tally2.c: Add support for the new serialize - option. - (_cleanup, tally_set_data, tally_get_data): Add tally file handle to - tally PAM data. Needed for fcntl() locking. - (get_tally): Use low level file access instead of stdio buffered FILE. - If serialize option is used lock the tally file access. - (set_tally, tally_bump, tally_reset): Use low level file access instead - of stdio buffered FILE. Close the file handle only when it is not owned - by PAM data. - (pam_sm_authenticate, pam_sm_setcred, pam_sm_acct_mgmt): Pass the tally - file handle to tally_set_data(). Get it from tally_get_data(). - (main): Use low level file access instead of stdio buffered FILE. - -2009-02-26 Tomas Mraz <t8m@centrum.cz> - - * xtests/Makefile.am: Add tst-pam_unix4. - * xtests/tst-pam_unix4.c: New test for password change - and shadow min days limit. - * xtests/tst-pam_unix4.pamd: Likewise. - * xtests/tst-pam_unix4.sh: Likewise. - - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Ignore - PAM_AUTHTOK_ERR on shadow verification. - * modules/pam_unix/passverify.c (check_shadow_expiry): Return - PAM_AUTHTOK_ERR if sp_min limit for password change is defied. - -2009-02-26 Timur Birsh <taem@linukz.org> - - * po/LINGUAS: New Kazakh translation. - * po/kk.po: New Kazakh translation. - -2009-02-25 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_misc.c (_pam_StrTok): Use unsigned char - instead of int. Reported by Marcus Granado. - * tests/Makefile.am (TESTS): Add tst-pam_mkargv. - * tests/tst-pam_mkargv.c (main): Test case for - _pam_mkargv. - - * po/de.po: Update fuzzy translations. - -2009-02-25 Tomas Mraz <t8m@centrum.cz> - - * xtests/access.conf: Add a line for name resolution test case. - * xtests/tst-pam_access4.c (main): Set PAM_RHOST for testing the LOCAL - keyword. Add a test case for name resolution. - - * modules/pam_access/pam_access.c (from_match): Move name resolution - to network_netmask_match(). - (network_netmask_match): Do a name resolution of the origin only if - matching against a real network/netmask. - -2009-02-25 Fabian Affolter <fabian@bernewireless.net> - - * po/de.po: Updated translations. - -2009-02-25 Taylon Silmer Lacerda Silva <taylonsilva@gmail.com> - - * po/pt_BR.po: Updated translations. - -2009-02-25 Domingo Becker <domingobecker@gmail.com> - - * po/es.po: Updated translations. - -2009-02-20 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_limits/limits.conf.5.xml: Document that the kernel - can refuse values out of range for the local system. - * modules/pam_limits/pam_limits.c (setup_limits): Log if setrlimit - fails. - -2009-02-18 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_password.c (pam_chauthtok): Make sure applications - don't set internal flags. - -2009-02-17 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam_sm_chauthtok.3.xml: Document that sufficient - can break the PRELIM_CHECK chain. - - * libpam/pam_dispatch.c: Don't freeze chain for chauthtok - [bugzilla.novell.com#470337] - -2009-02-11 Daniel Nylander <po@danielnylander.se> - - * po/sv.po: Updated translations. - -2009-01-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam_sm_setcred.3.xml: Document PAM_ESTABLISH_CRED. - -2009-01-19 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_mkhomedir/Makefile.am: Add mkhomedir_helper. - * modules/pam_mkhomedir/mkhomedir_helper.8.xml: New file. Manual page - for mkhomedir_helper. - * modules/pam_mkhomedir/mkhomedir_helper.c: New file. Source - for mkhomedir_helper. Most of the code moved from pam_mkhomedir.c. - * modules/pam_mkhomedir/pam_mkhomedir.c (_pam_parse): Do not convert umask - to integer. - (rec_mkdir): Moved to mkhomedir_helper.c. - (create_homedir): Just exec the helper. - (pam_sm_open_session): Improve logging. - -2009-01-19 Daniel Cabrera <h.daniel.cabrera@gmail.com> - - * po/es.po: Updated translations. - -2009-01-14 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/de.po: Updated translations. - -2009-01-07 Piotr DrÄ…g <piotrdrag@gmail.com> - - * po/pl.po: Updated translations. - -2008-12-23 Piotr DrÄ…g <piotrdrag@gmail.com> - - * po/pl.po: Updated translations. - -2008-12-18 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_pwhistory/pam_pwhistory.c (parse_option): Rename - type= option to authtok_type= (because of pam_get_authtok). - * modules/pam_pwhistory/pam_pwhistory.8.xml: Likewise. - -2008-12-17 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_tty_audit/pam_tty_audit.c (pam_sm_open_session): Do - not abort on unknown option. Avoid double free of old_status. - (pam_sm_close_session): Use LOG_DEBUG for restored status message. - - * configure.in: Test for getseuser(). - * modules/pam_selinux/pam_selinux.c (pam_sm_open_session): Call getseuser() - instead of getseuserbyname() if the function is available. - -2008-12-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.0.90 - - * libpam_misc/Makefile.am: Increase version number of shared library. - * libpamc/Makefile.am: Likewise. - -2008-12-12 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_tally2/pam_tally2.c (get_tally): Test for EACCES - instead of EPERM. - * modules/pam_tally2/pam_tally2.8.xml: Fix documentation. - -2008-12-10 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam_item_types_ext.inc.xml: Document PAM_AUTHTOK_TYPE. - * libpam/pam_end.c (pam_end): Free authtok_type. - * tests/tst-pam_get_item.c: Add PAM_AUTHTOK_TYPE - as test case. - * tests/tst-pam_set_item.c: Likewise. - * libpam/pam_start.c (pam_start): Initialize xdisplay, - xauth and authtok_type. - * libpam/pam_get_authtok.c (pam_get_authtok): Rename "type" - to "authtok_type". - * modules/pam_cracklib/pam_cracklib.8.xml: Replace "type=" with - "authtok_type=". - * doc/man/pam_get_authtok.3.xml: Document authtok_type argument. - * modules/pam_cracklib/pam_cracklib.c (pam_sm_chauthtok): Set - type= argument as PAM_AUTHTOK_TYPE item. - * libpam/pam_get_authtok.c (pam_get_authtok): If no type - argument given, use PAM_AUTHTOK_TYPE item. - * libpam/pam_item.c (pam_get_item): Fetch PAM_AUTHTOK_TYPE item. - (pam_set_item): Store PAM_AUTHTOK_TYPE item. - * libpam/pam_private.h: Add authtok_type to pam_handle. - * libpam/include/security/_pam_types.h (PAM_AUTHTOK_TYPE): New. - -2008-12-03 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_access/access.conf.5.xml: Replace - 2001:4ca0 with 2001:db8:: [bug#2356400]. - - * doc/man/Makefile.am: Add pam_get_authtok.3.xml. - * doc/man/pam_get_authtok.3.xml: New. - * libpam/Makefile.am: Add pam_get_authtok.c. - * libpam/libpam.map: Export pam_get_authtok. - * libpam/pam_get_authtok.c: New. - * libpam/pam_private.h: Add mod_argc and mod_argv to pam_handle. - * libpam_include/security/pam_ext.h: Add pam_get_authtok - prototype. - * modules/pam_cracklib/pam_cracklib.c: Use pam_get_authtok. - * modules/pam_pwhistory/pam_pwhistory.c: Likewise. - * po/POTFILES.in: Add libpam/pam_get_authtok.c. - * xtests/tst-pam_cracklib1.c: Adjust error codes. - - * modules/pam_timestamp/Makefile.am: Remove hmactest.c from - EXTRA_DIST. - - * po/*.po: Regenerated. - -2008-12-02 Michael Calmer <mc@suse.de> - - * modules/pam_limits/limits.conf.5.xml: Document valid values - for limits (bnc#448314). - -2008-12-02 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_env/pam_env.c: Add support for user specific - environment file. Based on a patch from Ubuntu. - * modules/pam_env/pam_env.8.xml: Document new options. - -2008-12-02 Olivier Fourdan <ofourdan@redhat.com> - - * modules/pam_filter/pam_filter.c (master): Use /dev/ptmx - instead of the old BSD pseudoterminal API. - (set_filter): Call grantpt(), unlockpt() and ptsname(). Do not - close pseudoterminal handle in filter child. - * modules/pam_filter/upperLOWER/upperLOWER.c (main): Use - regular read() instead of pam_modutil_read() to allow for - short reads. - -2008-12-02 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_timestamp/Makefile.am: Add hmacfile to tests. - * modules/pam_timestamp/hmacfile.c: Do not try the short key - testvector. - -2008-12-01 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/support.h: Fix masks for cipher algorithm - flags. - -2008-12-01 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/pam_unix.8.xml: Document blowfish option. - - * configure.in: Check for crypt_gensalt_rn. - * modules/pam_unix/pam_unix_passwd.c: Pass pamh to - create_password_hash function. - * modules/pam_unix/passverify.c (create_password_hash): Add - blowfish support. - * modules/pam_unix/passverify.h: Adjust create_password_hash - prototype. - * modules/pam_unix/support.c: Add support for blowfish option. - * modules/pam_unix/support.h: Add defines for blowfish option. - Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> - -2008-12-01 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_access/pam_access.8.xml: Fix description of nodefgroup - option. - - * modules/pam_group/pam_group.c (is_same): Fix check for correct - string length. - -2008-11-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Check for xcrypt.h, fix typo in libaudit check. - * modules/pam_cracklib/pam_cracklib.c: Include xcrypt.h if - available. - * modules/pam_unix/bigcrypt.c: Likewise. - * modules/pam_unix/passverify.c: Likewise. - * modules/pam_userdb/pam_userdb.c: Likewise. - Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> - - * doc/man/pam_getenv.3.xml: Document that application should - not free return value. - - * doc/man/pam.3.xml: Add Note about thread-safeness of libpam - functions. - -2008-11-28 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/unix_update.c (set_password): Allow root to change - passwords without verification of the old ones. - - * modules/pam_tally2/pam_tally2.c (tally_check): Fix info format - to be the same as in pam_tally. - - * configure.in: Add modules/pam_timestamp/Makefile. - * doc/sag/Linux-PAM_SAG.xml: Include pam_timestamp.xml. - * doc/sag/pam_timestamp.xml: New. - * libpam/pam_static_modules.h: Add pam_timestamp static struct. - * modules/Makefile.am: Add pam_timestamp directory. - * modules/pam_timestamp/Makefile.am: New. - * modules/pam_timestamp/README.xml: New. - * modules/pam_timestamp/hmacsha1.h: New. - * modules/pam_timestamp/sha1.h: New. - * modules/pam_timestamp/pam_timestamp.8.xml: New. - * modules/pam_timestamp/pam_timestamp_check.8.xml: New. - * modules/pam_timestamp/pam_timestamp.c: New. - * modules/pam_timestamp/pam_timestamp_check.c: New. - * modules/pam_timestamp/hmacfile.c: New. - * modules/pam_timestamp/hmacsha1.c: New. - * modules/pam_timestamp/sha1.c: New. - * modules/pam_timestamp/tst-pam_timestamp: New. - * po/POTFILES.in: Add pam_timestamp sources. - * po/*.po: Regenerate. - * po/cs.po: Updated translations. - -2008-11-25 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_pwhistory/opasswd.c (save_old_password): Fix typo. - - * modules/pam_time/pam_time.c (is_same): Fix check - of correct string length (debian bug #326407). - -2008-11-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * xtests/Makefile.am: Add pam_time1 tests. - * xtests/tst-pam_time1.c: New test case. - * xtests/tst-pam_time1.pamd: New. - * xtests/time.conf: New. - * xtests/run-xtests.sh: Copy time.conf. - -2008-11-24 Tomas Mraz <t8m@centrum.cz> - - * libpam/pam_handlers.c (_pam_parse_conf_file): '-' at - beginning of type token marks silent module. - (_pam_load_module): Add handler_type parameter. Do not log - module load error if module is silent. - (_pam_add_handler): Pass handler_type to _pam_load_module(). - * libpam/pam_private.h: Add PAM_HT_SILENT_MODULE. - * doc/man/pam.conf-syntax.xml: Document the '-' at beginning - of type. - - * modules/pam_cracklib/pam_cracklib.c (pam_sm_chauthtok): Fix leaks - in error path. - * modules/pam_env/pam_env.c (_parse_env_file): Remove superfluous - condition. - * modules/pam_group/pam_group.c (check_account): Fix leak - in error path. - * modules/pam_listfile/pam_listfile.c (pam_sm_authenticate): Fix leak - in error path. - * modules/pam_securetty/pam_securetty.c (securetty_perform_check): Remove - superfluous condition. - * modules/pam_stress/pam_stress.c (stress_get_password,pam_sm_authenticate): - Remove superfluous conditions. - (pam_sm_chauthtok): Fix mistaken && for &. - * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Remove - superfluous condition. - All the problems fixed in this commit were found by Steve Grubb. - -2008-11-20 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_sepermit/pam_sepermit.c (sepermit_match): Do not - call sepermit_lock() if sense is deny. Do not crash on NULL seuser - match. - (pam_sm_authenticate): Try to call getseuserbyname() even if - SELinux is disabled. - -2008-11-19 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_xauth/pam_xauth.c (pam_sm_open_session): - Preserve XAUTHLOCALHOSTNAME environment variable. - - * modules/pam_pwhistory/pam_pwhistory.c (pam_sm_chauthtok): Finish - implementation of type=STRING option. - - * modules/pam_pwhistory/pam_pwhistory.8.xml: Document - "type=STRING" option. - -2008-10-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam_setcred.3.xml: Document when credentials - should be deleted. - * po/ja.po: Fix syntax error. - * po/de.po: Update translations. - * po/*.po: Regenerate with pam_tally2 added. - -2008-10-23 Taylon Silmer Lacerda Silva <taylonsilva@gmail.com> - - * po/pt_BR.po: Updated translations. - -2008-10-23 Krishna Babu K <kkrothap@redhat.com> - - * po/LINGUAS: New language. - * po/te.po: New translation to Telugu. - -2008-10-23 Manoj Kumar Giri <mgiri@redhat.com> - - * po/or.po: Updated translations. - -2008-10-21 Amitakhya Phukan <aphukan@redhat.com> - - * po/as.po: Updated translations. - -2008-10-21 Ondrej Sulek <feonsu@gmail.com> - - * po/sk.po: Updated translations. - -2008-10-21 Terry Chuang <tchuang@redhat.com> - - * po/zh_TW.po: Updated translations. - -2008-10-21 Kiyoto Hashida <khashida@redhat.com> - - * po/ja.po: Updated translations. - -2008-10-21 Francesco Valente <fvalen@redhat.com> - - * po/it.po: Updated translations. - -2008-10-21 Peter van Egdom <p.van.egdom@gmail.com> - - * po/nl.po: Updated translations. - -2008-10-20 Ani Peter <apeter@redhat.com> - - * po/ml.po: Updated translations. - -2008-10-20 Pablo Martin-Gomez <pablo.martin-gomez@laposte.net> - - * po/fr.po: Updated translations. - -2008-10-20 Runa Bhattacharjee <runab@redhat.com> - - * po/bn_IN.po: Updated translations. - -2008-10-20 Shankar Prasad <svenkate@redhat.com> - - * po/kn.po: Updated translations. - -2008-10-20 Leah Liu <lliu@redhat.com> - - * po/zh_CN.po: Updated translations. - -2008-10-20 Ondrej Sulek <feonsu@gmail.com> - - * po/LINGUAS: New language. - * po/sk.po: New translation to Slovak. - -2008-10-17 Tomas Mraz <t8m@centrum.cz> - - * configure.in: Add modules/pam_tally2/Makefile. - * doc/sag/Linux-PAM_SAG.xml: Include pam_tally2.xml. - * doc/sag/pam_tally2.xml: New. - * libpam/pam_static_modules.h: Add pam_tally2 static struct. - * modules/Makefile.am: Add pam_tally2 directory. - * modules/pam_tally2/Makefile.am: New. - * modules/pam_tally2/README.xml: New. - * modules/pam_tally2/tallylog.h: New. - * modules/pam_tally2/pam_tally2.8.xml: New. - * modules/pam_tally2/pam_tally2.c: New. - * modules/pam_tally2/pam_tally2_app.c: New. - * modules/pam_tally2/tst-pam_tally2: New. - * po/POTFILES.in: Add pam_tally2 sources. - -2008-10-17 Xavier Queralt Mateu <xqueralt@gmail.com> - - * po/ca.po: Updated translations. - -2008-10-15 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_keyinit/pam_keyinit.c (kill_keyrings): Save the old - euid to suid to be able to restore it. - -2008-10-15 Piotr DrÄ…g <piotrdrag@gmail.com> - - * po/pl.po: Updated translations. - -2008-10-13 Tomas Mraz <t8m@centrum.cz> - - * po/LINGUAS: New languages. - * po/cs.po: Updated translations. - -2008-10-13 Amitakhya Phukan <aphukan@redhat.com> - - * po/as.po: Updated translations. - -2008-10-13 Shankar Prasad <svenkate@redhat.com> - - * po/kn.po: Updated translations. - -2008-10-13 Sandeep Sheshrao Shedmake <sshedmak@redhat.com> - - * po/mr.po: New translation to Marathi. - -2008-10-13 Runa Bhattacharjee <runab@redhat.com> - - * po/bn_IN.po: Updated translations. - -2008-10-13 Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com> - - * po/ms.po: New translation to Malay. - -2008-10-10 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_cracklib/pam_cracklib.c (_pam_unix_approve_pass): - Remove check for re-used passwords. - * modules/pam_cracklib/pam_cracklib.8.xml: Remove documentation - of re-used password check. - - * configure.in: add modules/pam_pwhistory/Makefile. - * doc/sag/Linux-PAM_SAG.xml: Include pam_pwhistory.xml. - * doc/sag/pam_pwhistory.xml: New. - * libpam/pam_static_modules.h: Add pam_pwhistory data. - * modules/Makefile.am: Add pam_pwhistory directory. - * modules/pam_pwhistory/Makefile.am: New. - * modules/pam_pwhistory/README.xml: New. - * modules/pam_pwhistory/opasswd.c: New. - * modules/pam_pwhistory/opasswd.h: New. - * modules/pam_pwhistory/pam_pwhistory.8.xml: New. - * modules/pam_pwhistory/pam_pwhistory.c: New. - * modules/pam_pwhistory/tst-pam_pwhistory: New. - * xtests/Makefile.am: New. - * xtests/run-xtests.sh: New. - * xtests/tst-pam_pwhistory1.c: New. - * xtests/tst-pam_pwhistory1.pamd: New. - * xtests/tst-pam_pwhistory1.sh: New. - * po/POTFILES.in: Add modules/pam_pwhistory/. - * po/de.po: Update translations. - -2008-10-02 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/de.po: Update translations. - -2008-09-30 Manoj Kumar Giri <mgiri@redhat.com> - - * po/or.po: Updated translations. - -2008-09-30 Taylon Silmer Lacerda Silva <taylonsilva@gmail.com> - - * po/pt_BR.po: Updated translations. - -2008-09-30 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_lastlog/pam_lastlog.8.xml: Document new options - noupdate and showfailed. - * modules/pam_lastlog/pam_lastlog.c(pam_parse): Recognize the new - options. - (last_login_read): New output parameter lltime. Do not display - the last login message if it would be empty. - (last_login_date): New output parameter lltime. Do not write the - last login info when LASTLOG_UPDATE is not set. - (last_login_failed): New function to display the last bad login - attempt from btmp. - (pam_sm_open_session): Obtain lltime from last_login_date() and - call last_login_failed() when appropriate. - - * po/Linux-pam.pot: Updated strings to translate. - * po/*.po: Likewise. - -2008-09-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_echo/pam_echo.8.xml: Fix format error. - -2008-09-25 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_tally/pam_tally.c(get_tally): Fix syslog message. - (tally_check): Open faillog read only. Close file descriptor. - Fix typos in messages. - -2008-09-25 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_mail/pam_mail.c (report_mail): Fix logic of - "quiet" option (Patch from Andreas Henriksson <andreas@fatal.se>) - - * modules/pam_mail/pam_mail.8.xml: Fix typo. - -2008-09-23 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_limits/limits.conf.5.xml: Comment that rss limit is - ignored. - -2008-09-19 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_cracklib/pam_cracklib.8.xml: Fix description - of the palindrome test. Document new options maxrepeat and - reject_username. - * modules/pam_cracklib/pam_cracklib.c(_pam_parse): Parse - the maxrepeat and reject_username options. - (password_check): Call the new tests usercheck() and - consecutive(). - (_pam_unix_approve_pass): Pass user name to the password_check(). - -2008-09-16 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_cracklib/pam_cracklib.8.xml: Fix typo. - - * modules/pam_unix/pam_unix.8.xml: Fix typo. - -2008-09-03 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_exec/pam_exec.c: Expose authtok if requested, - provide environment variable containing service type. - * modules/pam_exec/pam_exec.8.xml: Document new option. - -2008-08-29 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_loginuid/pam_loginuid.c(set_loginuid): Uids - are unsigned. - -2008-08-18 Thorsten Kukuk <kukuk@thkukuk.de> - - * Makefile.am (M4_FILES): Adjust list. - - * modules/pam_access/pam_access.8.xml: Fix module service - vs. module type. - * modules/pam_cracklib/pam_cracklib.8.xml: Likewise. - * modules/pam_debug/pam_debug.8.xml: Likewise. - * modules/pam_deny/pam_deny.8.xml: Likewise. - * modules/pam_echo/pam_echo.8.xml: Likewise. - * modules/pam_env/pam_env.8.xml: Likewise. - * modules/pam_exec/pam_exec.8.xml: Likewise. - * modules/pam_faildelay/pam_faildelay.8.xml: Likewise. - * modules/pam_filter/pam_filter.8.xml: Likewise. - * modules/pam_ftp/pam_ftp.8.xml: Likewise. - * modules/pam_group/pam_group.8.xml: Likewise. - * modules/pam_issue/pam_issue.8.xml: Likewise. - * modules/pam_keyinit/pam_keyinit.8.xml: Likewise. - * modules/pam_lastlog/pam_lastlog.8.xml: Likewise. - * modules/pam_limits/pam_limits.8.xml: Likewise. - * modules/pam_listfile/pam_listfile.8.xml: Likewise. - * modules/pam_localuser/pam_localuser.8.xml: Likewise. - * modules/pam_loginuid/pam_loginuid.8.xml: Likewise. - * modules/pam_mail/pam_mail.8.xml: Likewise. - * modules/pam_mkhomedir/pam_mkhomedir.8.xml: Likewise. - * modules/pam_motd/pam_motd.8.xml: Likewise. - * modules/pam_namespace/pam_namespace.8.xml: Likewise. - * modules/pam_nologin/pam_nologin.8.xml: Likewise. - * modules/pam_permit/pam_permit.8.xml: Likewise. - * modules/pam_rhosts/pam_rhosts.8.xml: Likewise. - * modules/pam_rootok/pam_rootok.8.xml: Likewise. - * modules/pam_securetty/pam_securetty.8.xml: Likewise. - * modules/pam_selinux/pam_selinux.8.xml: Likewise. - * modules/pam_sepermit/pam_sepermit.8.xml: Likewise. - * modules/pam_shells/pam_shells.8.xml: Likewise. - * modules/pam_succeed_if/pam_succeed_if.8.xml: Likewise. - * modules/pam_tally/pam_tally.8.xml: Likewise. - * modules/pam_time/pam_time.8.xml: Likewise. - * modules/pam_tty_audit/pam_tty_audit.8.xml: Likewise. - * modules/pam_umask/pam_umask.8.xml: Likewise. - * modules/pam_unix/pam_unix.8.xml: Likewise. - * modules/pam_userdb/pam_userdb.8.xml: Likewise. - * modules/pam_warn/pam_warn.8.xml: Likewise. - * modules/pam_wheel/pam_wheel.8.xml: Likewise. - * modules/pam_xauth/pam_xauth.8.xml: Likewise. - -2008-08-01 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Add version for gettext, add search path - for m4 directory, fix handling of --disable-* options. - Patches from Diego Pettenò <flameeyes@gmail.com>. - - * configure.in: Run autoupdate on it. - - * acincludde.m4: Rename to ... - * m4/jh_path_xml_catalog.m4: ... this. - - * m4/*.m4: Remove all autoconf m4 files. - -2008-07-29 Steve Langasek <vorlon@debian.org> - - * modules/pam_cracklib/pam_cracklib.8.xml: correct a typo, - "Only he" -> "Only the" - -2008-07-28 Steve Langasek <vorlon@debian.org> - - * libpamc/test/regress/test.libpamc.c: use standard u_int8_t - type instead of __u8, as elsewhere. - Patch from Roger Leigh <rleigh@debian.org>. - * modules/pam_unix/passverify.c: make save_old_password() - thread-safe by using pam_modutil_getpwnam() instead of getpwnam() - * modules/pam_unix/passverify.c, modules/pam_unix/passverify.h, - modules/pam_unix/pam_unix_passwd.c: add pamh argument to - save_old_password() - -2008-07-27 Steve Langasek <vorlon@debian.org> - - * modules/pam_*/pam_*.8.xml: fix up the references to pam.d, - which is in manpage section 5, not 8. - * modules/pam_env/environment, modules/pam_env/pam_env.8.xml: - spelling fix, seperate -> separate - -2008-07-26 Steve Langasek <vorlon@debian.org> - - * modules/pam_env/pam_env.c: Fix module to skip over - non-alphanumeric variable names, and to handle the case when - asked to delete a non-existent variable. - -2008-07-13 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_mail/pam_mail.8.xml: Module supports session and - not account service (#1980773). - -2008-07-11 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): Do - not close the pipe descriptor in borderline case (#2009766). - * modules/pam_unix/pam_unix_passwd.c (_unix_run_update_binary): - Likewise. - * modules/pam_unix/support.c (_unix_run_helper_binary): Likewise. - * modules/pam_unix/support.h: Define upper limit of fds we will - attempt to close. - - * modules/pam_selinux/pam_selinux.c (config_context): Do not - ask for the level if use_current_range is set. - (context_from_env): New function to obtain the context from - PAM environment variables. - (pam_sm_open_session): Call context_from_env() if env_params option - is present. use_current_range now modifies behavior of the - context_from_env and config_context options. - * modules/pam_selinux/pam_selinux.8.xml: Describe the env_params - option. Adjust description of use_current_range option. - -2008-07-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_exec/pam_exec.c (call_exec): Move all variable - declaration to begin of a block (#1976310). - - * xtests/tst-pam_group1.c (run_test): Move no_grps declaration - to begin of function (#1976310). - - * modules/pam_securetty/pam_securetty.8.xml: Replace - PAM_IGNORE with PAM_USER_UNKNOWN (#1994330). - - * modules/pam_tally/pam_tally.c: Add support for silent and - no_log_info options. - * modules/pam_tally/pam_tally.8.xml: Document silent and - no_log_info options. - -2008-07-08 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/passverify.c (verify_pwd_hash): Adjust debug - statement. - -2008-06-22 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/unix_chkpwd.c (main): Fix compiling without - audit support. - - * modules/pam_cracklib/pam_cracklib.8.xml: Fix typo in ucredit - description (reported by Wayne Pollock <pollock@acm.org>) - -2008-06-19 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): - Detect configuration errors. Fail on incomplete condition. - -2008-05-20 Tomas Mraz <t8m@centrum.cz> - - * configure.in: Work correctly with autoconf-2.62. - -2008-05-19 Tomas Mraz <t8m@centrum.cz> - - * doc/man/pam_getenv.3.xml: Correct the pam_getenv documentation. - - * doc/man/pam_prompt.3.xml: Add missing description. - -2008-05-14 Kjartan Maraas <kmaraas@gnome.org> - - * po/nb.po: Updated translation. - -2008-05-14 Sulyok Péter <peti@sulyok.hu> - - * po/hu.po: Updated translation. - -2008-05-14 Tomas Mraz <t8m@centrum.cz> - - * libpam/pam_modutil_getgrgid.c: Replace hardcoded constant with - define PWD_LENGTH_SHIFT. - * libpam/pam_modutil_getgrnam.c: Likewise. - * libpam/pam_modutil_getpwnam.c: Likewise. - * libpam/pam_modutil_getpwuid.c: Likewise. - * libpam/pam_modutil_getspnam.c: Likewise. - * libpam/pam_modutil_private.h: Adjust values for PWD_ constants. - - * modules/pam_unix/pam_unix_passwd.c(pam_sm_chauthtok): Unset authtok - item when password is not approved. - * modules/pam_unix/support.c(_unix_read_password): UNIX_USE_FIRST_PASS - is always set when UNIX_AUTHTOK is set, change order of conditions. - -2008-05-02 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_selinux/pam_selinux.c(query_response): Add handling - for NULL response. - (manual_context): Handle failed query_response() properly. Rename - variable responses to response which is more correct name. - (config_context): Likewise. - (pam_sm_open_session): Do not base decision on whether there is a tty. - -2008-04-22 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_selinux/pam_selinux.c(pam_sm_close_sesion): Fix - regression from the change from 2008-03-20. setexeccon() must be - called also with NULL prev_context. - -2008-04-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_access/access.conf.5.xml: Document changed behavior - of LOCAL keyword. - * modules/pam_access/pam_access.c: Add from_remote_host to - struct login_info to change behavior of LOCAL keyword: if - PAM_RHOST is not set, LOCAL will be true. - -2008-04-18 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_namespace/pam_namespace.c: New functions - unprotect_dirs(), cleanup_protect_data(), protect_mount(), - protect_dir() to protect directory by bind mount. - (cleanup_data): Renamed to cleanup_polydir_data(). - (parse_create_params): Allow missing specification of mode - or owner. - (check_inst_parent): Call protect_dir() on the instance parent - directory. The directory is created when it doesn't exist. - (create_polydir): Protect and make the polydir by protect_dir(), - remove potential races. - (create_dirs): Renamed to create_instance(), remove call to - inst_init(). - (ns_setup): Call protect_dir() on the polydir if it already exists. - Call inst_init() after the polydir is mounted. - (setup_namespace): Set the namespace protect data to be cleaned up - on pam_close_session()/pam_end(). - (pam_sm_open_session): Initialize the protect_dirs. - (pam_sm_close_session): Cleanup namespace protect data. - * modules/pam_namespace/pam_namespace.h: Define struct for the - stack of protected dirs. - * modules/pam_namespace/pam_namespace.8.xml: Document when the - instance init script is called. - * modules/pam_namespace/namespace.conf.5.xml: Likewise. - -2008-04-17 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_access/pam_access.c(myhostname): Removed function. - (user_match): Supply hostname of the machine to the netgroup_match(). - Use hostname from the loginfo instead of calling myhostname(). - (pam_sm_authenticate): Call gethostname() to fill hostname in the - loginfo. - - * modules/pam_sepermit/pam_sepermit.c(sepermit_match): Do not try - to lock if euid != 0. - -2008-04-16 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/Makefile.am: Link unix_chkpwd with libaudit. - * modules/pam_unix/unix_chkpwd.c(_audit_log): New function for audit. - (main): Call _audit_log() when appropriate. - - * modules/pam_cracklib/pam_cracklib.c(_pam_parse): Recognize also - try_first_pass and use_first_pass options. - (pam_sm_chauthtok): Implement the new options. - -2008-04-08 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_xauth/pam_xauth.c(run_coprocess): Avoid multiple - calls to sysconf() (based on patch by Sami Farin). - - * libpam/pam_item.c (TRY_SET): Do not set when destination - is identical to source. - (pam_set_item): Do not overwrite destination when it - is identical to source. - -2008-04-07 MiloÅ¡ KomarÄević <kmilos@gmail.com> - - * po/sr.po: New file with translation. - * po/sr@latin.po: Likewise. - * po/LINGUAS: Add sr and sr@latin. - -2008-04-03 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 1.0.0 - - * configure.in: Set version number to 1.0.0. - * libpam/Makefile.am: Bump patchlevel of libpam. - * doc/adg/Linux-PAM_ADG.xml: Update version/date. - * doc/mwg/Linux-PAM_MWG.xml: Likewise. - * doc/sag/Linux-PAM_SAG.xml: Likewise. - -2008-03-31 Dan Walsh <dwalsh@redhat.com> - - * modules/pam_sepermit/pam_sepermit.c(sepermit_lock): Mark lock fd to - be closed on exec. - -2008-03-25 Leah Liu <lliu@redhat.com> - - * po/zh_CN.po: Updated translation. - -2008-03-20 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_namespace/pam_namespace.c(poly_name): Switch to USER - method only when appropriate. - (setup_namespace): Do not umount when not mounted with RUSER. - - * modules/pam_selinux/pam_selinux.c(pam_sm_close_session): Call - freecontext() after the context is logged not before. - -2008-03-18 Canniot Thomas <thomas.canniot@mrtomlinux.org> - - * po/fr.po: Updated translation. - -2008-03-13 Ankit Patel <ankit@redhat.com> - - * po/gu.po: Updated translation. - -2008-03-05 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_cracklib/pam_cracklib.c(pam_sm_chauthtok): Avoid - unnecessary x_strdup() of resp. - * modules/pam_ftp/pam_ftp(pam_sm_authenticate): Call _pam_overwrite() - before dropping password resp. - -2008-03-03 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_selinux/pam_selinux.c: Do not translate syslog messages. - * po/Linux-PAM.pot: Update. - - * libpam/pam_item.c(RESET): Rename to TRY_SET, handle strdup failure. - (pam_set_item): Use TRY_SET() also for PAM_AUTHTOK and PAM_OLDAUTHTOK. - Handle allocation failure for PAM_XAUTHDATA. - (pam_get_user): Return error when conversation returns NULL user. - Call pam_set_item() instead of RESET(). - -2008-02-26 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/Makefile.am: Do not link to cracklib. - * modules/pam_unix/pam_unix_passwd.c(_pam_unix_approve_pass): - Do not call FascistCheck() from cracklib. - -2008-02-29 Fabian Affolter <fab@fedoraproject.org> - - * po/de.po: Updated translation. - -2008-02-28 Piotr DrÄ…g <piotrdrag@gmail.com> - - * po/pl.po: Updated translation. - -2008-02-26 Tomas Mraz <t8m@centrum.cz> - - * po/LINUGAS: New languages added. - * po/es.po: Updated translations. - * po/fr.po: Likewise. - * po/it.po: Likewise. - * po/ja.po: Likewise. - * po/nl.po: Likewise. - * po/pl.po: Likewise. - * po/pt_BR.po: Likewise. - * po/ru.po: Likewise. - * po/zh_CN.po: Likewise. - * po/as.po: New file. - * po/gu.po: Likewise. - * po/hi.po: Likewise. - * po/kn.po: Likewise. - * po/ko.po: Likewise. - * po/ml.po: Likewise. - * po/or.po: Likewise. - * po/si.po: Likewise. - * po/ta.po: Likewise. - -2008-02-21 Tomas Mraz <t8m@centrum.cz> - - * libpam/pam_audit.c (_pam_audit_writelog): Silence syslog - message on non-error return. - - * modules/pam_unix/unix_chkpwd.c (main): Proceed as unprivileged - user when checking password of another user. - * modules/pam_unix/unix_update.c: Fix comment. - -2008-02-18 Dmitry V. Levin <ldv@altlinux.org> - - * libpam/pam_handlers.c (_pam_assemble_line): Fix potential - buffer overflow. - * xtests/tst-pam_assemble_line1.pamd: New test for - _pam_assemble_line. - * xtests/tst-pam_assemble_line1.sh: New script for - tst-pam_assemble_line1. - * xtests/Makefile.am (NOSRCTESTS): Add tst-pam_assemble_line1. - (EXTRA_DIST): Add tst-pam_assemble_line1.pamd and - tst-pam_assemble_line1.sh - - * modules/pam_exec/pam_exec.c (call_exec): Fix asprintf return - code check. - -2008-02-13 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.10.0 - - * configure.in: set version number. - - * modules/pam_rhosts/Makefile.am: Remove pam_rhosts_auth. - * modules/pam_rhosts/pam_rhosts_auth.c: Removed. - * modules/pam_rhosts/tst-pam_rhosts_auth: Removed. - - * modules/pam_namespace/Makefile.am (noinst_HEADERS): Add - pam_namespace.h. - -2008-02-13 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_namespace/Makefile.am: Add argv_parse files and namespace.d - dir. - * modules/pam_namespace/argv_parse.c: New file. - * modules/pam_namespace/argv_parse.h: New file. - * modules/pam_namespace/namespace.conf.5.xml: Document new features. - * modules/pam_namespace/pam_namespace.8.xml: Likewise. - * modules/pam_namespace/pam_namespace.h: Use SECURECONF_DIR define. - Define NAMESPACE_D_DIR and NAMESPACE_D_GLOB. Define new option flags - and polydir flags. - (polydir_s): Add rdir, replace exclusive with flags, add init_script, - owner, group, and mode. - (instance_data): Add ruser, gid, and ruid. - * modules/pam_namespace/pam_namespace.c: Remove now unused copy_ent(). - (add_polydir_entry): Add the entry directly, no copy. - (del_polydir): New function. - (del_polydir_list): Call del_polydir(). - (expand_variables, parse_create_params, parse_iscript_params, - parse_method): New functions. - (process_line): Call expand_variables() on polydir and instance prefix. - Call argv_parse() instead of strtok_r(). Allocate struct polydir_s on heap. - (parse_config_file): Parse .conf files from namespace.d dir after - namespace.conf. - (form_context): Call getcon() or get_default_context_with_level() when - appropriate flags are set. - (poly_name): Handle shared polydir flag. - (inst_init): Execute non-default init script when specified. - (create_polydir): New function. - (create_dirs): Remove the code which checks the polydir. Do not call - inst_init() when noinit flag is set. - (ns_setup): Check the polydir and eventually create it if the create flag - is set. - (setup_namespace): Use ruser uid from idata. Set the namespace polydir - pam data only when namespace was set up correctly. Unmount polydir - based on ruser. - (get_user_data): New function. - (pam_sm_open_session): Check for use_current_context and - use_default_context options. Call get_user_data(). - (pam_sm_close_session): Call get_user_data(). - -2008-02-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/de.po: Translate some more strings. - -2008-02-05 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/unix_update.c: Remove unused declarations. - -2008-02-04 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_static_modules.h: Add _pam_sepermit_modstruct. - * modules/pam_sepermit/pam_sepermit.c: Fix typo. - * modules/pam_sepermit/Makefile.am: Install config file only - if we build the module. - - * README: Add --disable-pie to configure options for static library. - - * doc/man/Makefile.am: Fix building outside of src directory. - - * libpam/Makefile.am: Bump version number of libpam. - - * modules/Makefile.am: Add pam_sepermit. - - * doc/Makefile.am: Fix build out of source directory. - - * po/POTFILES.in: Add pam_sepermit.c. - - * modules/pam_exec/pam_exec.c: Set PAM environment variables and - add 'quiet' option. - * modules/pam_exec/pam_exec.8.xml: Document new behavior. - Patch from Julien Lecomte <julien@lecomte.at>. - -2008-02-01 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_namespace/namespace.conf.5.xml: Add documentation for - tmpfs and tmpdir polyinst and for ~ user list modifier. - * modules/pam_namespace/namespace.init: Add documentation for the - new init parameter. Add home directory initialization script. - * modules/pam_namespace/pam_namespace.8.xml: Document the new - init parameter of the namespace.init script. - * modules/pam_namespace/pam_namespace.c(copy_ent): Copy exclusive flag. - (cleanup_data): New function. - (process_line): Set exclusive flag. Add tmpfs and tmpdir methods. - (ns_override): Change behavior on the exclusive flag. - (poly_name): Process tmpfs and tmpdir methods. - (inst_init): Add flag for new directory initialization. - (create_dirs): Process the tmpdir method, add the new directory - flag. - (ns_setup): Remove unused code. Process the tmpfs method. - (cleanup_tmpdirs): New function. - (setup_namespace): Set data for proper cleanup. Cleanup the tmpdirs - on failures. - (pam_sm_close_session): Instead of parsing the config file again use - the previously set data for cleanup. - * modules/pam_namespace/pam_namespace.h: Add TMPFS and TMPDIR methods - and exclusive flag. - -2008-01-29 Tomas Mraz <t8m@centrum.cz> - - * configure.in: Test for setkeycreatecon needs libselinux. - Add new module pam_sepermit. - * modules/Makefile.am: Add new module pam_sepermit. - * modules/pam_sepermit/.cvsignore: New file. - * modules/pam_sepermit/Makefile.am: Likewise. - * modules/pam_sepermit/README.xml: Likewise. - * modules/pam_sepermit/pam_sepermit.8.xml: Likewise. - * modules/pam_sepermit/pam_sepermit.c: Likewise. - * modules/pam_sepermit/sepermit.conf: Likewise. - * modules/pam_sepermit/tst-pam_sepermit: Likewise. - * doc/sag/pam_sepermit.xml: Likewise. - - * doc/sag/pam_tty_audit.xml: Add pam_tty_audit to SAG. - -2008-01-29 Miloslav Trmac <mitr@redhat.com> - - * modules/pam_tty_audit/README.xml: Add notes section. - * modules/pam_tty_audit/pam_tty_audit.8.xml: Describe patterns - support and open_only option. Add notes. - * modules/pam_tty_audit/pam_tty_audit.c(pam_sm_open_session): Add - support for pattern matching and the open_only option. - -2008-01-28 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_audit.c: Include pam_modutil_private.h. - - * libpam/pam_item.c (pam_set_item): Fix compiler warning. - - * libpam/pam_end.c (pam_end): Cast to correct pointer type. - * libpam/include/security/_pam_macros.h (_pam_overwrite_n): Use - unsigned int. - - * modules/pam_unix/passverify.c: Fix compiling without SELinux - support. - -2008-01-24 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/bigcrypt.c (bigcrypt): Use crypt_r() when - available. - * modules/pam_unix/passverify.c (strip_hpux_aging): New function - to strip HP/UX aging info from password hash. - (verify_pwd_hash): Call strip_hpux_aging(), use crypt_r() when - available. - -2008-01-23 Tomas Mraz <t8m@centrum.cz> - - * configure.in: Add test for crypt_r(). Add setting/disabling random - device support. - - * modules/pam_unix/Makefile.am: Add unix_update.8 manpage generated from - XML, generate also unix_chkpwd.8 from XML. - * modules/pam_unix/pam_unix_acct.c: Add rounds parameter to _set_ctrl(). - * modules/pam_unix/pam_unix_auth.c: Likewise. - * modules/pam_unix/pam_unix_sess.c: Likewise. - * modules/pam_unix/pam_unix_passwd.c: Likewise. - * modules/pam_unix/support.c(_set_ctrl): Likewise. - * modules/pam_unix/support.h: Likewise. Add UNIX_SHA256_PASS, - UNIX_SHA512_PASS, and UNIX_ALGO_ROUNDS ctrls. - (pam_sm_chauthtok): Refactor out new password encryption. - * modules/pam_unix/passverify.c(crypt_make_salt): New function. - (crypt_md5_wrapper): Call crypt_make_salt(). - (create_password_hash): New function refactored out of - pam_sm_chauthtok(). Support for new password hashes. - * modules/pam_unix/passverify.h: Drop ascii_to_bin() and bin_to_ascii() - macros. Add prototype for create_password_hash(). - * modules/pam_unix/unix_update.8.xml: New file. - * modules/pam_unix/unix_chkpwd.8.xml: Likewise. - - * modules/pam_unix/Makefile.am: Add unix_update helper. - * modules/pam_unix/pam_unix_passwd.c: Move functions i64c(), - crypt_md5_wrapper(), save_old_password(), _update_passwd() and - _update_shadow() to passverify.c file. Rename _unix_run_shadow_binary() - to _unix_run_update_binary(), which also verifies old password and - does all writing. - (_do_setpass, pam_sm_chauthtok): lckpwdf()->lock_pwdf(), the same for unlock. - Call _unix_run_update_binary() appropriately. - _update_passwd()->unix_update_passwd(), the same for shadow. - * modules/pam_unix/passverify.c: Add new functions moved from - pam_unix_passwd.c and unix_chkpwd.c. - * modules/pam_unix/passverify.h: Likewise. - * modules/pam_unix/unix_chkpwd.c: Remove SELinux checks. Move - su_sighandler(), setup_signals(), getuidname() to passverify.c. - (main): Remove 'shadow' option. Refactor out read_passwords() and - call it. More strict checking how the binary is called. - * modules/pam_unix/unix_update.c: New helper binary - non-setuid, - called from SELinux confined apps only. - - * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): Return - status and daysleft instead of fake shadow entry. - (pam_sm_acct_mgmt): Call _unix_run_verify_binary() appropriately. - * modules/pam_unix/pam_unix_passwd.c (_unix_verify_shadow): Call - get_account_info() and check_shadow_expiry(). - * modules/pam_unix/support.h: Adjust _unix_run_verify_binary() - prototype. - * modules/pam_unix/support.c (_unix_run_helper_binary): Remove check - on selinux enabled/disabled. - * modules/pam_unix/unix_chkpwd.c (_verify_account): Rename to - _check_expiry(), now checks shadow expiry info. - (main): Remove check on selinux enabled/disabled. Check shadow - expiry through _check_expiry(). - - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Call - get_account_info() and check_shadow_expiry(). - * modules/pam_unix/passverify.c: Add get_account_info() to - obtain shadow and passwd entry. Add check_shadow_expiry() to - for shadow password expiry check. - (get_pwd_hash): Call get_account_info(). - * modules/pam_unix/passverify.h: Add prototypes for get_account_info() - and check_shadow_expiry(). - -2008-01-08 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/Makefile.am: Fix manual page dependencies, - add hack for bug in xsl stylestheets. - -2008-01-07 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/it.po: Fix typos. - * po/de.po: Few new translations. - * po/POTFILES.in: Add pam_tty_audit.c and passverify.c. - * doc/man/pam_xauth_data.3.xml: Added to CVS. - * doc/man/pam_xauth_data.3: Likewise. - * modules/pam_tty_audit/README: Likewise. - * modules/pam_tty_audit/pam_tty_audit.8: Likewise. - * po/sv.po: Update swedish translation [#1857531]. - * modules/pam_succeed_if/pam_succeed_if.8.xml: Fix - cut & paste error [#1863490]. - -2008-01-02 Petteri Räty <betelgeuse@gentoo.org> - * modules/pam_limits/limits.conf: document allowed values for - nice. - * modules/pam_limits/limits.conf.5.xml: Likewise. - -2007-12-18 Thorsten Kukuk <kukuk@thkukuk.de> - - * README: Document how to run make check with static modules - (SF#1822779). - -2007-12-18 Peter Breitenlohner <peb@mppmu.mpg.de> - * README: Document that "make check" requires a file - /etc/pam.d/other (SF#1822764). - -2007-12-12 Eamon Walsh <ewalsh@tycho.nsa.gov> - - * doc/man/pam_item_types_ext.inc.xml: More appropriate wording - for PAM_XDISPLAY doc. - -2007-12-07 Tomas Mraz <t8m@centrum.cz> - - * po/cs.po: Updated translations. - - * libpam/libpam.map: Add LIBPAM_MODUTIL_1.1 version. - * libpam/pam_audit.c: Add _pam_audit_open() and - pam_modutil_audit_write(). - (_pam_auditlog): Call _pam_audit_open(). - * libpam/include/security/pam_modutil.h: Add pam_modutil_audit_write(). - * modules/pam_access/pam_access.8.xml: Add noaudit option. - Document auditing. - * modules/pam_access/pam_access.c: Move fs, sep, pam_access_debug, and - only_new_group_syntax variables to struct login_info. Add noaudit - member. - (_parse_args): Adjust for the move of variables and add support for - noaudit option. - (group_match): Add debug parameter. - (string_match): Likewise. - (network_netmask_match): Likewise. - (login_access): Adjust for the move of variables. Add nonall_match. - Add call to pam_modutil_audit_write(). - (list_match): Adjust for the move of variables. - (user_match): Likewise. - (from_match): Likewise. - (pam_sm_authenticate): Call _parse_args() earlier. - * modules/pam_limits/pam_limits.8.xml: Add noaudit option. - Document auditing. - * modules/pam_limits/pam_limits.c (_pam_parse): Add noaudit option. - (setup_limits): Call pam_modutil_audit_write(). - * modules/pam_time/pam_time.8.xml: Add debug and noaudit options. - Document auditing. - * modules/pam_time/pam_time.c: Add option parsing (_pam_parse()). - (check_account): Call _pam_parse(). Call pam_modutil_audit_write() - and pam_syslog() on login denials. - -2007-12-07 Luca Bruno <luca.br@uno.it> - - * po/it.po: Updated translations. - -2007-12-06 Eamon Walsh <ewalsh@tycho.nsa.gov> - - * libpam/include/security/_pam_macros.h: Add _pam_overwrite_n() - macro. - * libpam/include/security/_pam_types.h: Add PAM_XDISPLAY, - PAM_XAUTHDATA items, pam_xauth_data struct. - * libpam/pam_item.c (pam_set_item, pam_get_item): Handle - PAM_XDISPLAY and PAM_XAUTHDATA items. - * libpam/pam_end.c (pam_end): Destroy the new items. - * libpam/pam_private.h (pam_handle): Add data members for new - items. Add prototype for _pam_memdup. - * libpam/pam_misc.c: Add _pam_memdup. - * doc/man/Makefile.am: Add pam_xauth_data.3. Replace - pam_item_types.inc.xml with pam_item_types_std.inc.xml and - pam_item_types_ext.inc.xml. - * doc/man/pam_get_item.3.xml: Replace pam_item_types.inc.xml - with pam_item_types_std.inc.xml and pam_item_types_ext.inc.xml. - * doc/man/pam_set_item.3.xml: Likewise. - * doc/man/pam_item_types.inc.xml: Removed file. - * doc/man/pam_item_types_ext.inc.xml: New file. - * doc/man/pam_item_types_std.inc.xml: New file. - -2007-12-06 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_tty_audit/pam_tty_audit.8.xml: Fix example. - -2007-12-05 Miloslav Trmac <mitr@redhat.com> - - * configure.in: Add test for audit_tty_status struct. Add - pam_tty_audit module. - * libpam/pam_static_modules.h: Add pam_tty_audit module. - * modules/pam_tty_audit/Makefile.am: New file. - * modules/pam_tty_audit/README.xml: Likewise. - * modules/pam_tty_audit/pam_tty_audit.8.xml: Likewise. - * modules/pam_tty_audit/pam_tty_audit.c: Likewise. - -2007-12-05 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/Makefile.am: Add passverify.h and passverify.c - as first part of pam_unix refactorization. - * modules/pam_unix/pam_unix/pam_unix_acct.c: Include passverify.h. - * modules/pam_unix/pam_unix_passwd.c: Likewise. - * modules/pam_unix/passverify.c: New file with common functions. - * modules/pam_unix/passverify.h: Prototypes for the common functions. - * modules/pam_unix/support.c: Include passverify.h, move - _unix_shadowed() to passverify.c. - (_unix_verify_password): Refactor out verify_pwd_hash() function. - * modules/pam_unix/support.h: Move _unix_shadowed() prototype to - passverify.h - * modules/pam_unix/unix_chkpwd.c: Use _unix_shadowed() and - verify_pwd_hash() from passverify.c. - -2007-11-20 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/Makefile.am (unix_chkpwd_LDADD): Don't link - unix_chkpwd unnecessary against libpam (#1822779). - - * modules/pam_tally/pam_tally.c (tally_log): Map - pam_modutil_getpwnam to getpwnam if we don't compile - as module. - * modules/pam_tally/Makefile.am: Don't link pam_tally_app - against libpam (#1822779). - -2007-11-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * xtests/tst-pam_group1.c: Include stdlib.h - * xtests/tst-pam_succeed_if1.c: Likewise. - * xtests/tst-pam_limits1.c: Likewise. - * xtests/tst-pam_access1.c: Likewise. - * xtests/tst-pam_access2.c: Likewise. - * xtests/tst-pam_access3.c: Likewise. - * xtests/tst-pam_access4.c: Likewise. - * xtests/tst-pam_unix1.c: Likewise. - * xtests/tst-pam_unix2.c: Likewise. - * xtests/tst-pam_unix3.c: Likewise. - * xtests/tst-pam_cracklib1.c: Likewise. - * xtests/tst-pam_cracklib2.c: Likewise. - - * libpam/pam_static_modules.h: Fix name of pam_namespace variable. - -2007-11-01 Peter Breitenlohner <peb@mppmu.mpg.de> - - * doc/man/pam_conv.3.xml: Correct typo. - -2007-10-30 Peter Breitenlohner <peb@mppmu.mpg.de> - - * modules/pam_rhosts/pam_rhosts_auth.c (__icheckhost): Correct - misplaced parenthesis. - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Prevent use of - dngettext() when NLS is disabled. - * modules/pam_exec/pam_exec.c (call_exec): Avoid gcc warning. - * doc/specs/parse_y.y (set_label, new_counter): Break trigraphs to - avoid gcc warning. - * modules/pam_wheel/pam_wheel.c: Remove excessive initializer - elements. - - * modules/pam_cracklib/pam_cracklib.8.xml: Correct typo. - * modules/pam_limits/limits.conf.5.xml: Likewise. - * modules/pam_listfile/pam_listfile.8.xml: Likewise. - * modules/pam_xauth/pam_xauth.8.xml: Likewise. - - * modules/pam_deny/pam_deny.8.xml: Correct spelling. - * modules/pam_group/pam_group.8.xml: Likewise. - * modules/pam_permit/pam_permit.8.xml: Likewise. - * modules/pam_shells/pam_shells.8.xml: Likewise. - * modules/pam_time/pam_time.8.xml: Likewise. - * modules/pam_warn/pam_warn.8.xml: Likewise. - - * tests/tst-dlopen.c: Return 77 in case of static modules, such that - all modules/pam_*/tst-pam_* tests yield SKIP instead of FAIL. - * libpam/Makefile.am (libpam_la_LIBADD): Use "$(shell ls ...)" instead - of "`ls ...`", to allow for static modules. - * libpam/pam_static_modules.h: Make pam_keyinit module depend on - HAVE_KEY_MANAGEMENT; correct name of pam_faildelay pam_module struct. - * modules/pam_faildelay/pam_faildelay.c: Correct name of pam_module - struct. - -2007-10-25 Steve Langasek <vorlon@debian.org> - - * modules/pam_tally/pam_tally.c: fix the definition of OPT_AUDIT - to be octal instead of decimal, so that it works properly in a - bit field instead of forcing the "even_deny_root_account" and - "no_reset" options to on. - Patch from Corey Wright <undefined@pobox.com>. - -2007-10-19 Tomas Mraz <t8m@centrum.cz> - - * xtests/tst-pam_access1.c: Use different name for user and group. - * xtests/tst-pam_access1.sh: Likewise. - * xtests/tst-pam_access2.c: Likewise. - * xtests/tst-pam_access2.sh: Likewise. - * xtests/tst-pam_access4.c: Likewise. - * xtests/tst-pam_access4.sh: Likewise. - * xtests/group.conf: Likewise. - * xtests/tst-pam_group1.c: Likewise. - * xtests/tst-pam_group1.sh: Likewise. - - * libpam/pam_dispatch.c (_pam_dispatch_aux): Save states for substacks, - record substack level, skip over virtual substack modules, implement - evaluation of done, die, reset and jumps in substacks. Also fixes - too far jumps in substacks. - * libpam/pam_end.c (pam_end): Drop substack evaluation states. - * libpam/pam_handlers.c (_pam_parse_conf_file): Add substack level - parameter, instead of must_fail use handler_type needed for virtual - substack modules. - (_pam_load_conf_file): Add substack level parameter. - (_pam_init_handlers): Substack level parameter added to - _pam_parse_conf_file() calls. - (_pam_load_module): New function. - (_pam_add_handler): Refactor code into the _pam_load_module(). Add - support for virtual substack modules. - * libpam/pam_private.h: Rename must_fail to handler_type, add stack_level - to struct handler. Define handler type constants. Add struct - for substack evaluation states. Define constant for maximum - substack level. Add substack states pointer to former state struct. - * libpam/pam_start.c (pam_start): Initialize pointer to substack states. - * doc/man/pam.conf-syntax.xml: Document substack control. - * xtests/Makefile.am: Add new tests for substack evaluation. - * xtests/run_xtests.sh: Support multiple .pamd files in a test. - * xtests/tst-pam_authfail.pamd: New tests for substack evaluation. - * xtests/tst-pam_authsucceed.pamd: Likewise. - * xtests/tst-pam_substack1.pamd: Likewise. - * xtests/tst-pam_substack1a.pamd: Likewise. - * xtests/tst-pam_substack1.sh: Likewise. - * xtests/tst-pam_substack2.pamd: Likewise. - * xtests/tst-pam_substack2a.pamd: Likewise. - * xtests/tst-pam_substack2.sh: Likewise. - * xtests/tst-pam_substack3.pamd: Likewise. - * xtests/tst-pam_substack3a.pamd: Likewise. - * xtests/tst-pam_substack3.sh: Likewise. - * xtests/tst-pam_substack4.pamd: Likewise. - * xtests/tst-pam_substack4a.pamd: Likewise. - * xtests/tst-pam_substack4.sh: Likewise. - * xtests/tst-pam_substack5.pamd: Likewise. - * xtests/tst-pam_substack5a.pamd: Likewise. - * xtests/tst-pam_substack5.sh: Likewise. - -2007-10-18 Tomas Mraz <t8m@centrum.cz> - - * xtests/tst-pam_dispatch4.c: Fix comment about the test. - * xtests/tst-pam_dispatch4.pamd: Improve the testcase. - * xtests/tst-pam_cracklib2.c: Make the testcase more robust. - -2007-10-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * xtests/Makefile.am: Add tst-pam_dispatch5 sources - * xtests/tst-pam_dispatch5.c: New test for jump too far. - * xtests/tst-pam_dispatch5.pamd: New test configuration. - -2007-10-09 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_tally/pam_tally.8.xml: Document audit option - correctly. - -2007-10-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.9.0 - - * configure.in: Increase vesion number. - - * libpam/Makefile.am: Increase release number. - * libpam_misc/Makefile.am: Increase release number. - - * po/*.po: Regenerate. - -2007-10-08 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_time/pam_time.c (is_same): Length of strings without - wildcard needs to be the same. - * modules/pam_group/pam_group.c (is_same): Likewise. - -2007-10-01 Thorsten Kukuk <kukuk@thkukuk.de> - - * xtests/tst-pam_group1.c: New test case for user compare in pam_group. - * xtests/tst-pam_group1.sh: Script to run test case. - * xtests/tst-pam_group1.pamd: Config for test case. - * xtests/Makefile.am: Add tst-pam_group1 test case. - * xtests/run-xtests.sh: Save/restore group.conf. - * xtests/group.conf: New. - - * modules/pam_xauth/pam_xauth.c (pam_sm_open_session): Don't - free arguments used for putenv(). - - * doc/man/pam_putenv.3.xml: Document that application has to free - the memory. - -2007-09-27 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_succeed_if/pam_succeed_if.c (evaluate_inlist): Fix in - operator rhbz #295151. - * modules/pam_namespace/pam_namespace.c (poly_name): Do not try to - get context when SELinux is disabled. - -2007-09-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * xtests/tst-pam_succeed_if1.c: New test case for - https://bugzilla.redhat.com/show_bug.cgi?id=295151 - * xtests/tst-pam_succeed_if1.sh: Script to run test case. - * xtests/tst-pam_succeed_if1.pamd: Config for test case. - * xtests/Makefile.am: Add tst-pam_succeed_if1 test case. - - * xtests/run-xtests.sh: Add support to skip tests. - * xtests/tst-pam_limits1.c: Skip test if RLIMIT_NICE is not - defined. - -2007-09-03 Steve Langasek <vorlon@debian.org> - - * modules/pam_limits/pam_limits.c: remove a number of unnecessary - string manipulations, including a strncpy() that was acting on - overlapping memory. - - * libpam_misc/misc_conv.c: don't block SIGINT in misc_conv; it's - perfectly valid to allow the user to interrupt at a prompt. If - an application wants prompts to not be interruptable, the - application should take responsibility for blocking SIGINT. - -2007-09-02 Thorsten Kukuk <kukuk@thkukuk.de> - - * examples/Makefile.am: Fix usage of LIBADD, LDADD and LDFLAGS. - * libpam/Makefile.am: Likewise. - * modules/pam_access/Makefile.am: Likewise. - * modules/pam_cracklib/Makefile.am: Likewise. - * modules/pam_debug/Makefile.am: Likewise. - * modules/pam_deny/Makefile.am: Likewise. - * modules/pam_echo/Makefile.am: Likewise. - * modules/pam_env/Makefile.am: Likewise. - * modules/pam_exec/Makefile.am: Likewise. - * modules/pam_faildelay/Makefile.am: Likewise. - * modules/pam_filter/Makefile.am: Likewise. - * modules/pam_filter/upperLOWER/Makefile.am: Likewise. - * modules/pam_ftp/Makefile.am: Likewise. - * modules/pam_group/Makefile.am: Likewise. - * modules/pam_issue/Makefile.am: Likewise. - * modules/pam_keyinit/Makefile.am: Likewise. - * modules/pam_lastlog/Makefile.am: Likewise. - * modules/pam_limits/Makefile.am: Likewise. - * modules/pam_listfile/Makefile.am: Likewise. - * modules/pam_localuser/Makefile.am: Likewise. - * modules/pam_loginuid/Makefile.am: Likewise. - * modules/pam_mail/Makefile.am: Likewise. - * modules/pam_mkhomedir/Makefile.am: Likewise. - * modules/pam_motd/Makefile.am: Likewise. - * modules/pam_namespace/Makefile.am: Likewise. - * modules/pam_nologin/Makefile.am: Likewise. - * modules/pam_permit/Makefile.am: Likewise. - * modules/pam_rhosts/Makefile.am: Likewise. - * modules/pam_rootok/Makefile.am: Likewise. - * modules/pam_securetty/Makefile.am: Likewise. - * modules/pam_selinux/Makefile.am: Likewise. - * modules/pam_shells/Makefile.am: Likewise. - * modules/pam_stress/Makefile.am: Likewise. - * modules/pam_succeed_if/Makefile.am: Likewise. - * modules/pam_tally/Makefile.am: Likewise. - * modules/pam_time/Makefile.am: Likewise. - * modules/pam_umask/Makefile.am: Likewise. - * modules/pam_unix/Makefile.am: Likewise. - * tests/Makefile.am: Likewise. - -2007-08-31 Steve Langasek <vorlon@debian.org> - - * modules/pam_group/group.conf: don't use "games" as an example - group, on some distros this is a pre-existing group that it would - be a security hole to give users access to. - -2007-08-30 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_limits/limits.conf.5.xml: Document that maxlogins - is ignored for users with UID 0. - -2007-08-30 Steve Langasek <vorlon@debian.org> - - * modules/pam_unix/support.c, modules/pam_unix/unix_chkpwd.c: - A wrong username doesn't need to be logged at LOG_ALERT; - LOG_WARNING should be sufficient. - Patch from Sam Hartman <hartmans@debian.org>. - - * modules/pam_cracklib/pam_cracklib.c: - s/CRACKLIB_DICT/CRACKLIB_DICTS/, for consistency with existing - #define in pam_unix - -2007-08-29 Steve Langasek <vorlon@debian.org> - - * libpam/pam_modutil_getgrgid.c, libpam/pam_modutil_getgrnam.c, - libpam/pam_modutil_getpwnam.c, libpam/pam_modutil_getpwuid.c, - libpam/pam_modutil_getspnam.c: don't use pthread mutexes in libpam - unnecessarily; this avoids linking problems on non-Linux - platforms. - - * modules/pam_listfile/pam_listfile.c, modules/pam_listfile/README, - modules/pam_listfile/pam_listfile.8, - modules/pam_listfile/pam_listfile.8.xml: add a 'quiet' option to - avoid logging errors any time a user is refused service by this - module. - -2007-08-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_rhosts/pam_rhosts_auth.c: buflen needs to be size_t. - (__icheckhost): Cast to int32_t to fix limited range error. - - * modules/pam_cracklib/pam_cracklib.c: Mark cracklib_dictpath - as const. - -2007-08-29 Steve Langasek <vorlon@debian.org> - - * modules/pam_rhosts/pam_rhosts_auth.c: getline returns -1 at - EOF, not 0. Check accordingly to fix an infinite loop. Thanks - to Stephan Springl <springl-rhosts@bfw-online.de> for catching - this. - -2007-08-28 Steve Langasek <vorlon@debian.org> - - * configure.in: call AC_CHECK_HEADERS instead of AC_CHECK_HEADER - for crack.h, so we get a HAVE_CRACK_H define. - * modules/pam_cracklib/pam_cracklib.c: don't copy around the - cracklib dictpath into a fixed-width buffer, when we can just - point at the existing strings; and allow users to override the - default cracklib path with -DCRACKLIB_DICT, required for - compatibility with cracklib 2.7. - -2007-08-27 Steve Langasek <vorlon@debian.org> - - * modules/pam_limits/pam_limits.c: when building on non-Linux - systems, give a warning only, not an error; no one seems to - remember why this error was here in the first place, but leave - something in that might still grab the attention of non-Linux - users. - Patch from Michal Suchanek <hramrach_l@centrum.cz>. - * configure.in, modules/pam_rhosts/pam_rhosts_auth.c: check for - the presence of net/if.h before using, required for Hurd - compatibility. - Patch from Igor Khavkine <i_khavki@alcor.concordia.ca>. - * modules/pam_limits/pam_limits.c: conditionalize the use of - RLIMIT_AS, which is not present on the Hurd. - Patch from Igor Khavkine <i_khavki@alcor.concordia.ca>. - * modules/pam_rhosts/pam_rhosts_auth.c: use getline() instead of - a static buffer when available; fixes the build on systems - without MAXHOSTNAMELEN (i.e., the Hurd). - * modules/pam_xauth/pam_xauth.c: make sure PATH_MAX is defined - before using it. - -2007-08-26 Andrew Morgan <morgan@kernel.org> - - * doc/man/pam.conf-syntax.xml - Minor fixes: '\[' -> '\]'. - -2007-08-25 Steve Langasek <vorlon@debian.org> - - * doc/man/pam.conf-syntax.xml, doc/man/pam.conf.5: - Document "new" control options conv_again and incomplete, supported - in pam.d's extended syntax. - Patch from Ben Collins <bcollins@debian.org>. - -2007-08-15 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_access/pam_access.c (list_match): Add explicit - sptr argument for strtok_r, otherwise the code is not portable. - -2007-08-13 Olivier Blin <blino@mandriva.com> - - * doc/man/pam.3.xml: Fix typo. - * doc/man/pam.3: Likewise. - * doc/man/pam_end.3.xml: Likewise. - * doc/man/pam_end.3: Likewise. - -2007-07-18 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.8.1 - - * libpam/pam_audit.c: Include unistd.h for getuid(). - * libpam/Makefile.am: Bump version number. - -2007-07-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_audit.c (_pam_audit_writelog): Don't return - error if application runs as normal user. Fixes regression - introduced with last change. - -2007-07-10 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Add --with-db-uniquename option to support - db libraries and functions with unique name extension. - Patch from Diego 'Flameeyes' Pettenò <flameeyes@gmail.com>. - - * modules/pam_limits/pam_limits.c: Include locale.h. - -2007-07-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.8.0 - - * configure.in: Check for audit_log_acct_message instead of - audit_log_user_message. - * libpam/pam_audit.c: Use audit_log_acct_message. - Based on patch from Mark J Cox <mjc@redhat.com>. - * libpam/Makefile.am: Bump version number of libpam. - - * modules/pam_umask/pam_umask.c (set_umask): mode_t is 32bit, - not 64bit. - - * xtests/tst-pam_limits1.c: Fix printf arguments. - - * po/*.po: Merge po files with latest code changes. - -2007-06-26 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_limits/pam_limits.c (process_limit): Check upper and - lower limit of nice value, fix off-by-one in conversation to rlim_t. - * xtests/Makefile.am: Add new pam_limits test case. - * xtests/limits.conf: New, config file for test case. - * xtests/pam_limits1.c: New, test case for RLIMIT_NICE. - * xtests/pam_limits1.sh: Likewise. - * xtests/pam_limits1.pamd: Likewise. - -2007-06-25 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_access/pam_access.c (list_match): Use saveptr of strtok_r - result for recursive calls. - * xtests/Makefile.am: Add new pam_access test cases. - * xtests/pam_access1.c: New test case. - * xtests/pam_access2.c: Likewise. - * xtests/pam_access3.c: Likewise. - * xtests/pam_access4.c: Likewise. - * xtests/pam_access1.sh: Wrapper to create user accounts. - * xtests/pam_access2.sh: Likewise. - * xtests/pam_access3.sh: Likewise. - * xtests/pam_access4.sh: Likewise. - * xtests/pam_access1.pamd: PAM config file for pam_access tests. - * xtests/pam_access2.pamd: Likewise. - * xtests/pam_access3.pamd: Likewise. - * xtests/pam_access4.pamd: Likewise. - * xtests/access.conf: Config file for pam_access tests. - * xtests/run-tests.sh: Install access.conf into system. - -2007-06-22 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Print - better error message if /proc/self/loginuid cannot be opened. - - * modules/pam_limits/pam_limits.c (process_limit): Check for - variable overflow after multiplication [bnc#283001]. - - * modules/pam_access/pam_access.c: Add new syntax for groups - in access.conf to differentiate group names from account names. - Based on patch from Julien Lecomte <julien@famille-lecomte.net>, - solves feature request [#411390]. - * modules/pam_access/access.conf: Add example for new group - syntax. - * modules/pam_access/access.conf.5.xml: Document new syntax. - -2007-06-20 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_cracklib/pam_cracklib.8.xml: Document new minclass - option. - * modules/pam_cracklib/pam_cracklib.c: Add support for minimum - character classes [#1688777]. Based on patch from Keith Schincke. - - * xtests/tst-pam_cracklib2.c: New, test case for minclass option. - * xtests/tst-pam_cracklib2.pamd: New, PAM config file for test case. - * xtests/Makefile.am: Add new testcase. - - * xtests/pam_cracklib.c: Fix comment what this application tests. - - * configure.in: Use /lib64 on x86-64, ppc64, s390x, sparc64 - -2007-06-15 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_selinux/pam_selinux.8.xml: Remove multiple option, - add select_context and use_current_range options. - * modules/pam_selinux/pam_selinux.c (send_audit_message): Added - function for auditing role/level changes. - (query_response): Add default response. - (select_context): Removed. - (manual_context): Query only role and level. - (mls_range_allowed): Added function for range check. - (config_context): Added function for role and level override. - (pam_sm_open_session): Remove multiple option, add select_context - and use_current_range_options. Use getseuserbyname to obtain - SELinux user and level. Audit role/level changes. Call setkeycreatecon - to assign key creation context. Don't fail on errors when SELinux - is not in enforcing mode. - * configure.in: Check for setkeycreatecon(). - - * modules/pam_namespace/README.xml: Avoid duplication of - documentation. - * modules/pam_namespace/namespace.conf: More real life example - from MLS support. - * modules/pam_namespace/namespace.conf.5.xml: Likewise plus - properly describe how instance directory names are formed. - * modules/pam_namespace/namespace.init: Preserve euid when - called from setuid apps (su, newrole). - * modules/pam_namespace/pam_namespace.8.xml: Added option - no_unmount_on_close. - * modules/pam_namespace/pam_namespace.c (process_line): Polyinst - methods are now user, level and context. Fix crash on unknown - override user in config file. - (ns_override): Add explicit uid parameter. - (form_context): Skip for user method. Implement level based - polyinstantiation. - (poly_name): Initialize contexts. Add level based polyinst, - remove 'both' metod. Use raw contexts for instance names, - truncate long instance names and add hash. - (ns_setup): Hashing moved to poly_name(). - (setup_namespace): Handle correctly override users for - su (when unmnt_remnt is used). - (pam_sm_close_session): Added no_unmount_on_close option. - * modules/pam_namespace/pam_namespace.h: Added - no_unmount_on_close_option, level method, limit on instance - directory name length. - -2007-05-04 Thorsten Kukuk <kukuk@suse.de> - - * xtests/run-xtests.sh: Use SRCDIR to find PAM config files. - * xtests/Makefile.am: Call run-xtests.sh with srcdir as first - argument. - Based on patch by Bernard Leak <thisisnotapipe@hotmail.com>. - -2007-04-30 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_limits/limits.conf: Address space limit is KB. - * modules/pam_limits/limits.conf.5.xml: Likewise. - Reported by Thomas Vander Stichele <thomas@apestaart.org>. - - * modules/pam_mail/pam_mail.c (_do_mail): Remove duplicate - check for PAM_SILENT and don't bail out if it is set [#1706247]. - -2007-03-29 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_access/pam_access.c (login_access, list_match): - Replace strtok with strtok_r. - * modules/pam_cracklib/pam_cracklib.c (check_old_password): - Likewise. - * modules/pam_ftp/pam_ftp.c (lookup, pam_authenticate): - Likewise. - * modules/pam_unix/pam_unix_passwd.c (check_old_password, - save_old_password): Likewise. - - * modules/pam_limits/Makefile.am: Define limits.d dir and install it. - * modules/pam_limits/pam_limits.8.xml: Describe limits.d parsing. - * modules/pam_limits/pam_limits.c (pam_limit_s): Make conf_file ptr. - (pam_parse): conf_file is now ptr. - (pam_sm_open_session): Add parsing files from limits.d subdir using - glob, change pl to pointer. - -2007-03-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/ar.po: New translation. - * po/ca.po: Likewise. - * po/da.po: Likewise. - * po/ru.po: Likewise. - * po/sv.po: Likewise. - * po/zu.po: Likewise. - * po/LINGUAS: Add ar, ca, da, ru, sv, zu - - * po/hu.po: Update translation. - -2007-02-21 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/unix_chkpwd.c (_unix_verify_password): Test for - allocation failure in bigcrypt(). - - * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Allow - modification of '*' password by root. - -2007-02-06 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_loginuid/pam_loginuid.c (set_loginuid): Remove - debug syslog message when loginuid doesn't exist. - -2007-02-01 Tomas Mraz <t8m@centrum.cz> - - * xtests/tst-pam_unix3.c: Fix typos in comments. - - * modules/pam_unix/support.c (_unix_verify_password): Explicitly - disallow '!' in the beginning of password hash. Treat only - 13 bytes password hash specifically. (Suggested by Solar Designer.) - Fix a warning and test for allocation failure. - * modules/pam_unix/unix_chkpwd.c (_unix_verify_password): Likewise. - -2007-01-31 Thorsten Kukuk <kukuk@thkukuk.de> - - * xtests/Makefile.am: Add new pam_unix.so tests - * xtests/run-xtests.sh: Prefer shell scripts (wrapper) - over binaries. - * xtests/tst-pam_cracklib1.c: Fix typo. - * xtests/tst-pam_unix1.c: New, for sucurity fix. - * xtests/tst-pam_unix1.pamd: New. - * xtests/tst-pam_unix1.sh: New. - * xtests/tst-pam_unix2.c: New, for crypt checks. - * xtests/tst-pam_unix2.pamd: New. - * xtests/tst-pam_unix2.sh: New. - * xtests/tst-pam_unix3.c: New, for bigcrypt checks. - * xtests/tst-pam_unix3.pamd: New. - * xtests/tst-pam_unix3.sh: New. - -2007-01-23 Thorsten Kukuk <kukuk@suse.de> - - * release 0.99.7.1 - - * configure.in: Set version number to 0.99.7.1 - -2007-01-23 Thorsten Kukuk <kukuk@thukuk.de> - Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/support.c (_unix_verify_password): Always - compare full encrypted passwords (CVE-2007-0003). - -2007-01-23 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_loginuid/Makefile.am (AM_LDFLAGS): Add LIBAUDIT. - - * modules/pam_selinux/Makefile.am (pam_selinux_check_LDFLAGS): Add - AM_LDFLAGS. - (pam_selinux_la_LDFLAGS): Likewise. - -2007-01-17 Thorsten Kukuk <kukuk@thkukuk.de> - - * release 0.99.7.0 - - * configure.in: Set version number to 0.99.7.0 - - * Makefile.am (M4_FILES): Replace GNU make extension by listing - all m4 files. - -2007-01-17 Tomas Mraz <t8m@centrum.cz> - - * po/*.po: Updated strings to translate. - * po/Linux-PAM.pot: Likewise. - -2007-01-16 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam.conf-syntax.xml: Improve documentation about - sufficient keyword (Patch by Petteri Räty <betelgeuse@gentoo.org>) - -2006-12-20 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Forbid - only '+' and '-' as first characters for account names. - * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): Likewise. - -2006-12-18 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Fix ENOKEY check (specify errno.h as header - file to search in). - - * configure.in: Add AM_PROG_CC_C_O. - * libpam/Makefile.am: Add content of AM_LDFLAGS to *_LDFLAGS. - * modules/pam_tally/Makefile.am: Likewise. - * modules/pam_unix/Makefile.am: Likewise. - - * modules/pam_stress/pam_stress.c (pam_sm_chauthtok): Fix - localisation of message printed to user. - * po/de.po: Adjust translation. - -2006-12-18 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/pam_unix_passwd.c (pam_sm_chauthtok): Localize - message printed to user. - - * modules/pam_unix/support.c (_unix_verify_password): Use strncmp - only for bigcrypt result. - - * modules/pam_keyinit/pam_keyinit.c (kill_keyrings): Switch to new - egid first, euid next. Revert euid/egid to old euid/egid and not - ruid/rgid. - (pam_sm_open_session): Switch to new rgid first, ruid next. - -2006-12-13 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_localuser/pam_localuser.c: Add support for session - and chauthtok [SF#1606180]. - * modules/pam_localuser/pam_localuser.8.xml: Document last change. - - * libpam/pam_audit.c (_pam_audit_writelog): Print error message - only once. - -2006-12-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_audit.c (_pam_audit_writelog): Print error - message on failure to syslog. - -2006-12-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_umask/pam_umask.c: Use strtoul instead of strtol, - fix overflow detection. - -2006-12-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_mkhomedir/pam_mkhomedir.c (rec_mkdir): Fix - handling of left-most path component [SF#1591598]. - (create_homedir): Mark user visible messages for translation. - * po/de.po: Adjust german translation for pam_mkhomedir. - - * modules/pam_faildelay/pam_faildelay.c: If no argument is - given, try to read FAIL_DELAY from /etc/login.defs. - * modules/pam_faildelay/pam_faildelay.8.xml: Document usage - of /etc/login.defs. - -2006-12-04 Tomas Mraz <t8m@centrun.cz> - - * po/jp.po: Fixed mistake in Password: message (from - Peng Huang <phuang@redhat.com>). - -2006-11-28 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/hu.po: Update hungarian translation (from - Kalman Kemenczy <kkemenczy@novell.com>). - - * configure.in: Allow disabling support for cracklib, audit, libdb. - - * modules/pam_faildelay/pam_faildelay.8.xml: Correct name of Author. - - * configure.in: Remove --enable-docdir (obsolete by --docdir). - * doc/Makefile.am: Don't overwrite htmldir. - * doc/adg/Makefile.am: Use docdir, htmldir and pdfdir. - * doc/mwg/Makefile.am: Likewise. - * doc/sag/Makefile.am: Likewise. - * doc/specs/Makefile.am: Use docdir. - - * tests/tst-pam_set_data.c: New test cases for pam_set_data(). - * tests/Makefile.am: Add pam_set_data test case. - - * libpam/pam_data.c: Add NULL pointer check for module_data_name. - * libpam/Makefile.am: Bump revision of shared library. - -2006-11-08 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Add modules/pam_faildelay/Makefile. - * doc/sag/Linux-PAM_SAG.xml: Include pam_faildelay.xml. - * doc/sag/pam_faildelay.xml: New. - * libpam/pam_static_modules.h: Include static pam_faildelay data. - * modules/Makefile.am: Add pam_faildelay directory. - * modules/pam_faildelay/Makefile.am: New. - * modules/pam_faildelay/README: New, generated from XML file. - * modules/pam_faildelay/README.xml: New. - * modules/pam_faildelay/pam_faildelay.8: New, generated from xml. - * modules/pam_faildelay/pam_faildelay.8.xml: New. - * modules/pam_faildelay/pam_faildelay.c: New. - * modules/pam_faildelay/tst-pam_faildelay: New. - - * po/POTFILES.in: Add pam_faildelay.c and pam_loginuid.c. - -2006-11-07 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_cracklib/pam_cracklib.c: PAM_DEBUG_ARG - is a bit mask and not a boolean value (Reported by - Jochen Voss <voss@seehuhn.de>). - -2006-10-26 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam.3.xml: Add pam_get_user function. - - * modules/pam_motd/pam_motd.8.xml: Fix typo. - -2006-10-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_namespace/pam_namespace.c: Reserve space for - trailing zero. - -2006-10-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/support.c (_unix_verify_password): Try system - crypt() if we don't know the hash alogorithm. - * modules/pam_unix/unix_chkpwd.c (_unix_verify_password): Likewise. - -2006-10-13 Tomas Mraz <t8m@centrum.cz> - - * doc/mwg/Linux-PAM_MWG.xml: Add id[s] to section[s]. - * doc/sag/pam_access.xml: Likewise. - * doc/sag/pam_echo.xml: Likewise. - * doc/sag/pam_env.xml: Likewise. - * doc/sag/pam_exec.xml: Likewise. - * doc/sag/pam_group.xml: Likewise. - * doc/sag/pam_limits.xml: Likewise. - * doc/sag/pam_namespace.xml: Likewise. - * doc/sag/pam_time.xml: Likewise. - * doc/sag/Linux-PAM_SAG.xml: Add id to book. - * doc/adg/Linux-PAM_ADG.xml: Add id to book. - * doc/mwg/Linux-PAM_MWG.xml: Add id to book. - - -2006-10-07 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/hu.po: Updated hungarian translation (from - Kalman Kemenczy <kkemenczy@novell.com>) - -2006-09-20 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/adg/Makefile.am: Add manual pages as dependency. - * doc/mwg/Makefile.am: Likewise. - * doc/sag/Makefile.am: Likewise. - * doc/sag/Linux-PAM_SAG.xml: Include pam_unix.xml. - * doc/sag/pam_unix.xml: New. - * modules/pam_unix/Makefile.am: Generate pam_unix.8 manual page. - * modules/pam_unix/README.xml: New. - * modules/pam_unix/pam_unix.8.xml: New. - * modules/pam_unix/README: Regenerate from XML. - * modules/pam_unix/pam_unix.8: Generated from XML. - -2006-09-09 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_wheel/pam_wheel.8.xml: Fix typo. - * modules/pam_wheel/pam_wheel.8: Likewise. - * modules/pam_wheel/README: Likewise. - -2006-09-08 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/de.po: Fix typo. - -2006-09-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.6.3 - -2006-09-01 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_loginuid/pam_loginuid.8.xml: Fix typo in - config name. - -2006-08-31 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_env/environment: New, dummy environment example - config file. - - * modules/pam_namespace/Makefile.am: Don't install - manual page if we don't build module. - - * m4/ld-as-needed.m4: Don't set LDFLAGS if check failed. - * m4/ld-O1: Likewise. - -2006-08-30 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_access/pam_access.8.xml: All services supported. - * modules/pam_access/pam_access.c (pam_sm_open_session): New. - (pam_sm_close_session): New. - (pam_sm_chauthtok): New. - - * modules/pam_access/pam_succeed_if.8.xml: All services supported. - * modules/pam_access/pam_succeed_if.c (pam_sm_setcred): Return - PAM_IGNORE rather than success. - (pam_sm_open_session): New. - (pam_sm_close_session): New. - (pam_sm_chauthtok): New. - -2006-08-30 Thorsten Kukuk <kukuk@thkukuk.de> - - * xtests/Makefile.am: Move shell code to execute tests from here ... - * xtests/run-xtests.sh: ... to here. - * xtests/*.c: Include config.h. - * tests/*.c: Likewise. - - * modules/pam_namespace/pam_namespace.c: Use pam_modutil_getpwnam() - instead of getpwnam(). - -2006-08-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/sag/pam_loginuid.xml: New. - * doc/sag/Linux-PAM_SAG.xml: Include pam_loginuid.xml. - - * configure.in: Add modules/pam_loginuid/Makefile. - * modules/Makefile.am: Add pam_loginuid sub directory. - - * libpam/pam_static_modules.h: Add pam_loginuid. - - * modules/pam_loginuid/Makefile.am: New. - * modules/pam_loginuid/tst-pam_loginuid: New. - * modules/pam_loginuid/pam_loginuid.8.xml: New. - * modules/pam_loginuid/pam_loginuid.8: New, generated from XML source. - * modules/pam_loginuid/pam_loginuid.c: New. - * modules/pam_loginuid/README.xml: New. - * modules/pam_loginuid/README: New, generated from XML source. - -2006-08-29 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_exec/pam_exec.c (call_exec): Add required third - argument to open() call with O_CREAT flag set. - -2006-08-28 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_cracklib/pam_cracklib.c (pam_sm_chauthtok): Remove - duplicate code. - -2006-08-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.6.2 - - * modules/pam_lastlog/pam_lastlog.c (last_login_date): Create - lastlog file if it does not exist. - - * modules/pam_cracklib/pam_cracklib.c (pam_sm_chauthtok): Check - for error from getting second token. - * xtests/Makefile.am: Add tst-pam_cracklib1 - * xtests/tst-pam_cracklib1.c: New, check for pam_cracklib seg.fault. - * xtests/tst-pam_cracklib1.pamd: New, config for cracklib test. - -2006-08-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * xtests/tst-pam_dispatch4.c: New test. - * xtests/tst-pam_dispatch4.pamd: PAM config for new test. - -2006-08-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.6.1 - -2006-08-09 David Howells <dhowells@redhat.com> - - * modules/pam_keyinit/pam_keyinit.c (kill_keyrings): Set real uid - to user's before revoking. - (pam_sm_open_session): Remember the uid. - -2006-08-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_umask/pam_umask.c (setup_limits_from_gecos): - Add error handling. - * modules/pam_umask/pam_umask.8.xml: Document silent option. - - * xtests/Makefile.am: Fix includes for bootstrapping. - Reported by Greg Schafer <gschafer@zip.com.au>. - -2006-08-05 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.6.0 - - * modules/pam_limits/pam_limits.c (pam_sm_open_session): Use - pam_modutil_getpwnam instead of getpwnam. - - * modules/pam_succeed_if/pam_succeed_if.c (evaluate): Cast - svc variable to char pointer for snprintf. - - * configure.in: Generate xtests/Makefile. - * Makefile.am (SUBDIRS): Add xtests. - * README: Document make check and make xtests. - * xtests/Makefile.am: New. - * xtests/tst-pam_dispatch1.pamd: New. - * xtests/tst-pam_dispatch2.pamd: New. - * xtests/tst-pam_dispatch3.pamd: New. - * xtests/tst-pam_dispatch1.c: New. - * xtests/tst-pam_dispatch2.c: New. - * xtests/tst-pam_dispatch3.c: New. - -2006-08-04 Ray Strode <rstrode@redhat.com> - - * modules/pam_succeed_if/pam_succeed_if.c (pam_sm_authenticate): - Return PAM_USER_UNKNOWN instead of PAM_SERVICE_ERR where appropriate. - -2006-08-03 David Howells <dhowells@redhat.com> - - * modules/pam_keyinit/pam_keyinit.c: Debug should be off by default. - (init_keyrings): Properly handle multiple invocations of the module. - (kill_keyrings, pam_sm_open_session, pam_sm_close_session): Likewise. - -2006-08-03 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_succeed_if/pam_succeed_if.c (evaluate_inlist): - New function for list matching. - (evaluate_notinlist): Likewise. - (evaluate): Add service value match, list matching. - * modules/pam_succeed_if/pam_succeed_if.8.xml: Document the - features. - - * modules/pam_selinux/pam_selinux.c (security_label_tty): Don't log - relabelling error when the tty device doesn't exist (ENOENT). - -2006-08-01 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam_fail_delay.3.xml: Fix some Bugs and enhance - rationale about when this function should be used and when not. - - * doc/index.html: Cleanup to look prettier. - -2006-08-01 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/Makefile.am: Bump patchlevel of libpam. - * libpam/pam_dispatch.c (_pam_dispatch_aux): If [return=die] - or [return=bad] is used, don't return PAM_IGNORE. Based on - patch by Tomas Mraz <t8m@centrum.cz>, [BRC#196859]. - -2006-07-28 Thorsten Kukuk <kukuk@thkukuk.de> - - * ABOUT-NLS: Upgrade to gettext-0.15. - * config.rpath: Likewise. - * m4/gettext.m4: Upgrade to gettext-0.15. - * m4/inttypes-h.m4: New file, from gettext-0.15. - * m4/inttypes-pri.m4: Upgrade to gettext-0.15. - * m4/lib-link.m4: Upgrade to gettext-0.15. - * m4/lib-prefix.m4: Upgrade to gettext-0.15. - * m4/lock.m4: New file, from gettext-0.15. - * m4/longdouble.m4: Upgrade to gettext-0.15. - * m4/nls.m4: Upgrade to gettext-0.15. - * m4/po.m4: Upgrade to gettext-0.15. - * m4/size_max.m4: Upgrade to gettext-0.15. - * m4/visibility.m4: New file, from gettext-0.15. - * po/Makefile.in.in: Upgrade to gettext-0.15. - -2006-07-24 David Quigley <dpquigl@tycho.nsa.gov> - - * modules/pam_namespace/Makefile.am: Add pam_namespace.h. - * modules/pam_namespace/pam_namespace.c: Move includes and - data structure definitions from here ... - * modules/pam_namespace/pam_namespace.h: ... here. New file. - - * modules/pam_namespace/pam_namespace.c: Move large sections - of code into new functions. - -2006-07-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/adg/Makefile.am: Add uninstall and distclean rules. - * doc/mwg/Makefile.am: Likewise. - * doc/sag/Makefile.am: Likewise. - -2006-07-08 Daniel Richard G. <skunk@iskunk.org> - - * conf/pam_conv1/Makefile.am: Fix rules for lex and yacc files. - * conf/pam_conv1/pam_conv.lex: Rename to ... - * conf/pam_conv1/pam_conv_l.l: ... this. - * conf/pam_conv1/pam_conv.y: Rename to ... - * conf/pam_conv1/pam_conv_y.y: ... this. - * configure.in: Add AC_HELP_STRING()s to various AC_ARG_ENABLE() - calls. - * doc/Makefile.am: Fix rule to install index.html. - * doc/adg/Makefile.am: Fix test usage. - * doc/mwg/Makefile.am: Likewise. - * doc/sag/Makefile.am: Likewise. - * doc/specs/Makefile.am: Fix rules for lex and yacc files. - * specs/parse.lex: Rename to ... - * doc/specs/parse_l.l: ... this. - * doc/specs/parse.y: Rename to ... - * doc/specs/parse_y.y: ... this. - * libpam/pam_account.c: Fix #if vs. #ifdef. - * libpam/pam_audit.c: Likewise. - * libpam/pam_auth.c: Likewise. - * libpam/pam_password.c: Likewise. - * libpam/pam_private.h: Likewise. - * libpam/pam_session.c: Likewise. - * libpam/pam_start.c: Likewise. - * libpam/pam_static.c: Fix "empty sourcefile" warning. - * modules/pam_limits/pam_limits.c: Check for __linux, too. - * modules/pam_userdb/Makefile.am: Don't run test if no - libdb available. - * tests/tst-dlopen.c: Include config.h. - -2006-07-03 Dan Yefimov - - * configure.in: Fixed have_key_syscalls test. - - * modules/pam_access/pam_access.c (from_match): Fixed IPv4 network - match, removed AI_ADDRCONFIG flag. - -2006-06-30 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_namespace/Makefile.am(EXTRA_DIST): Add namespace.init. - -2006-06-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/Makefile.am (releasedocs): Fix directory layout. - * doc/adg/Makefile.am: Likewise. - * doc/mwg/Makefile.am: Likewise. - * doc/sag/Makefile.am: Likewise. - -2006-06-28 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/sag: System Administrator Guide as XML source. - * doc/sag/Makefile.am: New. - * doc/sag/Linux-PAM_SAG.xml: New, main XML document. - * doc/sag/pam_*.xml: New, wrapper to include module documentation. - - * doc/adg: Application Developers Guide as XML source. - * doc/adg/Makefile.am: New. - * doc/adg/Linux-PAM_ADG.xml: New, main XML document. - * doc/adg/pam_*.xml: New, wrappers to include manual pages. - - * doc/mwg: Application Developers Guide as XML source. - * doc/mwg/Makefile.am: New. - * doc/mwg/Linux-PAM_MWG.xml: New, main XML document. - * doc/mwg/pam_*.xml: New, wrappers to include manual pages. - - * doc/CREDITS: Removed. - * doc/NOTES: Removed. - * doc/pam_appl.sgml: Removed. - * doc/pam_modules.sgml: Removed. - * doc/pam_source.sgml: Removed. - * doc/figs/pam_orient.txt: Removed. - * doc/figs: Removed. - - * configure.in: Remove checks for sgml2* progrs, add sag, adg - and mwg Makefiles. - - * doc/Makefile.am: Remove references to sgml, add sag, adg and mwg - directories. - * doc/modules: Remove directory. - * doc/html: Remove directory. - * doc/ps: Remove directory. - * doc/pdf: Remove directory. - * doc/txts: Remove directory. - * doc/index.html: Moved from html directory to here. - -2006-06-28 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.5.0 - - * bump version number to 0.99.5.0 - - * modules/pam_rhosts/pam_rhosts.c: New module, replaces - pam_rhosts_auth.so. - * modules/pam_rhosts/pam_rhosts.8.xml: New. - * modules/pam_rhosts/pam_rhosts.8: New, generated from XML source. - * modules/pam_rhosts/tst-pam_rhosts: New. - * modules/pam_rhosts/Makefile.am: Add pam_rhosts, generate - manual page and README. - * modules/pam_rhosts/README.xml: New. - * modules/pam_rhosts/reADME: Regenerated from XML source. - - * doc/man/pam_sm_acct_mgmt.3.xml: Adjust syntax for module - writers guide. - * doc/man/pam_sm_authenticate.3.xml: Likewise. - * doc/man/pam_sm_chauthtok.3.xml: Likewise. - * doc/man/pam_sm_close_session.3.xml: Likewise. - * doc/man/pam_sm_open_session.3.xml: Likewise. - * doc/man/pam_sm_setcred.3.xml: Likewise. - - * po/POTFILES.in: Add new source files. - - * libpam/pam_static_modules.h: Add new modules. - - * modules/pam_keyinit.c: Add _pam_keyinit_modstruct. - - * modules/pam_keyinit/Makefile.am (EXTRA_DIST): Add XML - files and manual page. - -2006-06-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Allow disabling of SELinux support, check for - rootok_af. - -2006-06-27 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_namespace/pam_namespace.c: New module - originally written by Janak Desai. - * modules/pam_namespace/Makefile.am: New. - * modules/pam_namespace/README: New. - * modules/pam_namespace/md5.c: New. - * modules/pam_namespace/md5.h: New. - * modules/pam_namespace/namespace.conf: New. - * modules/pam_namespace/namespace.conf.5: New. - * modules/pam_namespace/namespace.conf.5.xml: New. - * modules/pam_namespace/namespace.init: New. - * modules/pam_namespace/pam_namespace.8: New. - * modules/pam_namespace/pam_namespace.8.xml: New. - * modules/pam_namespace/tst-pam_namespace: New. - * modules/Makefile.am: Added pam_namespace. - * configure.in: Added pam_namespace, test for unshare - library call. - -2006-06-27 David Howells <dhowells@redhat.com> - - * modules/pam_keyinit/pam_keyinit.c: New module. - * modules/pam_keyinit/pam_keyinit.8: New. - * modules/pam_keyinit/pam_keyinit.8.xml: New. - * modules/pam_keyinit/README: New. - * modules/pam_keyinit/README.xml: New. - * modules/pam_keyinit/Makefile.am: New. - * modules/pam_keyinit/tst-pam_keyinit: New. - * modules/Makefile.am: Added pam_keyinit. - * configure.in: Added test for the key mgmt syscall. - -2006-06-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * m4/libprelude.m4: Sync with upstream. - -2006-06-27 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): - signal() fails with SIG_ERR return - * modules/pam_unix/pam_unix_passwd.c(_unix_run_shadow_binary): - Likewise. - * modules/pam_unix/support.c(_unix_run_helper_binary): - Likewise. - -2006-06-25 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/misc_conv.3.xml: New. - * doc/man/misc_conv.3: New. - * doc/man/pam_misc_paste_env.3.xml: New. - * doc/man/pam_misc_paste_env.3: New. - * doc/man/pam_misc_drop_env.3.xml: New. - * doc/man/pam_misc_drop_env.3: New. - * doc/man/pam_misc_setenv.3.xml: New. - * doc/man/pam_misc_setenv.3: New. - * doc/man/Makefile.am: Add new manual pages. - - * doc/man/pam_acct_mgmt.3.xml: Fix syntax for inclusion - in Applicatoin Developer Guide. - * doc/man/pam_authenticate.3.xml: Likewise - * doc/man/pam_chauthtok.3.xml: Likewise - * doc/man/pam_close_session.3.xml: Likewise - * doc/man/pam_conv.3.xml: Likewise - * doc/man/pam_end.3.xml: Likewise - * doc/man/pam_fail_delay.3.xml: Likewise - * doc/man/pam_getenv.3.xml: Likewise - * doc/man/pam_getenvlist.3.xml: Likewise - * doc/man/pam_open_session.3.xml: Likewise - * doc/man/pam_putenv.3.xml: Likewise - * doc/man/pam_setcred.3.xml: Likewise - * doc/man/pam_start.3.xml: Likewise - * doc/man/pam_strerror.3.xml: Likewise - - * doc/man/pam_acct_mgmt.3: Regenerate from XML source. - * doc/man/pam_authenticate.3: Likewise - * doc/man/pam_chauthtok.3: Likewise - * doc/man/pam_close_session.3: Likewise - * doc/man/pam_conv.3: Likewise - * doc/man/pam_end.3: Likewise - * doc/man/pam_fail_delay.3: Likewise - * doc/man/pam_getenv.3: Likewise - * doc/man/pam_getenvlist.3: Likewise - * doc/man/pam_open_session.3: Likewise - * doc/man/pam_putenv.3: Likewise - * doc/man/pam_setcred.3: Likewise - * doc/man/pam_sm_close_session.3: Likewise - * doc/man/pam_start.3: Likewise - * doc/man/pam_strerror.3: Likewise - * doc/man/pam_syslog.3: Likewise - * doc/man/PAM.8: Likewise - -2006-06-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_limits/pam_limits.c (setup_limits): Don't - reset priority for root. - -2006-06-23 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_access/access.conf.5.xml: Fix syntax for SAG. - * modules/pam_access/pam_access.8.xml: Likewise. - * modules/pam_deny/pam_deny.8.xml: Likewise. - * modules/pam_echo/pam_echo.8.xml: Likewise. - * modules/pam_env/pam_env.8.xml: Likewise. - * modules/pam_env/pam_env.conf.5.xml: Likewise. - * modules/pam_group/group.conf.5.xml: Likewise. - * modules/pam_group/pam_group.8.xml: Likewise. - * modules/pam_limits/limits.conf.5.xml: Likewise. - * modules/pam_listfile/pam_listfile.8.xml: Likewise. - * modules/pam_succeed_if/pam_succeed_if.8.xml: Likewise. - * modules/pam_time/pam_time.8.xml: Likewise. - * modules/pam_time/time.conf.5.xml: Likewise. - - * modules/pam_access/access.conf.5: Regenerate. - * modules/pam_access/pam_access.8: Likewise. - * modules/pam_deny/pam_deny.8: Likewise. - * modules/pam_echo/README: Likewise. - * modules/pam_echo/pam_echo.8: Likewise. - * modules/pam_env/pam_env.8: Likewise. - * modules/pam_env/pam_env.conf.5: Likewise. - * modules/pam_group/README: Likewise. - * modules/pam_group/group.conf.5: Likewise. - * modules/pam_group/pam_group.8: Likewise. - * modules/pam_limits/limits.conf.5: Likewise. - * modules/pam_listfile/README: Likewise. - * modules/pam_listfile/pam_listfile.8: Likewise. - * modules/pam_succeed_if/pam_succeed_if.8: Likewise. - * modules/pam_time/pam_time.8: Likewise. - * modules/pam_time/time.conf.5: Likewise. - - * doc/man/Makefile.am: Add pam.conf-desc.xml, pam.conf-dir.xml - and pam.conf-syntax.xml. - * doc/man/pam.conf.5.xml: Split into different pieces for SAG. - * doc/man/pam.conf.5: Regenerated. - * doc/man/pam.conf-desc.xml: New. - * doc/man/pam.conf-dir.xml: New. - * doc/man/pam.conf-syntax.xml: New. - -2006-06-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_selinux/Makefile.am: Fix "make dist" if libselinux - is not installed. - - * modules/pam_issue/pam_issue.8.xml: Fix listing of escapes. - * modules/pam_issue/pam_issue.8: Regenerate. - -2006-06-20 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Remove unused check for libcap. - - * m4/ld-as-needed.m4: New. - * m4/ld-O1.m4: New. - * configure.in: Call PAM_LD_AS_NEEDED and PAM_LD_O1, - require docbook version 4.4. - -2006-06-19 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam.8.xml: Syntax cleanup. - * doc/pam/PAM.8: Regenerated from xml source. - * man/pam_sm_chauthtok.3: New. - * man/pam_sm_chauthtok.3.xml: New. - * man/pam_sm_close_session.3: New. - * man/pam_sm_close_session.3.xml: New. - * man/pam_sm_open_session.3: New. - * man/pam_sm_open_session.3.xml: New. - * man/pam_sm_authenticate.3: New. - * man/pam_sm_authenticate.3.xml: New. - * man/pam_sm_setcred.3: New. - * man/pam_sm_setcred.3.xml: New. - * man/Makefile.am: Add new pam_sm_* manual pages. - - * specs/Makefile.am: Fix rule to generate draft. - -2006-06-18 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_tally/Makefile.am: Include Make.xml.rules. - * modules/pam_tally/pam_tally.8.xml: New. - * modules/pam_tally/pam_tally.8: New, generated from xml file. - * modules/pam_tally/README.xml: New. - * modules/pam_tally/README: Regenerated from xml file. - - * modules/pam_selinux/Makefile.am: Include Make.xml.rules. - * modules/pam_selinux/pam_selinux.8.xml: New. - * modules/pam_selinux/pam_selinux.8: Regenerated from xml file. - * modules/pam_selinux/README.xml: New. - * modules/pam_selinux/README: Regenerated from xml file. - -2006-06-17 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_debug/Makefile.am: Include Make.xml.rules. - * modules/pam_debug/pam_debug.8.xml: New. - * modules/pam_debug/pam_debug.8: New, generated from xml file. - * modules/pam_debug/README.xml: New. - * modules/pam_debug/README: Regenerated from xml file. - - * examples/vpass.c: UID is unsigned on Linux. - * modules/pam_exec/pam_exec.c: Likewise. - * modules/pam_unix/pam_unix_acct.c: Likewise. - * modules/pam_unix/pam_unix_sess.c: Likewise. - - * modules/pam_succeed_if/pam_succeed_if.8.xml: Fix syntax error. - * modules/pam_succeed_if/pam_succeed_if.8: Regenerated. - * modules/pam_succeed_if/README: Regenerated. - - * modules/pam_limits/Makefile.am: Include Make.xml.rules. - * modules/pam_limits/limits.conf.5: New, generated from xml file. - * modules/pam_limits/limits.conf.5.xml: New. - * modules/pam_limits/pam_limits.8: New, generated from xml file. - * modules/pam_limits/pam_limits.8.xml: New. - * modules/pam_limits/README.xml: New. - * modules/pam_limits/README: Regenerated from README.xml. - -2006-06-16 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/pam_unix_passwd.c (save_old_password): UIDs - are unsigned on Linux, don't truncate them. - (_do_setpass): err is of type clnt_stat, not int. - - * modules/pam_lastlog/pam_lastlog.c (last_login_read): Don't - truncate UID for syslog output. - - * modules/pam_time/pam_time.c: Replace type boolean with int. - * modules/pam_group/pam_group.c: Likewise. - -2006-06-15 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/bigcrypt.h: New. - * modules/pam_unix/Makefile.am: Add bigcrypt.h. - * modules/pam_unix/bigcrypt.c: Include bigcrypt.h. - * modules/pam_unix/support.c: Include bigcrypt.h, remove - own prototype. - * modules/pam_unix/bigcrypt_main.c: Include bigcrypt.h, remove - own prototype. - * modules/pam_unix/pam_unix_passwd.c: Include bigcrypt.h, remove - own prototype. - - * modules/pam_time/pam_time.c (logic_member): Remove unused - variable len. - - * modules/pam_group/pam_group.c (logic_field): Accept - colon in tty name. [#1428276]. - (logic_member): Remove unused variable len. - (check_account): Fix usage of err variable in debug code. - - * modules/pam_time/pam_time.c (logic_field): Likewise. - - * configure.in: Add special exceptions for icc: different - compiler warnings, no PIE support. - -2006-06-14 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_misc.c (_pam_strdup): Use strlen and strcpy. - - * configure.in: Remove --enable-memory-debug, add option - to disable prelude if installed. - - * modules/pam_tally/pam_tally.c: Remove MEMORY_DEBUG - * modules/pam_filter/upperLOWER/upperLOWER.c: Likewise. - * modules/pam_unix/unix_chkpwd.c: Likewise. - * libpam/include/security/_pam_types.h: Likewise. - * libpam/libpam.map: Remove LIBPAM_MALLOC_DEBUG export. - * libpam/pam_malloc.c: Remove file. - * libpam/Makefile.am: Remove pam_malloc.c and pam_malloc.h. - - * libpam/pam_handlers.c (extract_modulename): Use _pam_strdup - instead of strdup. - - * libpam/pam_private.h: Remove _pam_strCMP. - * libpam/pam_misc.c: Likewise. - * libpam/pam_handlers.c: Replaced _pam_strCMP with strcasecmp. - -2006-06-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_tally/Makefile.am (AM_LDFLAGS): Remove flags - for modules from main application. - -2006-06-09 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_time/Makefile.am: Include Make.xml.rules. - * modules/pam_time/time.conf.5: New, generated from xml file. - * modules/pam_time/time.conf.5.xml: New. - * modules/pam_time/pam_time.8: New, generated from xml file. - * modules/pam_time/pam_time.8.xml: New. - * modules/pam_time/README.xml: New. - * modules/pam_time/README: Regenerated from README.xml. - - * modules/pam_wheel/Makefile.am: Include Make.xml.rules. - * modules/pam_wheel/pam_wheel.8.xml: New. - * modules/pam_wheel/pam_wheel.8: New, generated from xml file. - * modules/pam_wheel/README.xml: New. - * modules/pam_wheel/README: Regenerated from xml file. - - * modules/pam_xauth/Makefile.am: Include Make.xml.rules. - * modules/pam_xauth/pam_xauth.8.xml: New. - * modules/pam_xauth/pam_xauth.8: Regenerated from xml file. - * modules/pam_xauth/README.xml: New. - * modules/pam_xauth/README: Regenerated from xml file. - - * modules/pam_deny/pam_deny.8.xml: Fix syntax errors. - * modules/pam_deny/pam_deny.8: Regenerate from xml file. - * modules/pam_deny/README: Likewise. - - * modules/pam_warn/Makefile.am: Include Make.xml.rules. - * modules/pam_warn/pam_warn.8.xml: New. - * modules/pam_warn/pam_warn.8: New, generated from xml file. - * modules/pam_warn/README.xml: New. - * modules/pam_warn/README: Regenerated from xml file. - - * modules/pam_userdb/Makefile.am: Include Make.xml.rules. - * modules/pam_userdb/pam_userdb.8.xml: New. - * modules/pam_userdb/pam_userdb.8: New, generated from xml file. - * modules/pam_userdb/README.xml: New. - * modules/pam_userdb/README: Regenerated from xml file. - -2006-06-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_shells/Makefile.am: Include Make.xml.rules. - * modules/pam_shells/pam_shells.8.xml: New. - * modules/pam_shells/pam_shells.8: New, generated from xml file. - * modules/pam_shells/README.xml: New. - * modules/pam_shells/README: Regenerated from xml file. - - * libpam/include/security/pam_malloc.h: Add missing license - informations. - - * libpam/include/security/pam_ext.h: Add brackets for C++. - * libpam/include/security/pam_modutil.h: Likewise. - - * libpam/include/security/pam_modules.h: Document where to - find the copyright/license informations. - - * libpam/include/security/pam_appl.h: Move _pam_compat.h - include inside of brackets. - -2006-06-04 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_securetty/Makefile.am: Include Make.xml.rules. - * modules/pam_securetty/pam_securetty.8.xml: New. - * modules/pam_securetty/pam_securetty.8: Regenerated from xml file. - * modules/pam_securetty/README.xml: New. - * modules/pam_securetty/README: Regenerated from xml file. - - * modules/pam_rootok/Makefile.am: Include Make.xml.rules. - * modules/pam_rootok/pam_rootok.8.xml: New. - * modules/pam_rootok/pam_rootok.8: New, generated from xml file. - * modules/pam_rootok/README.xml: New. - * modules/pam_rootok/README: Regenerated from xml file. - - * modules/pam_permit/Makefile.am: Include Make.xml.rules. - * modules/pam_permit/pam_permit.8.xml: New. - * modules/pam_permit/pam_permit.8: New, generated from xml file. - * modules/pam_permit/README.xml: New. - * modules/pam_permit/README: Regenerated from xml file. - - * modules/pam_nologin/Makefile.am: Include Make.xml.rules. - * modules/pam_nologin/pam_nologin.8.xml: New. - * modules/pam_nologin/pam_nologin.8: Regenerated from xml file. - * modules/pam_nologin/README.xml: New. - * modules/pam_nologin/README: Regenerated from xml file. - -2006-06-03 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_motd/Makefile.am: Include Make.xml.rules. - * modules/pam_motd/pam_motd.8.xml: New. - * modules/pam_motd/pam_motd.8: New, generated from xml file. - * modules/pam_motd/README.xml: New. - * modules/pam_motd/README: New, generated from xml file. - -2006-06-02 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_mail/Makefile.am: Include Make.xml.rules. - * modules/pam_mail/pam_mail.8.xml: New. - * modules/pam_mail/pam_mail.8: New, generated from xml file. - * modules/pam_mail/README.xml: New. - * modules/pam_mail/README: Regenerated from xml file. - - * modules/pam_localuser/Makefile.am: Include Make.xml.rules. - * modules/pam_localuser/pam_localuser.8.xml: New. - * modules/pam_localuser/pam_localuser.8: New, generated from xml file. - * modules/pam_localuser/README.xml: New. - * modules/pam_localuser/README: Regenerated from xml file. - - * doc/man/PAM.8: Regenerate with DocBook XSL Stylesheets v1.70.1. - * doc/man/pam.3: Likewise. - * doc/man/pam.conf.5: Likewise. - * doc/man/pam_acct_mgmt.3: Likewise. - * doc/man/pam_authenticate.3: Likewise. - * doc/man/pam_chauthtok.3: Likewise. - * doc/man/pam_close_session.3: Likewise. - * doc/man/pam_conv.3: Likewise. - * doc/man/pam_end.3: Likewise. - * doc/man/pam_error.3: Likewise. - * doc/man/pam_fail_delay.3: Likewise. - * doc/man/pam_get_data.3: Likewise. - * doc/man/pam_get_item.3: Likewise. - * doc/man/pam_get_user.3: Likewise. - * doc/man/pam_getenv.3: Likewise. - * doc/man/pam_getenvlist.3: Likewise. - * doc/man/pam_info.3: Likewise. - * doc/man/pam_open_session.3: Likewise. - * doc/man/pam_prompt.3: Likewise. - * doc/man/pam_putenv.3: Likewise. - * doc/man/pam_set_data.3: Likewise. - * doc/man/pam_set_item.3: Likewise. - * doc/man/pam_setcred.3: Likewise. - * doc/man/pam_sm_acct_mgmt.3: Likewise. - * doc/man/pam_start.3: Likewise. - * doc/man/pam_strerror.3: Likewise. - * doc/man/pam_syslog.3: Likewise. - * modules/pam_access/access.conf.5: Likewise. - * modules/pam_access/pam_access.8: Likewise. - * modules/pam_cracklib/pam_cracklib.8: Likewise. - * modules/pam_deny/pam_deny.8: Likewise. - * modules/pam_echo/pam_echo.8: Likewise. - * modules/pam_env/pam_env.8: Likewise. - * modules/pam_env/pam_env.conf.5: Likewise. - * modules/pam_exec/pam_exec.8: Likewise. - * modules/pam_filter/pam_filter.8: Likewise. - * modules/pam_ftp/pam_ftp.8: Likewise. - * modules/pam_group/group.conf.5: Likewise. - * modules/pam_group/pam_group.8: Likewise. - * modules/pam_issue/pam_issue.8: Likewise. - * modules/pam_lastlog/pam_lastlog.8: Likewise. - * modules/pam_mkhomedir/pam_mkhomedir.8: Likewise. - * modules/pam_succeed_if/pam_succeed_if.8: Likewise. - * modules/pam_umask/pam_umask.8: Likewise. - - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Use - dngettext if available [#1427738]. - * configure.in: Check for dngettext [#1427738]. - * po/*.po: Update to dngettext usage. - - * modules/pam_listfile/Makefile.am: Include Make.xml.rules. - * modules/pam_listfile/pam_listfile.8.xml: New. - * modules/pam_listfile/pam_listfile.8: New, generated from xml file. - * modules/pam_listfile/README.xml: New. - * modules/pam_listfile/README: Regenerated from xml file. - -2006-06-01 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_lastlog/Makefile.am: Include Make.xml.rules. - * modules/pam_lastlog/pam_lastlog.8.xml: New. - * modules/pam_lastlog/pam_lastlog.8: New, generated from xml file. - * modules/pam_lastlog/README.xml: New. - * modules/pam_lastlog/README: Regenerated from xml file. - - * modules/pam_group/Makefile.am: Include Make.xml.rules. - * modules/pam_group/group.conf.5.xml: New. - * modules/pam_group/group.conf.5: New, generated from xml file. - * modules/pam_group/pam_group.8.xml: New. - * modules/pam_group/pam_group.8: New, generated from xml file. - * modules/pam_group/README.xml: New. - * modules/pam_group/README: Regenerated from xml file. - - * modules/pam_ftp/Makefile.am: Include Make.xml.rules. - * modules/pam_ftp/pam_ftp.8.xml: New. - * modules/pam_ftp/pam_ftp.8: New, generated from xml file. - * modules/pam_ftp/README.xml: New. - * modules/pam_ftp/README: Regenerated from xml file. - - * modules/pam_issue/Makefile.am: Include Make.xml.rules. - * modules/pam_issue/pam_issue.8.xml: New. - * modules/pam_issue/pam_issue.8: New, generated from xml file. - * modules/pam_issue/README.xml: New. - * modules/pam_issue/README: Regenerated from xml file. - - * modules/pam_filter/Makefile.am: Include Make.xml.rules. - * modules/pam_filter/pam_filter.8.xml: New. - * modules/pam_filter/pam_filter.8: New, generated from xml file. - * modules/pam_filter/README.xml: New. - * modules/pam_filter/README: Regenerated from xml file. - -2006-05-30 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_mkhomedir/pam_mkhomedir.8.xml: Fix umask and skel - directory documentation. - - * modules/pam_umask/Makefile.am: Include Make.xml.rules. - * modules/pam_umask/pam_umask.8.xml: New. - * modules/pam_umask/pam_umask.8: New, generated from xml file. - * modules/pam_umask/README.xml: New. - * modules/pam_umask/README: Regenerated from xml file. - -2006-05-29 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_mkhomedir/Makefile.am: Include Make.xml.rules. - * modules/pam_mkhomedir/pam_mkhomedir.8.xml: New. - * modules/pam_mkhomedir/pam_mkhomedir.8: New, generated from xml file. - * modules/pam_mkhomedir/README.xml: New. - * modules/pam_mkhomedir/README: Regenerated from xml file. - -2006-05-23 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_echo/pam_echo.c (pam_echo): Use pam_modutil_read() - instead of read(). - -2006-05-22 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_listfile/pam_listfile.c (pam_sm_authenticate): - Fix memory leaks, [#1490956] found by Coverity. - - * modules/pam_tally/pam_tally.c (pam_get_uid): Check return - value of pam_get_user(). - (tally_get_data): Check if oldtime is not NULL. - [#1489818] found by Coverity. - - * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Don't - ignore return value of stat(). [#1489808] found by Coverity. - - * modules/pam_mail/pam_mail.c (get_folder): Fix a potential - NULL pointer dereference. [#1489792] found by Coverity. - - * libpam/Makefile.am: bump release number of libpam.so. - * libpam/pam_misc.c (_pam_mkargv): Fix memory leak, - [#1489804] found by Coverity. - - * modules/pam_echo/pam_echo.c (replace_and_print): Initialize - str, [#1489658] found by Coverity. - - * modules/pam_cracklib/pam_cracklib.c (_pam_unix_approve_pass): Fix - a potential NULL pointer dereference. - (pam_sm_chauthtok): Remove dead code. - [#1489634] found by Coverity. - -2006-05-04 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Check for fseeko. - * modules/pam_tally/pam_tally.c: Use fseeko if available - (Based on patch by IBM). - -2006-05-04 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.4.0 - - * libpam/pam_strerror.c: Unify error messages. - - * po/zh_TW.po: Adjust for last pam_strerror changes. - * po/zh_CN.po: Likewise. - * po/uk.po: Likewise. - * po/tr.po: Likewise. - * po/pt.po: Likewise. - * po/pt_BR.po: Likewise. - * po/pl.po: Likewise. - * po/ja.po: Likewise. - * po/nl.po: Likewise. - * po/nb.po: Likewise. - * po/it.po: Likewise. - * po/hu.po: Likewise. - * po/fr.po: Likewise. - * po/fi.po: Likewise. - * po/es.po: Likewise. - * po/de.po: Likewise. - * po/cs.po: Likewise. - - * doc/man/pam.3.xml: New. - * doc/man/pam.3. New, generated from XML file. - - * doc/man/pam_sm_acct_mgmt.3.xml: New. - * doc/man/pam_sm_acct_mgmt.3: New, generated from XML file. - - * doc/man/*.xml: Fix encoding and use always UTF-8, regenerate - all manual pages. - - * doc/pam_modules.sgml (PAM_NEW_AUTHTOKEN_REQD): Fix typo. - -2006-05-02 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/pam_unix_acct.c (pam_sm_acct_mgmt): Use - different strings for plural or not [#1427738] - - * po/*.po: Adjust for pam_unix.so translation fix. - - * modules/pam_tally/pam_tally.c: Always close file handle - in error case, don't close it depending on *TALLY value [#1478180] - -2006-04-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/fr.po: Updated. - -2006-04-11 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/km.po: Updated. - -2006-03-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/LINGUAS: Add uk. - - * po/uk.po: New. - * po/cs.po: Updated. - * po/po/es.po: Updated. - * po/fi.po: Updated. - * po/fr.po: Updated. - * po/hu.po: Updated. - * po/it.po: Updated. - * po/ja.po: Updated. - * po/nb.po: Updated. - * po/pl.po: Updated. - * po/pt.po: Updated. - * po/pt_BR.po: Updated. - * po/zh_CN.po: Updated. - * po/zh_TW.po: Updated. - -2006-03-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Remove ALL_LINGUAS. - * po/LINGUAS: New. - * po/tr.po: New (from Ismail Donmez <ismail@pardus.org.tr>). - -2006-03-13 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam_error.3.xml: New. - * doc/man/pam_error.3: New, generated from XML file. - * doc/man/pam_verror.3: New, generated from XML file. - * doc/man/Makefile.am: Add pam_error.3 and pam_verror.3. - - * modules/pam_lastlog/Makefile.am: Fix typo. - - * modules/pam_lastlog/pam_lastlog.c: Move comment for - translators in right line. - * po/*.po: Update po files with comment for translator. - -2006-03-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/Makefile.am: Add new manual pages. - - * doc/man/pam.conf.5.xml: Replace link with content - of PAM admin guide. - * doc/man/pam.conf.5: Regenerated from XML file. - - * doc/man/pam_info.3.xml: New. - * doc/man/pam_info.3: New, generated from XML file. - * doc/man/pam_vinfo.3: New, generated from XML file. - - * doc/man/pam_conv.3.xml: New. - * doc/man/pam_conv.3: New, generated from XML file. - - * doc/man/pam_putenv.3.xml: New. - * doc/man/pam_putenv.3: New, generated from XML file. - - * doc/man/pam_getenv.3.xml: New. - * doc/man/pam_getenv.3: New, generated from XML file. - - * doc/man/pam_getenvlist.3.xml: New. - * doc/man/pam_getenvlist.3: New, generated from XML file. - - * libpam/pam_item.c (pam_get_user): Check for valid pamh before - using it. - - * configure.in: create tests/Makefile - * Makefile.am (SUBDIRS): Add tests - * tests/Makefile.am: New. - * tests/tst-dlopen.c: New. - * tests/tst-pam_acct_mgmt.c: New. - * tests/tst-pam_authenticate.c: New. - * tests/tst-pam_chauthtok.c: New. - * tests/tst-pam_close_session.c: New. - * tests/tst-pam_end.c: New. - * tests/tst-pam_fail_delay.c: New. - * tests/tst-pam_getenvlist.c: New. - * tests/tst-pam_get_item.c: New. - * tests/tst-pam_open_session.c: New. - * tests/tst-pam_setcred.c: New. - * tests/tst-pam_set_item.c: New. - * tests/tst-pam_start.c: New. - * tests/tst-pam_get_user.c: New. - - * modules/pam_access/Makefile.am: Add rules for make check - * modules/pam_access/tst-pam_access: New - * modules/pam_cracklib/Makefile.am: Add rules for make check - * modules/pam_cracklib/tst-pam_cracklib: New - * modules/pam_debug/Makefile.am: Add rules for make check - * modules/pam_debug/tst-pam_debug: New - * modules/pam_deny/Makefile.am: Add rules for make check - * modules/pam_deny/tst-pam_deny: New - * modules/pam_echo/Makefile.am: Add rules for make check - * modules/pam_echo/tst-pam_echo: New - * modules/pam_env/Makefile.am: Add rules for make check - * modules/pam_env/tst-pam_env: New - * modules/pam_exec/Makefile.am: Add rules for make check - * modules/pam_exec/tst-pam_exec: New - * modules/pam_filter/Makefile.am: Add rules for make check - * modules/pam_filter/tst-pam_filter: New - * modules/pam_ftp/Makefile.am: Add rules for make check - * modules/pam_ftp/tst-pam_ftp: New - * modules/pam_group/Makefile.am: Add rules for make check - * modules/pam_group/tst-pam_group: New - * modules/pam_issue/Makefile.am: Add rules for make check - * modules/pam_issue/tst-pam_issue: New - * modules/pam_lastlog/Makefile.am: Add rules for make check - * modules/pam_lastlog/tst-pam_lastlog: New - * modules/pam_limits/Makefile.am: Add rules for make check - * modules/pam_limits/tst-pam_limits: New - * modules/pam_listfile/Makefile.am: Add rules for make check - * modules/pam_listfile/tst-pam_listfile: New - * modules/pam_localuser/Makefile.am: Add rules for make check - * modules/pam_localuser/tst-pam_localuser: New - * modules/pam_mail/Makefile.am: Add rules for make check - * modules/pam_mail/tst-pam_mail: New - * modules/pam_mkhomedir/Makefile.am: Add rules for make check - * modules/pam_mkhomedir/tst-pam_mkhomedir: New - * modules/pam_motd/Makefile.am: Add rules for make check - * modules/pam_motd/tst-pam_motd: New - * modules/pam_nologin/Makefile.am: Add rules for make check - * modules/pam_nologin/tst-pam_nologin: New - * modules/pam_permit/Makefile.am: Add rules for make check - * modules/pam_permit/tst-pam_permit: New - * modules/pam_rhosts/Makefile.am: Add rules for make check - * modules/pam_rhosts/tst-pam_rhosts: New - * modules/pam_rootok/Makefile.am: Add rules for make check - * modules/pam_rootok/tst-pam_rootok: New - * modules/pam_securetty/Makefile.am: Add rules for make check - * modules/pam_securetty/tst-pam_securetty: New - * modules/pam_selinux/Makefile.am: Add rules for make check - * modules/pam_selinux/tst-pam_selinux: New - * modules/pam_shells/Makefile.am: Add rules for make check - * modules/pam_shells/tst-pam_shells: New - * modules/pam_stress/Makefile.am: Add rules for make check - * modules/pam_stress/tst-pam_stress: New - * modules/pam_succeed_if/Makefile.am: Add rules for make check - * modules/pam_succeed_if/tst-pam_succeed_if: New - * modules/pam_tally/Makefile.am: Add rules for make check - * modules/pam_tally/tst-pam_tally: New - * modules/pam_time/Makefile.am: Add rules for make check - * modules/pam_time/tst-pam_time: New - * modules/pam_umask/Makefile.am: Add rules for make check - * modules/pam_umask/tst-pam_umask: New - * modules/pam_unix/Makefile.am: Add rules for make check - * modules/pam_unix/tst-pam_unix: New - * modules/pam_userdb/Makefile.am: Add rules for make check - * modules/pam_userdb/tst-pam_userdb: New - * modules/pam_warn/Makefile.am: Add rules for make check - * modules/pam_warn/tst-pam_warn: New - * modules/pam_wheel/Makefile.am: Add rules for make check - * modules/pam_wheel/tst-pam_wheel: New - * modules/pam_xauth/Makefile.am: Add rules for make check - * modules/pam_xauth/tst-pam_xauth: New - -2006-03-11 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/pam_fail_delay.3.xml: New. - * doc/man/pam_fail_delay.3: New, generated from xml. - * doc/man/pam_prompt.3.xml: New. - * doc/man/pam_prompt.3: New, generated from xml. - * doc/man/pam_syslog.3.xml: New. - * doc/man/pam_syslog.3: New, generated from xml. - * doc/man/pam_vprompt.3: New, generated from xml. - * doc/man/pam_vsyslog.3: New, generated from xml. - -2006-02-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/km.po: Update Khmer translation. - -2006-02-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_succeed_if/pam_succeed_if.8.xml: New, based on - version from #1425487. - * modules/pam_succeed_if/pam_succeed_if.8: Regenerated from xml. - * modules/pam_succeed_if/Makefile.am: Include XML rules. - * modules/pam_succeed_if/README.xml: New. - * modules/pam_succeed_if/README: Regenerated from xml. - * modules/pam_succeed_if/pam_succeed_if.c: Fix comment about - return values. - -2006-02-22 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Fix check for incomplete libaudit installations - (Patch from Ruediger Oertel <ro@suse.de>). - - * modules/pam_lastlog/pam_lastlog.c (last_login_write): Initialize - correct last_login field [#1427401]. - - * modules/pam_lastlog/pam_lastlog.c (last_login_read): Mark strftime - format string for translation to allow reorder [#1428269]. - * po/*.po: Update with last pam_lastlog change. - - -2006-02-17 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/man/Makefile.am: Add new manual pages. - * doc/man/pam_end.3: Regenerated from xml file. - * doc/man/pam_end.3.xml: Document freeing of item data. - * doc/man/pam_get_user.3: New. - * doc/man/pam_get_user.3.xml: New. - * modules/pam_access/access.conf.5.xml: Fix typos. - * modules/pam_env/Makefile.am: Add new manual pages. - * modules/pam_env/README: Regenerate from xml file. - * modules/pam_env/README.xml: New. - * modules/pam_env/pam_env.8: New. - * modules/pam_env/pam_env.8.xml: New. - * modules/pam_env/pam_env.conf.5: New. - * modules/pam_env/pam_env.conf.5.xml New. - -2006-02-14 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/fi.po: Updated translations. - * po/pl.po: Likewise. - * po/km.po: New translation. - * configure.in: Add km as new language. - -2006-02-13 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_echo/pam_echo.8.xml: New. - * modules/pam_echo/pam_echo.8: Regenerated from xml file. - * modules/pam_echo/Makefile.am: Include Make.xml.rules. - * modules/pam_echo/pam_echo.c: Fix return value. - - * doc/modules/pam_chroot.sgml: Remove obsolete sgml file. - -2006-02-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Add doc/man/Makefile. - * Make.xml.rules: Enable xincludes for manual pages. - * doc/Makefile.am (EXRA_DIST): Remove manual pages. - (SUBDIR): Add man subdirectory. - * doc/man/Makefile.am: New. - * doc/man/pam_acct_mgmt.3: New. - * doc/man/pam_acct_mgmt.3.xml: New. - * doc/man/pam_get_data.3: New. - * doc/man/pam_get_data.3.xml: New. - * doc/man/pam_set_data.3: New. - * doc/man/pam_set_data.3.xml: New. - * doc/man/pam.8.xml: New. - * doc/man/pam.8: Regenerated from xml file. - * doc/man/pam_authenticate.3.xml: New. - * doc/man/pam_authenticate.3: Regenerated from xml file. - * doc/man/pam_chauthtok.3.xml: New. - * doc/man/pam_chauthtok.3: Regenerated from xml file. - * doc/man/pam_close_session.3.xml: New. - * doc/man/pam_close_session.3: Regenerated from xml file. - * doc/man/pam_end.3.xml: New. - * doc/man/pam_end.3: Regenerated from xml file. - * doc/man/pam_fail_delay.3.xml: New. - * doc/man/pam_fail_delay.3: Regenerated from xml file. - * doc/man/pam_get_item.3.xml: New. - * doc/man/pam_get_item.3: Regenerated from xml file. - * doc/man/pam_item_types.inc.xml: New. - * doc/man/pam_open_session.3.xml: New. - * doc/man/pam_open_session.3: Regenerated from xml file. - * doc/man/pam_set_item.3.xml: New. - * doc/man/pam_set_item.3: Regenerated from xml file. - * doc/man/pam_setcred.3.xml: New. - * doc/man/pam_setcred.3: Regenerated from xml file. - * doc/man/pam_start.3.xml: New. - * doc/man/pam_start.3: Regenerated from xml file. - * doc/man/pam_strerror.3.xml: New. - * doc/man/pam_strerror.3: Regenerated from xml file. - * doc/man/template-man: Removed. - -2006-02-10 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Remove pam_pwdb support. - * modules/Makefile.am: remove pam_pwdb. - * modules/pam_pwdb: Remove complete directory. - * libpam/Makefile.am: Remove LIBPWDB references. - * libpam/pam_static_modules.h: Remove pam_pwdb references. - * doc/modules/pam_pwdb.sgml: Removed. - * po/POTFILES.in: Remove modules/pam_pwdb/*.c entries. - * doc/pam_source.sgml: Remove references to libpwdb. - * doc/modules/pam_limits.sgml: Remove wrong reference to libpwdb. - * doc/modules/pam_group.sgml: Likewise. - * doc/modules/pam_cracklib.sgml: Replace pam_pwdb with pam_unix. - * doc/modules/pam_userdb.sgml: Likewise. - * modules/pam_cracklib/pam_cracklib.8.xml: Replace pam_pwdb - with pam_unix. - * modules/pam_mkhomedir/pam_mkhomedir.c: Likewise. - * modules/pam_group/pam_group.c: Remove dead code for libpwdb. - - * modules/pam_access/Makefile.am: Fix EXTRA_DIST. - * modules/pam_cracklib/Makefile.am: Likewise. - * modules/pam_deny/Makefile.am: Likewise. - * modules/pam_exec/Makefile.am: Likewise. - -2006-02-07 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Check for text browser. - * Make.xml.rules: Add rule to generate README from README.xml. - - * modules/pam_access/Makefile.am: Include Make.xml.rules. - * modules/pam_access/README: Regenerated from README.xml. - * modules/pam_access/README.xml: New. - * modules/pam_access/access.conf: Extended by new examples. - * modules/pam_access/access.conf.5: New, generated from xml file. - * modules/pam_access/access.conf.5.xml: New. - * modules/pam_access/pam_access.8: New, generated from xml file. - * modules/pam_access/pam_access.8.xml: New. - * modules/pam_access/pam_access.c: Add rules for IPv6 and - netmasks. - Based on patch from Mike Becher <Mike.Becher@lrz-muenchen.de>. - - * modules/pam_deny/Makefile.am: Include Make.xml.rules. - * modules/pam_deny/pam_deny.8.xml: New. - * modules/pam_deny/pam_deny.8: New, generated from xml file. - * modules/pam_deny/README.xml: New. - * modules/pam_deny/README: Regenerated from xml file. - - * modules/pam_cracklib/Makefile.am: Include Make.xml.rules. - * modules/pam_cracklib/pam_cracklib.8.xml: New. - * modules/pam_cracklib/pam_cracklib.8: New, generated from xml file. - * modules/pam_cracklib/README.xml: New. - * modules/pam_cracklib/README: Regenerated from xml file. - - * modules/pam_exec/Makefile.am: Add rule to generate README. - * modules/pam_exec/README: Regenerated from xml file. - * modules/pam_exec/pam_exec.8: Regenerated from xml file. - * modules/pam_exec/pam_exec.8.xml: Syntax files. - -2006-02-06 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/nl.po: New. - * po/pt.po: Update translations. - * configure.in: Add nl as new language. - -2006-01-30 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_exec/pam_exec.8.xml: Fix syntax of Return Value section. - * modules/pam_exec/Makefile.am: Include Make.xml.rules. - - * Make.xml.rules: New. - - * Makefile.am (EXTRA_DIST): Add Make.xml.rules. - -2006-01-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Prefer libdb over libndbm, fix check for - libcrack and remove not needed BACKUP_LIBS. - -2006-01-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_debug/pam_debug.c: Fix name of pam_module struct. - - * po/de.po: Fix one translation. - - * configure.in: Add modules/pam_exec. - * modules/Makefile.am: Add pam_exec subdirectory. - * modules/pam_exec/README: New. - * modules/pam_exec/Makefile.am: New. - * modules/pam_exec/pam_exec.8: New. - * modules/pam_exec/pam_exec.c: New. - * modules/pam_exec/pam_exec.8.xml: New. - * po/POTFILES.in: Add modules/pam_exec/pam_exec.c. - * po/*.po: Merge new pam_exec strings. - - * libpam/pam_static_modules.h: New. - * Makefile.am: Reorder subdirectories for static modules. - * configure.in: Add --enable-static-modules option. - * libpam/Makefile.am: Define WITH_SELINUX and WITH_PWDB if - necessary, add pam_static_modules.h, link against all PAM - module object files if STATIC_MODULES is defined. - * libpam/pam_static.c: Remove old _static_module* includes, - include pam_static_modules.h. - - * configure.in: Add checks for xsltproc, xmllint and docbook - xsl stylesheet. - * m4/jh_path_xml_catalog.m4: New. - -2006-01-22 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_succeed_if/pam_succeed_if.c: Add support for - static modules. - * modules/pam_xauth/pam_xauth.c: Likewise. - - * libpam/pam_static.c (_pam_open_static_handler): Add pamh - as argument. - * libpam/pam_private.h: Adjust prototype. - * libpam/pam_handlers.c (_pam_add_handler): Add pamh to - _pam_open_static_handler call. - - * configure.in: Don't define PAM_DYNAMIC. - * libpam/pam_handlers.c: Get ride of PAM_DYNAMIC, don't - include pam_dynamic.h - * libpam/pam_dynamic.c: Don't include pam_dynamic.h, - exclude functions if we compile with PAM_STATIC. - * libpam/pam_dynamic.h: Remove. - * libpam/pam_private.h: Add function prototypes from pam_dynamic.h. - * libpam/Makefile.am: Bump version number of libpam, remove - pam_dynamic.h. - -2006-01-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_listfile/pam_listfile.c: Add support for session - and password management. - -2006-01-19 Thorsten Kukuk <kukuk@thkukuk.de> - - * doc/specs/Makefile.am (spec): Add padout to fix parallel - build (Reported by Andreas Haumer <andreas@xss.co.at>). - -2006-01-15 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_echo/pam_echo.c: Define HOST_NAME_MAX if not - already defined. - -2006-01-13 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.3.0 - - * libpam_misc/misc_conv.c (misc_conv): Fix strict aliasing - error. - - * modules/pam_umask/pam_umask.c (search_key): Don't ignore - EOF/error return value from fgets(). - - * configure.in: Check for getline and getdelim - - * po/fi.po: Add new translations. - * po/de.po: Likewise. - * po/es.po: Likewise. - * po/fr.po: Likewise. - * po/it.po: Likewise. - * po/ja.po: Likewise. - * po/pt_BR.po: Likewise. - * po/zh_CH.po: Likewise. - * po/zh_TW.po: Likewise. - -2006-01-13 Dmitry V. Levin <ldv@altlinux.org> - - * libpam/pam_audit.c (_pam_auditlog): Replace strerror(errno) - call with %m specifier. - -2006-01-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * configure.in: Add check for -fpie/-pie - * modules/pam_filter/upperLOWER/Makefile.am: Compile/link - upperLOWER with -fpie/-pie if supported. - * modules/pam_unix/Makefile.am: Compile/link unix_chkpwd - with -fpie/-pie if supported. - -2006-01-12 Steve Grubb <sgrubb@redhat.com> - - * configure.in: Add check for audit library. - * libpam/Makefile.am (libpam_la_LDFLAGS): Add LIBAUDIT. - (libpam_la_SOURCES): Add pam_audit.c. - * libpam/pam_account.c (pam_acct_mgmt): Add _pam_auditlog() call. - * libpam/pam_auth.c (pam_authenticate), (pam_setcred): Likewise. - * libpam/pam_password.c (pam_chauthtok): Likewise. - * libpam/pam_session.c (pam_open_session), - (pam_close_session): Likewise. - * libpam/pam_private.h: Add audit_state member to pam_handle, - declare _pam_auditlog and _pam_audit_end. - * libpam/pam_start.c (pam_start): Initialize audit_state. - * libpam/pam_audit.c: New file with _pam_auditlog and _pam_audit_end - implementation. - * libpam/pam_end.c (pam_end): Add _pam_audit_end() call. - * NEWS: Note about added auditing. - -2006-01-11 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/Makefile.am (AM_CFLAGS): Define LIBPAM_COMPILE. - - * libpam/include/security/_pam_types.h: Don't define PAM_NONNULL - if we compile libpam itself. - - * po/hu.po: Update with new translations. - -2006-01-08 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_cracklib/pam_cracklib.c: Use PAM_AUTHTOK_RECOVERY_ERR - instead of PAM_AUTHTOK_RECOVER_ERR. - * modules/pam_pwdb/support.-c: Likewise. - * modules/pam_unix/support.c: Likewise. - * modules/pam_userdb/pam_userdb.c (pam_sm_authenticate): Likewise. - * libpam/pam_strerror.c (pam_strerror): Likewise. - - * libpam/include/security/_pam_compat.h: Define - PAM_AUTHTOK_RECOVER_ERR for backward compatibility. - - * libpam/include/security/_pam_types.h: Rename - PAM_AUTHTOK_RECOVER_ERR to PAM_AUTHTOK_RECOVERY_ERR. - -2006-01-05 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/include/security/_pam_types.h: Remove nonnull attribute - from third paramter (item) of pam_get_item. - * libpam/Makefile.am: Bump version number of shared library. - -2005-12-21 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_succeed_if/pam_succeed_if.c (evaluate_ingroup), - (evaluate_notingroup): Simplified. - (evaluate_innetgr), (evaluate_notinnetgr): New functions. - (evaluate): Added calls to evaluate_(not)innetgr(). - * modules/pam_succeed_if/README: Documented netgroup matching. - * NEWS: Mentioned the added netgroup matching support. - -2005-12-20 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_lastlog/pam_lastlog.c (last_login_read): Use - strftime instead of ctime. - - * po/de.po: Fix typo. - -2005-12-19 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_syslog.c: Define LOG_AUTHPRIV as LOG_AUTH on Solaris. - Reported by Charles_H_Bedford@nbc.gov. - - * modules/pam_time/pam_time.c (check_account): Implement - support for netgroups. - - * modules/pam_time/time.conf: Document usage of netgroups. - -2005-12-16 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_group/pam_group.c (check_account): Implement - support for netgroups. - - * modules/pam_group/group.conf: Add all documentation to this - example config file and don't reference to outdated configs. - - * modules/pam_group/README: New. - - * modules/pam_group/Makefile.am: Add README to EXTRADIST. - -2005-12-15 Thorsten Kukuk <kukuk@suse.de> - - * modules/pam_lastlog/pam_lastlog.c (last_login_read): Don't report an - error if user logins the first time. - - * modules/pam_lastlog/README: New. - - * modules/pam_lastlog/Makefile.am: Add README to EXTRADIST. - -2005-12-14 Thorsten Kukuk <kukuk@suse.de> - - * modules/pam_deny/pam_deny.c: Fix comment. - - * doc/pam_appl.sgml: Fix typo. - - Reported by Russell Bateman <russ@windofkeltia.com> - -2005-12-12 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.2.1 - - * po/de.po: Remove new fuzzy entry - - * NEWS: Add 0.99.2.1 changes - - * configure.in: bump version number to 0.99.2.1 - -2005-12-12 Dmitry V. Levin <ldv@altlinux.org> - - Cleanup pam_syslog messages. - - * modules/pam_env/pam_env.c (_expand_arg): Fix compiler warning. - * modules/pam_filter/pam_filter.c (set_filter): Append %m - specifier to pam_syslog messages where appropriate. - * modules/pam_group/pam_group.c (read_field): Likewise. - * modules/pam_mkhomedir/pam_mkhomedir.c (make_remark): Remove. - (create_homedir): Do not use make_remark() wrapper, call - pam_info() directly. Call pam_syslog() right after failed - operation and append %m specifier to pam_syslog messages where - appropriate. - * modules/pam_rhosts/pam_rhosts_auth.c (pam_iruserok): Replace - sequence of malloc(), strcpy() and strcat() calls with asprintf(). - Append %m specifier to pam_syslog messages where appropriate. - * modules/pam_securetty/pam_securetty.c (securetty_perform_check): - Append %m specifier to pam_syslog messages where appropriate. - * modules/pam_shells/pam_shells.c (perform_check): Likewise. - -2005-12-12 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_mail/pam_mail.c (report_mail): Fixed typo in string. - * po/Linux-PAM.pot: Likewise. - * po/de.po: Likewise. - * po/es.po: Likewise. - * po/fi.po: Likewise. - * po/fr.po: Likewise. - * po/hu.po: Likewise. - * po/it.po: Likewise. - * po/ja.po: Likewise. - * po/nb.po: Likewise. - * po/pa.po: Likewise. - * po/pl.po: Likewise. - * po/pt.po: Likewise. - * po/pt_BR.po: Likewise. - * po/zh_CN.po: Likewise. - * po/zh_TW.po: Likewise. - * po/de.po: Add new translation, fixed typo in string. - -2005-12-12 Mike Becher <Mike.Becher@lrz-muenchen.de> - - * doc/Makefile.am: Fixed install of PS, PDF, TXT and HTML files. - -2005-12-12 Thorsten Kukuk <kukuk@suse.de> - - * modules/pam_mail/README: Document "quiet" and "standard" - options. - -2005-12-07 Thorsten Kukuk <kukuk@suse.de> - - * modules/pam_mail/pam_mail.c: Modify assembling of output - for easier translation. - - * po/de.po: Translate new pam_mail messages. - - -2005-11-24 Thorsten Kukuk <kukuk@thkukuk.de> - - * po/de.po: Add new translation, fix wrong format specifier. - * po/cs.po: Fix wrong format specifier. - * po/es.po: Likewise. - * po/fi.po: Likewise. - * po/fr.po: Likewise. - * po/hu.po: Likewise. - * po/it.po: Likewise. - * po/ja.po: Likewise. - * po/nb.po: Likewise. - * po/pa.po: Likewise. - * po/pl.po: Likewise. - * po/pt.po: Likewise. - * po/pt_BR.po: Likewise. - * po/zh_CN.po: Likewise. - * po/zh_TW.po: Likewise. - -2005-11-24 Dmitry V. Levin <ldv@altlinux.org> - - * config.h.in: Remove generated file. - * .cvsignore: Add config.h.in. - - * configure.in: Do not check for strerror. - * libpam_misc/misc_conv.c (read_string): Replace strerror() - call with %m specifier. - * libpamc/pamc_converse.c (pamc_converse): Likewise. - * modules/pam_echo/pam_echo.c (pam_echo): Likewise. - * modules/pam_localuser/pam_localuser.c (pam_sm_authenticate): - Likewise. - * modules/pam_selinux/pam_selinux.c (security_label_tty): - Likewise. - (security_restorelabel_tty, security_label_tty): Append %m - specifier where appropriate. - * modules/pam_selinux/pam_selinux_check.c (main): Replace - strerror() call with %m specifier. - * modules/pam_unix/pam_unix_passwd.c (save_old_password, - _update_passwd, _update_shadow): Likewise. - * modules/pam_unix/support.c (_unix_run_helper_binary): Likewise. - * modules/pam_unix/unix_chkpwd.c (_update_shadow): Likewise. - * po/Linux-PAM.pot: Update strings from pam_selinux. - * po/cs.po: Likewise. - * po/de.po: Likewise. - * po/es.po: Likewise. - * po/fi.po: Likewise. - * po/fr.po: Likewise. - * po/hu.po: Likewise. - * po/it.po: Likewise. - * po/ja.po: Likewise. - * po/nb.po: Likewise. - * po/pa.po: Likewise. - * po/pl.po: Likewise. - * po/pt.po: Likewise. - * po/pt_BR.po: Likewise. - * po/zh_CN.po: Likewise. - * po/zh_TW.po: Likewise. - -2005-11-23 Thorsten Kukuk <kukuk@suse.de> - - * modules/pam_xauth/pam_xauth.c (pam_sm_open_session): Introduce - new variable to fix compiler warning. - - * libpam/pam_modutil_getlogin.c (pam_modutil_getlogin): PAM_TTY - don't need to start with /dev/. - -2005-11-21 Thorsten Kukuk <kukuk@thkukuk.de> - - * release version 0.99.2.0 - - * libpam_misc/Makefile.am: Increase release number (for change - from 2005-11-09) - - * NEWS: Adjust for 0.99.2.0 - -2005-11-17 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/include/security/_pam_compat.h: Fix wrong #ifdef nesting. - Redefine PAM_CHANGE_EXPIRED_AUTHTOK [#604380] - -2005-11-16 Thorsten Kukuk <kukuk@thkukuk.de> - - * libpam/pam_handlers.c: Replace code for all dlopen variants with - a generic wrapper. - * libpam/pam_dynamic.c: Implement generic wrapper for dlopen. - * libpam/pam_dynamic.h: Provide prototypes. - For Mac OS X support [#534205] - -2005-11-09 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_access/pam_access.c (pam_sm_acct_mgmt): Parse correctly - full path tty name. - * modules/pam_time/pam_time.c (pam_sm_acct_mgmt): Parse correctly - full path tty name. Allow unset tty. - (logic_member): Allow matching ':' in tty name. - * modules/pam_group/pam_group.c (pam_sm_acct_mgmt): Parse correctly - full path tty name. Allow unset tty. - (logic_member): Allow matching ':' in tty name. - - * libpam_misc/misc_conv.c (read_string): Read only up to EOL if stdin - is not terminal. - -2005-11-07 Thorsten Kukuk <kukuk@thkukuk.de> - - * modules/pam_unix/pam_unix_passwd.c (_unix_verify_shadow): Use - correct variable names. - -2005-11-06 Steve Langasek <vorlon@debian.org> - - * modules/pam_env/pam_env.c: don't treat a missing - /etc/environment as a fatal error when attempting to read it, - and try to read this file by default; this restores the behavior - from Linux-PAM 0.76. - -2005-11-02 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/support.c (_unix_getpwnam): Fix typo [#1224807] - by ohyajapn. - - * modules/pam_unix/pam_unix_passwd.c (_unix_verify_shadow): Change the - logic when comparing dates to handle corner cases better [#1245888]. - -2005-10-31 Thorsten Kukuk <kukuk@suse.de> - - * modules/pam_filter/pam_filter.c: Use XCASE only if defined - [#624214] - -2005-10-27 Thorsten Kukuk <kukuk@suse.de> - - * doc/man/pam.8: Fix wording for authentication chapter [#1197444] - -2005-10-26 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary), - modules/pam_unix/pam_unix_passwd.c (_unix_run_shadow_binary), - modules/pam_unix/support.c (_unix_run_shadow_binary_): Set real - uid to 0 before executing the helper if SELinux is enabled. - * modules/pam_unix/unix_chkpwd.c (main): Disable user check only - if real uid is 0 (CVE-2005-2977). Log failed password check attempt. - - -2005-10-20 Tomas Mraz <t8m@centrum.cz> - - * configure.in: Added check for xauth binary and --with-xauth option. - * config.h.in: Added configurable PAM_PATH_XAUTH. - * modules/pam_xauth/README, - modules/pam_xauth/pam_xauth.8: Document where xauth is looked for. - * modules/pam_xauth/pam_xauth.c (pam_sm_open_session): Implement - searching xauth binary on multiple places. - (run_coprocess): Don't use execvp as it can be a security risk. - -2005-10-04 Steve Langasek <vorlon@debian.org> - - * libpam/include/security/pam_malloc.h, - libpam/include/security/pam_modules.h: Declare public header - files extern "C" so that they are C++-safe. - -2005-10-02 Dmitry V. Levin <ldv@altlinux.org> - Steve Langasek <vorlon@debian.org> - - Cleanup gratuitous use of strdup(). - Fix "missing argument" checks. - - * modules/pam_env/pam_env.c (_pam_parse): Add const qualifier - to conffile and envfile arguments. Do not use x_strdup() for - conffile and envfile initialization. Fix "missing argument" - checks. - (_parse_config_file): Take conffile argument of type "const char *" - instead of "char **". Do not free conffile. - (_parse_env_file): Take env_file argument of type "const char *" - instead of "char **". Do not free env_file. - (pam_sm_setcred): Add const qualifier to conf_file and env_file. - Pass conf_file and env_file to _parse_config_file() and - _parse_env_file() by value. - (pam_sm_open_session): Likewise. - - * modules/pam_ftp/pam_ftp.c (_pam_parse): Add const qualifier to - users argument. Do not use x_strdup() for users initialization. - (lookup): Add const qualifier to list argument. - (pam_sm_authenticate): Add const qualifier to users argument. - - * modules/pam_mail/pam_mail.c (_pam_parse): Add const qualifier - to maildir argument. Do not use x_strdup() for maildir - initialization. Fix "missing argument" check. - (get_folder): Take path_mail argument of type "const char *" - instead of "char **". Do not free path_mail. - (_do_mail): Add const qualifier to path_mail argument. - Pass path_mail to get_folder() by value. - - * modules/pam_motd/pam_motd.c: Include <syslog.h>. - (pam_sm_open_session): Add const qualifier to motd_path. - Do not use x_strdup() for motd_path initialization. Do not - free motd_path. Fix "missing argument" check. Add "unknown - option" warning. - - * modules/pam_userdb/pam_userdb.c (_pam_parse): Add const - qualifier to database and cryptmode arguments. Fix "missing - argument" checks. - (pam_sm_authenticate): Add const qualifier to database and cryptmode. - (pam_sm_acct_mgmt): Likewise. - -2005-10-01 Steve Langasek <vorlon@debian.org> - - * modules/pam_userdb/pam_userdb.c: spelling fix in log message. - -2005-09-30 Steve Langasek <vorlon@debian.org> - - * modules/pam_userdb/pam_userdb.c: Fix memory leak due to - gratuitous use of strdup(). - -2005-09-27 Thorsten Kukuk <kukuk@thkukuk.de> - - * release 0.99.1.0 - - * doc/specs/Makefile.am (install-data-local): Install - rfc and draft. - (all): Copy rfc if we build outside of source directory. - -2005-09-27 Thorsten Kukuk <kukuk@suse.de> - - * NEWS: Document removal of pam_radius. - * autogen.sh: Make configure script executeable. - - * conv/pam_conv1/Makefile (EXTRA_DIST): Removed lex.yy.c - (lex.yy.c): Fixed out of tree build. - - * conv/pam_conv1/pam_conv.y: Fix main prototype. - - * README: Adjust. - - * po/POTFILES.in: Remove files not distributed by tar archive - and not containing strings for translation. - -2005-09-26 Tomas Mraz <t8m@centrum.cz> - - * NEWS: Add a few missing entries from CHANGELOG. - - * AUTHORS: Fixed entries for Toady and me. - - * Makefile.am (M4_FILES): Fixed out of tree build. - * doc/specs/Makefile.am (EXTRA_DIST): Removed lex.yy.c - (spec, lex.yy.c): Fixed out of tree build. - - * modules/pam_userdb/README: Document try_first_pass and - use_first_pass options, remove use_authtok option. - - -2005-09-26 Dmitry V. Levin <ldv@altlinux.org> - - * NEWS: Mention changes in pam_lastlog. - -2005-09-26 Thorsten Kukuk <kukuk@suse.de> - - * NEWS: New file. - * autogen.sh: Don't generate NEWS file. - * CHANGELOG: Document it as obsolete. - -2005-09-26 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): - _log_err() -> pam_syslog() - (pam_sm_acct_mgmt): _log_err() -> pam_syslog(), fix warning. - * modules/pam_unix/pam_unix_auth.c (pam_sm_authenticate): - _log_err() -> pam_syslog() - * modules/pam_unix/pam_unix_passwd.c: removed obsolete ifdef - (getNISserver, _unix_run_shadow_binary, _update_passwd, - _update_shadow, _do_setpass, _pam_unix_approve_pass, - pam_sm_chauthtok): _log_err() -> pam_syslog() - * modules/pam_unix/pam_unix_sess.c: removed obsolete ifdef - (pam_sm_open_session, pam_sm_close_session): - _log_err() -> pam_syslog() - * modules/pam_unix/support.c (_log_err, converse): removed - (_make_remark): use pam_prompt() instead of converse() - (_set_ctrl, _cleanup_failures, _unix_run_helper_binary, - _unix_verify_password, _unix_read_password): - _log_err() -> pam_syslog() - _cleanup(), _unix_cleanup(): Silence unused param warnings. - (_cleanup_failures, _unix_verify_password, _unix_getpwnam, - _unix_run_helper_binary): Silence incorrect type warnings. - (_unix_read_password): Use multiple pam_prompt() and pam_info() calls - instead of converse(). - * modules/pam_unix/support.h (_log_err): removed - * modules/pam_unix/unix_chkpwd.c (_log_err): LOG_AUTH -> LOG_AUTHPRIV - -2005-09-26 Thorsten Kukuk <kukuk@suse.de> - - * configure.in: Add doc/specs/Makefile. - * Makefile.am: Add releasedocs rule. - * doc/Makefile.am: Add specs subdir, remove files from specs - directory, add rfc86.0.txt to releasedocs. - * doc/specs/Makefile.am: New file. - * doc/specs/formatter/parse.y: move from here ... - * doc/specs/parse.y: ... here. - * doc/specs/formatter/parse.lex: move from here ... - * doc/specs/parse.lex: ... here. - - * modules/pam_mail/pam_mail.c: Mark missing strings for translation - * po/Linux-PAM.pot: Add new strings from pam_mail - * po/cs.po: Likewise. - * po/de.po: Likewise. - * po/es.po: Likewise. - * po/fi.po: Likewise. - * po/fr.po: Likewise. - * po/hu.po: Likewise. - * po/it.po: Likewise. - * po/ja.po: Likewise. - * po/nb.po: Likewise. - * po/pa.po: Likewise. - * po/pl.po: Likewise. - * po/pt.po: Likewise. - * po/pt_BR.po: Likewise. - * po/zh_CN.po: Likewise. - * po/zh_TW.po: Likewise. - -2005-09-23 Tomas Mraz <t8m@centrum.cz> - - * modules/pam_access/pam_access.c (from_match): Support NULL from. - (string_match): Support NULL string, add NONE keyword matching it. - (pam_sm_acct_mgmt): Don't fail when ttyname returns NULL. - * modules/pam_access/access.conf: NONE keyword description - * modules/pam_access/README: NONE keyword description - -2005-09-22 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_xauth/pam_xauth.c: (check_acl, pam_sm_open_session, - pam_sm_close_session): Strip redundant "pam_xauth: " prefix from - text of log messages. - (pam_sm_open_session): Replace sequence of malloc(), strcpy() - and strcat() calls with asprintf(). Replace syslog() calls - with pam_syslog(). - - * modules/pam_nologin/pam_nologin.c (parse_args): Use strncmp() - instead of memcmp() for string comparison. - -2005-09-21 Dmitry V. Levin <ldv@altlinux.org> - - * modules/pam_nologin/pam_nologin.c: Include <syslog.h>. - (parse_args): Add pam_handle_t* argument. Log unrecognized - options. - (perform_check): Log pam_get_user() and malloc() failures. - (pam_sm_authenticate, pam_sm_setcred, pam_sm_acct_mgmt): - Pass pam_handle_t* to parse_args(). - - * modules/pam_mail/pam_mail.c: Include <errno.h>. - Remove YOUR_MAIL_VERBOSE_FORMAT, YOUR_MAIL_STANDARD_FORMAT and - NO_MAIL_STANDARD_FORMAT macros. - (parse_args, get_folder): Cleanup error messages. - (get_folder): Fix leak of the path_mail variable in case of - pam_get_user() failure. Cleanup memory management. - (get_mail_status): Add pam_handle_t* argument. Fix leaks of - namelist variable. Cleanup memory management. Log memory - allocation failures. Remove 250-byte limit on Maildir pathname. - (report_mail): Mark text messages for translation. - (_do_mail): Cleanup memory management. Pass pam_handle_t* - to get_mail_status(). - - * po/Linux-PAM.pot: Update with new strings from pam_mail for - translation. - * po/cs.po: Likewise. - * po/de.po: Likewise. - * po/es.po: Likewise. - * po/fi.po: Likewise. - * po/fr.po: Likewise. - * po/hu.po: Likewise. - * po/it.po: Likewise. - * po/ja.po: Likewise. - * po/nb.po: Likewise. - * po/pa.po: Likewise. - * po/pl.po: Likewise. - * po/pt.po: Likewise. - * po/pt_BR.po: Likewise. - * po/zh_CN.po: Likewise. - * po/zh_TW.po: Likewise. - -2005-09-20 Thorsten Kukuk <kukuk@suse.de> - - * configure.in: Add finish translation. - * po/fi.po: New. - - * acinclude.m4: remove libprelude macros. - * m4/libprelude.m4: New. - - * Makefile.am (EXTRA_DIST): make sure we include all m4 macros. - - * libpamc/Makefile.am (EXTRA_DIST): Add License. - -See CHANGELOG for earlier changes. diff --git a/INSTALL b/INSTALL deleted file mode 100644 index 8865734f..00000000 --- a/INSTALL +++ /dev/null @@ -1,368 +0,0 @@ -Installation Instructions -************************* - - Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software -Foundation, Inc. - - Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. This file is offered as-is, -without warranty of any kind. - -Basic Installation -================== - - Briefly, the shell command './configure && make && make install' -should configure, build, and install this package. The following -more-detailed instructions are generic; see the 'README' file for -instructions specific to this package. Some packages provide this -'INSTALL' file but do not implement all of the features documented -below. The lack of an optional feature in a given package is not -necessarily a bug. More recommendations for GNU packages can be found -in *note Makefile Conventions: (standards)Makefile Conventions. - - The 'configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a 'Makefile' in each directory of the package. -It may also create one or more '.h' files containing system-dependent -definitions. Finally, it creates a shell script 'config.status' that -you can run in the future to recreate the current configuration, and a -file 'config.log' containing compiler output (useful mainly for -debugging 'configure'). - - It can also use an optional file (typically called 'config.cache' and -enabled with '--cache-file=config.cache' or simply '-C') that saves the -results of its tests to speed up reconfiguring. Caching is disabled by -default to prevent problems with accidental use of stale cache files. - - If you need to do unusual things to compile the package, please try -to figure out how 'configure' could check whether to do them, and mail -diffs or instructions to the address given in the 'README' so they can -be considered for the next release. If you are using the cache, and at -some point 'config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file 'configure.ac' (or 'configure.in') is used to create -'configure' by a program called 'autoconf'. You need 'configure.ac' if -you want to change it or regenerate 'configure' using a newer version of -'autoconf'. - - The simplest way to compile this package is: - - 1. 'cd' to the directory containing the package's source code and type - './configure' to configure the package for your system. - - Running 'configure' might take a while. While running, it prints - some messages telling which features it is checking for. - - 2. Type 'make' to compile the package. - - 3. Optionally, type 'make check' to run any self-tests that come with - the package, generally using the just-built uninstalled binaries. - - 4. Type 'make install' to install the programs and any data files and - documentation. When installing into a prefix owned by root, it is - recommended that the package be configured and built as a regular - user, and only the 'make install' phase executed with root - privileges. - - 5. Optionally, type 'make installcheck' to repeat any self-tests, but - this time using the binaries in their final installed location. - This target does not install anything. Running this target as a - regular user, particularly if the prior 'make install' required - root privileges, verifies that the installation completed - correctly. - - 6. You can remove the program binaries and object files from the - source code directory by typing 'make clean'. To also remove the - files that 'configure' created (so you can compile the package for - a different kind of computer), type 'make distclean'. There is - also a 'make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - - 7. Often, you can also type 'make uninstall' to remove the installed - files again. In practice, not all packages have tested that - uninstallation works correctly, even though it is required by the - GNU Coding Standards. - - 8. Some packages, particularly those that use Automake, provide 'make - distcheck', which can by used by developers to test that all other - targets like 'make install' and 'make uninstall' work correctly. - This target is generally not run by end users. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the 'configure' script does not know about. Run './configure --help' -for details on some of the pertinent environment variables. - - You can give 'configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here is -an example: - - ./configure CC=c99 CFLAGS=-g LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU 'make'. 'cd' to the -directory where you want the object files and executables to go and run -the 'configure' script. 'configure' automatically checks for the source -code in the directory that 'configure' is in and in '..'. This is known -as a "VPATH" build. - - With a non-GNU 'make', it is safer to compile the package for one -architecture at a time in the source code directory. After you have -installed the package for one architecture, use 'make distclean' before -reconfiguring for another architecture. - - On MacOS X 10.5 and later systems, you can create libraries and -executables that work on multiple system types--known as "fat" or -"universal" binaries--by specifying multiple '-arch' options to the -compiler but only a single '-arch' option to the preprocessor. Like -this: - - ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CPP="gcc -E" CXXCPP="g++ -E" - - This is not guaranteed to produce working output in all cases, you -may have to build one architecture at a time and combine the results -using the 'lipo' tool if you have problems. - -Installation Names -================== - - By default, 'make install' installs the package's commands under -'/usr/local/bin', include files under '/usr/local/include', etc. You -can specify an installation prefix other than '/usr/local' by giving -'configure' the option '--prefix=PREFIX', where PREFIX must be an -absolute file name. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option '--exec-prefix=PREFIX' to 'configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like '--bindir=DIR' to specify different values for particular -kinds of files. Run 'configure --help' for a list of the directories -you can set and what kinds of files go in them. In general, the default -for these options is expressed in terms of '${prefix}', so that -specifying just '--prefix' will affect all of the other directory -specifications that were not explicitly provided. - - The most portable way to affect installation locations is to pass the -correct locations to 'configure'; however, many packages provide one or -both of the following shortcuts of passing variable assignments to the -'make install' command line to change installation locations without -having to reconfigure or recompile. - - The first method involves providing an override variable for each -affected directory. For example, 'make install -prefix=/alternate/directory' will choose an alternate location for all -directory configuration variables that were expressed in terms of -'${prefix}'. Any directories that were specified during 'configure', -but not in terms of '${prefix}', must each be overridden at install time -for the entire installation to be relocated. The approach of makefile -variable overrides for each directory variable is required by the GNU -Coding Standards, and ideally causes no recompilation. However, some -platforms have known limitations with the semantics of shared libraries -that end up requiring recompilation when using this method, particularly -noticeable in packages that use GNU Libtool. - - The second method involves providing the 'DESTDIR' variable. For -example, 'make install DESTDIR=/alternate/directory' will prepend -'/alternate/directory' before all installation names. The approach of -'DESTDIR' overrides is not required by the GNU Coding Standards, and -does not work on platforms that have drive letters. On the other hand, -it does better at avoiding recompilation issues, and works well even -when some directory options were not specified in terms of '${prefix}' -at 'configure' time. - -Optional Features -================= - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving 'configure' the -option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. - - Some packages pay attention to '--enable-FEATURE' options to -'configure', where FEATURE indicates an optional part of the package. -They may also pay attention to '--with-PACKAGE' options, where PACKAGE -is something like 'gnu-as' or 'x' (for the X Window System). The -'README' should mention any '--enable-' and '--with-' options that the -package recognizes. - - For packages that use the X Window System, 'configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the 'configure' options '--x-includes=DIR' and -'--x-libraries=DIR' to specify their locations. - - Some packages offer the ability to configure how verbose the -execution of 'make' will be. For these packages, running './configure ---enable-silent-rules' sets the default to minimal output, which can be -overridden with 'make V=1'; while running './configure ---disable-silent-rules' sets the default to verbose, which can be -overridden with 'make V=0'. - -Particular systems -================== - - On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC -is not installed, it is recommended to use the following options in -order to use an ANSI C compiler: - - ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" - -and if that doesn't work, install pre-built binaries of GCC for HP-UX. - - HP-UX 'make' updates targets which have the same time stamps as their -prerequisites, which makes it generally unusable when shipped generated -files such as 'configure' are involved. Use GNU 'make' instead. - - On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot -parse its '<wchar.h>' header file. The option '-nodtk' can be used as a -workaround. If GNU CC is not installed, it is therefore recommended to -try - - ./configure CC="cc" - -and if that doesn't work, try - - ./configure CC="cc -nodtk" - - On Solaris, don't put '/usr/ucb' early in your 'PATH'. This -directory contains several dysfunctional programs; working variants of -these programs are available in '/usr/bin'. So, if you need '/usr/ucb' -in your 'PATH', put it _after_ '/usr/bin'. - - On Haiku, software installed for all users goes in '/boot/common', -not '/usr/local'. It is recommended to use the following options: - - ./configure --prefix=/boot/common - -Specifying the System Type -========================== - - There may be some features 'configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on. Usually, assuming the package is built to be run on the -_same_ architectures, 'configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the -'--build=TYPE' option. TYPE can either be a short name for the system -type, such as 'sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS - KERNEL-OS - - See the file 'config.sub' for the possible values of each field. If -'config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option '--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with '--host=TYPE'. - -Sharing Defaults -================ - - If you want to set default values for 'configure' scripts to share, -you can create a site shell script called 'config.site' that gives -default values for variables like 'CC', 'cache_file', and 'prefix'. -'configure' looks for 'PREFIX/share/config.site' if it exists, then -'PREFIX/etc/config.site' if it exists. Or, you can set the -'CONFIG_SITE' environment variable to the location of the site script. -A warning: not all 'configure' scripts look for a site script. - -Defining Variables -================== - - Variables not defined in a site shell script can be set in the -environment passed to 'configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the 'configure' command line, using 'VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified 'gcc' to be used as the C compiler (unless it is -overridden in the site shell script). - -Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an -Autoconf limitation. Until the limitation is lifted, you can use this -workaround: - - CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash - -'configure' Invocation -====================== - - 'configure' recognizes the following options to control how it -operates. - -'--help' -'-h' - Print a summary of all of the options to 'configure', and exit. - -'--help=short' -'--help=recursive' - Print a summary of the options unique to this package's - 'configure', and exit. The 'short' variant lists options used only - in the top level, while the 'recursive' variant lists options also - present in any nested packages. - -'--version' -'-V' - Print the version of Autoconf used to generate the 'configure' - script, and exit. - -'--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally 'config.cache'. FILE defaults to '/dev/null' to - disable caching. - -'--config-cache' -'-C' - Alias for '--cache-file=config.cache'. - -'--quiet' -'--silent' -'-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to '/dev/null' (any error - messages will still be shown). - -'--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - 'configure' can determine that directory automatically. - -'--prefix=DIR' - Use DIR as the installation prefix. *note Installation Names:: for - more details, including other options available for fine-tuning the - installation locations. - -'--no-create' -'-n' - Run the configure checks, but stop before creating any output - files. - -'configure' also accepts some other, not widely useful, options. Run -'configure --help' for more details. diff --git a/Make.xml.rules.in b/Make.xml.rules.in deleted file mode 100644 index 6663bee0..00000000 --- a/Make.xml.rules.in +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@thkukuk.de> -# - -README: $(XMLS) - -README: README.xml - $(XSLTPROC) --path $(srcdir) --xinclude --stringparam generate.toc "none" @STRINGPARAM_VENDORDIR@ @STRINGPARAM_PROFILECONDITIONS@ --nonet $(TXT_STYLESHEET) $< | $(BROWSER) > $(srcdir)/$@ - -%.1: %.1.xml - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noout $< - $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude @STRINGPARAM_VENDORDIR@ @STRINGPARAM_PROFILECONDITIONS@ --nonet $(top_srcdir)/doc/custom-man.xsl $< - -%.3: %.3.xml - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noout $< - $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude @STRINGPARAM_VENDORDIR@ @STRINGPARAM_PROFILECONDITIONS@ --nonet $(top_srcdir)/doc/custom-man.xsl $< - -%.5: %.5.xml - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noout $< - $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude @STRINGPARAM_VENDORDIR@ @STRINGPARAM_PROFILECONDITIONS@ --nonet $(top_srcdir)/doc/custom-man.xsl $< - -%.8: %.8.xml - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noout $< - $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude @STRINGPARAM_VENDORDIR@ @STRINGPARAM_PROFILECONDITIONS@ --nonet $(top_srcdir)/doc/custom-man.xsl $< - -#CLEANFILES += $(man_MANS) README diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index deb25268..00000000 --- a/Makefile.am +++ /dev/null @@ -1,51 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de> -# - -AUTOMAKE_OPTIONS = 1.9 gnu dist-xz no-dist-gzip check-news - -SUBDIRS = libpam tests libpamc libpam_misc modules po conf examples xtests - -if HAVE_DOC -SUBDIRS += doc -endif - -CLEANFILES = *~ - -EXTRA_DIST = pgp.keys.asc CHANGELOG ChangeLog-CVS Copyright - -ACLOCAL_AMFLAGS = -I m4 - -release: dist releasedocs - -release-docs: releasedocs - -releasedocs: - rm -rf Linux-PAM-$(VERSION) - mkdir -p Linux-PAM-$(VERSION)/doc - make -C doc releasedocs - tar Jfc Linux-PAM-$(VERSION)-docs.tar.xz \ - Linux-PAM-$(VERSION)/doc - rm -rf Linux-PAM-$(VERSION) - -xtests: - make -C xtests xtests - -.PHONY: xtests - -gen_changelog_start_date = 2011-10-26 -gen-ChangeLog: - if test -d .git; then \ - ( $(top_srcdir)/gitlog-to-changelog --append-dot \ - --since=$(gen_changelog_start_date) && \ - echo && echo && \ - echo 'See ChangeLog-CVS for earlier changes.' \ - ) > $(distdir)/ChangeLog.new && \ - rm -f $(distdir)/ChangeLog && \ - mv $(distdir)/ChangeLog.new $(distdir)/ChangeLog; \ - fi - -dist-hook: gen-ChangeLog -.PHONY: gen-ChangeLog - -export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index f7e2c44b..00000000 --- a/Makefile.in +++ /dev/null @@ -1,972 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_DOC_TRUE@am__append_1 = doc -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) $(am__DIST_COMMON) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = Make.xml.rules -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir distdir-am dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ - config.h.in -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope -DIST_SUBDIRS = libpam tests libpamc libpam_misc modules po conf \ - examples xtests doc -am__DIST_COMMON = $(srcdir)/Make.xml.rules.in $(srcdir)/Makefile.in \ - $(srcdir)/config.h.in $(top_srcdir)/build-aux/compile \ - $(top_srcdir)/build-aux/config.guess \ - $(top_srcdir)/build-aux/config.rpath \ - $(top_srcdir)/build-aux/config.sub \ - $(top_srcdir)/build-aux/install-sh \ - $(top_srcdir)/build-aux/ltmain.sh \ - $(top_srcdir)/build-aux/missing ABOUT-NLS AUTHORS COPYING \ - ChangeLog INSTALL NEWS README build-aux/compile \ - build-aux/config.guess build-aux/config.rpath \ - build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \ - build-aux/missing -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -am__post_remove_distdir = $(am__remove_distdir) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -GZIP_ENV = --best -DIST_ARCHIVES = $(distdir).tar.xz -DIST_TARGETS = dist-xz -# Exists only to be overridden by the user if desired. -AM_DISTCHECK_DVI_TARGET = dvi -distuninstallcheck_listfiles = find . -type f -print -am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ - | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = 1.9 gnu dist-xz no-dist-gzip check-news -SUBDIRS = libpam tests libpamc libpam_misc modules po conf examples \ - xtests $(am__append_1) -CLEANFILES = *~ -EXTRA_DIST = pgp.keys.asc CHANGELOG ChangeLog-CVS Copyright -ACLOCAL_AMFLAGS = -I m4 -gen_changelog_start_date = 2011-10-26 -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @test -f $@ || rm -f stamp-h1 - @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -Make.xml.rules: $(top_builddir)/config.status $(srcdir)/Make.xml.rules.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool config.lt - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) -clean-cscope: - -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @case `sed 15q $(srcdir)/NEWS` in \ - *"$(VERSION)"*) : ;; \ - *) \ - echo "NEWS not updated; not releasing" 1>&2; \ - exit 1;; \ - esac - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz - $(am__post_remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) - -dist-zstd: distdir - tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst - $(am__post_remove_distdir) - -dist-tarZ: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) - -dist-shar: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz - $(am__post_remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) - -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - *.tar.zst*) \ - zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build/sub \ - && ../../configure \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=../.. --prefix="$$dc_install_base" \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__post_remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @test -n '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: trying to run $@ with an empty' \ - '$$(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - $(am__cd) '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile config.h -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr \ - distclean-libtool distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) all install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--refresh check check-am clean clean-cscope clean-generic \ - clean-libtool cscope cscopelist-am ctags ctags-am dist \ - dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ - dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \ - distclean-generic distclean-hdr distclean-libtool \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -release: dist releasedocs - -release-docs: releasedocs - -releasedocs: - rm -rf Linux-PAM-$(VERSION) - mkdir -p Linux-PAM-$(VERSION)/doc - make -C doc releasedocs - tar Jfc Linux-PAM-$(VERSION)-docs.tar.xz \ - Linux-PAM-$(VERSION)/doc - rm -rf Linux-PAM-$(VERSION) - -xtests: - make -C xtests xtests - -.PHONY: xtests -gen-ChangeLog: - if test -d .git; then \ - ( $(top_srcdir)/gitlog-to-changelog --append-dot \ - --since=$(gen_changelog_start_date) && \ - echo && echo && \ - echo 'See ChangeLog-CVS for earlier changes.' \ - ) > $(distdir)/ChangeLog.new && \ - rm -f $(distdir)/ChangeLog && \ - mv $(distdir)/ChangeLog.new $(distdir)/ChangeLog; \ - fi - -dist-hook: gen-ChangeLog -.PHONY: gen-ChangeLog - -export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX - -# 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: @@ -1,5 +1,66 @@ Linux-PAM NEWS -- history of user-visible changes. +Release 1.7.0 +* build: changed build system from autotools to meson. +* libpam_misc: use ECHOCTL in the terminal input +* pam_access: support UID and GID in access.conf +* pam_env: install environment file in vendordir if vendordir is enabled +* pam_issue: only count class user if logind support is enabled +* pam_limits: use systemd-logind instead of utmp if logind support is enabled +* pam_unix: compare password hashes in constant time +* Multiple minor bug fixes, build fixes, portability fixes, + documentation improvements, and translation updates. + +Release 1.6.1 +* build: fail if specified configure options cannot be satisfied. +* pam_env: fixed --disable-econf --enable-vendordir support. +* pam_unix: do not warn if password aging is disabled. +* pam_unix: try to set uid to 0 before unix_chkpwd invocation. +* pam_unix: allow empty passwords with non-empty hashes. +* Multiple minor bug fixes, build fixes, portability fixes, + documentation improvements, and translation updates. + +Release 1.6.0 +* Added support of configuration files with arbitrarily long lines. +* build: fixed build outside of the source tree. +* libpam: added use of getrandom(2) as a source of randomness if available. +* libpam: fixed calculation of fail delay with very long delays. +* libpam: fixed potential infinite recursion with includes. +* libpam: implemented string to number conversions validation when parsing + controls in configuration. +* pam_access: added quiet_log option. +* pam_access: fixed truncation of very long group names. +* pam_canonicalize_user: new module to canonicalize user name. +* pam_echo: fixed file handling to prevent overflows and short reads. +* pam_env: added support of '\' character in environment variable values. +* pam_exec: allowed expose_authtok for password PAM_TYPE. +* pam_exec: fixed stack overflow with binary output of programs. +* pam_faildelay: implemented parameter ranges validation. +* pam_listfile: changed to treat \r and \n exactly the same in configuration. +* pam_mkhomedir: hardened directory creation against timing attacks. + Please note that using *at functions leads to more open file handles + during creation. +* pam_namespace: fixed potential local DoS (CVE-2024-22365). +* pam_nologin: fixed file handling to prevent short reads. +* pam_pwhistory: helper binary is now built only if SELinux support is enabled. +* pam_pwhistory: implemented reliable usernames handling when remembering + passwords. +* pam_shells: changed to allow shell entries with absolute paths only. +* pam_succeed_if: fixed treating empty strings as numerical value 0. +* pam_unix: added support of disabled password aging. +* pam_unix: synchronized password aging with shadow. +* pam_unix: implemented string to number conversions validation. +* pam_unix: fixed truncation of very long user names. +* pam_unix: corrected rounds retrieval for configured encryption method. +* pam_unix: implemented reliable usernames handling when remembering passwords. +* pam_unix: changed to always run the helper to obtain shadow password entries. +* pam_unix: unix_update helper binary is now built only if SELinux support + is enabled. +* pam_unix: added audit support to unix_update helper. +* pam_userdb: added gdbm support. +* Multiple minor bug fixes, portability fixes, documentation improvements, + and translation updates. + Release 1.5.3 * configure: added options to configure stylesheets. * configure: added --enable-logind option to use logind instead of utmp @@ -186,7 +247,7 @@ Release 1.1.5 Release 1.1.4 * Add vietnamese translation -* pam_namepace: Add new functionality +* pam_namespace: Add new functionality * pam_securetty: Honour console= kernel option, add noconsole option * pam_limits: Add %group syntax, drop change_uid option, add set_all option * Lot of small bug fixes @@ -198,7 +259,7 @@ Release 1.1.3 * pam_namespace: Clean environment for child processes (CVE-2010-3853) * libpam: New interface to drop/regain privileges -* Drop root privilegs in pam_env, pam_mail and pam_xauth before +* Drop root privileges in pam_env, pam_mail and pam_xauth before accessing user files (CVE-2010-3430, CVE-2010-3431) * pam_unix: Add minlen option, change default from 6 to 0 * Documentation improvements @@ -11,21 +11,18 @@ prerequisite packages to be able to build the Linux-PAM. The script is targeted at Debian based Linux distributions so the package names and availability might differ on other distributions. -If you check out the sources from git, install Autotools and generate -configuration scripts, ensuring you have the minimum packages installed, -the ci scripts may help here: +First, configure the build using meson setup: - ./autogen.sh + mkdir build + meson setup <your-options> build Then compile: - ./configure --help | less - ./configure <your-options> - make + meson compile -C build To make sure everything was compiled correct, run: - make check + meson test -C build If a test fails, you should not continue to install this build. These tests require a suitable file /etc/pam.d/other; if necessary, @@ -43,21 +40,11 @@ Note, if you are worried - don't even think about doing the next line something goes wrong with installing the code from this version your box may stop working..) - make install + meson install -C build That said, please report problems to the bug reporting database at https://github.com/linux-pam/linux-pam/issues . -You can run additional checks after installing by executing - - make xtests - -as root. - -WARNING: Running "make xtests" can overwrite configuration data -or make the system insecure/unfunctional for a short time! -Backup all important data before! - -To regenerate manual pages from the XML source files you need the +To generate manual pages from the XML source files you need the docbook-xsl stylesheets in version 1.69.1 or newer, older versions had a bug which generates a broken layout. diff --git a/aclocal.m4 b/aclocal.m4 deleted file mode 100644 index 1df70401..00000000 --- a/aclocal.m4 +++ /dev/null @@ -1,1449 +0,0 @@ -# generated automatically by aclocal 1.16.3 -*- Autoconf -*- - -# Copyright (C) 1996-2020 Free Software Foundation, Inc. - -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 12 (pkg-config-0.29.2) - -dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. -dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl This program is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -dnl General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -dnl 02111-1307, USA. -dnl -dnl As a special exception to the GNU General Public License, if you -dnl distribute this file as part of a program that contains a -dnl configuration script generated by Autoconf, you may include it under -dnl the same distribution terms that you use for the rest of that -dnl program. - -dnl PKG_PREREQ(MIN-VERSION) -dnl ----------------------- -dnl Since: 0.29 -dnl -dnl Verify that the version of the pkg-config macros are at least -dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's -dnl installed version of pkg-config, this checks the developer's version -dnl of pkg.m4 when generating configure. -dnl -dnl To ensure that this macro is defined, also add: -dnl m4_ifndef([PKG_PREREQ], -dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) -dnl -dnl See the "Since" comment for each macro you use to see what version -dnl of the macros you require. -m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.2]) -m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, - [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) -])dnl PKG_PREREQ - -dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) -dnl ---------------------------------- -dnl Since: 0.16 -dnl -dnl Search for the pkg-config tool and set the PKG_CONFIG variable to -dnl first found in the path. Checks that the version of pkg-config found -dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is -dnl used since that's the first version where most current features of -dnl pkg-config existed. -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])dnl PKG_PROG_PKG_CONFIG - -dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -dnl ------------------------------------------------------------------- -dnl Since: 0.18 -dnl -dnl Check to see whether a particular set of modules exists. Similar to -dnl PKG_CHECK_MODULES(), but does not set variables or print errors. -dnl -dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -dnl only at the first occurence in configure.ac, so if the first place -dnl it's called might be skipped (such as if it is within an "if", you -dnl have to call PKG_CHECK_EXISTS manually -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -dnl --------------------------------------------- -dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting -dnl pkg_failed based on the result. -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])dnl _PKG_CONFIG - -dnl _PKG_SHORT_ERRORS_SUPPORTED -dnl --------------------------- -dnl Internal check to see if pkg-config supports short errors. -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])dnl _PKG_SHORT_ERRORS_SUPPORTED - - -dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -dnl [ACTION-IF-NOT-FOUND]) -dnl -------------------------------------------------------------- -dnl Since: 0.4.0 -dnl -dnl Note that if there is a possibility the first call to -dnl PKG_CHECK_MODULES might not happen, you should be sure to include an -dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $2]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])dnl PKG_CHECK_MODULES - - -dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -dnl [ACTION-IF-NOT-FOUND]) -dnl --------------------------------------------------------------------- -dnl Since: 0.29 -dnl -dnl Checks for existence of MODULES and gathers its build flags with -dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags -dnl and VARIABLE-PREFIX_LIBS from --libs. -dnl -dnl Note that if there is a possibility the first call to -dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to -dnl include an explicit call to PKG_PROG_PKG_CONFIG in your -dnl configure.ac. -AC_DEFUN([PKG_CHECK_MODULES_STATIC], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -_save_PKG_CONFIG=$PKG_CONFIG -PKG_CONFIG="$PKG_CONFIG --static" -PKG_CHECK_MODULES($@) -PKG_CONFIG=$_save_PKG_CONFIG[]dnl -])dnl PKG_CHECK_MODULES_STATIC - - -dnl PKG_INSTALLDIR([DIRECTORY]) -dnl ------------------------- -dnl Since: 0.27 -dnl -dnl Substitutes the variable pkgconfigdir as the location where a module -dnl should install pkg-config .pc files. By default the directory is -dnl $libdir/pkgconfig, but the default can be changed by passing -dnl DIRECTORY. The user can override through the --with-pkgconfigdir -dnl parameter. -AC_DEFUN([PKG_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([pkgconfigdir], - [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, - [with_pkgconfigdir=]pkg_default) -AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -])dnl PKG_INSTALLDIR - - -dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) -dnl -------------------------------- -dnl Since: 0.27 -dnl -dnl Substitutes the variable noarch_pkgconfigdir as the location where a -dnl module should install arch-independent pkg-config .pc files. By -dnl default the directory is $datadir/pkgconfig, but the default can be -dnl changed by passing DIRECTORY. The user can override through the -dnl --with-noarch-pkgconfigdir parameter. -AC_DEFUN([PKG_NOARCH_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([noarch-pkgconfigdir], - [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, - [with_noarch_pkgconfigdir=]pkg_default) -AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -])dnl PKG_NOARCH_INSTALLDIR - - -dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, -dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -dnl ------------------------------------------- -dnl Since: 0.28 -dnl -dnl Retrieves the value of the pkg-config variable for the given module. -AC_DEFUN([PKG_CHECK_VAR], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl - -_PKG_CONFIG([$1], [variable="][$3]["], [$2]) -AS_VAR_COPY([$1], [pkg_cv_][$1]) - -AS_VAR_IF([$1], [""], [$5], [$4])dnl -])dnl PKG_CHECK_VAR - -# Copyright (C) 2002-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.16' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.3], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.3])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2020 Free Software Foundation, Inc. -# -# 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. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2020 Free Software Foundation, Inc. -# -# 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. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2020 Free Software Foundation, Inc. -# -# 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. - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - AS_CASE([$CONFIG_FILES], - [*\'*], [eval set x "$CONFIG_FILES"], - [*], [set x $CONFIG_FILES]) - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`AS_DIRNAME(["$am_mf"])` - am_filepart=`AS_BASENAME(["$am_mf"])` - AM_RUN_LOG([cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles]) || am_rc=$? - done - if test $am_rc -ne 0; then - AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. If GNU make was not used, consider - re-running the configure script with MAKE="gmake" (or whatever is - necessary). You can also try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking).]) - fi - AS_UNSET([am_dirpart]) - AS_UNSET([am_filepart]) - AS_UNSET([am_mf]) - AS_UNSET([am_rc]) - rm -f conftest-deps.mk -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking is enabled. -# This creates each '.Po' and '.Plo' makefile fragment that we'll need in -# order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2020 Free Software Foundation, Inc. -# -# 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. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <https://www.gnu.org/software/coreutils/>. - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi -dnl The trailing newline in this macro's definition is deliberate, for -dnl backward compatibility and to allow trailing 'dnl'-style comments -dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2020 Free Software Foundation, Inc. -# -# 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. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Copyright (C) 1998-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_PROG_LEX -# ----------- -# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a -# "missing" invocation, for better error output. -AC_DEFUN([AM_PROG_LEX], -[AC_PREREQ([2.50])dnl -AC_REQUIRE([AM_MISSING_HAS_RUN])dnl -AC_REQUIRE([AC_PROG_LEX])dnl -if test "$LEX" = :; then - LEX=${am_missing_run}flex -fi]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check whether make has an 'include' directive that can support all -# the idioms we need for our automatic dependency tracking code. -AC_DEFUN([AM_MAKE_INCLUDE], -[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) - AS_CASE([$?:`cat confinc.out 2>/dev/null`], - ['0:this is the am__doit target'], - [AS_CASE([$s], - [BSD], [am__include='.include' am__quote='"'], - [am__include='include' am__quote=''])]) - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -AC_MSG_RESULT([${_am_result}]) -AC_SUBST([am__include])]) -AC_SUBST([am__quote])]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - MISSING="\${SHELL} '$am_aux_dir/missing'" -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2020 Free Software Foundation, Inc. -# -# 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. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1999-2020 Free Software Foundation, Inc. -# -# 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. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2020 Free Software Foundation, Inc. -# -# 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. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2020 Free Software Foundation, Inc. -# -# 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. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2020 Free Software Foundation, Inc. -# -# 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. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar <conftest.tar]) - AM_RUN_LOG([cat conftest.dir/file]) - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/attribute.m4]) -m4_include([m4/gettext.m4]) -m4_include([m4/iconv.m4]) -m4_include([m4/intlmacosx.m4]) -m4_include([m4/jh_path_xml_catalog.m4]) -m4_include([m4/ld-O1.m4]) -m4_include([m4/ld-as-needed.m4]) -m4_include([m4/ld-no-undefined.m4]) -m4_include([m4/ld-z-now.m4]) -m4_include([m4/lib-ld.m4]) -m4_include([m4/lib-link.m4]) -m4_include([m4/lib-prefix.m4]) -m4_include([m4/libprelude.m4]) -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) -m4_include([m4/nls.m4]) -m4_include([m4/po.m4]) -m4_include([m4/progtest.m4]) -m4_include([m4/warn_lang_flags.m4]) -m4_include([m4/warnings.m4]) diff --git a/aux/chdir_meson_build_subdir.sh b/aux/chdir_meson_build_subdir.sh new file mode 100755 index 00000000..69c32fcb --- /dev/null +++ b/aux/chdir_meson_build_subdir.sh @@ -0,0 +1,6 @@ +#!/bin/sh -efu + +exe=$1; shift +exe=$(readlink -ev -- "$exe") +cd "$MESON_BUILD_SUBDIR" +exec "$exe" "$@" diff --git a/aux/redir_exe.sh b/aux/redir_exe.sh new file mode 100755 index 00000000..3ab78e64 --- /dev/null +++ b/aux/redir_exe.sh @@ -0,0 +1,6 @@ +#!/bin/sh -efu +# stdin stdout ... + +exec < "$1"; shift +exec > "$1"; shift +exec "$@" diff --git a/build-aux/compile b/build-aux/compile deleted file mode 100755 index 23fcba01..00000000 --- a/build-aux/compile +++ /dev/null @@ -1,348 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand '-c -o'. - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1999-2020 Free Software Foundation, Inc. -# Written by Tom Tromey <tromey@cygnus.com>. -# -# 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, 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, see <https://www.gnu.org/licenses/>. - -# 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 maintained in Automake, please report -# bugs to <bug-automake@gnu.org> or send patches to -# <automake-patches@gnu.org>. - -nl=' -' - -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent tools from complaining about whitespace usage. -IFS=" "" $nl" - -file_conv= - -# func_file_conv build_file lazy -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN* | MSYS*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv/,$2, in - *,$file_conv,*) - ;; - mingw/*) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin/* | msys/*) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine/*) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - if test -f "$dir/lib$lib.a"; then - found=yes - lib=$dir/lib$lib.a - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - -# func_cl_wrapper cl arg... -# Adjust compile command to suit cl -func_cl_wrapper () -{ - # Assume a capable shell - lib_path= - shared=: - linker_opts= - for arg - do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - eat=1 - case $2 in - *.o | *.[oO][bB][jJ]) - func_file_conv "$2" - set x "$@" -Fo"$file" - shift - ;; - *) - func_file_conv "$2" - set x "$@" -Fe"$file" - shift - ;; - esac - ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; - -I*) - func_file_conv "${1#-I}" mingw - set x "$@" -I"$file" - shift - ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; - -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" - shift - ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; - -L*) - func_cl_dashL "${1#-L}" - ;; - -static) - shared=false - ;; - -Wl,*) - arg=${1#-Wl,} - save_ifs="$IFS"; IFS=',' - for flag in $arg; do - IFS="$save_ifs" - linker_opts="$linker_opts $flag" - done - IFS="$save_ifs" - ;; - -Xlinker) - eat=1 - linker_opts="$linker_opts $2" - ;; - -*) - set x "$@" "$1" - shift - ;; - *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) - func_file_conv "$1" - set x "$@" -Tp"$file" - shift - ;; - *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) - func_file_conv "$1" mingw - set x "$@" "$file" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift - done - if test -n "$linker_opts"; then - linker_opts="-link$linker_opts" - fi - exec "$@" $linker_opts - exit 1 -} - -eat= - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand '-c -o'. -Remove '-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file 'INSTALL'. - -Report bugs to <bug-automake@gnu.org>. -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ - icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) - func_cl_wrapper "$@" # Doesn't return... - ;; -esac - -ofile= -cfile= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - # So we strip '-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no '-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # '.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use '[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/build-aux/config.guess b/build-aux/config.guess deleted file mode 100755 index 69188da7..00000000 --- a/build-aux/config.guess +++ /dev/null @@ -1,1774 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2023 Free Software Foundation, Inc. - -# shellcheck disable=SC2006,SC2268 # see below for rationale - -timestamp='2023-01-01' - -# This file 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 3 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, see <https://www.gnu.org/licenses/>. -# -# 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 Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. -# -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess -# -# Please send patches to <config-patches@gnu.org>. - - -# The "shellcheck disable" line above the timestamp inhibits complaints -# about features and limitations of the classic Bourne shell that were -# superseded or lifted in POSIX. However, this script identifies a wide -# variety of pre-POSIX systems that do not have POSIX shells at all, and -# even some reasonably current systems (Solaris 10 as case-in-point) still -# have a pre-POSIX /bin/sh. - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2023 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -# Just in case it came from the environment. -GUESS= - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -tmp= -# shellcheck disable=SC2172 -trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 - -set_cc_for_build() { - # prevent multiple calls if $tmp is already set - test "$tmp" && return 0 - : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039,SC3028 - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } - dummy=$tmp/dummy - case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in - ,,) echo "int x;" > "$dummy.c" - for driver in cc gcc c89 c99 ; do - if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD=$driver - break - fi - done - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; - esac -} - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if test -f /.attbin/uname ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case $UNAME_SYSTEM in -Linux|GNU|GNU/*) - LIBC=unknown - - set_cc_for_build - cat <<-EOF > "$dummy.c" - #include <features.h> - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #elif defined(__GLIBC__) - LIBC=gnu - #else - #include <stdarg.h> - /* First heuristic to detect musl libc. */ - #ifdef __DEFINED_va_list - LIBC=musl - #endif - #endif - EOF - cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` - eval "$cc_set_libc" - - # Second heuristic to detect musl libc. - if [ "$LIBC" = unknown ] && - command -v ldd >/dev/null && - ldd --version 2>&1 | grep -q ^musl; then - LIBC=musl - fi - - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - if [ "$LIBC" = unknown ]; then - LIBC=gnu - fi - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ - /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ - echo unknown)` - case $UNAME_MACHINE_ARCH in - aarch64eb) machine=aarch64_be-unknown ;; - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown - ;; - *) machine=$UNAME_MACHINE_ARCH-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently (or will in the future) and ABI. - case $UNAME_MACHINE_ARCH in - earm*) - os=netbsdelf - ;; - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # Determine ABI tags. - case $UNAME_MACHINE_ARCH in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case $UNAME_VERSION in - Debian*) - release='-gnu' - ;; - *) - release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - GUESS=$machine-${os}${release}${abi-} - ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE - ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE - ;; - *:SecBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` - GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE - ;; - *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE - ;; - *:MidnightBSD:*:*) - GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE - ;; - *:ekkoBSD:*:*) - GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE - ;; - *:SolidBSD:*:*) - GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE - ;; - *:OS108:*:*) - GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE - ;; - macppc:MirBSD:*:*) - GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE - ;; - *:MirBSD:*:*) - GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE - ;; - *:Sortix:*:*) - GUESS=$UNAME_MACHINE-unknown-sortix - ;; - *:Twizzler:*:*) - GUESS=$UNAME_MACHINE-unknown-twizzler - ;; - *:Redox:*:*) - GUESS=$UNAME_MACHINE-unknown-redox - ;; - mips:OSF1:*.*) - GUESS=mips-dec-osf1 - ;; - alpha:OSF1:*:*) - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - trap '' 0 - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case $ALPHA_CPU_TYPE in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; - "EV4.5 (21064)") - UNAME_MACHINE=alpha ;; - "LCA4 (21066/21068)") - UNAME_MACHINE=alpha ;; - "EV5 (21164)") - UNAME_MACHINE=alphaev5 ;; - "EV5.6 (21164A)") - UNAME_MACHINE=alphaev56 ;; - "EV5.6 (21164PC)") - UNAME_MACHINE=alphapca56 ;; - "EV5.7 (21164PC)") - UNAME_MACHINE=alphapca57 ;; - "EV6 (21264)") - UNAME_MACHINE=alphaev6 ;; - "EV6.7 (21264A)") - UNAME_MACHINE=alphaev67 ;; - "EV6.8CB (21264C)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8AL (21264B)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8CX (21264D)") - UNAME_MACHINE=alphaev68 ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE=alphaev69 ;; - "EV7 (21364)") - UNAME_MACHINE=alphaev7 ;; - "EV7.9 (21364A)") - UNAME_MACHINE=alphaev79 ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - GUESS=$UNAME_MACHINE-dec-osf$OSF_REL - ;; - Amiga*:UNIX_System_V:4.0:*) - GUESS=m68k-unknown-sysv4 - ;; - *:[Aa]miga[Oo][Ss]:*:*) - GUESS=$UNAME_MACHINE-unknown-amigaos - ;; - *:[Mm]orph[Oo][Ss]:*:*) - GUESS=$UNAME_MACHINE-unknown-morphos - ;; - *:OS/390:*:*) - GUESS=i370-ibm-openedition - ;; - *:z/VM:*:*) - GUESS=s390-ibm-zvmoe - ;; - *:OS400:*:*) - GUESS=powerpc-ibm-os400 - ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - GUESS=arm-acorn-riscix$UNAME_RELEASE - ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - GUESS=arm-unknown-riscos - ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - GUESS=hppa1.1-hitachi-hiuxmpp - ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - case `(/bin/universe) 2>/dev/null` in - att) GUESS=pyramid-pyramid-sysv3 ;; - *) GUESS=pyramid-pyramid-bsd ;; - esac - ;; - NILE*:*:*:dcosx) - GUESS=pyramid-pyramid-svr4 - ;; - DRS?6000:unix:4.0:6*) - GUESS=sparc-icl-nx6 - ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) GUESS=sparc-icl-nx7 ;; - esac - ;; - s390x:SunOS:*:*) - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL - ;; - sun4H:SunOS:5.*:*) - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=sparc-hal-solaris2$SUN_REL - ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=sparc-sun-solaris2$SUN_REL - ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - GUESS=i386-pc-auroraux$UNAME_RELEASE - ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - set_cc_for_build - SUN_ARCH=i386 - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if test "$CC_FOR_BUILD" != no_compiler_found; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH=x86_64 - fi - fi - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=$SUN_ARCH-pc-solaris2$SUN_REL - ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=sparc-sun-solaris3$SUN_REL - ;; - sun4*:SunOS:*:*) - case `/usr/bin/arch -k` in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` - GUESS=sparc-sun-sunos$SUN_REL - ;; - sun3*:SunOS:*:*) - GUESS=m68k-sun-sunos$UNAME_RELEASE - ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case `/bin/arch` in - sun3) - GUESS=m68k-sun-sunos$UNAME_RELEASE - ;; - sun4) - GUESS=sparc-sun-sunos$UNAME_RELEASE - ;; - esac - ;; - aushp:SunOS:*:*) - GUESS=sparc-auspex-sunos$UNAME_RELEASE - ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - GUESS=m68k-atari-mint$UNAME_RELEASE - ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - GUESS=m68k-atari-mint$UNAME_RELEASE - ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - GUESS=m68k-atari-mint$UNAME_RELEASE - ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - GUESS=m68k-milan-mint$UNAME_RELEASE - ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - GUESS=m68k-hades-mint$UNAME_RELEASE - ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - GUESS=m68k-unknown-mint$UNAME_RELEASE - ;; - m68k:machten:*:*) - GUESS=m68k-apple-machten$UNAME_RELEASE - ;; - powerpc:machten:*:*) - GUESS=powerpc-apple-machten$UNAME_RELEASE - ;; - RISC*:Mach:*:*) - GUESS=mips-dec-mach_bsd4.3 - ;; - RISC*:ULTRIX:*:*) - GUESS=mips-dec-ultrix$UNAME_RELEASE - ;; - VAX*:ULTRIX*:*:*) - GUESS=vax-dec-ultrix$UNAME_RELEASE - ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - GUESS=clipper-intergraph-clix$UNAME_RELEASE - ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" -#ifdef __cplusplus -#include <stdio.h> /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && - dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`"$dummy" "$dummyarg"` && - { echo "$SYSTEM_NAME"; exit; } - GUESS=mips-mips-riscos$UNAME_RELEASE - ;; - Motorola:PowerMAX_OS:*:*) - GUESS=powerpc-motorola-powermax - ;; - Motorola:*:4.3:PL8-*) - GUESS=powerpc-harris-powermax - ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - GUESS=powerpc-harris-powermax - ;; - Night_Hawk:Power_UNIX:*:*) - GUESS=powerpc-harris-powerunix - ;; - m88k:CX/UX:7*:*) - GUESS=m88k-harris-cxux7 - ;; - m88k:*:4*:R4*) - GUESS=m88k-motorola-sysv4 - ;; - m88k:*:3*:R3*) - GUESS=m88k-motorola-sysv3 - ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 - then - if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ - test "$TARGET_BINARY_INTERFACE"x = x - then - GUESS=m88k-dg-dgux$UNAME_RELEASE - else - GUESS=m88k-dg-dguxbcs$UNAME_RELEASE - fi - else - GUESS=i586-dg-dgux$UNAME_RELEASE - fi - ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - GUESS=m88k-dolphin-sysv3 - ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - GUESS=m88k-motorola-sysv3 - ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - GUESS=m88k-tektronix-sysv3 - ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - GUESS=m68k-tektronix-bsd - ;; - *:IRIX*:*:*) - IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` - GUESS=mips-sgi-irix$IRIX_REL - ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id - ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - GUESS=i386-ibm-aix - ;; - ia64:AIX:*:*) - if test -x /usr/bin/oslevel ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=$UNAME_VERSION.$UNAME_RELEASE - fi - GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV - ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - #include <sys/systemcfg.h> - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` - then - GUESS=$SYSTEM_NAME - else - GUESS=rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - GUESS=rs6000-ibm-aix3.2.4 - else - GUESS=rs6000-ibm-aix3.2 - fi - ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if test -x /usr/bin/lslpp ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` - else - IBM_REV=$UNAME_VERSION.$UNAME_RELEASE - fi - GUESS=$IBM_ARCH-ibm-aix$IBM_REV - ;; - *:AIX:*:*) - GUESS=rs6000-ibm-aix - ;; - ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - GUESS=romp-ibm-bsd4.4 - ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to - ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - GUESS=rs6000-bull-bosx - ;; - DPX/2?00:B.O.S.:*:*) - GUESS=m68k-bull-sysv3 - ;; - 9000/[34]??:4.3bsd:1.*:*) - GUESS=m68k-hp-bsd - ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - GUESS=m68k-hp-bsd4.4 - ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` - case $UNAME_MACHINE in - 9000/31?) HP_ARCH=m68000 ;; - 9000/[34]??) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if test -x /usr/bin/getconf; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case $sc_cpu_version in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case $sc_kernel_bits in - 32) HP_ARCH=hppa2.0n ;; - 64) HP_ARCH=hppa2.0w ;; - '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 - esac ;; - esac - fi - if test "$HP_ARCH" = ""; then - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - - #define _HPUX_SOURCE - #include <stdlib.h> - #include <unistd.h> - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if test "$HP_ARCH" = hppa2.0w - then - set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH=hppa2.0w - else - HP_ARCH=hppa64 - fi - fi - GUESS=$HP_ARCH-hp-hpux$HPUX_REV - ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` - GUESS=ia64-hp-hpux$HPUX_REV - ;; - 3050*:HI-UX:*:*) - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - #include <unistd.h> - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && - { echo "$SYSTEM_NAME"; exit; } - GUESS=unknown-hitachi-hiuxwe2 - ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - GUESS=hppa1.1-hp-bsd - ;; - 9000/8??:4.3bsd:*:*) - GUESS=hppa1.0-hp-bsd - ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - GUESS=hppa1.0-hp-mpeix - ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - GUESS=hppa1.1-hp-osf - ;; - hp8??:OSF1:*:*) - GUESS=hppa1.0-hp-osf - ;; - i*86:OSF1:*:*) - if test -x /usr/sbin/sysversion ; then - GUESS=$UNAME_MACHINE-unknown-osf1mk - else - GUESS=$UNAME_MACHINE-unknown-osf1 - fi - ;; - parisc*:Lites*:*:*) - GUESS=hppa1.1-hp-lites - ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - GUESS=c1-convex-bsd - ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - GUESS=c34-convex-bsd - ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - GUESS=c38-convex-bsd - ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - GUESS=c4-convex-bsd - ;; - CRAY*Y-MP:*:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=ymp-cray-unicos$CRAY_REL - ;; - CRAY*[A-Z]90:*:*:*) - echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=t90-cray-unicos$CRAY_REL - ;; - CRAY*T3E:*:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=alphaev5-cray-unicosmk$CRAY_REL - ;; - CRAY*SV1:*:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=sv1-cray-unicos$CRAY_REL - ;; - *:UNICOS/mp:*:*) - CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` - GUESS=craynv-cray-unicosmp$CRAY_REL - ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} - ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} - ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE - ;; - sparc*:BSD/OS:*:*) - GUESS=sparc-unknown-bsdi$UNAME_RELEASE - ;; - *:BSD/OS:*:*) - GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE - ;; - arm:FreeBSD:*:*) - UNAME_PROCESSOR=`uname -p` - set_cc_for_build - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi - else - FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf - fi - ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case $UNAME_PROCESSOR in - amd64) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac - FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL - ;; - i*:CYGWIN*:*) - GUESS=$UNAME_MACHINE-pc-cygwin - ;; - *:MINGW64*:*) - GUESS=$UNAME_MACHINE-pc-mingw64 - ;; - *:MINGW*:*) - GUESS=$UNAME_MACHINE-pc-mingw32 - ;; - *:MSYS*:*) - GUESS=$UNAME_MACHINE-pc-msys - ;; - i*:PW*:*) - GUESS=$UNAME_MACHINE-pc-pw32 - ;; - *:SerenityOS:*:*) - GUESS=$UNAME_MACHINE-pc-serenity - ;; - *:Interix*:*) - case $UNAME_MACHINE in - x86) - GUESS=i586-pc-interix$UNAME_RELEASE - ;; - authenticamd | genuineintel | EM64T) - GUESS=x86_64-unknown-interix$UNAME_RELEASE - ;; - IA64) - GUESS=ia64-unknown-interix$UNAME_RELEASE - ;; - esac ;; - i*:UWIN*:*) - GUESS=$UNAME_MACHINE-pc-uwin - ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - GUESS=x86_64-pc-cygwin - ;; - prep*:SunOS:5.*:*) - SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` - GUESS=powerpcle-unknown-solaris2$SUN_REL - ;; - *:GNU:*:*) - # the GNU system - GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` - GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` - GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL - ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` - GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC - ;; - x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) - GUESS="$UNAME_MACHINE-pc-managarm-mlibc" - ;; - *:[Mm]anagarm:*:*) - GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" - ;; - *:Minix:*:*) - GUESS=$UNAME_MACHINE-unknown-minix - ;; - aarch64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - arm*:Linux:*:*) - set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi - else - GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf - fi - fi - ;; - avr32*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - cris:Linux:*:*) - GUESS=$UNAME_MACHINE-axis-linux-$LIBC - ;; - crisv32:Linux:*:*) - GUESS=$UNAME_MACHINE-axis-linux-$LIBC - ;; - e2k:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - frv:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - hexagon:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - i*86:Linux:*:*) - GUESS=$UNAME_MACHINE-pc-linux-$LIBC - ;; - ia64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - k1om:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - loongarch32:Linux:*:* | loongarch64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - m32r*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - m68*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - mips:Linux:*:* | mips64:Linux:*:*) - set_cc_for_build - IS_GLIBC=0 - test x"${LIBC}" = xgnu && IS_GLIBC=1 - sed 's/^ //' << EOF > "$dummy.c" - #undef CPU - #undef mips - #undef mipsel - #undef mips64 - #undef mips64el - #if ${IS_GLIBC} && defined(_ABI64) - LIBCABI=gnuabi64 - #else - #if ${IS_GLIBC} && defined(_ABIN32) - LIBCABI=gnuabin32 - #else - LIBCABI=${LIBC} - #endif - #endif - - #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 - CPU=mipsisa64r6 - #else - #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 - CPU=mipsisa32r6 - #else - #if defined(__mips64) - CPU=mips64 - #else - CPU=mips - #endif - #endif - #endif - - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - MIPS_ENDIAN=el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - MIPS_ENDIAN= - #else - MIPS_ENDIAN= - #endif - #endif -EOF - cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` - eval "$cc_set_vars" - test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } - ;; - mips64el:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - openrisc*:Linux:*:*) - GUESS=or1k-unknown-linux-$LIBC - ;; - or32:Linux:*:* | or1k*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - padre:Linux:*:*) - GUESS=sparc-unknown-linux-$LIBC - ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - GUESS=hppa64-unknown-linux-$LIBC - ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; - PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; - *) GUESS=hppa-unknown-linux-$LIBC ;; - esac - ;; - ppc64:Linux:*:*) - GUESS=powerpc64-unknown-linux-$LIBC - ;; - ppc:Linux:*:*) - GUESS=powerpc-unknown-linux-$LIBC - ;; - ppc64le:Linux:*:*) - GUESS=powerpc64le-unknown-linux-$LIBC - ;; - ppcle:Linux:*:*) - GUESS=powerpcle-unknown-linux-$LIBC - ;; - riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - s390:Linux:*:* | s390x:Linux:*:*) - GUESS=$UNAME_MACHINE-ibm-linux-$LIBC - ;; - sh64*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - sh*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - tile*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - vax:Linux:*:*) - GUESS=$UNAME_MACHINE-dec-linux-$LIBC - ;; - x86_64:Linux:*:*) - set_cc_for_build - CPU=$UNAME_MACHINE - LIBCABI=$LIBC - if test "$CC_FOR_BUILD" != no_compiler_found; then - ABI=64 - sed 's/^ //' << EOF > "$dummy.c" - #ifdef __i386__ - ABI=x86 - #else - #ifdef __ILP32__ - ABI=x32 - #endif - #endif -EOF - cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` - eval "$cc_set_abi" - case $ABI in - x86) CPU=i686 ;; - x32) LIBCABI=${LIBC}x32 ;; - esac - fi - GUESS=$CPU-pc-linux-$LIBCABI - ;; - xtensa*:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - GUESS=i386-sequent-sysv4 - ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION - ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - GUESS=$UNAME_MACHINE-pc-os2-emx - ;; - i*86:XTS-300:*:STOP) - GUESS=$UNAME_MACHINE-unknown-stop - ;; - i*86:atheos:*:*) - GUESS=$UNAME_MACHINE-unknown-atheos - ;; - i*86:syllable:*:*) - GUESS=$UNAME_MACHINE-pc-syllable - ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - GUESS=i386-unknown-lynxos$UNAME_RELEASE - ;; - i*86:*DOS:*:*) - GUESS=$UNAME_MACHINE-pc-msdosdjgpp - ;; - i*86:*:4.*:*) - UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL - else - GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL - fi - ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL - elif /bin/uname -X 2>/dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL - else - GUESS=$UNAME_MACHINE-pc-sysv32 - fi - ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configure will decide that - # this is a cross-build. - GUESS=i586-pc-msdosdjgpp - ;; - Intel:Mach:3*:*) - GUESS=i386-pc-mach3 - ;; - paragon:*:*:*) - GUESS=i860-intel-osf1 - ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 - fi - ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - GUESS=m68010-convergent-sysv - ;; - mc68k:UNIX:SYSTEM5:3.51m) - GUESS=m68k-convergent-sysv - ;; - M680?0:D-NIX:5.3:*) - GUESS=m68k-diab-dnix - ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - GUESS=m68k-unknown-lynxos$UNAME_RELEASE - ;; - mc68030:UNIX_System_V:4.*:*) - GUESS=m68k-atari-sysv4 - ;; - TSUNAMI:LynxOS:2.*:*) - GUESS=sparc-unknown-lynxos$UNAME_RELEASE - ;; - rs6000:LynxOS:2.*:*) - GUESS=rs6000-unknown-lynxos$UNAME_RELEASE - ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - GUESS=powerpc-unknown-lynxos$UNAME_RELEASE - ;; - SM[BE]S:UNIX_SV:*:*) - GUESS=mips-dde-sysv$UNAME_RELEASE - ;; - RM*:ReliantUNIX-*:*:*) - GUESS=mips-sni-sysv4 - ;; - RM*:SINIX-*:*:*) - GUESS=mips-sni-sysv4 - ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - GUESS=$UNAME_MACHINE-sni-sysv4 - else - GUESS=ns32k-sni-sysv - fi - ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says <Richard.M.Bartel@ccMail.Census.GOV> - GUESS=i586-unisys-sysv4 - ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes <hewes@openmarket.com>. - # How about differentiating between stratus architectures? -djm - GUESS=hppa1.1-stratus-sysv4 - ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - GUESS=i860-stratus-sysv4 - ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - GUESS=$UNAME_MACHINE-stratus-vos - ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - GUESS=hppa1.1-stratus-vos - ;; - mc68*:A/UX:*:*) - GUESS=m68k-apple-aux$UNAME_RELEASE - ;; - news*:NEWS-OS:6*:*) - GUESS=mips-sony-newsos6 - ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if test -d /usr/nec; then - GUESS=mips-nec-sysv$UNAME_RELEASE - else - GUESS=mips-unknown-sysv$UNAME_RELEASE - fi - ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - GUESS=powerpc-be-beos - ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - GUESS=powerpc-apple-beos - ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - GUESS=i586-pc-beos - ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - GUESS=i586-pc-haiku - ;; - ppc:Haiku:*:*) # Haiku running on Apple PowerPC - GUESS=powerpc-apple-haiku - ;; - *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) - GUESS=$UNAME_MACHINE-unknown-haiku - ;; - SX-4:SUPER-UX:*:*) - GUESS=sx4-nec-superux$UNAME_RELEASE - ;; - SX-5:SUPER-UX:*:*) - GUESS=sx5-nec-superux$UNAME_RELEASE - ;; - SX-6:SUPER-UX:*:*) - GUESS=sx6-nec-superux$UNAME_RELEASE - ;; - SX-7:SUPER-UX:*:*) - GUESS=sx7-nec-superux$UNAME_RELEASE - ;; - SX-8:SUPER-UX:*:*) - GUESS=sx8-nec-superux$UNAME_RELEASE - ;; - SX-8R:SUPER-UX:*:*) - GUESS=sx8r-nec-superux$UNAME_RELEASE - ;; - SX-ACE:SUPER-UX:*:*) - GUESS=sxace-nec-superux$UNAME_RELEASE - ;; - Power*:Rhapsody:*:*) - GUESS=powerpc-apple-rhapsody$UNAME_RELEASE - ;; - *:Rhapsody:*:*) - GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE - ;; - arm64:Darwin:*:*) - GUESS=aarch64-apple-darwin$UNAME_RELEASE - ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - if command -v xcode-select > /dev/null 2> /dev/null && \ - ! xcode-select --print-path > /dev/null 2> /dev/null ; then - # Avoid executing cc if there is no toolchain installed as - # cc will be a stub that puts up a graphical alert - # prompting the user to install developer tools. - CC_FOR_BUILD=no_compiler_found - else - set_cc_for_build - fi - if test "$CC_FOR_BUILD" != no_compiler_found; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi - elif test "$UNAME_PROCESSOR" = i386 ; then - # uname -m returns i386 or x86_64 - UNAME_PROCESSOR=$UNAME_MACHINE - fi - GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE - ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE - ;; - *:QNX:*:4*) - GUESS=i386-pc-qnx - ;; - NEO-*:NONSTOP_KERNEL:*:*) - GUESS=neo-tandem-nsk$UNAME_RELEASE - ;; - NSE-*:NONSTOP_KERNEL:*:*) - GUESS=nse-tandem-nsk$UNAME_RELEASE - ;; - NSR-*:NONSTOP_KERNEL:*:*) - GUESS=nsr-tandem-nsk$UNAME_RELEASE - ;; - NSV-*:NONSTOP_KERNEL:*:*) - GUESS=nsv-tandem-nsk$UNAME_RELEASE - ;; - NSX-*:NONSTOP_KERNEL:*:*) - GUESS=nsx-tandem-nsk$UNAME_RELEASE - ;; - *:NonStop-UX:*:*) - GUESS=mips-compaq-nonstopux - ;; - BS2000:POSIX*:*:*) - GUESS=bs2000-siemens-sysv - ;; - DS/*:UNIX_System_V:*:*) - GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE - ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "${cputype-}" = 386; then - UNAME_MACHINE=i386 - elif test "x${cputype-}" != x; then - UNAME_MACHINE=$cputype - fi - GUESS=$UNAME_MACHINE-unknown-plan9 - ;; - *:TOPS-10:*:*) - GUESS=pdp10-unknown-tops10 - ;; - *:TENEX:*:*) - GUESS=pdp10-unknown-tenex - ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - GUESS=pdp10-dec-tops20 - ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - GUESS=pdp10-xkl-tops20 - ;; - *:TOPS-20:*:*) - GUESS=pdp10-unknown-tops20 - ;; - *:ITS:*:*) - GUESS=pdp10-unknown-its - ;; - SEI:*:*:SEIUX) - GUESS=mips-sei-seiux$UNAME_RELEASE - ;; - *:DragonFly:*:*) - DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` - GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL - ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case $UNAME_MACHINE in - A*) GUESS=alpha-dec-vms ;; - I*) GUESS=ia64-dec-vms ;; - V*) GUESS=vax-dec-vms ;; - esac ;; - *:XENIX:*:SysV) - GUESS=i386-pc-xenix - ;; - i*86:skyos:*:*) - SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` - GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL - ;; - i*86:rdos:*:*) - GUESS=$UNAME_MACHINE-pc-rdos - ;; - i*86:Fiwix:*:*) - GUESS=$UNAME_MACHINE-pc-fiwix - ;; - *:AROS:*:*) - GUESS=$UNAME_MACHINE-unknown-aros - ;; - x86_64:VMkernel:*:*) - GUESS=$UNAME_MACHINE-unknown-esx - ;; - amd64:Isilon\ OneFS:*:*) - GUESS=x86_64-unknown-onefs - ;; - *:Unleashed:*:*) - GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE - ;; -esac - -# Do we have a guess based on uname results? -if test "x$GUESS" != x; then - echo "$GUESS" - exit -fi - -# No uname command or uname output not recognized. -set_cc_for_build -cat > "$dummy.c" <<EOF -#ifdef _SEQUENT_ -#include <sys/types.h> -#include <sys/utsname.h> -#endif -#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -#include <signal.h> -#if defined(_SIZE_T_) || defined(SIGLOST) -#include <sys/utsname.h> -#endif -#endif -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); -#endif - -#if defined (vax) -#if !defined (ultrix) -#include <sys/param.h> -#if defined (BSD) -#if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -#else -#if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -#else - printf ("vax-dec-bsd\n"); exit (0); -#endif -#endif -#else - printf ("vax-dec-bsd\n"); exit (0); -#endif -#else -#if defined(_SIZE_T_) || defined(SIGLOST) - struct utsname un; - uname (&un); - printf ("vax-dec-ultrix%s\n", un.release); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif -#endif -#endif -#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -#if defined(_SIZE_T_) || defined(SIGLOST) - struct utsname *un; - uname (&un); - printf ("mips-dec-ultrix%s\n", un.release); exit (0); -#else - printf ("mips-dec-ultrix\n"); exit (0); -#endif -#endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. -test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } - -echo "$0: unable to guess system type" >&2 - -case $UNAME_MACHINE:$UNAME_SYSTEM in - mips:Linux | mips64:Linux) - # If we got here on MIPS GNU/Linux, output extra information. - cat >&2 <<EOF - -NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize -the system type. Please install a C compiler and try again. -EOF - ;; -esac - -cat >&2 <<EOF - -This script (version $timestamp), has failed to recognize the -operating system you are using. If your script is old, overwrite *all* -copies of config.guess and config.sub with the latest versions from: - - https://git.savannah.gnu.org/cgit/config.git/plain/config.guess -and - https://git.savannah.gnu.org/cgit/config.git/plain/config.sub -EOF - -our_year=`echo $timestamp | sed 's,-.*,,'` -thisyear=`date +%Y` -# shellcheck disable=SC2003 -script_age=`expr "$thisyear" - "$our_year"` -if test "$script_age" -lt 3 ; then - cat >&2 <<EOF - -If $0 has already been updated, send the following data and any -information you think might be pertinent to config-patches@gnu.org to -provide the necessary information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = "$UNAME_MACHINE" -UNAME_RELEASE = "$UNAME_RELEASE" -UNAME_SYSTEM = "$UNAME_SYSTEM" -UNAME_VERSION = "$UNAME_VERSION" -EOF -fi - -exit 1 - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/build-aux/config.rpath b/build-aux/config.rpath deleted file mode 100755 index c38b914d..00000000 --- a/build-aux/config.rpath +++ /dev/null @@ -1,690 +0,0 @@ -#! /bin/sh -# Output a system dependent set of variables, describing how to set the -# run time search path of shared libraries in an executable. -# -# Copyright 1996-2013 Free Software Foundation, Inc. -# Taken from GNU libtool, 2001 -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# -# 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 -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld -# should be set by the caller. -# -# The set of defined variables is at the end of this script. - -# Known limitations: -# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer -# than 256 bytes, otherwise the compiler driver will dump core. The only -# known workaround is to choose shorter directory names for the build -# directory and/or the installation directory. - -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a -shrext=.so - -host="$1" -host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -# Code taken from libtool.m4's _LT_CC_BASENAME. - -for cc_temp in $CC""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` - -# Code taken from libtool.m4's _LT_COMPILER_PIC. - -wl= -if test "$GCC" = yes; then - wl='-Wl,' -else - case "$host_os" in - aix*) - wl='-Wl,' - ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) - ;; - hpux9* | hpux10* | hpux11*) - wl='-Wl,' - ;; - irix5* | irix6* | nonstopux*) - wl='-Wl,' - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - ecc*) - wl='-Wl,' - ;; - icc* | ifort*) - wl='-Wl,' - ;; - lf95*) - wl='-Wl,' - ;; - nagfor*) - wl='-Wl,-Wl,,' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - wl='-Wl,' - ;; - ccc*) - wl='-Wl,' - ;; - xl* | bgxl* | bgf* | mpixl*) - wl='-Wl,' - ;; - como) - wl='-lopt=' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) - wl= - ;; - *Sun\ C*) - wl='-Wl,' - ;; - esac - ;; - esac - ;; - newsos6) - ;; - *nto* | *qnx*) - ;; - osf3* | osf4* | osf5*) - wl='-Wl,' - ;; - rdos*) - ;; - solaris*) - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - wl='-Qoption ld ' - ;; - *) - wl='-Wl,' - ;; - esac - ;; - sunos4*) - wl='-Qoption ld ' - ;; - sysv4 | sysv4.2uw2* | sysv4.3*) - wl='-Wl,' - ;; - sysv4*MP*) - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - wl='-Wl,' - ;; - unicos*) - wl='-Wl,' - ;; - uts4*) - ;; - esac -fi - -# Code taken from libtool.m4's _LT_LINKER_SHLIBS. - -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no - -case "$host_os" in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # 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. - # Unlike libtool, we use -rpath here, not --rpath, since the documented - # option of GNU ld is called -rpath, not --rpath. - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - case "$host_os" in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - fi - ;; - amigaos*) - case "$host_cpu" in - powerpc) - ;; - m68k) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - cygwin* | mingw* | pw32* | cegcc*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - haiku*) - ;; - interix[3-9]*) - hardcode_direct=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - netbsd*) - ;; - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - else - ld_shlibs=no - fi - ;; - esac - ;; - sunos4*) - hardcode_direct=yes - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - esac - if test "$ld_shlibs" = no; then - hardcode_libdir_flag_spec= - fi -else - case "$host_os" in - aix3*) - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - else - aix_use_runtimelinking=no - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - fi - hardcode_direct=yes - hardcode_libdir_separator=':' - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - fi - # Begin _LT_AC_SYS_LIBPATH_AIX. - echo 'int main () { return 0; }' > conftest.c - ${CC} ${LDFLAGS} conftest.c -o conftest - aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - fi - if test -z "$aix_libpath"; then - aix_libpath="/usr/lib:/lib" - fi - rm -f conftest.c conftest - # End _LT_AC_SYS_LIBPATH_AIX. - if test "$aix_use_runtimelinking" = yes; then - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - else - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - fi - fi - ;; - amigaos*) - case "$host_cpu" in - powerpc) - ;; - m68k) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - bsdi[45]*) - ;; - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - libext=lib - ;; - darwin* | rhapsody*) - hardcode_direct=no - if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then - : - else - ld_shlibs=no - fi - ;; - dgux*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - freebsd2.2*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - freebsd2*) - hardcode_direct=yes - hardcode_minus_L=yes - ;; - freebsd* | dragonfly*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - hpux9*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - hpux10*) - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - hpux11*) - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - ;; - *) - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - irix5* | irix6* | nonstopux*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - netbsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - newsos6) - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - *nto* | *qnx*) - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - else - case "$host_os" in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - osf3*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - osf4* | osf5*) - if test "$GCC" = yes; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - # Both cc and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - solaris*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - sunos4*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - ;; - sysv4) - case $host_vendor in - sni) - hardcode_direct=yes # is this really true??? - ;; - siemens) - hardcode_direct=no - ;; - motorola) - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - ;; - sysv4.3*) - ;; - sysv4*MP*) - if test -d /usr/nec; then - ld_shlibs=yes - fi - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - ;; - sysv5* | sco3.2v5* | sco5v6*) - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator=':' - ;; - uts4*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - *) - ld_shlibs=no - ;; - esac -fi - -# Check dynamic linker characteristics -# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. -# Unlike libtool.m4, here we don't care about _all_ names of the library, but -# only about the one the linker finds when passed -lNAME. This is the last -# element of library_names_spec in libtool.m4, or possibly two of them if the -# linker has special search rules. -library_names_spec= # the last element of library_names_spec in libtool.m4 -libname_spec='lib$name' -case "$host_os" in - aix3*) - library_names_spec='$libname.a' - ;; - aix[4-9]*) - library_names_spec='$libname$shrext' - ;; - amigaos*) - case "$host_cpu" in - powerpc*) - library_names_spec='$libname$shrext' ;; - m68k) - library_names_spec='$libname.a' ;; - esac - ;; - beos*) - library_names_spec='$libname$shrext' - ;; - bsdi[45]*) - library_names_spec='$libname$shrext' - ;; - cygwin* | mingw* | pw32* | cegcc*) - shrext=.dll - library_names_spec='$libname.dll.a $libname.lib' - ;; - darwin* | rhapsody*) - shrext=.dylib - library_names_spec='$libname$shrext' - ;; - dgux*) - library_names_spec='$libname$shrext' - ;; - freebsd* | dragonfly*) - case "$host_os" in - freebsd[123]*) - library_names_spec='$libname$shrext$versuffix' ;; - *) - library_names_spec='$libname$shrext' ;; - esac - ;; - gnu*) - library_names_spec='$libname$shrext' - ;; - haiku*) - library_names_spec='$libname$shrext' - ;; - hpux9* | hpux10* | hpux11*) - case $host_cpu in - ia64*) - shrext=.so - ;; - hppa*64*) - shrext=.sl - ;; - *) - shrext=.sl - ;; - esac - library_names_spec='$libname$shrext' - ;; - interix[3-9]*) - library_names_spec='$libname$shrext' - ;; - irix5* | irix6* | nonstopux*) - library_names_spec='$libname$shrext' - case "$host_os" in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; - *) libsuff= shlibsuff= ;; - esac - ;; - esac - ;; - linux*oldld* | linux*aout* | linux*coff*) - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - library_names_spec='$libname$shrext' - ;; - knetbsd*-gnu) - library_names_spec='$libname$shrext' - ;; - netbsd*) - library_names_spec='$libname$shrext' - ;; - newsos6) - library_names_spec='$libname$shrext' - ;; - *nto* | *qnx*) - library_names_spec='$libname$shrext' - ;; - openbsd*) - library_names_spec='$libname$shrext$versuffix' - ;; - os2*) - libname_spec='$name' - shrext=.dll - library_names_spec='$libname.a' - ;; - osf3* | osf4* | osf5*) - library_names_spec='$libname$shrext' - ;; - rdos*) - ;; - solaris*) - library_names_spec='$libname$shrext' - ;; - sunos4*) - library_names_spec='$libname$shrext$versuffix' - ;; - sysv4 | sysv4.3*) - library_names_spec='$libname$shrext' - ;; - sysv4*MP*) - library_names_spec='$libname$shrext' - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - library_names_spec='$libname$shrext' - ;; - tpf*) - library_names_spec='$libname$shrext' - ;; - uts4*) - library_names_spec='$libname$shrext' - ;; -esac - -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' -escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` -shlibext=`echo "$shrext" | sed -e 's,^\.,,'` -escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` - -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" - -# Static library suffix (normally "a"). -libext="$libext" - -# Shared library suffix (normally "so"). -shlibext="$shlibext" - -# Format of library name prefix. -libname_spec="$escaped_libname_spec" - -# Library names that the linker finds when passed -lNAME. -library_names_spec="$escaped_library_names_spec" - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator="$hardcode_libdir_separator" - -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the -# resulting binary. -hardcode_direct="$hardcode_direct" - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L="$hardcode_minus_L" - -EOF diff --git a/build-aux/config.sub b/build-aux/config.sub deleted file mode 100755 index de4259e4..00000000 --- a/build-aux/config.sub +++ /dev/null @@ -1,1907 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2023 Free Software Foundation, Inc. - -# shellcheck disable=SC2006,SC2268 # see below for rationale - -timestamp='2023-01-21' - -# This file 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 3 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, see <https://www.gnu.org/licenses/>. -# -# 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 Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to <config-patches@gnu.org>. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -# The "shellcheck disable" line above the timestamp inhibits complaints -# about features and limitations of the classic Bourne shell that were -# superseded or lifted in POSIX. However, this script identifies a wide -# variety of pre-POSIX systems that do not have POSIX shells at all, and -# even some reasonably current systems (Solaris 10 as case-in-point) still -# have a pre-POSIX /bin/sh. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - -Canonicalize a configuration name. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2023 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo "$1" - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Split fields of configuration type -# shellcheck disable=SC2162 -saved_IFS=$IFS -IFS="-" read field1 field2 field3 field4 <<EOF -$1 -EOF -IFS=$saved_IFS - -# Separate into logical components for further validation -case $1 in - *-*-*-*-*) - echo Invalid configuration \`"$1"\': more than four components >&2 - exit 1 - ;; - *-*-*-*) - basic_machine=$field1-$field2 - basic_os=$field3-$field4 - ;; - *-*-*) - # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two - # parts - maybe_os=$field2-$field3 - case $maybe_os in - nto-qnx* | linux-* | uclinux-uclibc* \ - | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ - | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) - basic_machine=$field1 - basic_os=$maybe_os - ;; - android-linux) - basic_machine=$field1-unknown - basic_os=linux-android - ;; - *) - basic_machine=$field1-$field2 - basic_os=$field3 - ;; - esac - ;; - *-*) - # A lone config we happen to match not fitting any pattern - case $field1-$field2 in - decstation-3100) - basic_machine=mips-dec - basic_os= - ;; - *-*) - # Second component is usually, but not always the OS - case $field2 in - # Prevent following clause from handling this valid os - sun*os*) - basic_machine=$field1 - basic_os=$field2 - ;; - zephyr*) - basic_machine=$field1-unknown - basic_os=$field2 - ;; - # Manufacturers - dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ - | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ - | unicom* | ibm* | next | hp | isi* | apollo | altos* \ - | convergent* | ncr* | news | 32* | 3600* | 3100* \ - | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ - | ultra | tti* | harris | dolphin | highlevel | gould \ - | cbm | ns | masscomp | apple | axis | knuth | cray \ - | microblaze* | sim | cisco \ - | oki | wec | wrs | winbond) - basic_machine=$field1-$field2 - basic_os= - ;; - *) - basic_machine=$field1 - basic_os=$field2 - ;; - esac - ;; - esac - ;; - *) - # Convert single-component short-hands not valid as part of - # multi-component configurations. - case $field1 in - 386bsd) - basic_machine=i386-pc - basic_os=bsd - ;; - a29khif) - basic_machine=a29k-amd - basic_os=udi - ;; - adobe68k) - basic_machine=m68010-adobe - basic_os=scout - ;; - alliant) - basic_machine=fx80-alliant - basic_os= - ;; - altos | altos3068) - basic_machine=m68k-altos - basic_os= - ;; - am29k) - basic_machine=a29k-none - basic_os=bsd - ;; - amdahl) - basic_machine=580-amdahl - basic_os=sysv - ;; - amiga) - basic_machine=m68k-unknown - basic_os= - ;; - amigaos | amigados) - basic_machine=m68k-unknown - basic_os=amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - basic_os=sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - basic_os=sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - basic_os=bsd - ;; - aros) - basic_machine=i386-pc - basic_os=aros - ;; - aux) - basic_machine=m68k-apple - basic_os=aux - ;; - balance) - basic_machine=ns32k-sequent - basic_os=dynix - ;; - blackfin) - basic_machine=bfin-unknown - basic_os=linux - ;; - cegcc) - basic_machine=arm-unknown - basic_os=cegcc - ;; - convex-c1) - basic_machine=c1-convex - basic_os=bsd - ;; - convex-c2) - basic_machine=c2-convex - basic_os=bsd - ;; - convex-c32) - basic_machine=c32-convex - basic_os=bsd - ;; - convex-c34) - basic_machine=c34-convex - basic_os=bsd - ;; - convex-c38) - basic_machine=c38-convex - basic_os=bsd - ;; - cray) - basic_machine=j90-cray - basic_os=unicos - ;; - crds | unos) - basic_machine=m68k-crds - basic_os= - ;; - da30) - basic_machine=m68k-da30 - basic_os= - ;; - decstation | pmax | pmin | dec3100 | decstatn) - basic_machine=mips-dec - basic_os= - ;; - delta88) - basic_machine=m88k-motorola - basic_os=sysv3 - ;; - dicos) - basic_machine=i686-pc - basic_os=dicos - ;; - djgpp) - basic_machine=i586-pc - basic_os=msdosdjgpp - ;; - ebmon29k) - basic_machine=a29k-amd - basic_os=ebmon - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - basic_os=ose - ;; - gmicro) - basic_machine=tron-gmicro - basic_os=sysv - ;; - go32) - basic_machine=i386-pc - basic_os=go32 - ;; - h8300hms) - basic_machine=h8300-hitachi - basic_os=hms - ;; - h8300xray) - basic_machine=h8300-hitachi - basic_os=xray - ;; - h8500hms) - basic_machine=h8500-hitachi - basic_os=hms - ;; - harris) - basic_machine=m88k-harris - basic_os=sysv3 - ;; - hp300 | hp300hpux) - basic_machine=m68k-hp - basic_os=hpux - ;; - hp300bsd) - basic_machine=m68k-hp - basic_os=bsd - ;; - hppaosf) - basic_machine=hppa1.1-hp - basic_os=osf - ;; - hppro) - basic_machine=hppa1.1-hp - basic_os=proelf - ;; - i386mach) - basic_machine=i386-mach - basic_os=mach - ;; - isi68 | isi) - basic_machine=m68k-isi - basic_os=sysv - ;; - m68knommu) - basic_machine=m68k-unknown - basic_os=linux - ;; - magnum | m3230) - basic_machine=mips-mips - basic_os=sysv - ;; - merlin) - basic_machine=ns32k-utek - basic_os=sysv - ;; - mingw64) - basic_machine=x86_64-pc - basic_os=mingw64 - ;; - mingw32) - basic_machine=i686-pc - basic_os=mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - basic_os=mingw32ce - ;; - monitor) - basic_machine=m68k-rom68k - basic_os=coff - ;; - morphos) - basic_machine=powerpc-unknown - basic_os=morphos - ;; - moxiebox) - basic_machine=moxie-unknown - basic_os=moxiebox - ;; - msdos) - basic_machine=i386-pc - basic_os=msdos - ;; - msys) - basic_machine=i686-pc - basic_os=msys - ;; - mvs) - basic_machine=i370-ibm - basic_os=mvs - ;; - nacl) - basic_machine=le32-unknown - basic_os=nacl - ;; - ncr3000) - basic_machine=i486-ncr - basic_os=sysv4 - ;; - netbsd386) - basic_machine=i386-pc - basic_os=netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - basic_os=linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - basic_os=newsos - ;; - news1000) - basic_machine=m68030-sony - basic_os=newsos - ;; - necv70) - basic_machine=v70-nec - basic_os=sysv - ;; - nh3000) - basic_machine=m68k-harris - basic_os=cxux - ;; - nh[45]000) - basic_machine=m88k-harris - basic_os=cxux - ;; - nindy960) - basic_machine=i960-intel - basic_os=nindy - ;; - mon960) - basic_machine=i960-intel - basic_os=mon960 - ;; - nonstopux) - basic_machine=mips-compaq - basic_os=nonstopux - ;; - os400) - basic_machine=powerpc-ibm - basic_os=os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - basic_os=ose - ;; - os68k) - basic_machine=m68k-none - basic_os=os68k - ;; - paragon) - basic_machine=i860-intel - basic_os=osf - ;; - parisc) - basic_machine=hppa-unknown - basic_os=linux - ;; - psp) - basic_machine=mipsallegrexel-sony - basic_os=psp - ;; - pw32) - basic_machine=i586-unknown - basic_os=pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - basic_os=rdos - ;; - rdos32) - basic_machine=i386-pc - basic_os=rdos - ;; - rom68k) - basic_machine=m68k-rom68k - basic_os=coff - ;; - sa29200) - basic_machine=a29k-amd - basic_os=udi - ;; - sei) - basic_machine=mips-sei - basic_os=seiux - ;; - sequent) - basic_machine=i386-sequent - basic_os= - ;; - sps7) - basic_machine=m68k-bull - basic_os=sysv2 - ;; - st2000) - basic_machine=m68k-tandem - basic_os= - ;; - stratus) - basic_machine=i860-stratus - basic_os=sysv4 - ;; - sun2) - basic_machine=m68000-sun - basic_os= - ;; - sun2os3) - basic_machine=m68000-sun - basic_os=sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - basic_os=sunos4 - ;; - sun3) - basic_machine=m68k-sun - basic_os= - ;; - sun3os3) - basic_machine=m68k-sun - basic_os=sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - basic_os=sunos4 - ;; - sun4) - basic_machine=sparc-sun - basic_os= - ;; - sun4os3) - basic_machine=sparc-sun - basic_os=sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - basic_os=sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - basic_os=solaris2 - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - basic_os= - ;; - sv1) - basic_machine=sv1-cray - basic_os=unicos - ;; - symmetry) - basic_machine=i386-sequent - basic_os=dynix - ;; - t3e) - basic_machine=alphaev5-cray - basic_os=unicos - ;; - t90) - basic_machine=t90-cray - basic_os=unicos - ;; - toad1) - basic_machine=pdp10-xkl - basic_os=tops20 - ;; - tpf) - basic_machine=s390x-ibm - basic_os=tpf - ;; - udi29k) - basic_machine=a29k-amd - basic_os=udi - ;; - ultra3) - basic_machine=a29k-nyu - basic_os=sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - basic_os=none - ;; - vaxv) - basic_machine=vax-dec - basic_os=sysv - ;; - vms) - basic_machine=vax-dec - basic_os=vms - ;; - vsta) - basic_machine=i386-pc - basic_os=vsta - ;; - vxworks960) - basic_machine=i960-wrs - basic_os=vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - basic_os=vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - basic_os=vxworks - ;; - xbox) - basic_machine=i686-pc - basic_os=mingw32 - ;; - ymp) - basic_machine=ymp-cray - basic_os=unicos - ;; - *) - basic_machine=$1 - basic_os= - ;; - esac - ;; -esac - -# Decode 1-component or ad-hoc basic machines -case $basic_machine in - # Here we handle the default manufacturer of certain CPU types. It is in - # some cases the only manufacturer, in others, it is the most popular. - w89k) - cpu=hppa1.1 - vendor=winbond - ;; - op50n) - cpu=hppa1.1 - vendor=oki - ;; - op60c) - cpu=hppa1.1 - vendor=oki - ;; - ibm*) - cpu=i370 - vendor=ibm - ;; - orion105) - cpu=clipper - vendor=highlevel - ;; - mac | mpw | mac-mpw) - cpu=m68k - vendor=apple - ;; - pmac | pmac-mpw) - cpu=powerpc - vendor=apple - ;; - - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - cpu=m68000 - vendor=att - ;; - 3b*) - cpu=we32k - vendor=att - ;; - bluegene*) - cpu=powerpc - vendor=ibm - basic_os=cnk - ;; - decsystem10* | dec10*) - cpu=pdp10 - vendor=dec - basic_os=tops10 - ;; - decsystem20* | dec20*) - cpu=pdp10 - vendor=dec - basic_os=tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - cpu=m68k - vendor=motorola - ;; - dpx2*) - cpu=m68k - vendor=bull - basic_os=sysv3 - ;; - encore | umax | mmax) - cpu=ns32k - vendor=encore - ;; - elxsi) - cpu=elxsi - vendor=elxsi - basic_os=${basic_os:-bsd} - ;; - fx2800) - cpu=i860 - vendor=alliant - ;; - genix) - cpu=ns32k - vendor=ns - ;; - h3050r* | hiux*) - cpu=hppa1.1 - vendor=hitachi - basic_os=hiuxwe2 - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - cpu=m68000 - vendor=hp - ;; - hp9k3[2-9][0-9]) - cpu=m68k - vendor=hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - cpu=hppa1.1 - vendor=hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - i*86v32) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv32 - ;; - i*86v4*) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv4 - ;; - i*86v) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv - ;; - i*86sol2) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=solaris2 - ;; - j90 | j90-cray) - cpu=j90 - vendor=cray - basic_os=${basic_os:-unicos} - ;; - iris | iris4d) - cpu=mips - vendor=sgi - case $basic_os in - irix*) - ;; - *) - basic_os=irix4 - ;; - esac - ;; - miniframe) - cpu=m68000 - vendor=convergent - ;; - *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) - cpu=m68k - vendor=atari - basic_os=mint - ;; - news-3600 | risc-news) - cpu=mips - vendor=sony - basic_os=newsos - ;; - next | m*-next) - cpu=m68k - vendor=next - case $basic_os in - openstep*) - ;; - nextstep*) - ;; - ns2*) - basic_os=nextstep2 - ;; - *) - basic_os=nextstep3 - ;; - esac - ;; - np1) - cpu=np1 - vendor=gould - ;; - op50n-* | op60c-*) - cpu=hppa1.1 - vendor=oki - basic_os=proelf - ;; - pa-hitachi) - cpu=hppa1.1 - vendor=hitachi - basic_os=hiuxwe2 - ;; - pbd) - cpu=sparc - vendor=tti - ;; - pbb) - cpu=m68k - vendor=tti - ;; - pc532) - cpu=ns32k - vendor=pc532 - ;; - pn) - cpu=pn - vendor=gould - ;; - power) - cpu=power - vendor=ibm - ;; - ps2) - cpu=i386 - vendor=ibm - ;; - rm[46]00) - cpu=mips - vendor=siemens - ;; - rtpc | rtpc-*) - cpu=romp - vendor=ibm - ;; - sde) - cpu=mipsisa32 - vendor=sde - basic_os=${basic_os:-elf} - ;; - simso-wrs) - cpu=sparclite - vendor=wrs - basic_os=vxworks - ;; - tower | tower-32) - cpu=m68k - vendor=ncr - ;; - vpp*|vx|vx-*) - cpu=f301 - vendor=fujitsu - ;; - w65) - cpu=w65 - vendor=wdc - ;; - w89k-*) - cpu=hppa1.1 - vendor=winbond - basic_os=proelf - ;; - none) - cpu=none - vendor=none - ;; - leon|leon[3-9]) - cpu=sparc - vendor=$basic_machine - ;; - leon-*|leon[3-9]-*) - cpu=sparc - vendor=`echo "$basic_machine" | sed 's/-.*//'` - ;; - - *-*) - # shellcheck disable=SC2162 - saved_IFS=$IFS - IFS="-" read cpu vendor <<EOF -$basic_machine -EOF - IFS=$saved_IFS - ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - cpu=$basic_machine - vendor=pc - ;; - # These rules are duplicated from below for sake of the special case above; - # i.e. things that normalized to x86 arches should also default to "pc" - pc98) - cpu=i386 - vendor=pc - ;; - x64 | amd64) - cpu=x86_64 - vendor=pc - ;; - # Recognize the basic CPU types without company name. - *) - cpu=$basic_machine - vendor=unknown - ;; -esac - -unset -v basic_machine - -# Decode basic machines in the full and proper CPU-Company form. -case $cpu-$vendor in - # Here we handle the default manufacturer of certain CPU types in canonical form. It is in - # some cases the only manufacturer, in others, it is the most popular. - craynv-unknown) - vendor=cray - basic_os=${basic_os:-unicosmp} - ;; - c90-unknown | c90-cray) - vendor=cray - basic_os=${Basic_os:-unicos} - ;; - fx80-unknown) - vendor=alliant - ;; - romp-unknown) - vendor=ibm - ;; - mmix-unknown) - vendor=knuth - ;; - microblaze-unknown | microblazeel-unknown) - vendor=xilinx - ;; - rs6000-unknown) - vendor=ibm - ;; - vax-unknown) - vendor=dec - ;; - pdp11-unknown) - vendor=dec - ;; - we32k-unknown) - vendor=att - ;; - cydra-unknown) - vendor=cydrome - ;; - i370-ibm*) - vendor=ibm - ;; - orion-unknown) - vendor=highlevel - ;; - xps-unknown | xps100-unknown) - cpu=xps100 - vendor=honeywell - ;; - - # Here we normalize CPU types with a missing or matching vendor - armh-unknown | armh-alt) - cpu=armv7l - vendor=alt - basic_os=${basic_os:-linux-gnueabihf} - ;; - dpx20-unknown | dpx20-bull) - cpu=rs6000 - vendor=bull - basic_os=${basic_os:-bosx} - ;; - - # Here we normalize CPU types irrespective of the vendor - amd64-*) - cpu=x86_64 - ;; - blackfin-*) - cpu=bfin - basic_os=linux - ;; - c54x-*) - cpu=tic54x - ;; - c55x-*) - cpu=tic55x - ;; - c6x-*) - cpu=tic6x - ;; - e500v[12]-*) - cpu=powerpc - basic_os=${basic_os}"spe" - ;; - mips3*-*) - cpu=mips64 - ;; - ms1-*) - cpu=mt - ;; - m68knommu-*) - cpu=m68k - basic_os=linux - ;; - m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) - cpu=s12z - ;; - openrisc-*) - cpu=or32 - ;; - parisc-*) - cpu=hppa - basic_os=linux - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - cpu=i586 - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) - cpu=i686 - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - cpu=i686 - ;; - pentium4-*) - cpu=i786 - ;; - pc98-*) - cpu=i386 - ;; - ppc-* | ppcbe-*) - cpu=powerpc - ;; - ppcle-* | powerpclittle-*) - cpu=powerpcle - ;; - ppc64-*) - cpu=powerpc64 - ;; - ppc64le-* | powerpc64little-*) - cpu=powerpc64le - ;; - sb1-*) - cpu=mipsisa64sb1 - ;; - sb1el-*) - cpu=mipsisa64sb1el - ;; - sh5e[lb]-*) - cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` - ;; - spur-*) - cpu=spur - ;; - strongarm-* | thumb-*) - cpu=arm - ;; - tx39-*) - cpu=mipstx39 - ;; - tx39el-*) - cpu=mipstx39el - ;; - x64-*) - cpu=x86_64 - ;; - xscale-* | xscalee[bl]-*) - cpu=`echo "$cpu" | sed 's/^xscale/arm/'` - ;; - arm64-* | aarch64le-*) - cpu=aarch64 - ;; - - # Recognize the canonical CPU Types that limit and/or modify the - # company names they are paired with. - cr16-*) - basic_os=${basic_os:-elf} - ;; - crisv32-* | etraxfs*-*) - cpu=crisv32 - vendor=axis - ;; - cris-* | etrax*-*) - cpu=cris - vendor=axis - ;; - crx-*) - basic_os=${basic_os:-elf} - ;; - neo-tandem) - cpu=neo - vendor=tandem - ;; - nse-tandem) - cpu=nse - vendor=tandem - ;; - nsr-tandem) - cpu=nsr - vendor=tandem - ;; - nsv-tandem) - cpu=nsv - vendor=tandem - ;; - nsx-tandem) - cpu=nsx - vendor=tandem - ;; - mipsallegrexel-sony) - cpu=mipsallegrexel - vendor=sony - ;; - tile*-*) - basic_os=${basic_os:-linux-gnu} - ;; - - *) - # Recognize the canonical CPU types that are allowed with any - # company name. - case $cpu in - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | abacus \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ - | alphapca5[67] | alpha64pca5[67] \ - | am33_2.0 \ - | amdgcn \ - | arc | arceb | arc32 | arc64 \ - | arm | arm[lb]e | arme[lb] | armv* \ - | avr | avr32 \ - | asmjs \ - | ba \ - | be32 | be64 \ - | bfin | bpf | bs2000 \ - | c[123]* | c30 | [cjt]90 | c4x \ - | c8051 | clipper | craynv | csky | cydra \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | elxsi | epiphany \ - | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ - | h8300 | h8500 \ - | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i*86 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | loongarch32 | loongarch64 \ - | m32c | m32r | m32rle \ - | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ - | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ - | m88110 | m88k | maxq | mb | mcore | mep | metag \ - | microblaze | microblazeel \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64eb | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r3 | mipsisa32r3el \ - | mipsisa32r5 | mipsisa32r5el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r3 | mipsisa64r3el \ - | mipsisa64r5 | mipsisa64r5el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mmix \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nfp \ - | nios | nios2 | nios2eb | nios2el \ - | none | np1 | ns16k | ns32k | nvptx \ - | open8 \ - | or1k* \ - | or32 \ - | orion \ - | picochip \ - | pdp10 | pdp11 | pj | pjl | pn | power \ - | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ - | pru \ - | pyramid \ - | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ - | rl78 | romp | rs6000 | rx \ - | s390 | s390x \ - | score \ - | sh | shl \ - | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ - | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ - | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ - | spu \ - | tahoe \ - | thumbv7* \ - | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ - | tron \ - | ubicom32 \ - | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ - | vax \ - | visium \ - | w65 \ - | wasm32 | wasm64 \ - | we32k \ - | x86 | x86_64 | xc16x | xgate | xps100 \ - | xstormy16 | xtensa* \ - | ymp \ - | z8k | z80) - ;; - - *) - echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 - exit 1 - ;; - esac - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $vendor in - digital*) - vendor=dec - ;; - commodore*) - vendor=cbm - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if test x$basic_os != x -then - -# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just -# set os. -case $basic_os in - gnu/linux*) - kernel=linux - os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` - ;; - os2-emx) - kernel=os2 - os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` - ;; - nto-qnx*) - kernel=nto - os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` - ;; - *-*) - # shellcheck disable=SC2162 - saved_IFS=$IFS - IFS="-" read kernel os <<EOF -$basic_os -EOF - IFS=$saved_IFS - ;; - # Default OS when just kernel was specified - nto*) - kernel=nto - os=`echo "$basic_os" | sed -e 's|nto|qnx|'` - ;; - linux*) - kernel=linux - os=`echo "$basic_os" | sed -e 's|linux|gnu|'` - ;; - managarm*) - kernel=managarm - os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` - ;; - *) - kernel= - os=$basic_os - ;; -esac - -# Now, normalize the OS (knowing we just have one component, it's not a kernel, -# etc.) -case $os in - # First match some system type aliases that might get confused - # with valid system types. - # solaris* is a basic system type, with this one exception. - auroraux) - os=auroraux - ;; - bluegene*) - os=cnk - ;; - solaris1 | solaris1.*) - os=`echo "$os" | sed -e 's|solaris1|sunos4|'` - ;; - solaris) - os=solaris2 - ;; - unixware*) - os=sysv4.2uw - ;; - # es1800 is here to avoid being matched by es* (a different OS) - es1800*) - os=ose - ;; - # Some version numbers need modification - chorusos*) - os=chorusos - ;; - isc) - os=isc2.2 - ;; - sco6) - os=sco5v6 - ;; - sco5) - os=sco3.2v5 - ;; - sco4) - os=sco3.2v4 - ;; - sco3.2.[4-9]*) - os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'` - ;; - sco*v* | scout) - # Don't match below - ;; - sco*) - os=sco3.2v2 - ;; - psos*) - os=psos - ;; - qnx*) - os=qnx - ;; - hiux*) - os=hiuxwe2 - ;; - lynx*178) - os=lynxos178 - ;; - lynx*5) - os=lynxos5 - ;; - lynxos*) - # don't get caught up in next wildcard - ;; - lynx*) - os=lynxos - ;; - mac[0-9]*) - os=`echo "$os" | sed -e 's|mac|macos|'` - ;; - opened*) - os=openedition - ;; - os400*) - os=os400 - ;; - sunos5*) - os=`echo "$os" | sed -e 's|sunos5|solaris2|'` - ;; - sunos6*) - os=`echo "$os" | sed -e 's|sunos6|solaris3|'` - ;; - wince*) - os=wince - ;; - utek*) - os=bsd - ;; - dynix*) - os=bsd - ;; - acis*) - os=aos - ;; - atheos*) - os=atheos - ;; - syllable*) - os=syllable - ;; - 386bsd) - os=bsd - ;; - ctix* | uts*) - os=sysv - ;; - nova*) - os=rtmk-nova - ;; - ns2) - os=nextstep2 - ;; - # Preserve the version number of sinix5. - sinix5.*) - os=`echo "$os" | sed -e 's|sinix|sysv|'` - ;; - sinix*) - os=sysv4 - ;; - tpf*) - os=tpf - ;; - triton*) - os=sysv3 - ;; - oss*) - os=sysv3 - ;; - svr4*) - os=sysv4 - ;; - svr3) - os=sysv3 - ;; - sysvr4) - os=sysv4 - ;; - ose*) - os=ose - ;; - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) - os=mint - ;; - dicos*) - os=dicos - ;; - pikeos*) - # Until real need of OS specific support for - # particular features comes up, bare metal - # configurations are quite functional. - case $cpu in - arm*) - os=eabi - ;; - *) - os=elf - ;; - esac - ;; - *) - # No normalization, but not necessarily accepted, that comes below. - ;; -esac - -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -kernel= -case $cpu-$vendor in - score-*) - os=elf - ;; - spu-*) - os=elf - ;; - *-acorn) - os=riscix1.2 - ;; - arm*-rebel) - kernel=linux - os=gnu - ;; - arm*-semi) - os=aout - ;; - c4x-* | tic4x-*) - os=coff - ;; - c8051-*) - os=elf - ;; - clipper-intergraph) - os=clix - ;; - hexagon-*) - os=elf - ;; - tic54x-*) - os=coff - ;; - tic55x-*) - os=coff - ;; - tic6x-*) - os=coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=tops20 - ;; - pdp11-*) - os=none - ;; - *-dec | vax-*) - os=ultrix4.2 - ;; - m68*-apollo) - os=domain - ;; - i386-sun) - os=sunos4.0.2 - ;; - m68000-sun) - os=sunos3 - ;; - m68*-cisco) - os=aout - ;; - mep-*) - os=elf - ;; - mips*-cisco) - os=elf - ;; - mips*-*) - os=elf - ;; - or32-*) - os=coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=sysv3 - ;; - sparc-* | *-sun) - os=sunos4.1.1 - ;; - pru-*) - os=elf - ;; - *-be) - os=beos - ;; - *-ibm) - os=aix - ;; - *-knuth) - os=mmixware - ;; - *-wec) - os=proelf - ;; - *-winbond) - os=proelf - ;; - *-oki) - os=proelf - ;; - *-hp) - os=hpux - ;; - *-hitachi) - os=hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=sysv - ;; - *-cbm) - os=amigaos - ;; - *-dg) - os=dgux - ;; - *-dolphin) - os=sysv3 - ;; - m68k-ccur) - os=rtu - ;; - m88k-omron*) - os=luna - ;; - *-next) - os=nextstep - ;; - *-sequent) - os=ptx - ;; - *-crds) - os=unos - ;; - *-ns) - os=genix - ;; - i370-*) - os=mvs - ;; - *-gould) - os=sysv - ;; - *-highlevel) - os=bsd - ;; - *-encore) - os=bsd - ;; - *-sgi) - os=irix - ;; - *-siemens) - os=sysv4 - ;; - *-masscomp) - os=rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=uxpv - ;; - *-rom68k) - os=coff - ;; - *-*bug) - os=coff - ;; - *-apple) - os=macos - ;; - *-atari*) - os=mint - ;; - *-wrs) - os=vxworks - ;; - *) - os=none - ;; -esac - -fi - -# Now, validate our (potentially fixed-up) OS. -case $os in - # Sometimes we do "kernel-libc", so those need to count as OSes. - musl* | newlib* | relibc* | uclibc*) - ;; - # Likewise for "kernel-abi" - eabi* | gnueabi*) - ;; - # VxWorks passes extra cpu info in the 4th filed. - simlinux | simwindows | spe) - ;; - # Now accept the basic system types. - # The portable systems comes first. - # Each alternative MUST end in a * to match a version number. - gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ - | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ - | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ - | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ - | hiux* | abug | nacl* | netware* | windows* \ - | os9* | macos* | osx* | ios* \ - | mpw* | magic* | mmixware* | mon960* | lnews* \ - | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ - | aos* | aros* | cloudabi* | sortix* | twizzler* \ - | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ - | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ - | mirbsd* | netbsd* | dicos* | openedition* | ose* \ - | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ - | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ - | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ - | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ - | udi* | lites* | ieee* | go32* | aux* | hcos* \ - | chorusrdb* | cegcc* | glidix* | serenity* \ - | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ - | midipix* | mingw32* | mingw64* | mint* \ - | uxpv* | beos* | mpeix* | udk* | moxiebox* \ - | interix* | uwin* | mks* | rhapsody* | darwin* \ - | openstep* | oskit* | conix* | pw32* | nonstopux* \ - | storm-chaos* | tops10* | tenex* | tops20* | its* \ - | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ - | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ - | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ - | skyos* | haiku* | rdos* | toppers* | drops* | es* \ - | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ - | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ - | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ - | fiwix* | mlibc* ) - ;; - # This one is extra strict with allowed versions - sco3.2v2 | sco3.2v[4-9]* | sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - ;; - none) - ;; - kernel* ) - # Restricted further below - ;; - *) - echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 - exit 1 - ;; -esac - -# As a final step for OS-related things, validate the OS-kernel combination -# (given a valid OS), if there is a kernel. -case $kernel-$os in - linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ - | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) - ;; - uclinux-uclibc* ) - ;; - managarm-mlibc* | managarm-kernel* ) - ;; - -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) - # These are just libc implementations, not actual OSes, and thus - # require a kernel. - echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 - exit 1 - ;; - -kernel* ) - echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 - exit 1 - ;; - *-kernel* ) - echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 - exit 1 - ;; - kfreebsd*-gnu* | kopensolaris*-gnu*) - ;; - vxworks-simlinux | vxworks-simwindows | vxworks-spe) - ;; - nto-qnx*) - ;; - os2-emx) - ;; - *-eabi* | *-gnueabi*) - ;; - -*) - # Blank kernel with real OS is always fine. - ;; - *-*) - echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 - exit 1 - ;; -esac - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -case $vendor in - unknown) - case $cpu-$os in - *-riscix*) - vendor=acorn - ;; - *-sunos*) - vendor=sun - ;; - *-cnk* | *-aix*) - vendor=ibm - ;; - *-beos*) - vendor=be - ;; - *-hpux*) - vendor=hp - ;; - *-mpeix*) - vendor=hp - ;; - *-hiux*) - vendor=hitachi - ;; - *-unos*) - vendor=crds - ;; - *-dgux*) - vendor=dg - ;; - *-luna*) - vendor=omron - ;; - *-genix*) - vendor=ns - ;; - *-clix*) - vendor=intergraph - ;; - *-mvs* | *-opened*) - vendor=ibm - ;; - *-os400*) - vendor=ibm - ;; - s390-* | s390x-*) - vendor=ibm - ;; - *-ptx*) - vendor=sequent - ;; - *-tpf*) - vendor=ibm - ;; - *-vxsim* | *-vxworks* | *-windiss*) - vendor=wrs - ;; - *-aux*) - vendor=apple - ;; - *-hms*) - vendor=hitachi - ;; - *-mpw* | *-macos*) - vendor=apple - ;; - *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) - vendor=atari - ;; - *-vos*) - vendor=stratus - ;; - esac - ;; -esac - -echo "$cpu-$vendor-${kernel:+$kernel-}$os" -exit - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/build-aux/depcomp b/build-aux/depcomp deleted file mode 100755 index 6b391623..00000000 --- a/build-aux/depcomp +++ /dev/null @@ -1,791 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1999-2020 Free Software Foundation, Inc. - -# 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, 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, see <https://www.gnu.org/licenses/>. - -# 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. - -# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by 'PROGRAMS ARGS'. - object Object file output by 'PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputting dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to <bug-automake@gnu.org>. -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -# Get the directory component of the given path, and save it in the -# global variables '$dir'. Note that this directory component will -# be either empty or ending with a '/' character. This is deliberate. -set_dir_from () -{ - case $1 in - */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; - *) dir=;; - esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ - base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ - echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ - # If the compiler actually managed to produce a dependency file, - # post-process it. - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependency.h'. - # Do two passes, one to just change these to - # $object: dependency.h - # and one to simply output - # dependency.h: - # which is needed to avoid the deleted-header problem. - { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" - sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" - } > "$depfile" - rm -f "$tmpdepfile" - else - make_dummy_depfile - fi -} - -# A tabulation character. -tab=' ' -# A newline character. -nl=' -' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Avoid interferences from the environment. -gccflag= dashmflag= - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp -fi - -if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 -fi - -if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. - gccflag=-qmakedep=gcc,-MF - depmode=gcc -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above). -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). Also, it might not be -## supported by the other compilers which use the 'gcc' depmode. -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The second -e expression handles DOS-style file names with drive - # letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the "deleted header file" problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. -## Some versions of gcc put a space before the ':'. On the theory -## that the space means something, we add a space to the output as -## well. hp depmode also adds that space, but also prefixes the VPATH -## to the object. Take care to not repeat it in the output. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like '#:fec' to the end of the - # dependency line. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ - | tr "$nl" ' ' >> "$depfile" - echo >> "$depfile" - # The second pass generates a dummy entry for each header file. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" - ;; - -xlc) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts '$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u - "$@" -Wc,-M - else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u - "$@" -M - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - aix_post_process_depfile - ;; - -tcc) - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 - # FIXME: That version still under development at the moment of writing. - # Make that this statement remains true also for stable, released - # versions. - # It will wrap lines (doesn't matter whether long or short) with a - # trailing '\', as in: - # - # foo.o : \ - # foo.c \ - # foo.h \ - # - # It will put a trailing '\' even on the last line, and will use leading - # spaces rather than leading tabs (at least since its commit 0394caf7 - # "Emit spaces for -MD"). - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. - # We have to change lines of the first kind to '$object: \'. - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" - # And for each line of the second kind, we have to emit a 'dep.h:' - # dummy dependency, to avoid the deleted-header problem. - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" - rm -f "$tmpdepfile" - ;; - -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file. A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) - # Portland's C compiler understands '-MD'. - # Will always output deps to 'file.d' where file is the root name of the - # source file under compilation, even if file resides in a subdirectory. - # The object file name does not affect the name of the '.d' file. - # pgcc 10.2 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\' : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - set_dir_from "$object" - # Use the source, not the object, to determine the base name, since - # that's sadly what pgcc will do too. - set_base_from "$source" - tmpdepfile=$base.d - - # For projects that build the same source file twice into different object - # files, the pgcc approach of using the *source* file root name can cause - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile. - lockdir=$base.d-lock - trap " - echo '$0: caught signal, cleaning up...' >&2 - rmdir '$lockdir' - exit 1 - " 1 2 13 15 - numtries=100 - i=$numtries - while test $i -gt 0; do - # mkdir is a portable test-and-set. - if mkdir "$lockdir" 2>/dev/null; then - # This process acquired the lock. - "$@" -MD - stat=$? - # Release the lock. - rmdir "$lockdir" - break - else - # If the lock is being held by a different process, wait - # until the winning process is done or we timeout. - while test -d "$lockdir" && test $i -gt 0; do - sleep 1 - i=`expr $i - 1` - done - fi - i=`expr $i - 1` - done - trap - 1 2 13 15 - if test $i -le 0; then - echo "$0: failed to acquire lock after $numtries attempts" >&2 - echo "$0: check lockdir '$lockdir'" >&2 - exit 1 - fi - - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" - # Add 'dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - set_dir_from "$object" - set_base_from "$object" - - if test "$libtool" = yes; then - # Libtool generates 2 separate objects for the 2 libraries. These - # two compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir$base.o.d # libtool 1.5 - tmpdepfile2=$dir.libs/$base.o.d # Likewise. - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - # Same post-processing that is required for AIX mode. - aix_post_process_depfile - ;; - -msvc7) - if test "$libtool" = yes; then - showIncludes=-Wc,-showIncludes - else - showIncludes=-showIncludes - fi - "$@" $showIncludes > "$tmpdepfile" - stat=$? - grep -v '^Note: including file: ' "$tmpdepfile" - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The first sed program below extracts the file names and escapes - # backslashes for cygpath. The second sed program outputs the file - # name when reading, but also accumulates all include files in the - # hold buffer in order to output them again at the end. This only - # works with sed implementations that can handle large buffers. - sed < "$tmpdepfile" -n ' -/^Note: including file: *\(.*\)/ { - s//\1/ - s/\\/\\\\/g - p -}' | $cygpath_u | sort -u | sed -n ' -s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p -s/.\(.*\) \\/\1:/ -H -$ { - s/.*/'"$tab"'/ - G - p -}' >> "$depfile" - echo >> "$depfile" # make sure the fragment doesn't end with a backslash - rm -f "$tmpdepfile" - ;; - -msvc7msys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for ':' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. - "$@" $dashmflag | - sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this sed invocation - # correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no eat=no - for arg - do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - if test $eat = yes; then - eat=no - continue - fi - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -arch) - eat=yes ;; - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix=`echo "$object" | sed 's/^.*\././'` - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - # makedepend may prepend the VPATH from the source file name to the object. - # No need to regex-escape $object, excess matching of '.' is harmless. - sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process the last invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed '1,2d' "$tmpdepfile" \ - | tr ' ' "$nl" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E \ - | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - | sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - IFS=" " - for arg - do - case "$arg" in - -o) - shift - ;; - $object) - shift - ;; - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" - echo "$tab" >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvcmsys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/build-aux/install-sh b/build-aux/install-sh deleted file mode 100755 index ec298b53..00000000 --- a/build-aux/install-sh +++ /dev/null @@ -1,541 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2020-11-14.01; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -tab=' ' -nl=' -' -IFS=" $tab$nl" - -# Set DOITPROG to "echo" to test this script. - -doit=${DOITPROG-} -doit_exec=${doit:-exec} - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -# Create dirs (including intermediate dirs) using mode 755. -# This is like GNU 'install' as of coreutils 8.32 (2020). -mkdir_umask=22 - -backupsuffix= -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -is_target_a_directory=possibly - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -p pass -p to $cpprog. - -s $stripprog installed files. - -S SUFFIX attempt to back up existing files, with suffix SUFFIX. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG - -By default, rm is invoked with -f; when overridden with RMPROG, -it's up to you to specify -f if you want it. - -If -S is not specified, no backups are attempted. - -Email bug reports to bug-automake@gnu.org. -Automake home page: https://www.gnu.org/software/automake/ -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -p) cpprog="$cpprog -p";; - - -s) stripcmd=$stripprog;; - - -S) backupsuffix="$2" - shift;; - - -t) - is_target_a_directory=always - dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; - - -T) is_target_a_directory=never;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -# We allow the use of options -d and -T together, by making -d -# take the precedence; this is for compatibility with GNU install. - -if test -n "$dir_arg"; then - if test -n "$dst_arg"; then - echo "$0: target directory not allowed when installing a directory." >&2 - exit 1 - fi -fi - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call 'install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - if test $# -gt 1 || test "$is_target_a_directory" = always; then - if test ! -d "$dst_arg"; then - echo "$0: $dst_arg: Is not a directory." >&2 - exit 1 - fi - fi -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names problematic for 'test' and other utilities. - case $src in - -* | [=\(\)!]) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - # Don't chown directories that already exist. - if test $dstdir_status = 0; then - chowncmd="" - fi - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - dst=$dst_arg - - # If destination is a directory, append the input filename. - if test -d "$dst"; then - if test "$is_target_a_directory" = never; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dstbase=`basename "$src"` - case $dst in - */) dst=$dst$dstbase;; - *) dst=$dst/$dstbase;; - esac - dstdir_status=0 - else - dstdir=`dirname "$dst"` - test -d "$dstdir" - dstdir_status=$? - fi - fi - - case $dstdir in - */) dstdirslash=$dstdir;; - *) dstdirslash=$dstdir/;; - esac - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - # The $RANDOM variable is not portable (e.g., dash). Use it - # here however when possible just to lower collision chance. - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - - trap ' - ret=$? - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null - exit $ret - ' 0 - - # Because "mkdir -p" follows existing symlinks and we likely work - # directly in world-writeable /tmp, make sure that the '$tmpdir' - # directory is successfully created first before we actually test - # 'mkdir -p'. - if (umask $mkdir_umask && - $mkdirprog $mkdir_mode "$tmpdir" && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - test_tmpdir="$tmpdir/a" - ls_ld_tmpdir=`ls -ld "$test_tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null - fi - trap '' 0;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; - esac - - oIFS=$IFS - IFS=/ - set -f - set fnord $dstdir - shift - set +f - IFS=$oIFS - - prefixes= - - for d - do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=${dstdirslash}_inst.$$_ - rmtmp=${dstdirslash}_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && - { test -z "$stripcmd" || { - # Create $dsttmp read-write so that cp doesn't create it read-only, - # which would cause strip to fail. - if test -z "$doit"; then - : >"$dsttmp" # No need to fork-exec 'touch'. - else - $doit touch "$dsttmp" - fi - } - } && - $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - set +f && - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # If $backupsuffix is set, and the file being installed - # already exists, attempt a backup. Don't worry if it fails, - # e.g., if mv doesn't support -f. - if test -n "$backupsuffix" && test -f "$dst"; then - $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null - fi - - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh deleted file mode 100644 index 0e7f0e78..00000000 --- a/build-aux/ltmain.sh +++ /dev/null @@ -1,11409 +0,0 @@ -#! /usr/bin/env sh -## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2019-02-19.15 - -# libtool (GNU libtool) 2.4.7 -# Provide generalized library-building support services. -# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 - -# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool 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. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool 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, see <http://www.gnu.org/licenses/>. - - -PROGRAM=libtool -PACKAGE=libtool -VERSION=2.4.7 -package_revision=2.4.7 - - -## ------ ## -## Usage. ## -## ------ ## - -# Run './libtool --help' for help with using this script from the -# command line. - - -## ------------------------------- ## -## User overridable command paths. ## -## ------------------------------- ## - -# After configure completes, it has a better idea of some of the -# shell tools we need than the defaults used by the functions shared -# with bootstrap, so set those here where they can still be over- -# ridden by the user, but otherwise take precedence. - -: ${AUTOCONF="autoconf"} -: ${AUTOMAKE="automake"} - - -## -------------------------- ## -## Source external libraries. ## -## -------------------------- ## - -# Much of our low-level functionality needs to be sourced from external -# libraries, which are installed to $pkgauxdir. - -# Set a version string for this script. -scriptversion=2019-02-19.15; # UTC - -# General shell script boiler plate, and helper functions. -# Written by Gary V. Vaughan, 2004 - -# This is free software. There is NO warranty; not even for -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# -# Copyright (C) 2004-2019 Bootstrap Authors -# -# This file is dual licensed under the terms of the MIT license -# <https://opensource.org/license/MIT>, and GPL version 2 or later -# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of -# these licenses when using or redistributing this software or any of -# the files within it. See the URLs above, or the file `LICENSE` -# included in the Bootstrap distribution for the full license texts. - -# Please report bugs or propose patches to: -# <https://github.com/gnulib-modules/bootstrap/issues> - - -## ------ ## -## Usage. ## -## ------ ## - -# Evaluate this file near the top of your script to gain access to -# the functions and variables defined here: -# -# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh -# -# If you need to override any of the default environment variable -# settings, do that before evaluating this file. - - -## -------------------- ## -## Shell normalisation. ## -## -------------------- ## - -# Some shells need a little help to be as Bourne compatible as possible. -# Before doing anything else, make sure all that help has been provided! - -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac -fi - -# NLS nuisances: We save the old values in case they are required later. -_G_user_locale= -_G_safe_locale= -for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test set = \"\${$_G_var+set}\"; then - save_$_G_var=\$$_G_var - $_G_var=C - export $_G_var - _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" - _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" - fi" -done - -# Make sure IFS has a sensible default -sp=' ' -nl=' -' -IFS="$sp $nl" - -# There are apparently some retarded systems that use ';' as a PATH separator! -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# func_unset VAR -# -------------- -# Portably unset VAR. -# In some shells, an 'unset VAR' statement leaves a non-zero return -# status if VAR is already unset, which might be problematic if the -# statement is used at the end of a function (thus poisoning its return -# value) or when 'set -e' is active (causing even a spurious abort of -# the script in this case). -func_unset () -{ - { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } -} - - -# Make sure CDPATH doesn't cause `cd` commands to output the target dir. -func_unset CDPATH - -# Make sure ${,E,F}GREP behave sanely. -func_unset GREP_OPTIONS - - -## ------------------------- ## -## Locate command utilities. ## -## ------------------------- ## - - -# func_executable_p FILE -# ---------------------- -# Check that FILE is an executable regular file. -func_executable_p () -{ - test -f "$1" && test -x "$1" -} - - -# func_path_progs PROGS_LIST CHECK_FUNC [PATH] -# -------------------------------------------- -# Search for either a program that responds to --version with output -# containing "GNU", or else returned by CHECK_FUNC otherwise, by -# trying all the directories in PATH with each of the elements of -# PROGS_LIST. -# -# CHECK_FUNC should accept the path to a candidate program, and -# set $func_check_prog_result if it truncates its output less than -# $_G_path_prog_max characters. -func_path_progs () -{ - _G_progs_list=$1 - _G_check_func=$2 - _G_PATH=${3-"$PATH"} - - _G_path_prog_max=0 - _G_path_prog_found=false - _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} - for _G_dir in $_G_PATH; do - IFS=$_G_save_IFS - test -z "$_G_dir" && _G_dir=. - for _G_prog_name in $_G_progs_list; do - for _exeext in '' .EXE; do - _G_path_prog=$_G_dir/$_G_prog_name$_exeext - func_executable_p "$_G_path_prog" || continue - case `"$_G_path_prog" --version 2>&1` in - *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; - *) $_G_check_func $_G_path_prog - func_path_progs_result=$func_check_prog_result - ;; - esac - $_G_path_prog_found && break 3 - done - done - done - IFS=$_G_save_IFS - test -z "$func_path_progs_result" && { - echo "no acceptable sed could be found in \$PATH" >&2 - exit 1 - } -} - - -# We want to be able to use the functions in this file before configure -# has figured out where the best binaries are kept, which means we have -# to search for them ourselves - except when the results are already set -# where we skip the searches. - -# Unless the user overrides by setting SED, search the path for either GNU -# sed, or the sed that truncates its output the least. -test -z "$SED" && { - _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for _G_i in 1 2 3 4 5 6 7; do - _G_sed_script=$_G_sed_script$nl$_G_sed_script - done - echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed - _G_sed_script= - - func_check_prog_sed () - { - _G_path_prog=$1 - - _G_count=0 - printf 0123456789 >conftest.in - while : - do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo '' >> conftest.nl - "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break - diff conftest.out conftest.nl >/dev/null 2>&1 || break - _G_count=`expr $_G_count + 1` - if test "$_G_count" -gt "$_G_path_prog_max"; then - # Best one so far, save it but keep looking for a better one - func_check_prog_result=$_G_path_prog - _G_path_prog_max=$_G_count - fi - # 10*(2^10) chars as input seems more than enough - test 10 -lt "$_G_count" && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out - } - - func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" - rm -f conftest.sed - SED=$func_path_progs_result -} - - -# Unless the user overrides by setting GREP, search the path for either GNU -# grep, or the grep that truncates its output the least. -test -z "$GREP" && { - func_check_prog_grep () - { - _G_path_prog=$1 - - _G_count=0 - _G_path_prog_max=0 - printf 0123456789 >conftest.in - while : - do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo 'GREP' >> conftest.nl - "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break - diff conftest.out conftest.nl >/dev/null 2>&1 || break - _G_count=`expr $_G_count + 1` - if test "$_G_count" -gt "$_G_path_prog_max"; then - # Best one so far, save it but keep looking for a better one - func_check_prog_result=$_G_path_prog - _G_path_prog_max=$_G_count - fi - # 10*(2^10) chars as input seems more than enough - test 10 -lt "$_G_count" && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out - } - - func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" - GREP=$func_path_progs_result -} - - -## ------------------------------- ## -## User overridable command paths. ## -## ------------------------------- ## - -# All uppercase variable names are used for environment variables. These -# variables can be overridden by the user before calling a script that -# uses them if a suitable command of that name is not already available -# in the command search PATH. - -: ${CP="cp -f"} -: ${ECHO="printf %s\n"} -: ${EGREP="$GREP -E"} -: ${FGREP="$GREP -F"} -: ${LN_S="ln -s"} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} - - -## -------------------- ## -## Useful sed snippets. ## -## -------------------- ## - -sed_dirname='s|/[^/]*$||' -sed_basename='s|^.*/||' - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s|\([`"$\\]\)|\\\1|g' - -# Same as above, but do not quote variable references. -sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' - -# Sed substitution that converts a w32 file name or path -# that contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-'\' parameter expansions in output of sed_double_quote_subst that -# were '\'-ed in input to the same. If an odd number of '\' preceded a -# '$' in input to sed_double_quote_subst, that '$' was protected from -# expansion. Since each input '\' is now two '\'s, look for any number -# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. -_G_bs='\\' -_G_bs2='\\\\' -_G_bs4='\\\\\\\\' -_G_dollar='\$' -sed_double_backslash="\ - s/$_G_bs4/&\\ -/g - s/^$_G_bs2$_G_dollar/$_G_bs&/ - s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g - s/\n//g" - - -## ----------------- ## -## Global variables. ## -## ----------------- ## - -# Except for the global variables explicitly listed below, the following -# functions in the '^func_' namespace, and the '^require_' namespace -# variables initialised in the 'Resource management' section, sourcing -# this file will not pollute your global namespace with anything -# else. There's no portable way to scope variables in Bourne shell -# though, so actually running these functions will sometimes place -# results into a variable named after the function, and often use -# temporary variables in the '^_G_' namespace. If you are careful to -# avoid using those namespaces casually in your sourcing script, things -# should continue to work as you expect. And, of course, you can freely -# overwrite any of the functions or variables defined here before -# calling anything to customize them. - -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -# Allow overriding, eg assuming that you follow the convention of -# putting '$debug_cmd' at the start of all your functions, you can get -# bash to show function call trace with: -# -# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name -debug_cmd=${debug_cmd-":"} -exit_cmd=: - -# By convention, finish your script with: -# -# exit $exit_status -# -# so that you can set exit_status to non-zero if you want to indicate -# something went wrong during execution without actually bailing out at -# the point of failure. -exit_status=$EXIT_SUCCESS - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath=$0 - -# The name of this program. -progname=`$ECHO "$progpath" |$SED "$sed_basename"` - -# Make sure we have an absolute progpath for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` - progdir=`cd "$progdir" && pwd` - progpath=$progdir/$progname - ;; - *) - _G_IFS=$IFS - IFS=${PATH_SEPARATOR-:} - for progdir in $PATH; do - IFS=$_G_IFS - test -x "$progdir/$progname" && break - done - IFS=$_G_IFS - test -n "$progdir" || progdir=`pwd` - progpath=$progdir/$progname - ;; -esac - - -## ----------------- ## -## Standard options. ## -## ----------------- ## - -# The following options affect the operation of the functions defined -# below, and should be set appropriately depending on run-time para- -# meters passed on the command line. - -opt_dry_run=false -opt_quiet=false -opt_verbose=false - -# Categories 'all' and 'none' are always available. Append any others -# you will pass as the first argument to func_warning from your own -# code. -warning_categories= - -# By default, display warnings according to 'opt_warning_types'. Set -# 'warning_func' to ':' to elide all warnings, or func_fatal_error to -# treat the next displayed warning as a fatal error. -warning_func=func_warn_and_continue - -# Set to 'all' to display all warnings, 'none' to suppress all -# warnings, or a space delimited list of some subset of -# 'warning_categories' to display only the listed warnings. -opt_warning_types=all - - -## -------------------- ## -## Resource management. ## -## -------------------- ## - -# This section contains definitions for functions that each ensure a -# particular resource (a file, or a non-empty configuration variable for -# example) is available, and if appropriate to extract default values -# from pertinent package files. Call them using their associated -# 'require_*' variable to ensure that they are executed, at most, once. -# -# It's entirely deliberate that calling these functions can set -# variables that don't obey the namespace limitations obeyed by the rest -# of this file, in order that that they be as useful as possible to -# callers. - - -# require_term_colors -# ------------------- -# Allow display of bold text on terminals that support it. -require_term_colors=func_require_term_colors -func_require_term_colors () -{ - $debug_cmd - - test -t 1 && { - # COLORTERM and USE_ANSI_COLORS environment variables take - # precedence, because most terminfo databases neglect to describe - # whether color sequences are supported. - test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} - - if test 1 = "$USE_ANSI_COLORS"; then - # Standard ANSI escape sequences - tc_reset='[0m' - tc_bold='[1m'; tc_standout='[7m' - tc_red='[31m'; tc_green='[32m' - tc_blue='[34m'; tc_cyan='[36m' - else - # Otherwise trust the terminfo database after all. - test -n "`tput sgr0 2>/dev/null`" && { - tc_reset=`tput sgr0` - test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` - tc_standout=$tc_bold - test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` - test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` - test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` - test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` - test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` - } - fi - } - - require_term_colors=: -} - - -## ----------------- ## -## Function library. ## -## ----------------- ## - -# This section contains a variety of useful functions to call in your -# scripts. Take note of the portable wrappers for features provided by -# some modern shells, which will fall back to slower equivalents on -# less featureful shells. - - -# func_append VAR VALUE -# --------------------- -# Append VALUE onto the existing contents of VAR. - - # We should try to minimise forks, especially on Windows where they are - # unreasonably slow, so skip the feature probes when bash or zsh are - # being used: - if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then - : ${_G_HAVE_ARITH_OP="yes"} - : ${_G_HAVE_XSI_OPS="yes"} - # The += operator was introduced in bash 3.1 - case $BASH_VERSION in - [12].* | 3.0 | 3.0*) ;; - *) - : ${_G_HAVE_PLUSEQ_OP="yes"} - ;; - esac - fi - - # _G_HAVE_PLUSEQ_OP - # Can be empty, in which case the shell is probed, "yes" if += is - # useable or anything else if it does not work. - test -z "$_G_HAVE_PLUSEQ_OP" \ - && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ - && _G_HAVE_PLUSEQ_OP=yes - -if test yes = "$_G_HAVE_PLUSEQ_OP" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_append () - { - $debug_cmd - - eval "$1+=\$2" - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_append () - { - $debug_cmd - - eval "$1=\$$1\$2" - } -fi - - -# func_append_quoted VAR VALUE -# ---------------------------- -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -if test yes = "$_G_HAVE_PLUSEQ_OP"; then - eval 'func_append_quoted () - { - $debug_cmd - - func_quote_arg pretty "$2" - eval "$1+=\\ \$func_quote_arg_result" - }' -else - func_append_quoted () - { - $debug_cmd - - func_quote_arg pretty "$2" - eval "$1=\$$1\\ \$func_quote_arg_result" - } -fi - - -# func_append_uniq VAR VALUE -# -------------------------- -# Append unique VALUE onto the existing contents of VAR, assuming -# entries are delimited by the first character of VALUE. For example: -# -# func_append_uniq options " --another-option option-argument" -# -# will only append to $options if " --another-option option-argument " -# is not already present somewhere in $options already (note spaces at -# each end implied by leading space in second argument). -func_append_uniq () -{ - $debug_cmd - - eval _G_current_value='`$ECHO $'$1'`' - _G_delim=`expr "$2" : '\(.\)'` - - case $_G_delim$_G_current_value$_G_delim in - *"$2$_G_delim"*) ;; - *) func_append "$@" ;; - esac -} - - -# func_arith TERM... -# ------------------ -# Set func_arith_result to the result of evaluating TERMs. - test -z "$_G_HAVE_ARITH_OP" \ - && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ - && _G_HAVE_ARITH_OP=yes - -if test yes = "$_G_HAVE_ARITH_OP"; then - eval 'func_arith () - { - $debug_cmd - - func_arith_result=$(( $* )) - }' -else - func_arith () - { - $debug_cmd - - func_arith_result=`expr "$@"` - } -fi - - -# func_basename FILE -# ------------------ -# Set func_basename_result to FILE with everything up to and including -# the last / stripped. -if test yes = "$_G_HAVE_XSI_OPS"; then - # If this shell supports suffix pattern removal, then use it to avoid - # forking. Hide the definitions single quotes in case the shell chokes - # on unsupported syntax... - _b='func_basename_result=${1##*/}' - _d='case $1 in - */*) func_dirname_result=${1%/*}$2 ;; - * ) func_dirname_result=$3 ;; - esac' - -else - # ...otherwise fall back to using sed. - _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' - _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` - if test "X$func_dirname_result" = "X$1"; then - func_dirname_result=$3 - else - func_append func_dirname_result "$2" - fi' -fi - -eval 'func_basename () -{ - $debug_cmd - - '"$_b"' -}' - - -# func_dirname FILE APPEND NONDIR_REPLACEMENT -# ------------------------------------------- -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -eval 'func_dirname () -{ - $debug_cmd - - '"$_d"' -}' - - -# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT -# -------------------------------------------------------- -# Perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# For efficiency, we do not delegate to the functions above but instead -# duplicate the functionality here. -eval 'func_dirname_and_basename () -{ - $debug_cmd - - '"$_b"' - '"$_d"' -}' - - -# func_echo ARG... -# ---------------- -# Echo program name prefixed message. -func_echo () -{ - $debug_cmd - - _G_message=$* - - func_echo_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_IFS - $ECHO "$progname: $_G_line" - done - IFS=$func_echo_IFS -} - - -# func_echo_all ARG... -# -------------------- -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - - -# func_echo_infix_1 INFIX ARG... -# ------------------------------ -# Echo program name, followed by INFIX on the first line, with any -# additional lines not showing INFIX. -func_echo_infix_1 () -{ - $debug_cmd - - $require_term_colors - - _G_infix=$1; shift - _G_indent=$_G_infix - _G_prefix="$progname: $_G_infix: " - _G_message=$* - - # Strip color escape sequences before counting printable length - for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" - do - test -n "$_G_tc" && { - _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` - _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` - } - done - _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes - - func_echo_infix_1_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_infix_1_IFS - $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 - _G_prefix=$_G_indent - done - IFS=$func_echo_infix_1_IFS -} - - -# func_error ARG... -# ----------------- -# Echo program name prefixed message to standard error. -func_error () -{ - $debug_cmd - - $require_term_colors - - func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 -} - - -# func_fatal_error ARG... -# ----------------------- -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - $debug_cmd - - func_error "$*" - exit $EXIT_FAILURE -} - - -# func_grep EXPRESSION FILENAME -# ----------------------------- -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $debug_cmd - - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_len STRING -# --------------- -# Set func_len_result to the length of STRING. STRING may not -# start with a hyphen. - test -z "$_G_HAVE_XSI_OPS" \ - && (eval 'x=a/b/c; - test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ - && _G_HAVE_XSI_OPS=yes - -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_len () - { - $debug_cmd - - func_len_result=${#1} - }' -else - func_len () - { - $debug_cmd - - func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` - } -fi - - -# func_mkdir_p DIRECTORY-PATH -# --------------------------- -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - $debug_cmd - - _G_directory_path=$1 - _G_dir_list= - - if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then - - # Protect directory names starting with '-' - case $_G_directory_path in - -*) _G_directory_path=./$_G_directory_path ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$_G_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - _G_dir_list=$_G_directory_path:$_G_dir_list - - # If the last portion added has no slash in it, the list is done - case $_G_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` - done - _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` - - func_mkdir_p_IFS=$IFS; IFS=: - for _G_dir in $_G_dir_list; do - IFS=$func_mkdir_p_IFS - # mkdir can fail with a 'File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$_G_dir" 2>/dev/null || : - done - IFS=$func_mkdir_p_IFS - - # Bail out if we (or some other process) failed to create a directory. - test -d "$_G_directory_path" || \ - func_fatal_error "Failed to create '$1'" - fi -} - - -# func_mktempdir [BASENAME] -# ------------------------- -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, BASENAME is the basename for that directory. -func_mktempdir () -{ - $debug_cmd - - if test : = "$opt_dry_run"; then - # Return a directory name, but don't create it in dry-run mode - _G_mktemp='mktemp -dtu' - else - _G_mktemp='mktemp -dt' - fi - - _G_tmpdir=`$_G_mktemp "${1-$progname}-XXXXXXXX"` || \ - func_fatal_error "cannot create temporary directory" - - $ECHO "$_G_tmpdir" -} - - -# func_normal_abspath PATH -# ------------------------ -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -func_normal_abspath () -{ - $debug_cmd - - # These SED scripts presuppose an absolute path with a trailing slash. - _G_pathcar='s|^/\([^/]*\).*$|\1|' - _G_pathcdr='s|^/[^/]*||' - _G_removedotparts=':dotsl - s|/\./|/|g - t dotsl - s|/\.$|/|' - _G_collapseslashes='s|/\{1,\}|/|g' - _G_finalslash='s|/*$|/|' - - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` - while :; do - # Processed it all yet? - if test / = "$func_normal_abspath_tpath"; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result"; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$_G_pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} - - -# func_notquiet ARG... -# -------------------- -# Echo program name prefixed message only when not in quiet mode. -func_notquiet () -{ - $debug_cmd - - $opt_quiet || func_echo ${1+"$@"} - - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} - - -# func_relative_path SRCDIR DSTDIR -# -------------------------------- -# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. -func_relative_path () -{ - $debug_cmd - - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=$func_dirname_result - if test -z "$func_relative_path_tlibdir"; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done - - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test -n "$func_stripname_result"; then - func_append func_relative_path_result "/$func_stripname_result" - fi - - # Normalisation. If bindir is libdir, return '.' else relative path. - if test -n "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - fi - - test -n "$func_relative_path_result" || func_relative_path_result=. - - : -} - - -# func_quote_portable EVAL ARG -# ---------------------------- -# Internal function to portably implement func_quote_arg. Note that we still -# keep attention to performance here so we as much as possible try to avoid -# calling sed binary (so far O(N) complexity as long as func_append is O(1)). -func_quote_portable () -{ - $debug_cmd - - func_quote_portable_result=$2 - - # one-time-loop (easy break) - while true - do - if $1; then - func_quote_portable_result=`$ECHO "$2" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` - break - fi - - # Quote for eval. - case $func_quote_portable_result in - *[\\\`\"\$]*) - case $func_quote_portable_result in - *[\[\*\?]*) - func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ - | $SED "$sed_quote_subst"` - break - ;; - esac - - func_quote_portable_old_IFS=$IFS - for _G_char in '\' '`' '"' '$' - do - # STATE($1) PREV($2) SEPARATOR($3) - set start "" "" - func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy - IFS=$_G_char - for _G_part in $func_quote_portable_result - do - case $1 in - quote) - func_append func_quote_portable_result "$3$2" - set quote "$_G_part" "\\$_G_char" - ;; - start) - set first "" "" - func_quote_portable_result= - ;; - first) - set quote "$_G_part" "" - ;; - esac - done - done - IFS=$func_quote_portable_old_IFS - ;; - *) ;; - esac - break - done - - func_quote_portable_unquoted_result=$func_quote_portable_result - case $func_quote_portable_result in - # double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # many bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_portable_result=\"$func_quote_portable_result\" - ;; - esac -} - - -# func_quotefast_eval ARG -# ----------------------- -# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', -# but optimized for speed. Result is stored in $func_quotefast_eval. -if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then - printf -v _GL_test_printf_tilde %q '~' - if test '\~' = "$_GL_test_printf_tilde"; then - func_quotefast_eval () - { - printf -v func_quotefast_eval_result %q "$1" - } - else - # Broken older Bash implementations. Make those faster too if possible. - func_quotefast_eval () - { - case $1 in - '~'*) - func_quote_portable false "$1" - func_quotefast_eval_result=$func_quote_portable_result - ;; - *) - printf -v func_quotefast_eval_result %q "$1" - ;; - esac - } - fi -else - func_quotefast_eval () - { - func_quote_portable false "$1" - func_quotefast_eval_result=$func_quote_portable_result - } -fi - - -# func_quote_arg MODEs ARG -# ------------------------ -# Quote one ARG to be evaled later. MODEs argument may contain zero or more -# specifiers listed below separated by ',' character. This function returns two -# values: -# i) func_quote_arg_result -# double-quoted (when needed), suitable for a subsequent eval -# ii) func_quote_arg_unquoted_result -# has all characters that are still active within double -# quotes backslashified. Available only if 'unquoted' is specified. -# -# Available modes: -# ---------------- -# 'eval' (default) -# - escape shell special characters -# 'expand' -# - the same as 'eval'; but do not quote variable references -# 'pretty' -# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might -# be used later in func_quote to get output like: 'echo "a b"' instead -# of 'echo a\ b'. This is slower than default on some shells. -# 'unquoted' -# - produce also $func_quote_arg_unquoted_result which does not contain -# wrapping double-quotes. -# -# Examples for 'func_quote_arg pretty,unquoted string': -# -# string | *_result | *_unquoted_result -# ------------+-----------------------+------------------- -# " | \" | \" -# a b | "a b" | a b -# "a b" | "\"a b\"" | \"a b\" -# * | "*" | * -# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" -# -# Examples for 'func_quote_arg pretty,unquoted,expand string': -# -# string | *_result | *_unquoted_result -# --------------+---------------------+-------------------- -# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" -func_quote_arg () -{ - _G_quote_expand=false - case ,$1, in - *,expand,*) - _G_quote_expand=: - ;; - esac - - case ,$1, in - *,pretty,*|*,expand,*|*,unquoted,*) - func_quote_portable $_G_quote_expand "$2" - func_quote_arg_result=$func_quote_portable_result - func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result - ;; - *) - # Faster quote-for-eval for some shells. - func_quotefast_eval "$2" - func_quote_arg_result=$func_quotefast_eval_result - ;; - esac -} - - -# func_quote MODEs ARGs... -# ------------------------ -# Quote all ARGs to be evaled later and join them into single command. See -# func_quote_arg's description for more info. -func_quote () -{ - $debug_cmd - _G_func_quote_mode=$1 ; shift - func_quote_result= - while test 0 -lt $#; do - func_quote_arg "$_G_func_quote_mode" "$1" - if test -n "$func_quote_result"; then - func_append func_quote_result " $func_quote_arg_result" - else - func_append func_quote_result "$func_quote_arg_result" - fi - shift - done -} - - -# func_stripname PREFIX SUFFIX NAME -# --------------------------------- -# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_stripname () - { - $debug_cmd - - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary variable first. - func_stripname_result=$3 - func_stripname_result=${func_stripname_result#"$1"} - func_stripname_result=${func_stripname_result%"$2"} - }' -else - func_stripname () - { - $debug_cmd - - case $2 in - .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; - *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; - esac - } -fi - - -# func_show_eval CMD [FAIL_EXP] -# ----------------------------- -# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () -{ - $debug_cmd - - _G_cmd=$1 - _G_fail_exp=${2-':'} - - func_quote_arg pretty,expand "$_G_cmd" - eval "func_notquiet $func_quote_arg_result" - - $opt_dry_run || { - eval "$_G_cmd" - _G_status=$? - if test 0 -ne "$_G_status"; then - eval "(exit $_G_status); $_G_fail_exp" - fi - } -} - - -# func_show_eval_locale CMD [FAIL_EXP] -# ------------------------------------ -# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - $debug_cmd - - _G_cmd=$1 - _G_fail_exp=${2-':'} - - $opt_quiet || { - func_quote_arg expand,pretty "$_G_cmd" - eval "func_echo $func_quote_arg_result" - } - - $opt_dry_run || { - eval "$_G_user_locale - $_G_cmd" - _G_status=$? - eval "$_G_safe_locale" - if test 0 -ne "$_G_status"; then - eval "(exit $_G_status); $_G_fail_exp" - fi - } -} - - -# func_tr_sh -# ---------- -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - $debug_cmd - - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} - - -# func_verbose ARG... -# ------------------- -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $debug_cmd - - $opt_verbose && func_echo "$*" - - : -} - - -# func_warn_and_continue ARG... -# ----------------------------- -# Echo program name prefixed warning message to standard error. -func_warn_and_continue () -{ - $debug_cmd - - $require_term_colors - - func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 -} - - -# func_warning CATEGORY ARG... -# ---------------------------- -# Echo program name prefixed warning message to standard error. Warning -# messages can be filtered according to CATEGORY, where this function -# elides messages where CATEGORY is not listed in the global variable -# 'opt_warning_types'. -func_warning () -{ - $debug_cmd - - # CATEGORY must be in the warning_categories list! - case " $warning_categories " in - *" $1 "*) ;; - *) func_internal_error "invalid warning category '$1'" ;; - esac - - _G_category=$1 - shift - - case " $opt_warning_types " in - *" $_G_category "*) $warning_func ${1+"$@"} ;; - esac -} - - -# func_sort_ver VER1 VER2 -# ----------------------- -# 'sort -V' is not generally available. -# Note this deviates from the version comparison in automake -# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a -# but this should suffice as we won't be specifying old -# version formats or redundant trailing .0 in bootstrap.conf. -# If we did want full compatibility then we should probably -# use m4_version_compare from autoconf. -func_sort_ver () -{ - $debug_cmd - - printf '%s\n%s\n' "$1" "$2" \ - | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n -} - -# func_lt_ver PREV CURR -# --------------------- -# Return true if PREV and CURR are in the correct order according to -# func_sort_ver, otherwise false. Use it like this: -# -# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." -func_lt_ver () -{ - $debug_cmd - - test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` -} - - -# Local variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" -# time-stamp-time-zone: "UTC" -# End: -#! /bin/sh - -# A portable, pluggable option parser for Bourne shell. -# Written by Gary V. Vaughan, 2010 - -# This is free software. There is NO warranty; not even for -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# -# Copyright (C) 2010-2019 Bootstrap Authors -# -# This file is dual licensed under the terms of the MIT license -# <https://opensource.org/license/MIT>, and GPL version 2 or later -# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of -# these licenses when using or redistributing this software or any of -# the files within it. See the URLs above, or the file `LICENSE` -# included in the Bootstrap distribution for the full license texts. - -# Please report bugs or propose patches to: -# <https://github.com/gnulib-modules/bootstrap/issues> - -# Set a version string for this script. -scriptversion=2019-02-19.15; # UTC - - -## ------ ## -## Usage. ## -## ------ ## - -# This file is a library for parsing options in your shell scripts along -# with assorted other useful supporting features that you can make use -# of too. -# -# For the simplest scripts you might need only: -# -# #!/bin/sh -# . relative/path/to/funclib.sh -# . relative/path/to/options-parser -# scriptversion=1.0 -# func_options ${1+"$@"} -# eval set dummy "$func_options_result"; shift -# ...rest of your script... -# -# In order for the '--version' option to work, you will need to have a -# suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# Copyright'. -# -# For '-h' and '--help' to work, you will also need a one line -# description of your script's purpose in a comment directly above the -# '# Written by ' line, like the one at the top of this file. -# -# The default options also support '--debug', which will turn on shell -# execution tracing (see the comment above debug_cmd below for another -# use), and '--verbose' and the func_verbose function to allow your script -# to display verbose messages only when your user has specified -# '--verbose'. -# -# After sourcing this file, you can plug in processing for additional -# options by amending the variables from the 'Configuration' section -# below, and following the instructions in the 'Option parsing' -# section further down. - -## -------------- ## -## Configuration. ## -## -------------- ## - -# You should override these variables in your script after sourcing this -# file so that they reflect the customisations you have added to the -# option parser. - -# The usage line for option parsing errors and the start of '-h' and -# '--help' output messages. You can embed shell variables for delayed -# expansion at the time the message is displayed, but you will need to -# quote other shell meta-characters carefully to prevent them being -# expanded when the contents are evaled. -usage='$progpath [OPTION]...' - -# Short help message in response to '-h' and '--help'. Add to this or -# override it after sourcing this library to reflect the full set of -# options your script accepts. -usage_message="\ - --debug enable verbose shell tracing - -W, --warnings=CATEGORY - report the warnings falling in CATEGORY [all] - -v, --verbose verbosely report processing - --version print version information and exit - -h, --help print short or long help message and exit -" - -# Additional text appended to 'usage_message' in response to '--help'. -long_help_message=" -Warning categories include: - 'all' show all warnings - 'none' turn off all the warnings - 'error' warnings are treated as fatal errors" - -# Help message printed before fatal option parsing errors. -fatal_help="Try '\$progname --help' for more information." - - - -## ------------------------- ## -## Hook function management. ## -## ------------------------- ## - -# This section contains functions for adding, removing, and running hooks -# in the main code. A hook is just a list of function names that can be -# run in order later on. - -# func_hookable FUNC_NAME -# ----------------------- -# Declare that FUNC_NAME will run hooks added with -# 'func_add_hook FUNC_NAME ...'. -func_hookable () -{ - $debug_cmd - - func_append hookable_fns " $1" -} - - -# func_add_hook FUNC_NAME HOOK_FUNC -# --------------------------------- -# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must -# first have been declared "hookable" by a call to 'func_hookable'. -func_add_hook () -{ - $debug_cmd - - case " $hookable_fns " in - *" $1 "*) ;; - *) func_fatal_error "'$1' does not accept hook functions." ;; - esac - - eval func_append ${1}_hooks '" $2"' -} - - -# func_remove_hook FUNC_NAME HOOK_FUNC -# ------------------------------------ -# Remove HOOK_FUNC from the list of hook functions to be called by -# FUNC_NAME. -func_remove_hook () -{ - $debug_cmd - - eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' -} - - -# func_propagate_result FUNC_NAME_A FUNC_NAME_B -# --------------------------------------------- -# If the *_result variable of FUNC_NAME_A _is set_, assign its value to -# *_result variable of FUNC_NAME_B. -func_propagate_result () -{ - $debug_cmd - - func_propagate_result_result=: - if eval "test \"\${${1}_result+set}\" = set" - then - eval "${2}_result=\$${1}_result" - else - func_propagate_result_result=false - fi -} - - -# func_run_hooks FUNC_NAME [ARG]... -# --------------------------------- -# Run all hook functions registered to FUNC_NAME. -# It's assumed that the list of hook functions contains nothing more -# than a whitespace-delimited list of legal shell function names, and -# no effort is wasted trying to catch shell meta-characters or preserve -# whitespace. -func_run_hooks () -{ - $debug_cmd - - case " $hookable_fns " in - *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook functions." ;; - esac - - eval _G_hook_fns=\$$1_hooks; shift - - for _G_hook in $_G_hook_fns; do - func_unset "${_G_hook}_result" - eval $_G_hook '${1+"$@"}' - func_propagate_result $_G_hook func_run_hooks - if $func_propagate_result_result; then - eval set dummy "$func_run_hooks_result"; shift - fi - done -} - - - -## --------------- ## -## Option parsing. ## -## --------------- ## - -# In order to add your own option parsing hooks, you must accept the -# full positional parameter list from your hook function. You may remove -# or edit any options that you action, and then pass back the remaining -# unprocessed options in '<hooked_function_name>_result', escaped -# suitably for 'eval'. -# -# The '<hooked_function_name>_result' variable is automatically unset -# before your hook gets called; for best performance, only set the -# *_result variable when necessary (i.e. don't call the 'func_quote' -# function unnecessarily because it can be an expensive operation on some -# machines). -# -# Like this: -# -# my_options_prep () -# { -# $debug_cmd -# -# # Extend the existing usage message. -# usage_message=$usage_message' -# -s, --silent don'\''t print informational messages -# ' -# # No change in '$@' (ignored completely by this hook). Leave -# # my_options_prep_result variable intact. -# } -# func_add_hook func_options_prep my_options_prep -# -# -# my_silent_option () -# { -# $debug_cmd -# -# args_changed=false -# -# # Note that, for efficiency, we parse as many options as we can -# # recognise in a loop before passing the remainder back to the -# # caller on the first unrecognised argument we encounter. -# while test $# -gt 0; do -# opt=$1; shift -# case $opt in -# --silent|-s) opt_silent=: -# args_changed=: -# ;; -# # Separate non-argument short options: -# -s*) func_split_short_opt "$_G_opt" -# set dummy "$func_split_short_opt_name" \ -# "-$func_split_short_opt_arg" ${1+"$@"} -# shift -# args_changed=: -# ;; -# *) # Make sure the first unrecognised option "$_G_opt" -# # is added back to "$@" in case we need it later, -# # if $args_changed was set to 'true'. -# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; -# esac -# done -# -# # Only call 'func_quote' here if we processed at least one argument. -# if $args_changed; then -# func_quote eval ${1+"$@"} -# my_silent_option_result=$func_quote_result -# fi -# } -# func_add_hook func_parse_options my_silent_option -# -# -# my_option_validation () -# { -# $debug_cmd -# -# $opt_silent && $opt_verbose && func_fatal_help "\ -# '--silent' and '--verbose' options are mutually exclusive." -# } -# func_add_hook func_validate_options my_option_validation -# -# You'll also need to manually amend $usage_message to reflect the extra -# options you parse. It's preferable to append if you can, so that -# multiple option parsing hooks can be added safely. - - -# func_options_finish [ARG]... -# ---------------------------- -# Finishing the option parse loop (call 'func_options' hooks ATM). -func_options_finish () -{ - $debug_cmd - - func_run_hooks func_options ${1+"$@"} - func_propagate_result func_run_hooks func_options_finish -} - - -# func_options [ARG]... -# --------------------- -# All the functions called inside func_options are hookable. See the -# individual implementations for details. -func_hookable func_options -func_options () -{ - $debug_cmd - - _G_options_quoted=false - - for my_func in options_prep parse_options validate_options options_finish - do - func_unset func_${my_func}_result - func_unset func_run_hooks_result - eval func_$my_func '${1+"$@"}' - func_propagate_result func_$my_func func_options - if $func_propagate_result_result; then - eval set dummy "$func_options_result"; shift - _G_options_quoted=: - fi - done - - $_G_options_quoted || { - # As we (func_options) are top-level options-parser function and - # nobody quoted "$@" for us yet, we need to do it explicitly for - # caller. - func_quote eval ${1+"$@"} - func_options_result=$func_quote_result - } -} - - -# func_options_prep [ARG]... -# -------------------------- -# All initialisations required before starting the option parse loop. -# Note that when calling hook functions, we pass through the list of -# positional parameters. If a hook function modifies that list, and -# needs to propagate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before returning. -func_hookable func_options_prep -func_options_prep () -{ - $debug_cmd - - # Option defaults: - opt_verbose=false - opt_warning_types= - - func_run_hooks func_options_prep ${1+"$@"} - func_propagate_result func_run_hooks func_options_prep -} - - -# func_parse_options [ARG]... -# --------------------------- -# The main option parsing loop. -func_hookable func_parse_options -func_parse_options () -{ - $debug_cmd - - _G_parse_options_requote=false - # this just eases exit handling - while test $# -gt 0; do - # Defer to hook functions for initial option parsing, so they - # get priority in the event of reusing an option name. - func_run_hooks func_parse_options ${1+"$@"} - func_propagate_result func_run_hooks func_parse_options - if $func_propagate_result_result; then - eval set dummy "$func_parse_options_result"; shift - # Even though we may have changed "$@", we passed the "$@" array - # down into the hook and it quoted it for us (because we are in - # this if-branch). No need to quote it again. - _G_parse_options_requote=false - fi - - # Break out of the loop if we already parsed every option. - test $# -gt 0 || break - - # We expect that one of the options parsed in this function matches - # and thus we remove _G_opt from "$@" and need to re-quote. - _G_match_parse_options=: - _G_opt=$1 - shift - case $_G_opt in - --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" >&2 - $debug_cmd - ;; - - --no-warnings|--no-warning|--no-warn) - set dummy --warnings none ${1+"$@"} - shift - ;; - - --warnings|--warning|-W) - if test $# = 0 && func_missing_arg $_G_opt; then - _G_parse_options_requote=: - break - fi - case " $warning_categories $1" in - *" $1 "*) - # trailing space prevents matching last $1 above - func_append_uniq opt_warning_types " $1" - ;; - *all) - opt_warning_types=$warning_categories - ;; - *none) - opt_warning_types=none - warning_func=: - ;; - *error) - opt_warning_types=$warning_categories - warning_func=func_fatal_error - ;; - *) - func_fatal_error \ - "unsupported warning category: '$1'" - ;; - esac - shift - ;; - - --verbose|-v) opt_verbose=: ;; - --version) func_version ;; - -\?|-h) func_usage ;; - --help) func_help ;; - - # Separate optargs to long options (plugins may need this): - --*=*) func_split_equals "$_G_opt" - set dummy "$func_split_equals_lhs" \ - "$func_split_equals_rhs" ${1+"$@"} - shift - ;; - - # Separate optargs to short options: - -W*) - func_split_short_opt "$_G_opt" - set dummy "$func_split_short_opt_name" \ - "$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-v*|-x*) - func_split_short_opt "$_G_opt" - set dummy "$func_split_short_opt_name" \ - "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) _G_parse_options_requote=: ; break ;; - -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift - _G_match_parse_options=false - break - ;; - esac - - if $_G_match_parse_options; then - _G_parse_options_requote=: - fi - done - - if $_G_parse_options_requote; then - # save modified positional parameters for caller - func_quote eval ${1+"$@"} - func_parse_options_result=$func_quote_result - fi -} - - -# func_validate_options [ARG]... -# ------------------------------ -# Perform any sanity checks on option settings and/or unconsumed -# arguments. -func_hookable func_validate_options -func_validate_options () -{ - $debug_cmd - - # Display all warnings if -W was not given. - test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - - func_run_hooks func_validate_options ${1+"$@"} - func_propagate_result func_run_hooks func_validate_options - - # Bail if the options were screwed! - $exit_cmd $EXIT_FAILURE -} - - - -## ----------------- ## -## Helper functions. ## -## ----------------- ## - -# This section contains the helper functions used by the rest of the -# hookable option parser framework in ascii-betical order. - - -# func_fatal_help ARG... -# ---------------------- -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - $debug_cmd - - eval \$ECHO \""Usage: $usage"\" - eval \$ECHO \""$fatal_help"\" - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - - -# func_help -# --------- -# Echo long help message to standard output and exit. -func_help () -{ - $debug_cmd - - func_usage_message - $ECHO "$long_help_message" - exit 0 -} - - -# func_missing_arg ARGNAME -# ------------------------ -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - $debug_cmd - - func_error "Missing argument for '$1'." - exit_cmd=exit -} - - -# func_split_equals STRING -# ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables -# after splitting STRING at the '=' sign. -test -z "$_G_HAVE_XSI_OPS" \ - && (eval 'x=a/b/c; - test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ - && _G_HAVE_XSI_OPS=yes - -if test yes = "$_G_HAVE_XSI_OPS" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_split_equals () - { - $debug_cmd - - func_split_equals_lhs=${1%%=*} - func_split_equals_rhs=${1#*=} - if test "x$func_split_equals_lhs" = "x$1"; then - func_split_equals_rhs= - fi - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_split_equals () - { - $debug_cmd - - func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` - func_split_equals_rhs= - test "x$func_split_equals_lhs" = "x$1" \ - || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` - } -fi #func_split_equals - - -# func_split_short_opt SHORTOPT -# ----------------------------- -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -if test yes = "$_G_HAVE_XSI_OPS" -then - # This is an XSI compatible shell, allowing a faster implementation... - eval 'func_split_short_opt () - { - $debug_cmd - - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"} - }' -else - # ...otherwise fall back to using expr, which is often a shell builtin. - func_split_short_opt () - { - $debug_cmd - - func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` - func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` - } -fi #func_split_short_opt - - -# func_usage -# ---------- -# Echo short help message to standard output and exit. -func_usage () -{ - $debug_cmd - - func_usage_message - $ECHO "Run '$progname --help |${PAGER-more}' for full usage" - exit 0 -} - - -# func_usage_message -# ------------------ -# Echo short help message to standard output. -func_usage_message () -{ - $debug_cmd - - eval \$ECHO \""Usage: $usage"\" - echo - $SED -n 's|^# || - /^Written by/{ - x;p;x - } - h - /^Written by/q' < "$progpath" - echo - eval \$ECHO \""$usage_message"\" -} - - -# func_version -# ------------ -# Echo version message to standard output and exit. -# The version message is extracted from the calling file's header -# comments, with leading '# ' stripped: -# 1. First display the progname and version -# 2. Followed by the header comment line matching /^# Written by / -# 3. Then a blank line followed by the first following line matching -# /^# Copyright / -# 4. Immediately followed by any lines between the previous matches, -# except lines preceding the intervening completely blank line. -# For example, see the header comments of this file. -func_version () -{ - $debug_cmd - - printf '%s\n' "$progname $scriptversion" - $SED -n ' - /^# Written by /!b - s|^# ||; p; n - - :fwd2blnk - /./ { - n - b fwd2blnk - } - p; n - - :holdwrnt - s|^# || - s|^# *$|| - /^Copyright /!{ - /./H - n - b holdwrnt - } - - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - G - s|\(\n\)\n*|\1|g - p; q' < "$progpath" - - exit $? -} - - -# Local variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" -# time-stamp-time-zone: "UTC" -# End: - -# Set a version string. -scriptversion='(GNU libtool) 2.4.7' - - -# func_echo ARG... -# ---------------- -# Libtool also displays the current mode in messages, so override -# funclib.sh func_echo with this custom definition. -func_echo () -{ - $debug_cmd - - _G_message=$* - - func_echo_IFS=$IFS - IFS=$nl - for _G_line in $_G_message; do - IFS=$func_echo_IFS - $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" - done - IFS=$func_echo_IFS -} - - -# func_warning ARG... -# ------------------- -# Libtool warnings are not categorized, so override funclib.sh -# func_warning with this simpler definition. -func_warning () -{ - $debug_cmd - - $warning_func ${1+"$@"} -} - - -## ---------------- ## -## Options parsing. ## -## ---------------- ## - -# Hook in the functions to make sure our own options are parsed during -# the option parsing loop. - -usage='$progpath [OPTION]... [MODE-ARG]...' - -# Short help message in response to '-h'. -usage_message="Options: - --config show all configuration variables - --debug enable verbose shell tracing - -n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --mode=MODE use operation mode MODE - --no-warnings equivalent to '-Wnone' - --preserve-dup-deps don't remove duplicate dependency libraries - --quiet, --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - -v, --verbose print more informational messages than default - --version print version information - -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] - -h, --help, --help-all print short, long, or detailed help message -" - -# Additional text appended to 'usage_message' in response to '--help'. -func_help () -{ - $debug_cmd - - func_usage_message - $ECHO "$long_help_message - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. When passed as first option, -'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. -Try '$progname --help --mode=MODE' for a more detailed description of MODE. - -When reporting a bug, please describe a test case to reproduce it and -include the following information: - - host-triplet: $host - shell: $SHELL - compiler: $LTCC - compiler flags: $LTCFLAGS - linker: $LD (gnu? $with_gnu_ld) - version: $progname (GNU libtool) 2.4.7 - automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` - autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` - -Report bugs to <bug-libtool@gnu.org>. -GNU libtool home page: <http://www.gnu.org/s/libtool/>. -General help using GNU software: <http://www.gnu.org/gethelp/>." - exit 0 -} - - -# func_lo2o OBJECT-NAME -# --------------------- -# Transform OBJECT-NAME from a '.lo' suffix to the platform specific -# object suffix. - -lo2o=s/\\.lo\$/.$objext/ -o2lo=s/\\.$objext\$/.lo/ - -if test yes = "$_G_HAVE_XSI_OPS"; then - eval 'func_lo2o () - { - case $1 in - *.lo) func_lo2o_result=${1%.lo}.$objext ;; - * ) func_lo2o_result=$1 ;; - esac - }' - - # func_xform LIBOBJ-OR-SOURCE - # --------------------------- - # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) - # suffix to a '.lo' libtool-object suffix. - eval 'func_xform () - { - func_xform_result=${1%.*}.lo - }' -else - # ...otherwise fall back to using sed. - func_lo2o () - { - func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` - } - - func_xform () - { - func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` - } -fi - - -# func_fatal_configuration ARG... -# ------------------------------- -# Echo program name prefixed message to standard error, followed by -# a configuration failure hint, and exit. -func_fatal_configuration () -{ - func_fatal_error ${1+"$@"} \ - "See the $PACKAGE documentation for more information." \ - "Fatal configuration error." -} - - -# func_config -# ----------- -# Display the configuration for all the tags in this script. -func_config () -{ - re_begincf='^# ### BEGIN LIBTOOL' - re_endcf='^# ### END LIBTOOL' - - # Default configuration. - $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - - # Now print the configurations for the tags. - for tagname in $taglist; do - $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done - - exit $? -} - - -# func_features -# ------------- -# Display the features supported by this script. -func_features () -{ - echo "host: $host" - if test yes = "$build_libtool_libs"; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test yes = "$build_old_libs"; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - - exit $? -} - - -# func_enable_tag TAGNAME -# ----------------------- -# Verify that TAGNAME is valid, and either flag an error and exit, or -# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -# variable here. -func_enable_tag () -{ - # Global variable: - tagname=$1 - - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf=/$re_begincf/,/$re_endcf/p - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac - - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; - *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac -} - - -# func_check_version_match -# ------------------------ -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF - fi - - exit $EXIT_MISMATCH - fi -} - - -# libtool_options_prep [ARG]... -# ----------------------------- -# Preparation for options parsed by libtool. -libtool_options_prep () -{ - $debug_mode - - # Option defaults: - opt_config=false - opt_dlopen= - opt_dry_run=false - opt_help=false - opt_mode= - opt_preserve_dup_deps=false - opt_quiet=false - - nonopt= - preserve_args= - - _G_rc_lt_options_prep=: - - # Shorthand for --mode=foo, only valid as the first argument - case $1 in - clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; - compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; - execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; - finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; - install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; - link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; - uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - *) - _G_rc_lt_options_prep=false - ;; - esac - - if $_G_rc_lt_options_prep; then - # Pass back the list of options. - func_quote eval ${1+"$@"} - libtool_options_prep_result=$func_quote_result - fi -} -func_add_hook func_options_prep libtool_options_prep - - -# libtool_parse_options [ARG]... -# --------------------------------- -# Provide handling for libtool specific options. -libtool_parse_options () -{ - $debug_cmd - - _G_rc_lt_parse_options=false - - # Perform our own loop to consume as many options as possible in - # each iteration. - while test $# -gt 0; do - _G_match_lt_parse_options=: - _G_opt=$1 - shift - case $_G_opt in - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - - --config) func_config ;; - - --dlopen|-dlopen) - opt_dlopen="${opt_dlopen+$opt_dlopen -}$1" - shift - ;; - - --preserve-dup-deps) - opt_preserve_dup_deps=: ;; - - --features) func_features ;; - - --finish) set dummy --mode finish ${1+"$@"}; shift ;; - - --help) opt_help=: ;; - - --help-all) opt_help=': help-all' ;; - - --mode) test $# = 0 && func_missing_arg $_G_opt && break - opt_mode=$1 - case $1 in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $_G_opt" - exit_cmd=exit - break - ;; - esac - shift - ;; - - --no-silent|--no-quiet) - opt_quiet=false - func_append preserve_args " $_G_opt" - ;; - - --no-warnings|--no-warning|--no-warn) - opt_warning=false - func_append preserve_args " $_G_opt" - ;; - - --no-verbose) - opt_verbose=false - func_append preserve_args " $_G_opt" - ;; - - --silent|--quiet) - opt_quiet=: - opt_verbose=false - func_append preserve_args " $_G_opt" - ;; - - --tag) test $# = 0 && func_missing_arg $_G_opt && break - opt_tag=$1 - func_append preserve_args " $_G_opt $1" - func_enable_tag "$1" - shift - ;; - - --verbose|-v) opt_quiet=false - opt_verbose=: - func_append preserve_args " $_G_opt" - ;; - - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"} ; shift - _G_match_lt_parse_options=false - break - ;; - esac - $_G_match_lt_parse_options && _G_rc_lt_parse_options=: - done - - if $_G_rc_lt_parse_options; then - # save modified positional parameters for caller - func_quote eval ${1+"$@"} - libtool_parse_options_result=$func_quote_result - fi -} -func_add_hook func_parse_options libtool_parse_options - - - -# libtool_validate_options [ARG]... -# --------------------------------- -# Perform any sanity checks on option settings and/or unconsumed -# arguments. -libtool_validate_options () -{ - # save first non-option argument - if test 0 -lt $#; then - nonopt=$1 - shift - fi - - # preserve --debug - test : = "$debug_cmd" || func_append preserve_args " --debug" - - case $host in - # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 - # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 - *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - - $opt_help || { - # Sanity checks first: - func_check_version_match - - test yes != "$build_libtool_libs" \ - && test yes != "$build_old_libs" \ - && func_fatal_configuration "not configured to build any kind of library" - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test execute != "$opt_mode"; then - func_error "unrecognized option '-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help=$help - help="Try '$progname --help --mode=$opt_mode' for more information." - } - - # Pass back the unparsed argument list - func_quote eval ${1+"$@"} - libtool_validate_options_result=$func_quote_result -} -func_add_hook func_validate_options libtool_validate_options - - -# Process options as early as possible so that --help and --version -# can return quickly. -func_options ${1+"$@"} -eval set dummy "$func_options_result"; shift - - - -## ----------- ## -## Main. ## -## ----------- ## - -magic='%%%MAGIC variable%%%' -magic_exe='%%%MAGIC EXE variable%%%' - -# Global variables. -extracted_archives= -extracted_serial=0 - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - -# func_generated_by_libtool -# True iff stdin has been generated by Libtool. This function is only -# a basic sanity check; it will hardly flush out determined imposters. -func_generated_by_libtool_p () -{ - $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# func_lalib_p file -# True iff FILE is a libtool '.la' library or '.lo' object file. -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_lalib_p () -{ - test -f "$1" && - $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p -} - -# func_lalib_unsafe_p file -# True iff FILE is a libtool '.la' library or '.lo' object file. -# This function implements the same check as func_lalib_p without -# resorting to external programs. To this end, it redirects stdin and -# closes it afterwards, without saving the original file descriptor. -# As a safety measure, use it only where a negative result would be -# fatal anyway. Works if 'file' does not exist. -func_lalib_unsafe_p () -{ - lalib_p=no - if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then - for lalib_p_l in 1 2 3 4 - do - read lalib_p_line - case $lalib_p_line in - \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; - esac - done - exec 0<&5 5<&- - fi - test yes = "$lalib_p" -} - -# func_ltwrapper_script_p file -# True iff FILE is a libtool wrapper script -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_script_p () -{ - test -f "$1" && - $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p -} - -# func_ltwrapper_executable_p file -# True iff FILE is a libtool wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_executable_p () -{ - func_ltwrapper_exec_suffix= - case $1 in - *.exe) ;; - *) func_ltwrapper_exec_suffix=.exe ;; - esac - $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -} - -# func_ltwrapper_scriptname file -# Assumes file is an ltwrapper_executable -# uses $file to determine the appropriate filename for a -# temporary ltwrapper_script. -func_ltwrapper_scriptname () -{ - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper -} - -# func_ltwrapper_p file -# True iff FILE is a libtool wrapper script or wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_p () -{ - func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -} - - -# func_execute_cmds commands fail_cmd -# Execute tilde-delimited COMMANDS. -# If FAIL_CMD is given, eval that upon failure. -# FAIL_CMD may read-access the current command in variable CMD! -func_execute_cmds () -{ - $debug_cmd - - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$sp$nl - eval cmd=\"$cmd\" - IFS=$save_ifs - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -} - - -# func_source file -# Source FILE, adding directory component if necessary. -# Note that it is not necessary on cygwin/mingw to append a dot to -# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -# behavior happens only for exec(3), not for open(2)! Also, sourcing -# 'FILE.' does not work on cygwin managed mounts. -func_source () -{ - $debug_cmd - - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$1" ;; - esac -} - - -# func_resolve_sysroot PATH -# Replace a leading = in PATH with a sysroot. Store the result into -# func_resolve_sysroot_result -func_resolve_sysroot () -{ - func_resolve_sysroot_result=$1 - case $func_resolve_sysroot_result in - =*) - func_stripname '=' '' "$func_resolve_sysroot_result" - func_resolve_sysroot_result=$lt_sysroot$func_stripname_result - ;; - esac -} - -# func_replace_sysroot PATH -# If PATH begins with the sysroot, replace it with = and -# store the result into func_replace_sysroot_result. -func_replace_sysroot () -{ - case $lt_sysroot:$1 in - ?*:"$lt_sysroot"*) - func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result='='$func_stripname_result - ;; - *) - # Including no sysroot. - func_replace_sysroot_result=$1 - ;; - esac -} - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - $debug_cmd - - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case "$@ " in - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with '--tag'" -# else -# func_verbose "using $tagname tagged configuration" - fi - ;; - esac - fi -} - - - -# func_write_libtool_object output_name pic_name nonpic_name -# Create a libtool object file (analogous to a ".la" file), -# but don't create it if we're doing a dry run. -func_write_libtool_object () -{ - write_libobj=$1 - if test yes = "$build_libtool_libs"; then - write_lobj=\'$2\' - else - write_lobj=none - fi - - if test yes = "$build_old_libs"; then - write_oldobj=\'$3\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T <<EOF -# $write_libobj - a libtool object file -# Generated by $PROGRAM (GNU $PACKAGE) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object=$write_lobj - -# Name of the non-PIC object -non_pic_object=$write_oldobj - -EOF - $MV "${write_libobj}T" "$write_libobj" - } -} - - -################################################## -# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # -################################################## - -# func_convert_core_file_wine_to_w32 ARG -# Helper function used by file name conversion functions when $build is *nix, -# and $host is mingw, cygwin, or some other w32 environment. Relies on a -# correctly configured wine environment available, with the winepath program -# in $build's $PATH. -# -# ARG is the $build file name to be converted to w32 format. -# Result is available in $func_convert_core_file_wine_to_w32_result, and will -# be empty on error (or when ARG is empty) -func_convert_core_file_wine_to_w32 () -{ - $debug_cmd - - func_convert_core_file_wine_to_w32_result=$1 - if test -n "$1"; then - # Unfortunately, winepath does not exit with a non-zero error code, so we - # are forced to check the contents of stdout. On the other hand, if the - # command is not found, the shell will set an exit code of 127 and print - # *an error message* to stdout. So we must check for both error code of - # zero AND non-empty stdout, which explains the odd construction: - func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` - if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then - func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$sed_naive_backslashify"` - else - func_convert_core_file_wine_to_w32_result= - fi - fi -} -# end: func_convert_core_file_wine_to_w32 - - -# func_convert_core_path_wine_to_w32 ARG -# Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. -# -# ARG is path to be converted from $build format to win32. -# Result is available in $func_convert_core_path_wine_to_w32_result. -# Unconvertible file (directory) names in ARG are skipped; if no directory names -# are convertible, then the result may be empty. -func_convert_core_path_wine_to_w32 () -{ - $debug_cmd - - # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result= - if test -n "$1"; then - oldIFS=$IFS - IFS=: - for func_convert_core_path_wine_to_w32_f in $1; do - IFS=$oldIFS - func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result"; then - if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result - else - func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" - fi - fi - done - IFS=$oldIFS - fi -} -# end: func_convert_core_path_wine_to_w32 - - -# func_cygpath ARGS... -# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -# (2), returns the Cygwin file name or path in func_cygpath_result (input -# file name or path is assumed to be in w32 format, as previously converted -# from $build's *nix or MSYS format). In case (3), returns the w32 file name -# or path in func_cygpath_result (input file name or path is assumed to be in -# Cygwin format). Returns an empty string on error. -# -# ARGS are passed to cygpath, with the last one being the file name or path to -# be converted. -# -# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -# environment variable; do not put it in $PATH. -func_cygpath () -{ - $debug_cmd - - if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then - func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` - if test "$?" -ne 0; then - # on failure, ensure result is empty - func_cygpath_result= - fi - else - func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" - fi -} -#end: func_cygpath - - -# func_convert_core_msys_to_w32 ARG -# Convert file name or path ARG from MSYS format to w32 format. Return -# result in func_convert_core_msys_to_w32_result. -func_convert_core_msys_to_w32 () -{ - $debug_cmd - - # awkward: cmd appends spaces to result - func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` -} -#end: func_convert_core_msys_to_w32 - - -# func_convert_file_check ARG1 ARG2 -# Verify that ARG1 (a file name in $build format) was converted to $host -# format in ARG2. Otherwise, emit an error message, but continue (resetting -# func_to_host_file_result to ARG1). -func_convert_file_check () -{ - $debug_cmd - - if test -z "$2" && test -n "$1"; then - func_error "Could not determine host file name corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_file_result=$1 - fi -} -# end func_convert_file_check - - -# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -# Verify that FROM_PATH (a path in $build format) was converted to $host -# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -# func_to_host_file_result to a simplistic fallback value (see below). -func_convert_path_check () -{ - $debug_cmd - - if test -z "$4" && test -n "$3"; then - func_error "Could not determine the host path corresponding to" - func_error " '$3'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This is a deliberately simplistic "conversion" and - # should not be "improved". See libtool.info. - if test "x$1" != "x$2"; then - lt_replace_pathsep_chars="s|$1|$2|g" - func_to_host_path_result=`echo "$3" | - $SED -e "$lt_replace_pathsep_chars"` - else - func_to_host_path_result=$3 - fi - fi -} -# end func_convert_path_check - - -# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -# and appending REPL if ORIG matches BACKPAT. -func_convert_path_front_back_pathsep () -{ - $debug_cmd - - case $4 in - $1 ) func_to_host_path_result=$3$func_to_host_path_result - ;; - esac - case $4 in - $2 ) func_append func_to_host_path_result "$3" - ;; - esac -} -# end func_convert_path_front_back_pathsep - - -################################################## -# $build to $host FILE NAME CONVERSION FUNCTIONS # -################################################## -# invoked via '$to_host_file_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# Result will be available in $func_to_host_file_result. - - -# func_to_host_file ARG -# Converts the file name ARG from $build format to $host format. Return result -# in func_to_host_file_result. -func_to_host_file () -{ - $debug_cmd - - $to_host_file_cmd "$1" -} -# end func_to_host_file - - -# func_to_tool_file ARG LAZY -# converts the file name ARG from $build format to toolchain format. Return -# result in func_to_tool_file_result. If the conversion in use is listed -# in (the comma separated) LAZY, no conversion takes place. -func_to_tool_file () -{ - $debug_cmd - - case ,$2, in - *,"$to_tool_file_cmd",*) - func_to_tool_file_result=$1 - ;; - *) - $to_tool_file_cmd "$1" - func_to_tool_file_result=$func_to_host_file_result - ;; - esac -} -# end func_to_tool_file - - -# func_convert_file_noop ARG -# Copy ARG to func_to_host_file_result. -func_convert_file_noop () -{ - func_to_host_file_result=$1 -} -# end func_convert_file_noop - - -# func_convert_file_msys_to_w32 ARG -# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_file_result. -func_convert_file_msys_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result=$func_convert_core_msys_to_w32_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_w32 - - -# func_convert_file_cygwin_to_w32 ARG -# Convert file name ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_file_cygwin_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - # because $build is cygwin, we call "the" cygpath in $PATH; no need to use - # LT_CYGPATH in this case. - func_to_host_file_result=`cygpath -m "$1"` - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_cygwin_to_w32 - - -# func_convert_file_nix_to_w32 ARG -# Convert file name ARG from *nix to w32 format. Requires a wine environment -# and a working winepath. Returns result in func_to_host_file_result. -func_convert_file_nix_to_w32 () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result=$func_convert_core_file_wine_to_w32_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_w32 - - -# func_convert_file_msys_to_cygwin ARG -# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_file_msys_to_cygwin () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result=$func_cygpath_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_cygwin - - -# func_convert_file_nix_to_cygwin ARG -# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -# in func_to_host_file_result. -func_convert_file_nix_to_cygwin () -{ - $debug_cmd - - func_to_host_file_result=$1 - if test -n "$1"; then - # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. - func_convert_core_file_wine_to_w32 "$1" - func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result=$func_cygpath_result - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_cygwin - - -############################################# -# $build to $host PATH CONVERSION FUNCTIONS # -############################################# -# invoked via '$to_host_path_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# The result will be available in $func_to_host_path_result. -# -# Path separators are also converted from $build format to $host format. If -# ARG begins or ends with a path separator character, it is preserved (but -# converted to $host format) on output. -# -# All path conversion functions are named using the following convention: -# file name conversion function : func_convert_file_X_to_Y () -# path conversion function : func_convert_path_X_to_Y () -# where, for any given $build/$host combination the 'X_to_Y' value is the -# same. If conversion functions are added for new $build/$host combinations, -# the two new functions must follow this pattern, or func_init_to_host_path_cmd -# will break. - - -# func_init_to_host_path_cmd -# Ensures that function "pointer" variable $to_host_path_cmd is set to the -# appropriate value, based on the value of $to_host_file_cmd. -to_host_path_cmd= -func_init_to_host_path_cmd () -{ - $debug_cmd - - if test -z "$to_host_path_cmd"; then - func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd=func_convert_path_$func_stripname_result - fi -} - - -# func_to_host_path ARG -# Converts the path ARG from $build format to $host format. Return result -# in func_to_host_path_result. -func_to_host_path () -{ - $debug_cmd - - func_init_to_host_path_cmd - $to_host_path_cmd "$1" -} -# end func_to_host_path - - -# func_convert_path_noop ARG -# Copy ARG to func_to_host_path_result. -func_convert_path_noop () -{ - func_to_host_path_result=$1 -} -# end func_convert_path_noop - - -# func_convert_path_msys_to_w32 ARG -# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_path_result. -func_convert_path_msys_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # Remove leading and trailing path separator characters from ARG. MSYS - # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; - # and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result=$func_convert_core_msys_to_w32_result - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_msys_to_w32 - - -# func_convert_path_cygwin_to_w32 ARG -# Convert path ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_path_cygwin_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_cygwin_to_w32 - - -# func_convert_path_nix_to_w32 ARG -# Convert path ARG from *nix to w32 format. Requires a wine environment and -# a working winepath. Returns result in func_to_host_file_result. -func_convert_path_nix_to_w32 () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result=$func_convert_core_path_wine_to_w32_result - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_nix_to_w32 - - -# func_convert_path_msys_to_cygwin ARG -# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_path_msys_to_cygwin () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result=$func_cygpath_result - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_msys_to_cygwin - - -# func_convert_path_nix_to_cygwin ARG -# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -# func_to_host_file_result. -func_convert_path_nix_to_cygwin () -{ - $debug_cmd - - func_to_host_path_result=$1 - if test -n "$1"; then - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result=$func_cygpath_result - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_nix_to_cygwin - - -# func_dll_def_p FILE -# True iff FILE is a Windows DLL '.def' file. -# Keep in sync with _LT_DLL_DEF_P in libtool.m4 -func_dll_def_p () -{ - $debug_cmd - - func_dll_def_p_tmp=`$SED -n \ - -e 's/^[ ]*//' \ - -e '/^\(;.*\)*$/d' \ - -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ - -e q \ - "$1"` - test DEF = "$func_dll_def_p_tmp" -} - - -# func_mode_compile arg... -func_mode_compile () -{ - $debug_cmd - - # Get the compilation command and the source file. - base_compile= - srcfile=$nonopt # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - pie_flag= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg=$arg - arg_mode=normal - ;; - - target ) - libobj=$arg - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - test -n "$libobj" && \ - func_fatal_error "you cannot specify '-o' more than once" - arg_mode=target - continue - ;; - - -pie | -fpie | -fPIE) - func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) - func_append later " $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - lastarg= - save_ifs=$IFS; IFS=, - for arg in $args; do - IFS=$save_ifs - func_append_quoted lastarg "$arg" - done - IFS=$save_ifs - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. - func_append base_compile " $lastarg" - continue - ;; - - *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg=$srcfile - srcfile=$arg - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in - arg) - func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) - func_fatal_error "you must specify a target with '-o'" - ;; - *) - # Get the name of the library object. - test -z "$libobj" && { - func_basename "$srcfile" - libobj=$func_basename_result - } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - case $libobj in - *.[cCFSifmso] | \ - *.ada | *.adb | *.ads | *.asm | \ - *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) - func_xform "$libobj" - libobj=$func_xform_result - ;; - esac - - case $libobj in - *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) - func_fatal_error "cannot determine name of library object from '$libobj'" - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -shared) - test yes = "$build_libtool_libs" \ - || func_fatal_configuration "cannot build a shared library" - build_old_libs=no - continue - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - func_quote_arg pretty "$libobj" - test "X$libobj" != "X$func_quote_arg_result" \ - && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name '$libobj' may not contain shell special characters." - func_dirname_and_basename "$obj" "/" "" - objname=$func_basename_result - xdir=$func_dirname_result - lobj=$xdir$objdir/$objname - - test -z "$base_compile" && \ - func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test yes = "$build_old_libs"; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac - if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test no = "$compiler_c_o"; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext - lockfile=$output_obj.lock - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test yes = "$need_locks"; then - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test warn = "$need_locks"; then - if test -f "$lockfile"; then - $ECHO "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 - srcfile=$func_to_tool_file_result - func_quote_arg pretty "$srcfile" - qsrcfile=$func_quote_arg_result - - # Only build a PIC object if we are building libtool libraries. - if test yes = "$build_libtool_libs"; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test no != "$pic_mode"; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test warn = "$need_locks" && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - func_show_eval '$MV "$output_obj" "$lobj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - - # Allow error messages only from the first compilation. - if test yes = "$suppress_opt"; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test yes = "$build_old_libs"; then - if test yes != "$pic_mode"; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test yes = "$compiler_c_o"; then - func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test warn = "$need_locks" && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support '-c' and '-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - func_show_eval '$MV "$output_obj" "$obj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - fi - - $opt_dry_run || { - func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" - - # Unlock the critical section if it was locked - if test no != "$need_locks"; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { - test compile = "$opt_mode" && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. - func_help - ;; - - clean) - $ECHO \ -"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - - compile) - $ECHO \ -"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to build PIC objects only - -prefer-non-pic try to build non-PIC objects only - -shared do not build a '.o' file suitable for static linking - -static only build a '.o' file suitable for static linking - -Wc,FLAG - -Xcompiler FLAG pass FLAG directly to the compiler - -COMPILE-COMMAND is a command to be used in creating a 'standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix '.c' with the -library object suffix, '.lo'." - ;; - - execute) - $ECHO \ -"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to '-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - - finish) - $ECHO \ -"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the '--dry-run' option if you just want to see what would be executed." - ;; - - install) - $ECHO \ -"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the 'install' or 'cp' program. - -The following components of INSTALL-COMMAND are treated specially: - - -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - - link) - $ECHO \ -"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -bindir BINDIR specify path to binaries directory (for systems where - libraries must be found in the PATH setting at runtime) - -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE use a list of object files found in FILE to specify objects - -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -shared only do dynamic linking of libtool libraries - -shrext SUFFIX override the standard shared library file extension - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -weak LIBNAME declare that the target provides the LIBNAME interface - -Wc,FLAG - -Xcompiler FLAG pass linker-specific FLAG directly to the compiler - -Wa,FLAG - -Xassembler FLAG pass linker-specific FLAG directly to the assembler - -Wl,FLAG - -Xlinker FLAG pass linker-specific FLAG directly to the linker - -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) - -All other options (arguments beginning with '-') are ignored. - -Every other argument is treated as a filename. Files ending in '.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in '.la', then a libtool library is created, -only library objects ('.lo' files) may be specified, and '-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created -using 'ar' and 'ranlib', or on Windows using 'lib'. - -If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file -is created, otherwise an executable program is created." - ;; - - uninstall) - $ECHO \ -"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - - *) - func_fatal_help "invalid operation mode '$opt_mode'" - ;; - esac - - echo - $ECHO "Try '$progname --help' for more information about other modes." -} - -# Now that we've collected a possible --mode arg, show help if necessary -if $opt_help; then - if test : = "$opt_help"; then - func_mode_help - else - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | $SED -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done - } | - $SED '1d - /^When reporting/,/^Report/{ - H - d - } - $x - /information about other modes/d - /more detailed .*MODE/d - s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' - fi - exit $? -fi - - -# func_mode_execute arg... -func_mode_execute () -{ - $debug_cmd - - # The first argument is the command name. - cmd=$nonopt - test -z "$cmd" && \ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. - for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "'$file' is not a file" - - dir= - case $file in - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "'$lib' is not a valid libtool archive" - - # Read the libtool library. - dlname= - library_names= - func_source "$file" - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && \ - func_warning "'$file' was not linked with '-export-dynamic'" - continue - fi - - func_dirname "$file" "" "." - dir=$func_dirname_result - - if test -f "$dir/$objdir/$dlname"; then - func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - func_dirname "$file" "" "." - dir=$func_dirname_result - ;; - - *) - func_warning "'-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir=$absdir - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic=$magic - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -* | *.la | *.lo ) ;; - *) - # Do a test to see if this is really a libtool program. - if func_ltwrapper_script_p "$file"; then - func_source "$file" - # Transform arg to wrapped name. - file=$progdir/$program - elif func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - func_source "$func_ltwrapper_scriptname_result" - # Transform arg to wrapped name. - file=$progdir/$program - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - func_append_quoted args "$file" - done - - if $opt_dry_run; then - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS - else - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - else - $lt_unset $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd=\$cmd$args - fi -} - -test execute = "$opt_mode" && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $debug_cmd - - libs= - libdirs= - admincmds= - - for opt in "$nonopt" ${1+"$@"} - do - if test -d "$opt"; then - func_append libdirs " $opt" - - elif test -f "$opt"; then - if func_lalib_unsafe_p "$opt"; then - func_append libs " $opt" - else - func_warning "'$opt' is not a valid libtool archive" - fi - - else - func_fatal_error "invalid argument '$opt'" - fi - done - - if test -n "$libs"; then - if test -n "$lt_sysroot"; then - sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` - sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" - else - sysroot_cmd= - fi - - # Remove sysroot references - if $opt_dry_run; then - for lib in $libs; do - echo "removing references to $lt_sysroot and '=' prefixes from $lib" - done - else - tmpdir=`func_mktempdir` - for lib in $libs; do - $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ - > $tmpdir/tmp-la - mv -f $tmpdir/tmp-la $lib - done - ${RM}r "$tmpdir" - fi - fi - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -'"$cmd"'"' - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_quiet && exit $EXIT_SUCCESS - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the '-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the '$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the '$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $ECHO " - use the '$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" - fi - echo - - echo "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" - echo "pages." - ;; - *) - echo "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - echo "----------------------------------------------------------------------" - fi - exit $EXIT_SUCCESS -} - -test finish = "$opt_mode" && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $debug_cmd - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || - # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac - then - # Aesthetically quote it. - func_quote_arg pretty "$nonopt" - install_prog="$func_quote_arg_result " - arg=$1 - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_arg pretty "$arg" - func_append install_prog "$func_quote_arg_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; - *) install_cp=false ;; - esac - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=false - stripme= - no_mode=: - for arg - do - arg2= - if test -n "$dest"; then - func_append files " $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=: ;; - -f) - if $install_cp; then :; else - prev=$arg - fi - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - if test X-m = "X$prev" && test -n "$install_override_mode"; then - arg2=$install_override_mode - no_mode=false - fi - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_arg pretty "$arg" - func_append install_prog " $func_quote_arg_result" - if test -n "$arg2"; then - func_quote_arg pretty "$arg2" - fi - func_append install_shared_prog " $func_quote_arg_result" - done - - test -z "$install_prog" && \ - func_fatal_help "you must specify an install program" - - test -n "$prev" && \ - func_fatal_help "the '$prev' option requires an argument" - - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_arg pretty "$install_override_mode" - func_append install_shared_prog " -m $func_quote_arg_result" - fi - fi - - if test -z "$files"; then - if test -z "$dest"; then - func_fatal_help "no file or destination specified" - else - func_fatal_help "you must specify a destination" - fi - fi - - # Strip any trailing slash from the destination. - func_stripname '' '/' "$dest" - dest=$func_stripname_result - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=: - if $isdir; then - destdir=$dest - destname= - else - func_dirname_and_basename "$dest" "" "." - destdir=$func_dirname_result - destname=$func_basename_result - func_stripname '' '/' "$destdir" - destdir=$func_stripname_result - - # Not a directory, so check to see that there is only one file specified. - set dummy $files; shift - test "$#" -gt 1 && \ - func_fatal_help "'$dest' is not a directory" - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) - func_normal_abspath "$destdir" - destdir="$func_normal_abspath_result" - ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - func_fatal_help "'$destdir' must be an absolute directory name" - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic=$magic - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - func_append staticlibs " $file" - ;; - - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "'$file' is not a valid libtool archive" - - library_names= - old_library= - relink_command= - func_source "$file" - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir=$func_dirname_result - func_append dir "$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - func_warning "relinking '$file'" - func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' - fi - - # See the names of the shared library. - set dummy $library_names; shift - if test -n "$1"; then - realname=$1 - shift - - srcname=$realname - test -n "$relink_command" && srcname=${realname}T - - # Install the shared library and build the symlinks. - func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme=$stripme - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme= - ;; - esac - ;; - os2*) - case $realname in - *_dll.a) - tstripme= - ;; - esac - ;; - esac - if test -n "$tstripme" && test -n "$striplib"; then - func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try 'ln -sf' first, because the 'ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - test "$linkname" != "$realname" \ - && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done - fi - - # Do each command in the postinstall commands. - lib=$destdir/$realname - func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - - # Install the pseudo-library for information purposes. - func_basename "$file" - name=$func_basename_result - instname=$dir/${name}i - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. - test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile=$destdir/$destname - else - func_basename "$file" - destfile=$func_basename_result - destfile=$destdir/$destfile - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - func_lo2o "$destfile" - staticdest=$func_lo2o_result - ;; - *.$objext) - staticdest=$destfile - destfile= - ;; - *) - func_fatal_help "cannot copy a libtool object to '$destfile'" - ;; - esac - - # Install the libtool object if requested. - test -n "$destfile" && \ - func_show_eval "$install_prog $file $destfile" 'exit $?' - - # Install the old object if enabled. - if test yes = "$build_old_libs"; then - # Deduce the name of the old-style object file. - func_lo2o "$file" - staticobj=$func_lo2o_result - func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile=$destdir/$destname - else - func_basename "$file" - destfile=$func_basename_result - destfile=$destdir/$destfile - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext= - case $file in - *.exe) - if test ! -f "$file"; then - func_stripname '' '.exe' "$file" - file=$func_stripname_result - stripped_ext=.exe - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin* | *mingw*) - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - wrapper=$func_ltwrapper_scriptname_result - else - func_stripname '' '.exe' "$file" - wrapper=$func_stripname_result - fi - ;; - *) - wrapper=$file - ;; - esac - if func_ltwrapper_script_p "$wrapper"; then - notinst_deplibs= - relink_command= - - func_source "$wrapper" - - # Check the variables that should have been set. - test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script '$wrapper'" - - finalize=: - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - func_source "$lib" - fi - libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "'$lib' has not been installed in '$libdir'" - finalize=false - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test no = "$fast_install" && test -n "$relink_command"; then - $opt_dry_run || { - if $finalize; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file=$func_basename_result - outputname=$tmpdir/$file - # Replace the output file specification. - relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_quiet || { - func_quote_arg expand,pretty "$relink_command" - eval "func_echo $func_quote_arg_result" - } - if eval "$relink_command"; then : - else - func_error "error: relink '$file' with the above command before installing it" - $opt_dry_run || ${RM}r "$tmpdir" - continue - fi - file=$outputname - else - func_warning "cannot relink '$file'" - fi - } - else - # Install the binary that we compiled earlier. - file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - func_stripname '' '.exe' "$destfile" - destfile=$func_stripname_result - ;; - esac - ;; - esac - func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' - $opt_dry_run || if test -n "$outputname"; then - ${RM}r "$tmpdir" - fi - ;; - esac - done - - for file in $staticlibs; do - func_basename "$file" - name=$func_basename_result - - # Set up the ranlib parameters. - oldlib=$destdir/$name - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - - func_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $tool_oldlib" 'exit $?' - fi - - # Do each command in the postinstall commands. - func_execute_cmds "$old_postinstall_cmds" 'exit $?' - done - - test -n "$future_libdirs" && \ - func_warning "remember to run '$progname --finish$future_libdirs'" - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi -} - -test install = "$opt_mode" && func_mode_install ${1+"$@"} - - -# func_generate_dlsyms outputname originator pic_p -# Extract symbols from dlprefiles and create ${outputname}S.o with -# a dlpreopen symbol table. -func_generate_dlsyms () -{ - $debug_cmd - - my_outputname=$1 - my_originator=$2 - my_pic_p=${3-false} - my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms=${my_outputname}S.c - else - func_error "not configured to extract global symbols from dlpreopened files" - fi - fi - - if test -n "$my_dlsyms"; then - case $my_dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist=$output_objdir/$my_outputname.nm - - func_show_eval "$RM $nlist ${nlist}S ${nlist}T" - - # Parse the name list into a source file. - func_verbose "creating $output_objdir/$my_dlsyms" - - $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) -#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" -#endif - -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE -/* DATA imports from DLLs on WIN32 can't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined __osf__ -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) - -/* External symbol declarations for the compiler. */\ -" - - if test yes = "$dlself"; then - func_verbose "generating symbol list for '$output'" - - $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from '$func_to_tool_file_result'" - $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { - eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols=$output_objdir/$outputname.exp - $opt_dry_run || { - $RM $export_symbols - eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { - eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } - fi - fi - - for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from '$dlprefile'" - func_basename "$dlprefile" - name=$func_basename_result - case $host in - *cygwin* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" - eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename= - if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then - # Use subshell, to avoid clobbering current variable values - dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname"; then - func_basename "$dlprefile_dlname" - dlprefile_dlbasename=$func_basename_result - else - # no lafile. user explicitly requested -dlpreopen <import library>. - $sharedlib_from_linklib_cmd "$dlprefile" - dlprefile_dlbasename=$sharedlib_from_linklib_result - fi - fi - $opt_dry_run || { - if test -n "$dlprefile_dlbasename"; then - eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' - else - func_warning "Could not compute DLL name from $name" - eval '$ECHO ": $name " >> "$nlist"' - fi - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" - } - else # not an import lib - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - fi - ;; - *) - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - ;; - esac - done - - $opt_dry_run || { - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $MV "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if $GREP -v "^: " < "$nlist" | - if sort -k 3 </dev/null >/dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - $GREP -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi - - func_show_eval '$RM "${nlist}I"' - if test -n "$global_symbol_to_import"; then - eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' - fi - - echo >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[];\ -" - - if test -s "$nlist"I; then - echo >> "$output_objdir/$my_dlsyms" "\ -static void lt_syminit(void) -{ - LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; - for (; symbol->name; ++symbol) - {" - $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" - echo >> "$output_objdir/$my_dlsyms" "\ - } -}" - fi - echo >> "$output_objdir/$my_dlsyms" "\ -LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{ {\"$my_originator\", (void *) 0}," - - if test -s "$nlist"I; then - echo >> "$output_objdir/$my_dlsyms" "\ - {\"@INIT@\", (void *) <_syminit}," - fi - - case $need_lib_prefix in - no) - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - *) - eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - esac - echo >> "$output_objdir/$my_dlsyms" "\ - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_${my_prefix}_LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - } # !$opt_dry_run - - pic_flag_for_symtable= - case "$compile_command " in - *" -static "*) ;; - *) - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; - *-*-hpux*) - pic_flag_for_symtable=" $pic_flag" ;; - *) - $my_pic_p && pic_flag_for_symtable=" $pic_flag" - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) func_append symtab_cflags " $arg" ;; - esac - done - - # Now compile the dynamic symbol file. - func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' - - # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' - - # Transform the symbol file into the correct name. - symfileobj=$output_objdir/${my_outputname}S.$objext - case $host in - *cygwin* | *mingw* | *cegcc* ) - if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - ;; - esac - ;; - *) - func_fatal_error "unknown suffix for '$my_dlsyms'" - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` - fi -} - -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $debug_cmd - - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $debug_cmd - - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -# Despite the name, also deal with 64 bit binaries. -func_win32_libid () -{ - $debug_cmd - - win32_libid_type=unknown - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - case $nm_interface in - "MS dumpbin") - if func_cygming_ms_implib_p "$1" || - func_cygming_gnu_implib_p "$1" - then - win32_nmres=import - else - win32_nmres= - fi - ;; - *) - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ - s|.*|import| - p - q - } - }'` - ;; - esac - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $ECHO "$win32_libid_type" -} - -# func_cygming_dll_for_implib ARG -# -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib () -{ - $debug_cmd - - sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -} - -# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -# -# The is the core of a fallback implementation of a -# platform-specific function to extract the name of the -# DLL associated with the specified import library LIBNAME. -# -# SECTION_NAME is either .idata$6 or .idata$7, depending -# on the platform and compiler that created the implib. -# -# Echos the name of the DLL associated with the -# specified import library. -func_cygming_dll_for_implib_fallback_core () -{ - $debug_cmd - - match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` - $OBJDUMP -s --section "$1" "$2" 2>/dev/null | - $SED '/^Contents of section '"$match_literal"':/{ - # Place marker at beginning of archive member dllname section - s/.*/====MARK====/ - p - d - } - # These lines can sometimes be longer than 43 characters, but - # are always uninteresting - /:[ ]*file format pe[i]\{,1\}-/d - /^In archive [^:]*:/d - # Ensure marker is printed - /^====MARK====/p - # Remove all lines with less than 43 characters - /^.\{43\}/!d - # From remaining lines, remove first 43 characters - s/^.\{43\}//' | - $SED -n ' - # Join marker and all lines until next marker into a single line - /^====MARK====/ b para - H - $ b para - b - :para - x - s/\n//g - # Remove the marker - s/^====MARK====// - # Remove trailing dots and whitespace - s/[\. \t]*$// - # Print - /./p' | - # we now have a list, one entry per line, of the stringified - # contents of the appropriate section of all members of the - # archive that possess that section. Heuristic: eliminate - # all those that have a first or second character that is - # a '.' (that is, objdump's representation of an unprintable - # character.) This should work for all archives with less than - # 0x302f exports -- but will fail for DLLs whose name actually - # begins with a literal '.' or a single character followed by - # a '.'. - # - # Of those that remain, print the first one. - $SED -e '/^\./d;/^.\./d;q' -} - -# func_cygming_dll_for_implib_fallback ARG -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# -# This fallback implementation is for use when $DLLTOOL -# does not support the --identify-strict option. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib_fallback () -{ - $debug_cmd - - if func_cygming_gnu_implib_p "$1"; then - # binutils import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1"; then - # ms-generated import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` - else - # unknown - sharedlib_from_linklib_result= - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $debug_cmd - - f_ex_an_ar_dir=$1; shift - f_ex_an_ar_oldlib=$1 - if test yes = "$lock_old_archive_extraction"; then - lockfile=$f_ex_an_ar_oldlib.lock - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - fi - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ - 'stat=$?; rm -f "$lockfile"; exit $stat' - if test yes = "$lock_old_archive_extraction"; then - $opt_dry_run || rm -f "$lockfile" - fi - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - $debug_cmd - - my_gentop=$1; shift - my_oldlibs=${1+"$@"} - my_oldobjs= - my_xlib= - my_xabs= - my_xdir= - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - func_basename "$my_xlib" - my_xlib=$func_basename_result - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - func_arith $extracted_serial + 1 - extracted_serial=$func_arith_result - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir=$my_gentop/$my_xlib_u - - func_mkdir_p "$my_xdir" - - case $host in - *-darwin*) - func_verbose "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - $opt_dry_run || { - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - func_basename "$darwin_archive" - darwin_base_archive=$func_basename_result - darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` - if test -n "$darwin_arches"; then - darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches; do - func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" - $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" - cd "unfat-$$/$darwin_base_archive-$darwin_arch" - func_extract_an_archive "`pwd`" "$darwin_base_archive" - cd "$darwin_curdir" - $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" - done # $darwin_arches - ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ - cd "$darwin_orig_dir" - else - cd $darwin_orig_dir - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - } # !$opt_dry_run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result=$my_oldobjs -} - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory where it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=${1-no} - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE) $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - generated_by_libtool_version='$macro_version' - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$ECHO are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - file=\"\$0\"" - - func_quote_arg pretty "$ECHO" - qECHO=$func_quote_arg_result - $ECHO "\ - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - ECHO=$qECHO - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ that is used only on -# windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options that match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's $0 value, followed by "$@". -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=\$0 - shift - for lt_opt - do - case \"\$lt_opt\" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` - test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. - lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` - cat \"\$lt_dump_D/\$lt_dump_F\" - exit 0 - ;; - --lt-*) - \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n \"\$lt_option_debug\"; then - echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" - lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from \$@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - case \" \$* \" in - *\\ --lt-*) - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done ;; - esac - func_exec_program_core \${1+\"\$@\"} -} - - # Parse options - func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 - if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then - # special case for '.' - if test \"\$thisdir\" = \".\"; then - thisdir=\`pwd\` - fi - # remove .libs from thisdir - case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test yes = "$fast_install"; then - $ECHO "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $MKDIR \"\$progdir\" - else - $RM \"\$progdir/\$file\" - fi" - - $ECHO "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - \$ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" - exit 1 - fi - fi - - $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $RM \"\$progdir/\$program\"; - $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $RM \"\$progdir/\$file\" - fi" - else - $ECHO "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $ECHO "\ - - if test -f \"\$progdir/\$program\"; then" - - # fixup the dll searchpath if we need to. - # - # Fix the DLL searchpath if we need to. Do this before prepending - # to shlibpath, because on Windows, both are PATH and uninstalled - # libraries must come first. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - # Export our shlibpath_var if we have one. - if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` - - export $shlibpath_var -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. - \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 - \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" -} - - -# func_emit_cwrapperexe_src -# emit the source code for a wrapper executable on stdout -# Must ONLY be called from within func_mode_link because -# it depends on a number of variable set therein. -func_emit_cwrapperexe_src () -{ - cat <<EOF - -/* $cwrappersource - temporary wrapper executable for $objdir/$outputname - Generated by $PROGRAM (GNU $PACKAGE) $VERSION - - The $output program cannot be directly executed until all the libtool - libraries that it depends on are installed. - - This wrapper executable should never be moved out of the build directory. - If it is, it will not operate correctly. -*/ -EOF - cat <<"EOF" -#ifdef _MSC_VER -# define _CRT_SECURE_NO_DEPRECATE 1 -#endif -#include <stdio.h> -#include <stdlib.h> -#ifdef _MSC_VER -# include <direct.h> -# include <process.h> -# include <io.h> -#else -# include <unistd.h> -# include <stdint.h> -# ifdef __CYGWIN__ -# include <io.h> -# endif -#endif -#include <malloc.h> -#include <stdarg.h> -#include <assert.h> -#include <string.h> -#include <ctype.h> -#include <errno.h> -#include <fcntl.h> -#include <sys/stat.h> - -#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) - -/* declarations of non-ANSI functions */ -#if defined __MINGW32__ -# ifdef __STRICT_ANSI__ -int _putenv (const char *); -# endif -#elif defined __CYGWIN__ -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -/* #elif defined other_platform || defined ... */ -#endif - -/* portability defines, excluding path handling macros */ -#if defined _MSC_VER -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -# define S_IXUSR _S_IEXEC -#elif defined __MINGW32__ -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -#elif defined __CYGWIN__ -# define HAVE_SETENV -# define FOPEN_WB "wb" -/* #elif defined other platforms ... */ -#endif - -#if defined PATH_MAX -# define LT_PATHMAX PATH_MAX -#elif defined MAXPATHLEN -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef S_IXOTH -# define S_IXOTH 0 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0 -#endif - -/* path handling portability macros */ -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ - defined __OS2__ -# define HAVE_DOS_BASED_FILE_SYSTEM -# define FOPEN_WB "wb" -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#ifndef FOPEN_WB -# define FOPEN_WB "w" -#endif -#ifndef _O_BINARY -# define _O_BINARY 0 -#endif - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free (stale); stale = 0; } \ -} while (0) - -#if defined LT_DEBUGWRAPPER -static int lt_debug = 1; -#else -static int lt_debug = 0; -#endif - -const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - -void *xmalloc (size_t num); -char *xstrdup (const char *string); -const char *base_name (const char *name); -char *find_executable (const char *wrapper); -char *chase_symlinks (const char *pathspec); -int make_executable (const char *path); -int check_executable (const char *path); -char *strendzap (char *str, const char *pat); -void lt_debugprintf (const char *file, int line, const char *fmt, ...); -void lt_fatal (const char *file, int line, const char *message, ...); -static const char *nonnull (const char *s); -static const char *nonempty (const char *s); -void lt_setenv (const char *name, const char *value); -char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); -char **prepare_spawn (char **argv); -void lt_dump_script (FILE *f); -EOF - - cat <<EOF -#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) -# define externally_visible volatile -#else -# define externally_visible __attribute__((externally_visible)) volatile -#endif -externally_visible const char * MAGIC_EXE = "$magic_exe"; -const char * LIB_PATH_VARNAME = "$shlibpath_var"; -EOF - - if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - func_to_host_path "$temp_rpath" - cat <<EOF -const char * LIB_PATH_VALUE = "$func_to_host_path_result"; -EOF - else - cat <<"EOF" -const char * LIB_PATH_VALUE = ""; -EOF - fi - - if test -n "$dllsearchpath"; then - func_to_host_path "$dllsearchpath:" - cat <<EOF -const char * EXE_PATH_VARNAME = "PATH"; -const char * EXE_PATH_VALUE = "$func_to_host_path_result"; -EOF - else - cat <<"EOF" -const char * EXE_PATH_VARNAME = ""; -const char * EXE_PATH_VALUE = ""; -EOF - fi - - if test yes = "$fast_install"; then - cat <<EOF -const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ -EOF - else - cat <<EOF -const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ -EOF - fi - - - cat <<"EOF" - -#define LTWRAPPER_OPTION_PREFIX "--lt-" - -static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; -static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; -static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; - -int -main (int argc, char *argv[]) -{ - char **newargz; - int newargc; - char *tmp_pathspec; - char *actual_cwrapper_path; - char *actual_cwrapper_name; - char *target_name; - char *lt_argv_zero; - int rval = 127; - - int i; - - program_name = (char *) xstrdup (base_name (argv[0])); - newargz = XMALLOC (char *, (size_t) argc + 1); - - /* very simple arg parsing; don't want to rely on getopt - * also, copy all non cwrapper options to newargz, except - * argz[0], which is handled differently - */ - newargc=0; - for (i = 1; i < argc; i++) - { - if (STREQ (argv[i], dumpscript_opt)) - { -EOF - case $host in - *mingw* | *cygwin* ) - # make stdout use "unix" line endings - echo " setmode(1,_O_BINARY);" - ;; - esac - - cat <<"EOF" - lt_dump_script (stdout); - return 0; - } - if (STREQ (argv[i], debug_opt)) - { - lt_debug = 1; - continue; - } - if (STREQ (argv[i], ltwrapper_option_prefix)) - { - /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX - namespace, but it is not one of the ones we know about and - have already dealt with, above (inluding dump-script), then - report an error. Otherwise, targets might begin to believe - they are allowed to use options in the LTWRAPPER_OPTION_PREFIX - namespace. The first time any user complains about this, we'll - need to make LTWRAPPER_OPTION_PREFIX a configure-time option - or a configure.ac-settable value. - */ - lt_fatal (__FILE__, __LINE__, - "unrecognized %s option: '%s'", - ltwrapper_option_prefix, argv[i]); - } - /* otherwise ... */ - newargz[++newargc] = xstrdup (argv[i]); - } - newargz[++newargc] = NULL; - -EOF - cat <<EOF - /* The GNU banner must be the first non-error debug message */ - lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n"); -EOF - cat <<"EOF" - lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); - lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); - - tmp_pathspec = find_executable (argv[0]); - if (tmp_pathspec == NULL) - lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); - lt_debugprintf (__FILE__, __LINE__, - "(main) found exe (before symlink chase) at: %s\n", - tmp_pathspec); - - actual_cwrapper_path = chase_symlinks (tmp_pathspec); - lt_debugprintf (__FILE__, __LINE__, - "(main) found exe (after symlink chase) at: %s\n", - actual_cwrapper_path); - XFREE (tmp_pathspec); - - actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); - strendzap (actual_cwrapper_path, actual_cwrapper_name); - - /* wrapper name transforms */ - strendzap (actual_cwrapper_name, ".exe"); - tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); - XFREE (actual_cwrapper_name); - actual_cwrapper_name = tmp_pathspec; - tmp_pathspec = 0; - - /* target_name transforms -- use actual target program name; might have lt- prefix */ - target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); - strendzap (target_name, ".exe"); - tmp_pathspec = lt_extend_str (target_name, ".exe", 1); - XFREE (target_name); - target_name = tmp_pathspec; - tmp_pathspec = 0; - - lt_debugprintf (__FILE__, __LINE__, - "(main) libtool target name: %s\n", - target_name); -EOF - - cat <<EOF - newargz[0] = - XMALLOC (char, (strlen (actual_cwrapper_path) + - strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); - strcpy (newargz[0], actual_cwrapper_path); - strcat (newargz[0], "$objdir"); - strcat (newargz[0], "/"); -EOF - - cat <<"EOF" - /* stop here, and copy so we don't have to do this twice */ - tmp_pathspec = xstrdup (newargz[0]); - - /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ - strcat (newargz[0], actual_cwrapper_name); - - /* DO want the lt- prefix here if it exists, so use target_name */ - lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); - XFREE (tmp_pathspec); - tmp_pathspec = NULL; -EOF - - case $host_os in - mingw*) - cat <<"EOF" - { - char* p; - while ((p = strchr (newargz[0], '\\')) != NULL) - { - *p = '/'; - } - while ((p = strchr (lt_argv_zero, '\\')) != NULL) - { - *p = '/'; - } - } -EOF - ;; - esac - - cat <<"EOF" - XFREE (target_name); - XFREE (actual_cwrapper_path); - XFREE (actual_cwrapper_name); - - lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ - lt_setenv ("DUALCASE", "1"); /* for MSK sh */ - /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must - be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) - because on Windows, both *_VARNAMEs are PATH but uninstalled - libraries must come first. */ - lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); - lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); - - lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", - nonnull (lt_argv_zero)); - for (i = 0; i < newargc; i++) - { - lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", - i, nonnull (newargz[i])); - } - -EOF - - case $host_os in - mingw*) - cat <<"EOF" - /* execv doesn't actually work on mingw as expected on unix */ - newargz = prepare_spawn (newargz); - rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); - if (rval == -1) - { - /* failed to start process */ - lt_debugprintf (__FILE__, __LINE__, - "(main) failed to launch target \"%s\": %s\n", - lt_argv_zero, nonnull (strerror (errno))); - return 127; - } - return rval; -EOF - ;; - *) - cat <<"EOF" - execv (lt_argv_zero, newargz); - return rval; /* =127, but avoids unused variable warning */ -EOF - ;; - esac - - cat <<"EOF" -} - -void * -xmalloc (size_t num) -{ - void *p = (void *) malloc (num); - if (!p) - lt_fatal (__FILE__, __LINE__, "memory exhausted"); - - return p; -} - -char * -xstrdup (const char *string) -{ - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), - string) : NULL; -} - -const char * -base_name (const char *name) -{ - const char *base; - -#if defined HAVE_DOS_BASED_FILE_SYSTEM - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha ((unsigned char) name[0]) && name[1] == ':') - name += 2; -#endif - - for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base = name + 1; - return base; -} - -int -check_executable (const char *path) -{ - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if ((stat (path, &st) >= 0) - && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - return 1; - else - return 0; -} - -int -make_executable (const char *path) -{ - int rval = 0; - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if (stat (path, &st) >= 0) - { - rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); - } - return rval; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise - Does not chase symlinks, even on platforms that support them. -*/ -char * -find_executable (const char *wrapper) -{ - int has_slash = 0; - const char *p; - const char *p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - size_t tmp_len; - char *concat_name; - - lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", - nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined HAVE_DOS_BASED_FILE_SYSTEM - if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } -#if defined HAVE_DOS_BASED_FILE_SYSTEM - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char *path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR (*q)) - break; - p_len = (size_t) (q - p); - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = - XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - return NULL; -} - -char * -chase_symlinks (const char *pathspec) -{ -#ifndef S_ISLNK - return xstrdup (pathspec); -#else - char buf[LT_PATHMAX]; - struct stat s; - char *tmp_pathspec = xstrdup (pathspec); - char *p; - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { - lt_debugprintf (__FILE__, __LINE__, - "checking path component for symlinks: %s\n", - tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) - { - has_symlinks = 1; - break; - } - - /* search backwards for last DIR_SEPARATOR */ - p = tmp_pathspec + strlen (tmp_pathspec) - 1; - while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - p--; - if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - { - /* no more DIR_SEPARATORS left */ - break; - } - *p = '\0'; - } - else - { - lt_fatal (__FILE__, __LINE__, - "error accessing file \"%s\": %s", - tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal (__FILE__, __LINE__, - "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); -#endif -} - -char * -strendzap (char *str, const char *pat) -{ - size_t len, patlen; - - assert (str != NULL); - assert (pat != NULL); - - len = strlen (str); - patlen = strlen (pat); - - if (patlen <= len) - { - str += len - patlen; - if (STREQ (str, pat)) - *str = '\0'; - } - return str; -} - -void -lt_debugprintf (const char *file, int line, const char *fmt, ...) -{ - va_list args; - if (lt_debug) - { - (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); - } -} - -static void -lt_error_core (int exit_status, const char *file, - int line, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *file, int line, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); -} - -static const char * -nonnull (const char *s) -{ - return s ? s : "(null)"; -} - -static const char * -nonempty (const char *s) -{ - return (s && !*s) ? "(empty)" : nonnull (s); -} - -void -lt_setenv (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_setenv) setting '%s' to '%s'\n", - nonnull (name), nonnull (value)); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - size_t len = strlen (name) + 1 + strlen (value) + 1; - char *str = XMALLOC (char, len); - sprintf (str, "%s=%s", name, value); - if (putenv (str) != EXIT_SUCCESS) - { - XFREE (str); - } -#endif - } -} - -char * -lt_extend_str (const char *orig_value, const char *add, int to_end) -{ - char *new_value; - if (orig_value && *orig_value) - { - size_t orig_value_len = strlen (orig_value); - size_t add_len = strlen (add); - new_value = XMALLOC (char, add_len + orig_value_len + 1); - if (to_end) - { - strcpy (new_value, orig_value); - strcpy (new_value + orig_value_len, add); - } - else - { - strcpy (new_value, add); - strcpy (new_value + add_len, orig_value); - } - } - else - { - new_value = xstrdup (add); - } - return new_value; -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - /* some systems can't cope with a ':'-terminated path #' */ - size_t len = strlen (new_value); - while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[--len] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -EOF - case $host_os in - mingw*) - cat <<"EOF" - -/* Prepares an argument vector before calling spawn(). - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Win32 CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - */ -#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -char ** -prepare_spawn (char **argv) -{ - size_t argc; - char **new_argv; - size_t i; - - /* Count number of arguments. */ - for (argc = 0; argv[argc] != NULL; argc++) - ; - - /* Allocate new argument vector. */ - new_argv = XMALLOC (char *, argc + 1); - - /* Put quoted arguments into the new argument vector. */ - for (i = 0; i < argc; i++) - { - const char *string = argv[i]; - - if (string[0] == '\0') - new_argv[i] = xstrdup ("\"\""); - else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) - { - int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); - size_t length; - unsigned int backslashes; - const char *s; - char *quoted_string; - char *p; - - length = 0; - backslashes = 0; - if (quote_around) - length++; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - length += backslashes + 1; - length++; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - length += backslashes + 1; - - quoted_string = XMALLOC (char, length + 1); - - p = quoted_string; - backslashes = 0; - if (quote_around) - *p++ = '"'; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - { - unsigned int j; - for (j = backslashes + 1; j > 0; j--) - *p++ = '\\'; - } - *p++ = c; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - { - unsigned int j; - for (j = backslashes; j > 0; j--) - *p++ = '\\'; - *p++ = '"'; - } - *p = '\0'; - - new_argv[i] = quoted_string; - } - else - new_argv[i] = (char *) string; - } - new_argv[argc] = NULL; - - return new_argv; -} -EOF - ;; - esac - - cat <<"EOF" -void lt_dump_script (FILE* f) -{ -EOF - func_emit_wrapper yes | - $SED -n -e ' -s/^\(.\{79\}\)\(..*\)/\1\ -\2/ -h -s/\([\\"]\)/\\\1/g -s/$/\\n/ -s/\([^\n]*\).*/ fputs ("\1", f);/p -g -D' - cat <<"EOF" -} -EOF -} -# end: func_emit_cwrapperexe_src - -# func_win32_import_lib_p ARG -# True if ARG is an import lib, as indicated by $file_magic_cmd -func_win32_import_lib_p () -{ - $debug_cmd - - case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -} - -# func_suncc_cstd_abi -# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! -# Several compiler flags select an ABI that is incompatible with the -# Cstd library. Avoid specifying it if any are in CXXFLAGS. -func_suncc_cstd_abi () -{ - $debug_cmd - - case " $compile_command " in - *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) - suncc_use_cstd_abi=no - ;; - *) - suncc_use_cstd_abi=yes - ;; - esac -} - -# func_mode_link arg... -func_mode_link () -{ - $debug_cmd - - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # what system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll that has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *-*-linux*) - if test "$link_all_deplibs" = unknown; then - link_all_deplibs=no - fi - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args=$nonopt - base_compile="$nonopt $@" - compile_command=$nonopt - finalize_command=$nonopt - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - new_inherited_linker_flags= - - avoid_version=no - bindir= - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - os2dllname= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=false - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - weak_libs= - single_module=$wl-single_module - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -shared) - test yes != "$build_libtool_libs" \ - && func_fatal_configuration "cannot build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then - func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg=$1 - shift - func_quote_arg pretty,unquoted "$arg" - qarg=$func_quote_arg_unquoted_result - func_append libtool_args " $func_quote_arg_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - func_append compile_command " @OUTPUT@" - func_append finalize_command " @OUTPUT@" - ;; - esac - - case $prev in - bindir) - bindir=$arg - prev= - continue - ;; - dlfiles|dlprefiles) - $preload || { - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=: - } - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test no = "$dlself"; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test dlprefiles = "$prev"; then - dlself=yes - elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test dlfiles = "$prev"; then - func_append dlfiles " $arg" - else - func_append dlprefiles " $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols=$arg - test -f "$arg" \ - || func_fatal_error "symbol file '$arg' does not exist" - prev= - continue - ;; - expsyms_regex) - export_symbols_regex=$arg - prev= - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; - *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir=$arg - prev= - continue - ;; - mllvm) - # Clang does not use LLVM to link, so we can simply discard any - # '-mllvm $arg' options when doing the link step. - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test none = "$pic_object" && - test none = "$non_pic_object"; then - func_fatal_error "cannot find name of object for '$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - if test none != "$pic_object"; then - # Prepend the subdirectory the object is found in. - pic_object=$xdir$pic_object - - if test dlfiles = "$prev"; then - if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test dlprefiles = "$prev"; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg=$pic_object - fi - - # Non-PIC object. - if test none != "$non_pic_object"; then - # Prepend the subdirectory the object is found in. - non_pic_object=$xdir$non_pic_object - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test none = "$pic_object"; then - arg=$non_pic_object - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object=$pic_object - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "'$arg' is not a valid libtool object" - fi - fi - done - else - func_fatal_error "link input file '$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; - os2dllname) - os2dllname=$arg - prev= - continue - ;; - precious_regex) - precious_files_regex=$arg - prev= - continue - ;; - release) - release=-$arg - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - func_normal_abspath "$arg" - arg="$func_normal_abspath_result" - if test rpath = "$prev"; then - case "$rpath " in - *" $arg "*) ;; - *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) func_append xrpath " $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds=$arg - prev= - continue - ;; - weak) - func_append weak_libs " $arg" - prev= - continue - ;; - xassembler) - func_append compiler_flags " -Xassembler $qarg" - prev= - func_append compile_command " -Xassembler $qarg" - func_append finalize_command " -Xassembler $qarg" - continue - ;; - xcclinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg=$arg - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - # See comment for -static flag below, for more details. - func_append compile_command " $link_static_flag" - func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - func_fatal_error "'-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -bindir) - prev=bindir - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test X-export-symbols = "X$arg"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework) - prev=framework - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - func_append compile_command " $arg" - func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) - func_stripname "-L" '' "$arg" - if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between '-L' and '$1'" - else - func_fatal_error "need path for '-L' option" - fi - fi - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of '$dir'" - dir=$absdir - ;; - esac - case "$deplibs " in - *" -L$dir "* | *" $arg "*) - # Will only happen for absolute or sysroot arguments - ;; - *) - # Preserve sysroot, but never include relative directories - case $dir in - [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; - *) func_append deplibs " -L$dir" ;; - esac - func_append lib_search_path " $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test X-lc = "X$arg" || test X-lm = "X$arg"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test X-lc = "X$arg" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) - # Do not include libc due to us having libc/libc_r. - test X-lc = "X$arg" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test X-lc = "X$arg" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test X-lc = "X$arg" && continue - ;; - esac - elif test X-lc_r = "X$arg"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - func_append deplibs " $arg" - continue - ;; - - -mllvm) - prev=mllvm - continue - ;; - - -module) - module=yes - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199. - -pthread) - case $host in - *solaris2*) ;; - *) - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - ;; - esac - continue - ;; - -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; - - -multi_module) - single_module=$wl-multi_module - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - func_warning "'-no-install' is ignored for $host" - func_warning "assuming '-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -os2dllname) - prev=os2dllname - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - func_stripname '-R' '' "$arg" - dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - =*) - func_stripname '=' '' "$dir" - dir=$lt_sysroot$func_stripname_result - ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - continue - ;; - - -shared) - # The effects of -shared are defined in a previous loop. - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -weak) - prev=weak - continue - ;; - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs=$IFS; IFS=, - for flag in $args; do - IFS=$save_ifs - func_quote_arg pretty "$flag" - func_append arg " $func_quote_arg_result" - func_append compiler_flags " $func_quote_arg_result" - done - IFS=$save_ifs - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Wl,*) - func_stripname '-Wl,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs=$IFS; IFS=, - for flag in $args; do - IFS=$save_ifs - func_quote_arg pretty "$flag" - func_append arg " $wl$func_quote_arg_result" - func_append compiler_flags " $wl$func_quote_arg_result" - func_append linker_flags " $func_quote_arg_result" - done - IFS=$save_ifs - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Xassembler) - prev=xassembler - continue - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # -msg_* for osf cc - -msg_*) - func_quote_arg pretty "$arg" - arg=$func_quote_arg_result - ;; - - # Flags to be passed through unchanged, with rationale: - # -64, -mips[0-9] enable 64-bit mode for the SGI compiler - # -r[0-9][0-9]* specify processor for the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler - # +DA*, +DD* enable 64-bit mode for the HP compiler - # -q* compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* architecture-specific flags for GCC - # -F/path path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* profiling flags for GCC - # -fstack-protector* stack protector flags for GCC - # @file GCC response files - # -tp=* Portland pgcc target processor selection - # --sysroot=* for sysroot support - # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - # -specs=* GCC specs files - # -stdlib=* select c++ std lib with clang - # -fsanitize=* Clang/GCC memory and address sanitizer - # -fuse-ld=* Linker select flags for GCC - # -Wa,* Pass flags directly to the assembler - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*) - func_quote_arg pretty "$arg" - arg=$func_quote_arg_result - func_append compile_command " $arg" - func_append finalize_command " $arg" - func_append compiler_flags " $arg" - continue - ;; - - -Z*) - if test os2 = "`expr $host : '.*\(os2\)'`"; then - # OS/2 uses -Zxxx to specify OS/2-specific options - compiler_flags="$compiler_flags $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case $arg in - -Zlinker | -Zstack) - prev=xcompiler - ;; - esac - continue - else - # Otherwise treat like 'Some other compiler flag' below - func_quote_arg pretty "$arg" - arg=$func_quote_arg_result - fi - ;; - - # Some other compiler flag. - -* | +*) - func_quote_arg pretty "$arg" - arg=$func_quote_arg_result - ;; - - *.$objext) - # A standard object. - func_append objs " $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test none = "$pic_object" && - test none = "$non_pic_object"; then - func_fatal_error "cannot find name of object for '$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - test none = "$pic_object" || { - # Prepend the subdirectory the object is found in. - pic_object=$xdir$pic_object - - if test dlfiles = "$prev"; then - if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test dlprefiles = "$prev"; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg=$pic_object - } - - # Non-PIC object. - if test none != "$non_pic_object"; then - # Prepend the subdirectory the object is found in. - non_pic_object=$xdir$non_pic_object - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test none = "$pic_object"; then - arg=$non_pic_object - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object=$pic_object - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir=$func_dirname_result - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "'$arg' is not a valid libtool object" - fi - fi - ;; - - *.$libext) - # An archive. - func_append deplibs " $arg" - func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - func_resolve_sysroot "$arg" - if test dlfiles = "$prev"; then - # This library was specified with -dlopen. - func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test dlprefiles = "$prev"; then - # The library was specified with -dlpreopen. - func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else - func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - func_quote_arg pretty "$arg" - arg=$func_quote_arg_result - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - done # argument parsing loop - - test -n "$prev" && \ - func_fatal_help "the '$prevarg' option requires an argument" - - if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - func_basename "$output" - outputname=$func_basename_result - libobjs_save=$libobjs - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - # Definition is injected by LT_CONFIG during libtool generation. - func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" - - func_dirname "$output" "/" "" - output_objdir=$func_dirname_result$objdir - func_to_tool_file "$output_objdir/" - tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") - func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if $opt_preserve_dup_deps; then - case "$libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append libs " $deplib" - done - - if test lib = "$linkmode"; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac - func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - - case $linkmode in - lib) - passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=false - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - - for pass in $passes; do - # The preopen pass in lib mode reverses $deplibs; put it back here - # so that -L comes before libs that need it for instance... - if test lib,link = "$linkmode,$pass"; then - ## FIXME: Find the place where the list is rebuilt in the wrong - ## order, and fix it there properly - tmp_deplibs= - for deplib in $deplibs; do - tmp_deplibs="$deplib $tmp_deplibs" - done - deplibs=$tmp_deplibs - fi - - if test lib,link = "$linkmode,$pass" || - test prog,scan = "$linkmode,$pass"; then - libs=$deplibs - deplibs= - fi - if test prog = "$linkmode"; then - case $pass in - dlopen) libs=$dlfiles ;; - dlpreopen) libs=$dlprefiles ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" = Xno || - func_append libs " $dependency_libs" - ;; - esac - fi - if test lib,dlpreopen = "$linkmode,$pass"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - func_resolve_sysroot "$lib" - case $lib in - *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - func_basename "$deplib" - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; - *) func_append deplibs " $deplib" ;; - esac - done - done - libs=$dlprefiles - fi - if test dlopen = "$pass"; then - # Collect dlpreopened libraries - save_deplibs=$deplibs - deplibs= - fi - - for deplib in $libs; do - lib= - found=false - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append compiler_flags " $deplib" - if test lib = "$linkmode"; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test lib != "$linkmode" && test prog != "$linkmode"; then - func_warning "'-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test lib = "$linkmode"; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib=$searchdir/lib$name$search_ext - if test -f "$lib"; then - if test .la = "$search_ext"; then - found=: - else - found=false - fi - break 2 - fi - done - done - if $found; then - # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $deplib "*) - if func_lalib_p "$lib"; then - library_names= - old_library= - func_source "$lib" - for l in $old_library $library_names; do - ll=$l - done - if test "X$ll" = "X$old_library"; then # only static version available - found=false - func_dirname "$lib" "" "." - ladir=$func_dirname_result - lib=$ladir/$old_library - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - else - # deplib doesn't seem to be a libtool library - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - ;; # -l - *.ltframework) - if test prog,link = "$linkmode,$pass"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test lib = "$linkmode"; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test conv = "$pass" && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - continue - fi - if test scan = "$pass"; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "'-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test link = "$pass"; then - func_stripname '-R' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) - func_resolve_sysroot "$deplib" - lib=$func_resolve_sysroot_result - ;; - *.$libext) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - # Linking convenience modules into shared libraries is allowed, - # but linking other static libraries is non-portable. - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) - valid_a_lib=false - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=: - fi - ;; - pass_all) - valid_a_lib=: - ;; - esac - if $valid_a_lib; then - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - else - echo - $ECHO "*** Warning: Trying to link with static lib archive $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because the file extensions .$libext of this argument makes me believe" - echo "*** that it is just a static archive that I should not use here." - fi - ;; - esac - continue - ;; - prog) - if test link != "$pass"; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test conv = "$pass"; then - deplibs="$deplib $deplibs" - elif test prog = "$linkmode"; then - if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append newdlfiles " $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=: - continue - ;; - esac # case $deplib - - $found || test -f "$lib" \ - || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$lib" \ - || func_fatal_error "'$lib' is not a valid libtool archive" - - func_dirname "$lib" "" "." - ladir=$func_dirname_result - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - func_source "$lib" - - # Convert "-framework foo" to "foo.ltframework" - if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; - *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test lib,link = "$linkmode,$pass" || - test prog,scan = "$linkmode,$pass" || - { test prog != "$linkmode" && test lib != "$linkmode"; }; then - test -n "$dlopen" && func_append dlfiles " $dlopen" - test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test conv = "$pass"; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for '$lib'" - fi - # It is a libtool convenience library, so add in its objects. - func_append convenience " $ladir/$objdir/$old_library" - func_append old_convenience " $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_duplicate_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - elif test prog != "$linkmode" && test lib != "$linkmode"; then - func_fatal_error "'$lib' is not a convenience library" - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - if test -n "$old_library" && - { test yes = "$prefer_static_libs" || - test built,no = "$prefer_static_libs,$installed"; }; then - linklib=$old_library - else - for l in $old_library $library_names; do - linklib=$l - done - fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for '$lib'" - fi - - # This library was specified with -dlopen. - if test dlopen = "$pass"; then - test -z "$libdir" \ - && func_fatal_error "cannot -dlopen a convenience library: '$lib'" - if test -z "$dlname" || - test yes != "$dlopen_support" || - test no = "$build_libtool_libs" - then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - func_append dlprefiles " $lib $dependency_libs" - else - func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of '$ladir'" - func_warning "passing it literally to the linker, although it might fail" - abs_ladir=$ladir - fi - ;; - esac - func_basename "$lib" - laname=$func_basename_result - - # Find the relevant object directory and library name. - if test yes = "$installed"; then - if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library '$lib' was moved." - dir=$ladir - absdir=$abs_ladir - libdir=$abs_ladir - else - dir=$lt_sysroot$libdir - absdir=$lt_sysroot$libdir - fi - test yes = "$hardcode_automatic" && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir=$ladir - absdir=$abs_ladir - # Remove this search path later - func_append notinst_path " $abs_ladir" - else - dir=$ladir/$objdir - absdir=$abs_ladir/$objdir - # Remove this search path later - func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" - name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test dlpreopen = "$pass"; then - if test -z "$libdir" && test prog = "$linkmode"; then - func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" - fi - case $host in - # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present - # (otherwise, the dlopen module name will be incorrect). We do - # this by putting the import library name into $newdlprefiles. - # We recover the dlopen module name by 'saving' the la file - # name in a special purpose variable, and (later) extracting the - # dlname from the la file. - if test -n "$dlname"; then - func_tr_sh "$dir/$linklib" - eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" - func_append newdlprefiles " $dir/$linklib" - else - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - fi - ;; - * ) - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - func_append newdlprefiles " $dir/$dlname" - else - func_append newdlprefiles " $dir/$linklib" - fi - ;; - esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test lib = "$linkmode"; then - deplibs="$dir/$old_library $deplibs" - elif test prog,link = "$linkmode,$pass"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test prog = "$linkmode" && test link != "$pass"; then - func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=false - if test no != "$link_all_deplibs" || test -z "$library_names" || - test no = "$build_libtool_libs"; then - linkalldeplibs=: - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? - if $linkalldeplibs; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test prog,link = "$linkmode,$pass"; then - if test -n "$library_names" && - { { test no = "$prefer_static_libs" || - test built,yes = "$prefer_static_libs,$installed"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then - # Make sure the rpath contains only unique directories. - case $temp_rpath: in - *"$absdir:"*) ;; - *) func_append temp_rpath "$absdir:" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if $alldeplibs && - { test pass_all = "$deplibs_check_method" || - { test yes = "$build_libtool_libs" && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test built = "$use_static_libs" && test yes = "$installed"; then - use_static_libs=no - fi - if test -n "$library_names" && - { test no = "$use_static_libs" || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc* | *os2*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test no = "$installed"; then - func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; - esac - # This is a shared library - - # Warn about portability, can't link against -module's on some - # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule= - for dlpremoduletest in $dlprefiles; do - if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule=$dlpremoduletest - break - fi - done - if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then - echo - if test prog = "$linkmode"; then - $ECHO "*** Warning: Linking the executable $output against the loadable module" - else - $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi - $ECHO "*** $linklib is not portable!" - fi - if test lib = "$linkmode" && - test yes = "$hardcode_into_libs"; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - shift - realname=$1 - shift - libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname=$dlname - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw* | *cegcc* | *os2*) - func_arith $current - $age - major=$func_arith_result - versuffix=-$major - ;; - esac - eval soname=\"$soname_spec\" - else - soname=$realname - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot=$soname - func_basename "$soroot" - soname=$func_basename_result - func_stripname 'lib' '.dll' "$soname" - newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - func_verbose "extracting exported symbol list from '$soname'" - func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for '$soname'" - func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test prog = "$linkmode" || test relink != "$opt_mode"; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test no = "$hardcode_direct"; then - add=$dir/$linklib - case $host in - *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; - *-*-sysv4*uw2*) add_dir=-L$dir ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir=-L$dir ;; - *-*-darwin* ) - # if the lib is a (non-dlopened) module then we cannot - # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null; then - if test "X$dlopenmodule" != "X$lib"; then - $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library"; then - echo - echo "*** And there doesn't seem to be a static archive available" - echo "*** The link will probably fail, sorry" - else - add=$dir/$old_library - fi - elif test -n "$old_library"; then - add=$dir/$old_library - fi - fi - esac - elif test no = "$hardcode_minus_L"; then - case $host in - *-*-sunos*) add_shlibpath=$dir ;; - esac - add_dir=-L$dir - add=-l$name - elif test no = "$hardcode_shlibpath_var"; then - add_shlibpath=$dir - add=-l$name - else - lib_linked=no - fi - ;; - relink) - if test yes = "$hardcode_direct" && - test no = "$hardcode_direct_absolute"; then - add=$dir/$linklib - elif test yes = "$hardcode_minus_L"; then - add_dir=-L$absdir - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add=-l$name - elif test yes = "$hardcode_shlibpath_var"; then - add_shlibpath=$dir - add=-l$name - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test yes != "$lib_linked"; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test prog = "$linkmode"; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test yes != "$hardcode_direct" && - test yes != "$hardcode_minus_L" && - test yes = "$hardcode_shlibpath_var"; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - - if test prog = "$linkmode" || test relink = "$opt_mode"; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test yes = "$hardcode_direct" && - test no = "$hardcode_direct_absolute"; then - add=$libdir/$linklib - elif test yes = "$hardcode_minus_L"; then - add_dir=-L$libdir - add=-l$name - elif test yes = "$hardcode_shlibpath_var"; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - add=-l$name - elif test yes = "$hardcode_automatic"; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib"; then - add=$inst_prefix_dir$libdir/$linklib - else - add=$libdir/$linklib - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir=-L$libdir - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add=-l$name - fi - - if test prog = "$linkmode"; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test prog = "$linkmode"; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test unsupported != "$hardcode_direct"; then - test -n "$old_library" && linklib=$old_library - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test yes = "$build_libtool_libs"; then - # Not a shared library - if test pass_all != "$deplibs_check_method"; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - echo - $ECHO "*** Warning: This system cannot link to static lib archive $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - if test yes = "$module"; then - echo "*** But as you try to build a module library, libtool will still create " - echo "*** a static module, that should work as long as the dlopening application" - echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using 'nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** 'nm' from GNU binutils and a full rebuild may help." - fi - if test no = "$build_old_libs"; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test lib = "$linkmode"; then - if test -n "$dependency_libs" && - { test yes != "$hardcode_into_libs" || - test yes = "$build_old_libs" || - test yes = "$link_static"; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) func_stripname '-R' '' "$libdir" - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) func_append xrpath " $temp_xrpath";; - esac;; - *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs=$temp_deplibs - fi - - func_append newlib_search_path " $absdir" - # Link against this library - test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result";; - *) func_resolve_sysroot "$deplib" ;; - esac - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $func_resolve_sysroot_result "*) - func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi - func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test no != "$link_all_deplibs"; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - path= - case $deplib in - -L*) path=$deplib ;; - *.la) - func_resolve_sysroot "$deplib" - deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." - dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of '$dir'" - absdir=$dir - fi - ;; - esac - if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) - depdepl= - eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names"; then - for tmp in $deplibrary_names; do - depdepl=$tmp - done - if test -f "$absdir/$objdir/$depdepl"; then - depdepl=$absdir/$objdir/$depdepl - darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - if test -z "$darwin_install_name"; then - darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi - func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" - func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" - path= - fi - fi - ;; - *) - path=-L$absdir/$objdir - ;; - esac - else - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "'$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ - func_warning "'$deplib' seems to be moved" - - path=-L$absdir - fi - ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test link = "$pass"; then - if test prog = "$linkmode"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs=$newdependency_libs - if test dlpreopen = "$pass"; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test dlopen != "$pass"; then - test conv = "$pass" || { - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= - } - - if test prog,link = "$linkmode,$pass"; then - vars="compile_deplibs finalize_deplibs" - else - vars=deplibs - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) func_append tmp_libs " $deplib" ;; - esac - ;; - *) func_append tmp_libs " $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - - # Add Sun CC postdeps if required: - test CXX = "$tagname" && { - case $host_os in - linux*) - case `$CC -V 2>&1 | $SED 5q` in - *Sun\ C*) # Sun C++ 5.9 - func_suncc_cstd_abi - - if test no != "$suncc_use_cstd_abi"; then - func_append postdeps ' -library=Cstd -library=Crun' - fi - ;; - esac - ;; - - solaris*) - func_cc_basename "$CC" - case $func_cc_basename_result in - CC* | sunCC*) - func_suncc_cstd_abi - - if test no != "$suncc_use_cstd_abi"; then - func_append postdeps ' -library=Cstd -library=Crun' - fi - ;; - esac - ;; - esac - } - - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i= - ;; - esac - if test -n "$i"; then - func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test prog = "$linkmode"; then - dlfiles=$newdlfiles - fi - if test prog = "$linkmode" || test lib = "$linkmode"; then - dlprefiles=$newdlprefiles - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - func_warning "'-dlopen' is ignored for archives" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "'-l' and '-L' are ignored for archives" ;; - esac - - test -n "$rpath" && \ - func_warning "'-rpath' is ignored for archives" - - test -n "$xrpath" && \ - func_warning "'-R' is ignored for archives" - - test -n "$vinfo" && \ - func_warning "'-version-info/-version-number' is ignored for archives" - - test -n "$release" && \ - func_warning "'-release' is ignored for archives" - - test -n "$export_symbols$export_symbols_regex" && \ - func_warning "'-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs=$output - func_append objs "$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form 'libNAME.la'. - case $outputname in - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - test no = "$module" \ - && func_fatal_help "libtool library '$output' must begin with 'lib'" - - if test no != "$need_lib_prefix"; then - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test pass_all != "$deplibs_check_method"; then - func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" - else - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" - func_append libobjs " $objs" - fi - fi - - test no = "$dlself" \ - || func_warning "'-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test 1 -lt "$#" \ - && func_warning "ignoring multiple '-rpath's for a libtool library" - - install_libdir=$1 - - oldlibs= - if test -z "$rpath"; then - if test yes = "$build_libtool_libs"; then - # Building a libtool convenience library. - # Some compilers have problems with a '.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - test -n "$vinfo" && \ - func_warning "'-version-info/-version-number' is ignored for convenience libraries" - - test -n "$release" && \ - func_warning "'-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs=$IFS; IFS=: - set dummy $vinfo 0 0 0 - shift - IFS=$save_ifs - - test -n "$7" && \ - func_fatal_help "too many parameters to '-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major=$1 - number_minor=$2 - number_revision=$3 - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # that has an extra 1 added just for fun - # - case $version_type in - # correct linux to gnu/linux during the next big refactor - darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age=$number_minor - revision=$number_revision - ;; - freebsd-aout|qnx|sunos) - current=$number_major - revision=$number_minor - age=0 - ;; - irix|nonstopux) - func_arith $number_major + $number_minor - current=$func_arith_result - age=$number_minor - revision=$number_minor - lt_irix_increment=no - ;; - *) - func_fatal_configuration "$modename: unknown library version type \`$version_type'" - ;; - esac - ;; - no) - current=$1 - revision=$2 - age=$3 - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "CURRENT '$current' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "REVISION '$revision' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "AGE '$age' must be a nonnegative integer" - func_fatal_error "'$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then - func_error "AGE '$age' is greater than the current interface number '$current'" - func_fatal_error "'$vinfo' is not valid version information" - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - # Darwin ld doesn't like 0 for these options... - func_arith $current + 1 - minor_current=$func_arith_result - xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - # On Darwin other compilers - case $CC in - nagfor*) - verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" - ;; - *) - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - esac - ;; - - freebsd-aout) - major=.$current - versuffix=.$current.$revision - ;; - - freebsd-elf | midnightbsd-elf) - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - ;; - - irix | nonstopux) - if test no = "$lt_irix_increment"; then - func_arith $current - $age - else - func_arith $current - $age + 1 - fi - major=$func_arith_result - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring=$verstring_prefix$major.$revision - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test 0 -ne "$loop"; do - func_arith $revision - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring=$verstring_prefix$major.$iface:$verstring - done - - # Before this point, $major must not contain '.'. - major=.$major - versuffix=$major.$revision - ;; - - linux) # correct to gnu/linux during the next big refactor - func_arith $current - $age - major=.$func_arith_result - versuffix=$major.$age.$revision - ;; - - osf) - func_arith $current - $age - major=.$func_arith_result - versuffix=.$current.$age.$revision - verstring=$current.$age.$revision - - # Add in all the interfaces that we are compatible with. - loop=$age - while test 0 -ne "$loop"; do - func_arith $current - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring=$verstring:$iface.0 - done - - # Make executables depend on our current version. - func_append verstring ":$current.0" - ;; - - qnx) - major=.$current - versuffix=.$current - ;; - - sco) - major=.$current - versuffix=.$current - ;; - - sunos) - major=.$current - versuffix=.$current.$revision - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 file systems. - func_arith $current - $age - major=$func_arith_result - versuffix=-$major - ;; - - *) - func_fatal_configuration "unknown library version type '$version_type'" - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring=0.0 - ;; - esac - if test no = "$need_version"; then - versuffix= - else - versuffix=.0.0 - fi - fi - - # Remove version info from name if versioning should be avoided - if test yes,no = "$avoid_version,$need_version"; then - major= - versuffix= - verstring= - fi - - # Check to see if the archive will have undefined symbols. - if test yes = "$allow_undefined"; then - if test unsupported = "$allow_undefined_flag"; then - if test yes = "$build_old_libs"; then - func_warning "undefined symbols not allowed in $host shared libraries; building static only" - build_libtool_libs=no - else - func_fatal_error "can't build $host shared library unless -no-undefined is specified" - fi - fi - else - # Don't allow undefined symbols. - allow_undefined_flag=$no_undefined_flag - fi - - fi - - func_generate_dlsyms "$libname" "$libname" : - func_append libobjs " $symfileobj" - test " " = "$libobjs" && libobjs= - - if test relink != "$opt_mode"; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) - if test -n "$precious_files_regex"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - func_append removelist " $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then - func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` - # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` - # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - # Skip directories that are in the system default run-time search path. - case " $sys_lib_dlsearch_path " in - *" $libdir "*) continue ;; - esac - func_replace_sysroot "$libdir" - func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles=$dlfiles - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) func_append dlfiles " $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles=$dlprefiles - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) func_append dlprefiles " $lib" ;; - esac - done - - if test yes = "$build_libtool_libs"; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test yes = "$build_libtool_need_lc"; then - func_append deplibs " -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release= - versuffix= - major= - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $opt_dry_run || $RM conftest.c - cat > conftest.c <<EOF - int main() { return 0; } -EOF - $opt_dry_run || $RM conftest - if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then - ldd_output=`ldd conftest` - for i in $deplibs; do - case $i in - -l*) - func_stripname -l '' "$i" - name=$func_stripname_result - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $i "*) - func_append newdeplibs " $i" - i= - ;; - esac - fi - if test -n "$i"; then - libname=`eval "\\$ECHO \"$libname_spec\""` - deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` - set dummy $deplib_matches; shift - deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then - func_append newdeplibs " $i" - else - droppeddeps=yes - echo - $ECHO "*** Warning: dynamic linker does not accept needed library $i." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which I believe you do not have" - echo "*** because a test_compile did reveal that the linker did not use it for" - echo "*** its dynamic dependency list that programs get resolved with at runtime." - fi - fi - ;; - *) - func_append newdeplibs " $i" - ;; - esac - done - else - # Error occurred in the first compile. Let's try to salvage - # the situation: Compile a separate program for each library. - for i in $deplibs; do - case $i in - -l*) - func_stripname -l '' "$i" - name=$func_stripname_result - $opt_dry_run || $RM conftest - if $LTCC $LTCFLAGS -o conftest conftest.c $i; then - ldd_output=`ldd conftest` - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $i "*) - func_append newdeplibs " $i" - i= - ;; - esac - fi - if test -n "$i"; then - libname=`eval "\\$ECHO \"$libname_spec\""` - deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` - set dummy $deplib_matches; shift - deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then - func_append newdeplibs " $i" - else - droppeddeps=yes - echo - $ECHO "*** Warning: dynamic linker does not accept needed library $i." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because a test_compile did reveal that the linker did not use this one" - echo "*** as a dynamic dependency that programs can get resolved with at runtime." - fi - fi - else - droppeddeps=yes - echo - $ECHO "*** Warning! Library $i is needed by this library but I was not able to" - echo "*** make it link in! You will probably need to install it or some" - echo "*** library that it depends on before this library will be fully" - echo "*** functional. Installing it before continuing would be even better." - fi - ;; - *) - func_append newdeplibs " $i" - ;; - esac - done - fi - ;; - file_magic*) - set dummy $deplibs_check_method; shift - file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib= - ;; - esac - fi - if test -n "$a_deplib"; then - libname=`eval "\\$ECHO \"$libname_spec\""` - if test -n "$file_magic_glob"; then - libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` - else - libnameglob=$libname - fi - test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - if test yes = "$want_nocaseglob"; then - shopt -s nocaseglob - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - $nocaseglob - else - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | - $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib=$potent_lib - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | $SED 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; - *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib= - break 2 - fi - done - done - fi - if test -n "$a_deplib"; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib"; then - $ECHO "*** with $libname but no candidates were found. (...for file magic test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib= - ;; - esac - fi - if test -n "$a_deplib"; then - libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib=$potent_lib # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib= - break 2 - fi - done - done - fi - if test -n "$a_deplib"; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib"; then - $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs= - tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test yes = "$allow_libtool_libs_with_static_runtimes"; then - for i in $predeps $postdeps; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` - done - fi - case $tmp_deplibs in - *[!\ \ ]*) - echo - if test none = "$deplibs_check_method"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." - else - echo "*** Warning: inter-library dependencies are not known to be supported." - fi - echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - ;; - esac - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - if test yes = "$droppeddeps"; then - if test yes = "$module"; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using 'nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** 'nm' from GNU binutils and a full rebuild may help." - fi - if test no = "$build_old_libs"; then - oldlibs=$output_objdir/$libname.$libext - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test no = "$allow_undefined"; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." - if test no = "$build_old_libs"; then - oldlibs=$output_objdir/$libname.$libext - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - deplibs=$new_libs - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test yes = "$build_libtool_libs"; then - # Remove $wl instances when linking with ld. - # FIXME: should test the right _cmds variable. - case $archive_cmds in - *\$LD\ *) wl= ;; - esac - if test yes = "$hardcode_into_libs"; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath=$finalize_rpath - test relink = "$opt_mode" || rpath=$compile_rpath$rpath - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - func_replace_sysroot "$libdir" - libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath=$finalize_shlibpath - test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname=$1 - shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname=$realname - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib=$output_objdir/$realname - linknames= - for link - do - func_append linknames " $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` - test "X$libobjs" = "X " && libobjs= - - delfiles= - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols=$output_objdir/$libname.uexp - func_append delfiles " $export_symbols" - fi - - orig_export_symbols= - case $host_os in - cygwin* | mingw* | cegcc*) - if test -n "$export_symbols" && test -z "$export_symbols_regex"; then - # exporting using user supplied symfile - func_dll_def_p "$export_symbols" || { - # and it's NOT already a .def file. Must figure out - # which of the given symbols are data symbols and tag - # them as such. So, trigger use of export_symbols_cmds. - # export_symbols gets reassigned inside the "prepare - # the list of exported symbols" if statement, so the - # include_expsyms logic still works. - orig_export_symbols=$export_symbols - export_symbols= - always_export_symbols=yes - } - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for '$libname.la'" - export_symbols=$output_objdir/$libname.exp - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs=$IFS; IFS='~' - for cmd1 in $cmds; do - IFS=$save_ifs - # Take the normal branch if the nm_file_list_spec branch - # doesn't work or if tool conversion is not needed. - case $nm_file_list_spec~$to_tool_file_cmd in - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) - try_normal_branch=yes - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - ;; - *) - try_normal_branch=no - ;; - esac - if test yes = "$try_normal_branch" \ - && { test "$len" -lt "$max_cmd_len" \ - || test "$max_cmd_len" -le -1; } - then - func_show_eval "$cmd" 'exit $?' - skipped_export=false - elif test -n "$nm_file_list_spec"; then - func_basename "$output" - output_la=$func_basename_result - save_libobjs=$libobjs - save_output=$output - output=$output_objdir/$output_la.nm - func_to_tool_file "$output" - libobjs=$nm_file_list_spec$func_to_tool_file_result - func_append delfiles " $output" - func_verbose "creating $NM input file list: $output" - for obj in $save_libobjs; do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > "$output" - eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' - output=$save_output - libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. - func_verbose "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS=$save_ifs - if test -n "$export_symbols_regex" && test : != "$skipped_export"; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols=$export_symbols - test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test : != "$skipped_export" && test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for '$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands, which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - func_append tmp_deplibs " $test_deplib" - ;; - esac - done - deplibs=$tmp_deplibs - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test yes = "$compiler_needs_object" && - test -z "$libobjs"; then - # extract the archives, so we have objects to list. - # TODO: could optimize this to just extract one archive. - whole_archive_flag_spec= - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test relink = "$opt_mode"; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test yes = "$module" && test -n "$module_cmds"; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test : != "$skipped_export" && - func_len " $test_cmds" && - len=$func_len_result && - test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise - # or, if using GNU ld and skipped_export is not :, use a linker - # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - func_basename "$output" - output_la=$func_basename_result - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - last_robj= - k=1 - - if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then - output=$output_objdir/$output_la.lnkscript - func_verbose "creating GNU ld script: $output" - echo 'INPUT (' > $output - for obj in $save_libobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output - func_append delfiles " $output" - func_to_tool_file "$output" - output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then - output=$output_objdir/$output_la.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test yes = "$compiler_needs_object"; then - firstobj="$1 " - shift - fi - for obj - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-$k.$objext - eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - if test -z "$objlist" || - test "$len" -lt "$max_cmd_len"; then - func_append objlist " $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test 1 -eq "$k"; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist - eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-$k.$objext - func_arith $k + 1 - k=$func_arith_result - output=$output_objdir/$output_la-$k.$objext - objlist=" $obj" - func_len " $last_robj" - func_arith $len0 + $func_len_result - len=$func_arith_result - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds$reload_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - func_append delfiles " $output" - - else - output= - fi - - ${skipped_export-false} && { - func_verbose "generating symbol list for '$libname.la'" - export_symbols=$output_objdir/$libname.exp - $opt_dry_run || $RM $export_symbols - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - } - - test -n "$save_libobjs" && - func_verbose "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs=$IFS; IFS='~' - for cmd in $concat_cmds; do - IFS=$save_ifs - $opt_quiet || { - func_quote_arg expand,pretty "$cmd" - eval "func_echo $func_quote_arg_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS=$save_ifs - - if test -n "$export_symbols_regex" && ${skipped_export-false}; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - - ${skipped_export-false} && { - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols=$export_symbols - test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for '$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands, which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - } - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test yes = "$module" && test -n "$module_cmds"; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - fi - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs=$IFS; IFS='~' - for cmd in $cmds; do - IFS=$sp$nl - eval cmd=\"$cmd\" - IFS=$save_ifs - $opt_quiet || { - func_quote_arg expand,pretty "$cmd" - eval "func_echo $func_quote_arg_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS=$save_ifs - - # Restore the uninstalled library and exit - if test relink = "$opt_mode"; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - func_show_eval '${RM}r "$gentop"' - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test yes = "$module" || test yes = "$export_dynamic"; then - # On all known operating systems, these are identical. - dlname=$soname - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then - func_warning "'-dlopen' is ignored for objects" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "'-l' and '-L' are ignored for objects" ;; - esac - - test -n "$rpath" && \ - func_warning "'-rpath' is ignored for objects" - - test -n "$xrpath" && \ - func_warning "'-R' is ignored for objects" - - test -n "$vinfo" && \ - func_warning "'-version-info' is ignored for objects" - - test -n "$release" && \ - func_warning "'-release' is ignored for objects" - - case $output in - *.lo) - test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object '$output' from non-libtool objects" - - libobj=$output - func_lo2o "$libobj" - obj=$func_lo2o_result - ;; - *) - libobj= - obj=$output - ;; - esac - - # Delete the old objects. - $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # if reload_cmds runs $LD directly, get rid of -Wl from - # whole_archive_flag_spec and hope we can get by with turning comma - # into space. - case $reload_cmds in - *\$LD[\ \$]*) wl= ;; - esac - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags - else - gentop=$output_objdir/${obj}x - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # If we're not building shared, we need to use non_pic_objs - test yes = "$build_libtool_libs" || libobjs=$non_pic_objects - - # Create the old-style object. - reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs - - output=$obj - func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - fi - - test yes = "$build_libtool_libs" || { - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - } - - if test -n "$pic_flag" || test default != "$pic_mode"; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output=$libobj - func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) func_stripname '' '.exe' "$output" - output=$func_stripname_result.exe;; - esac - test -n "$vinfo" && \ - func_warning "'-version-info' is ignored for programs" - - test -n "$release" && \ - func_warning "'-release' is ignored for programs" - - $preload \ - && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ - && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in - *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - # But is supposedly fixed on 10.4 or later (yay!). - if test CXX = "$tagname"; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - func_append compile_command " $wl-bind_at_load" - func_append finalize_command " $wl-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs=$new_libs - - - func_append compile_command " $compile_deplibs" - func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # Skip directories that are in the system default run-time search path. - case " $sys_lib_dlsearch_path " in - *" $libdir "*) continue ;; - esac - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; - *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath=$rpath - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs=$libdir - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir=$hardcode_libdirs - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath=$rpath - - if test -n "$libobjs" && test yes = "$build_old_libs"; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" false - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=: - case $host in - *cegcc* | *mingw32ce*) - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=false - ;; - *cygwin* | *mingw* ) - test yes = "$build_libtool_libs" || wrappers_required=false - ;; - *) - if test no = "$need_relink" || test yes != "$build_libtool_libs"; then - wrappers_required=false - fi - ;; - esac - $wrappers_required || { - # Replace the output file specification. - compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command=$compile_command$compile_rpath - - # We have no uninstalled library dependencies, so finalize right now. - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.$objext"; then - func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' - fi - - exit $exit_status - } - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test yes = "$no_install"; then - # We don't need to create a wrapper script. - link_command=$compile_var$compile_command$compile_rpath - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - exit $EXIT_SUCCESS - fi - - case $hardcode_action,$fast_install in - relink,*) - # Fast installation is not supported - link_command=$compile_var$compile_command$compile_rpath - relink_command=$finalize_var$finalize_command$finalize_rpath - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "'$output' will be relinked during installation" - ;; - *,yes) - link_command=$finalize_var$compile_command$finalize_rpath - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - ;; - *,no) - link_command=$compile_var$compile_command$compile_rpath - relink_command=$finalize_var$finalize_command$finalize_rpath - ;; - *,needless) - link_command=$finalize_var$compile_command$finalize_rpath - relink_command= - ;; - esac - - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output_objdir/$outputname" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Now create the wrapper script. - func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_arg pretty "$var_value" - relink_command="$var=$func_quote_arg_result; export $var; $relink_command" - fi - done - func_quote eval cd "`pwd`" - func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" - relink_command=$func_quote_arg_unquoted_result - fi - - # Only actually do things if not in dry run mode. - $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) func_stripname '' '.exe' "$output" - output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - func_stripname '' '.exe' "$outputname" - outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - func_dirname_and_basename "$output" "" "." - output_name=$func_basename_result - output_path=$func_dirname_result - cwrappersource=$output_path/$objdir/lt-$output_name.c - cwrapper=$output_path/$output_name.exe - $RM $cwrappersource $cwrapper - trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - func_emit_cwrapperexe_src > $cwrappersource - - # The wrapper executable is built using the $host compiler, - # because it contains $host paths and files. If cross- - # compiling, it, like the target executable, must be - # executed on the $host or under an emulation environment. - $opt_dry_run || { - $LTCC $LTCFLAGS -o $cwrapper $cwrappersource - $STRIP $cwrapper - } - - # Now, create the wrapper script for func_source use: - func_ltwrapper_scriptname $cwrapper - $RM $func_ltwrapper_scriptname_result - trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 - $opt_dry_run || { - # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host"; then - $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result - else - func_emit_wrapper no > $func_ltwrapper_scriptname_result - fi - } - ;; - * ) - $RM $output - trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - - func_emit_wrapper no > $output - chmod +x $output - ;; - esac - } - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - case $build_libtool_libs in - convenience) - oldobjs="$libobjs_save $symfileobj" - addlibs=$convenience - build_libtool_libs=no - ;; - module) - oldobjs=$libobjs_save - addlibs=$old_convenience - build_libtool_libs=no - ;; - *) - oldobjs="$old_deplibs $non_pic_objects" - $preload && test -f "$symfileobj" \ - && func_append oldobjs " $symfileobj" - addlibs=$old_convenience - ;; - esac - - if test -n "$addlibs"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $addlibs - func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then - cmds=$old_archive_from_new_cmds - else - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - func_basename "$obj" - $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else - echo "copying selected object files to avoid basename conflicts..." - gentop=$output_objdir/${outputname}x - func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - func_basename "$obj" - objbase=$func_basename_result - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - func_arith $counter + 1 - counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - func_append oldobjs " $gentop/$newobj" - ;; - *) func_append oldobjs " $obj" ;; - esac - done - fi - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - elif test -n "$archiver_list_spec"; then - func_verbose "using command file archive linking..." - for obj in $oldobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > $output_objdir/$libname.libcmd - func_to_tool_file "$output_objdir/$libname.libcmd" - oldobjs=" $archiver_list_spec$func_to_tool_file_result" - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - for obj in $save_oldobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - func_append objlist " $obj" - if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj"; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" - objlist= - len=$len0 - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test -z "$oldobjs"; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - func_execute_cmds "$cmds" 'exit $?' - done - - test -n "$generated" && \ - func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test yes = "$build_old_libs" && old_library=$libname.$libext - func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_arg pretty,unquoted "$var_value" - relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - func_quote eval cd "`pwd`" - relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - func_quote_arg pretty,unquoted "$relink_command" - relink_command=$func_quote_arg_unquoted_result - if test yes = "$hardcode_automatic"; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test yes = "$installed"; then - if test -z "$install_libdir"; then - break - fi - output=$output_objdir/${outputname}i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - func_basename "$deplib" - name=$func_basename_result - func_resolve_sysroot "$deplib" - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "'$deplib' is not a valid libtool archive" - func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" - ;; - -L*) - func_stripname -L '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; - -R*) - func_stripname -R '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -R$func_replace_sysroot_result" - ;; - *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs=$newdependency_libs - newdlfiles= - - for lib in $dlfiles; do - case $lib in - *.la) - func_basename "$lib" - name=$func_basename_result - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "'$lib' is not a valid libtool archive" - func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; - *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles=$newdlfiles - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - *.la) - # Only pass preopened files to the pseudo-archive (for - # eventual linking with the app. that links it) if we - # didn't already link the preopened objects directly into - # the library: - func_basename "$lib" - name=$func_basename_result - eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "'$lib' is not a valid libtool archive" - func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done - dlprefiles=$newdlprefiles - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlfiles " $abs" - done - dlfiles=$newdlfiles - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlprefiles " $abs" - done - dlprefiles=$newdlprefiles - fi - $RM $output - # place dlname in correct position for cygwin - # In fact, it would be nice if we could use this code for all target - # systems that can't hard-code library paths into their executables - # and that have no shared library path variable independent of PATH, - # but it turns out we can't easily determine that from inspecting - # libtool variables, so we have to hard-code the OSs to which it - # applies here; at the moment, that means platforms that use the PE - # object format with DLL files. See the long comment at the top of - # tests/bindir.at for full details. - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) - # If a -bindir argument was supplied, place the dll there. - if test -n "$bindir"; then - func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result/$dlname - else - # Otherwise fall back on heuristic. - tdlname=../bin/$dlname - fi - ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Linker flags that cannot go in dependency_libs. -inherited_linker_flags='$new_inherited_linker_flags' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Names of additional weak libraries provided by this library -weak_library_names='$weak_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test no,yes = "$installed,$need_relink"; then - $ECHO >> $output "\ -relink_command=\"$relink_command\"" - fi - done - } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac - exit $EXIT_SUCCESS -} - -if test link = "$opt_mode" || test relink = "$opt_mode"; then - func_mode_link ${1+"$@"} -fi - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $debug_cmd - - RM=$nonopt - files= - rmforce=false - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic=$magic - - for arg - do - case $arg in - -f) func_append RM " $arg"; rmforce=: ;; - -*) func_append RM " $arg" ;; - *) func_append files " $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - for file in $files; do - func_dirname "$file" "" "." - dir=$func_dirname_result - if test . = "$dir"; then - odir=$objdir - else - odir=$dir/$objdir - fi - func_basename "$file" - name=$func_basename_result - test uninstall = "$opt_mode" && odir=$dir - - # Remember odir for removal later, being careful to avoid duplicates - if test clean = "$opt_mode"; then - case " $rmdirs " in - *" $odir "*) ;; - *) func_append rmdirs " $odir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if { test -L "$file"; } >/dev/null 2>&1 || - { test -h "$file"; } >/dev/null 2>&1 || - test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif $rmforce; then - continue - fi - - rmfiles=$file - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if func_lalib_p "$file"; then - func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - func_append rmfiles " $odir/$n" - done - test -n "$old_library" && func_append rmfiles " $odir/$old_library" - - case $opt_mode in - clean) - case " $library_names " in - *" $dlname "*) ;; - *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac - test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if func_lalib_p "$file"; then - - # Read the .lo file - func_source $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && test none != "$pic_object"; then - func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && test none != "$non_pic_object"; then - func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) - if test clean = "$opt_mode"; then - noexename=$name - case $file in - *.exe) - func_stripname '' '.exe' "$file" - file=$func_stripname_result - func_stripname '' '.exe' "$name" - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. - if func_ltwrapper_p "$file"; then - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result - func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename - fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.$objext" - if test yes = "$fast_install" && test -n "$relink_command"; then - func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name"; then - func_append rmfiles " $odir/lt-$noexename.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - - # Try to remove the $objdir's in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -} - -if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then - func_mode_uninstall ${1+"$@"} -fi - -test -z "$opt_mode" && { - help=$generic_help - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode '$opt_mode'" - -if test -n "$exec_cmd"; then - eval exec "$exec_cmd" - exit $EXIT_FAILURE -fi - -exit $exit_status - - -# The TAGs below are defined such that we never get into a situation -# where we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/build-aux/missing b/build-aux/missing deleted file mode 100755 index 8d0eaad2..00000000 --- a/build-aux/missing +++ /dev/null @@ -1,215 +0,0 @@ -#! /bin/sh -# Common wrapper for a few potentially missing GNU programs. - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1996-2020 Free Software Foundation, Inc. -# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 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, 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, see <https://www.gnu.org/licenses/>. - -# 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. - -if test $# -eq 0; then - echo 1>&2 "Try '$0 --help' for more information" - exit 1 -fi - -case $1 in - - --is-lightweight) - # Used by our autoconf macros to check whether the available missing - # script is modern enough. - exit 0 - ;; - - --run) - # Back-compat with the calling convention used by older automake. - shift - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due -to PROGRAM being missing or too old. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man - -Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and -'g' are ignored when checking the name. - -Send bug reports to <bug-automake@gnu.org>." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: unknown '$1' option" - echo 1>&2 "Try '$0 --help' for more information" - exit 1 - ;; - -esac - -# Run the given program, remember its exit status. -"$@"; st=$? - -# If it succeeded, we are done. -test $st -eq 0 && exit 0 - -# Also exit now if we it failed (or wasn't found), and '--version' was -# passed; such an option is passed most likely to detect whether the -# program is present and works. -case $2 in --version|--help) exit $st;; esac - -# Exit code 63 means version mismatch. This often happens when the user -# tries to use an ancient version of a tool on a file that requires a -# minimum version. -if test $st -eq 63; then - msg="probably too old" -elif test $st -eq 127; then - # Program was missing. - msg="missing on your system" -else - # Program was found and executed, but failed. Give up. - exit $st -fi - -perl_URL=https://www.perl.org/ -flex_URL=https://github.com/westes/flex -gnu_software_URL=https://www.gnu.org/software - -program_details () -{ - case $1 in - aclocal|automake) - echo "The '$1' program is part of the GNU Automake package:" - echo "<$gnu_software_URL/automake>" - echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/autoconf>" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - autoconf|autom4te|autoheader) - echo "The '$1' program is part of the GNU Autoconf package:" - echo "<$gnu_software_URL/autoconf/>" - echo "It also requires GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - esac -} - -give_advice () -{ - # Normalize program name to check for. - normalized_program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - - printf '%s\n' "'$1' is $msg." - - configure_deps="'configure.ac' or m4 files included by 'configure.ac'" - case $normalized_program in - autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' - ;; - autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" - echo "$configure_deps." - program_details 'autoheader' - ;; - automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" - echo "$configure_deps." - program_details 'aclocal' - ;; - autom4te*) - echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." - program_details 'autom4te' - ;; - bison*|yacc*) - echo "You should only need it if you modified a '.y' file." - echo "You may want to install the GNU Bison package:" - echo "<$gnu_software_URL/bison/>" - ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; - help2man*) - echo "You should only need it if you modified a dependency" \ - "of a man page." - echo "You may want to install the GNU Help2man package:" - echo "<$gnu_software_URL/help2man/>" - ;; - makeinfo*) - echo "You should only need it if you modified a '.texi' file, or" - echo "any other file indirectly affecting the aspect of the manual." - echo "You might want to install the Texinfo package:" - echo "<$gnu_software_URL/texinfo/>" - echo "The spurious makeinfo call might also be the consequence of" - echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" - echo "want to install GNU make:" - echo "<$gnu_software_URL/make/>" - ;; - *) - echo "You might have modified some files without having the proper" - echo "tools for further handling them. Check the 'README' file, it" - echo "often tells you about the needed prerequisites for installing" - echo "this package. You may also peek at any GNU archive site, in" - echo "case some other package contains this missing '$1' program." - ;; - esac -} - -give_advice "$1" | sed -e '1s/^/WARNING: /' \ - -e '2,$s/^/ /' >&2 - -# Propagate the correct exit status (expected to be 127 for a program -# not found, 63 for a program that failed due to version mismatch). -exit $st - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/build-aux/test-driver b/build-aux/test-driver deleted file mode 100755 index 9759384a..00000000 --- a/build-aux/test-driver +++ /dev/null @@ -1,150 +0,0 @@ -#! /bin/sh -# test-driver - basic testsuite driver script. - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 2011-2020 Free Software Foundation, Inc. -# -# 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, 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, see <https://www.gnu.org/licenses/>. - -# 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 maintained in Automake, please report -# bugs to <bug-automake@gnu.org> or send patches to -# <automake-patches@gnu.org>. - -# Make unconditional expansion of undefined variables an error. This -# helps a lot in preventing typo-related bugs. -set -u - -usage_error () -{ - echo "$0: $*" >&2 - print_usage >&2 - exit 2 -} - -print_usage () -{ - cat <<END -Usage: - test-driver --test-name NAME --log-file PATH --trs-file PATH - [--expect-failure {yes|no}] [--color-tests {yes|no}] - [--enable-hard-errors {yes|no}] [--] - TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] - -The '--test-name', '--log-file' and '--trs-file' options are mandatory. -See the GNU Automake documentation for information. -END -} - -test_name= # Used for reporting. -log_file= # Where to save the output of the test script. -trs_file= # Where to save the metadata of the test run. -expect_failure=no -color_tests=no -enable_hard_errors=yes -while test $# -gt 0; do - case $1 in - --help) print_usage; exit $?;; - --version) echo "test-driver $scriptversion"; exit $?;; - --test-name) test_name=$2; shift;; - --log-file) log_file=$2; shift;; - --trs-file) trs_file=$2; shift;; - --color-tests) color_tests=$2; shift;; - --expect-failure) expect_failure=$2; shift;; - --enable-hard-errors) enable_hard_errors=$2; shift;; - --) shift; break;; - -*) usage_error "invalid option: '$1'";; - *) break;; - esac - shift -done - -missing_opts= -test x"$test_name" = x && missing_opts="$missing_opts --test-name" -test x"$log_file" = x && missing_opts="$missing_opts --log-file" -test x"$trs_file" = x && missing_opts="$missing_opts --trs-file" -if test x"$missing_opts" != x; then - usage_error "the following mandatory options are missing:$missing_opts" -fi - -if test $# -eq 0; then - usage_error "missing argument" -fi - -if test $color_tests = yes; then - # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. - red='[0;31m' # Red. - grn='[0;32m' # Green. - lgn='[1;32m' # Light green. - blu='[1;34m' # Blue. - mgn='[0;35m' # Magenta. - std='[m' # No color. -else - red= grn= lgn= blu= mgn= std= -fi - -do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' -trap "st=129; $do_exit" 1 -trap "st=130; $do_exit" 2 -trap "st=141; $do_exit" 13 -trap "st=143; $do_exit" 15 - -# Test script is run here. -"$@" >$log_file 2>&1 -estatus=$? - -if test $enable_hard_errors = no && test $estatus -eq 99; then - tweaked_estatus=1 -else - tweaked_estatus=$estatus -fi - -case $tweaked_estatus:$expect_failure in - 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; - 0:*) col=$grn res=PASS recheck=no gcopy=no;; - 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; - 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; - *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; - *:*) col=$red res=FAIL recheck=yes gcopy=yes;; -esac - -# Report the test outcome and exit status in the logs, so that one can -# know whether the test passed or failed simply by looking at the '.log' -# file, without the need of also peaking into the corresponding '.trs' -# file (automake bug#11814). -echo "$res $test_name (exit status: $estatus)" >>$log_file - -# Report outcome to console. -echo "${col}${res}${std}: $test_name" - -# Register the test result, and other relevant metadata. -echo ":test-result: $res" > $trs_file -echo ":global-test-result: $res" >> $trs_file -echo ":recheck: $recheck" >> $trs_file -echo ":copy-in-global-log: $gcopy" >> $trs_file - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/build-aux/ylwrap b/build-aux/ylwrap deleted file mode 100755 index d1533360..00000000 --- a/build-aux/ylwrap +++ /dev/null @@ -1,247 +0,0 @@ -#! /bin/sh -# ylwrap - wrapper for lex/yacc invocations. - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1996-2020 Free Software Foundation, Inc. -# -# Written by Tom Tromey <tromey@cygnus.com>. -# -# 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, 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, see <https://www.gnu.org/licenses/>. - -# 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 maintained in Automake, please report -# bugs to <bug-automake@gnu.org> or send patches to -# <automake-patches@gnu.org>. - -get_dirname () -{ - case $1 in - */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; - # Otherwise, we want the empty string (not "."). - esac -} - -# guard FILE -# ---------- -# The CPP macro used to guard inclusion of FILE. -guard () -{ - printf '%s\n' "$1" \ - | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ - -e 's/__*/_/g' -} - -# quote_for_sed [STRING] -# ---------------------- -# Return STRING (or stdin) quoted to be used as a sed pattern. -quote_for_sed () -{ - case $# in - 0) cat;; - 1) printf '%s\n' "$1";; - esac \ - | sed -e 's|[][\\.*]|\\&|g' -} - -case "$1" in - '') - echo "$0: No files given. Try '$0 --help' for more information." 1>&2 - exit 1 - ;; - --basedir) - basedir=$2 - shift 2 - ;; - -h|--h*) - cat <<\EOF -Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... - -Wrapper for lex/yacc invocations, renaming files as desired. - - INPUT is the input file - OUTPUT is one file PROG generates - DESIRED is the file we actually want instead of OUTPUT - PROGRAM is program to run - ARGS are passed to PROG - -Any number of OUTPUT,DESIRED pairs may be used. - -Report bugs to <bug-automake@gnu.org>. -EOF - exit $? - ;; - -v|--v*) - echo "ylwrap $scriptversion" - exit $? - ;; -esac - - -# The input. -input=$1 -shift -# We'll later need for a correct munging of "#line" directives. -input_sub_rx=`get_dirname "$input" | quote_for_sed` -case $input in - [\\/]* | ?:[\\/]*) - # Absolute path; do nothing. - ;; - *) - # Relative path. Make it absolute. - input=`pwd`/$input - ;; -esac -input_rx=`get_dirname "$input" | quote_for_sed` - -# Since DOS filename conventions don't allow two dots, -# the DOS version of Bison writes out y_tab.c instead of y.tab.c -# and y_tab.h instead of y.tab.h. Test to see if this is the case. -y_tab_nodot=false -if test -f y_tab.c || test -f y_tab.h; then - y_tab_nodot=true -fi - -# The parser itself, the first file, is the destination of the .y.c -# rule in the Makefile. -parser=$1 - -# A sed program to s/FROM/TO/g for all the FROM/TO so that, for -# instance, we rename #include "y.tab.h" into #include "parse.h" -# during the conversion from y.tab.c to parse.c. -sed_fix_filenames= - -# Also rename header guards, as Bison 2.7 for instance uses its header -# guard in its implementation file. -sed_fix_header_guards= - -while test $# -ne 0; do - if test x"$1" = x"--"; then - shift - break - fi - from=$1 - # Handle y_tab.c and y_tab.h output by DOS - if $y_tab_nodot; then - case $from in - "y.tab.c") from=y_tab.c;; - "y.tab.h") from=y_tab.h;; - esac - fi - shift - to=$1 - shift - sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" - sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" -done - -# The program to run. -prog=$1 -shift -# Make any relative path in $prog absolute. -case $prog in - [\\/]* | ?:[\\/]*) ;; - *[\\/]*) prog=`pwd`/$prog ;; -esac - -dirname=ylwrap$$ -do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' -trap "ret=129; $do_exit" 1 -trap "ret=130; $do_exit" 2 -trap "ret=141; $do_exit" 13 -trap "ret=143; $do_exit" 15 -mkdir $dirname || exit 1 - -cd $dirname - -case $# in - 0) "$prog" "$input" ;; - *) "$prog" "$@" "$input" ;; -esac -ret=$? - -if test $ret -eq 0; then - for from in * - do - to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` - if test -f "$from"; then - # If $2 is an absolute path name, then just use that, - # otherwise prepend '../'. - case $to in - [\\/]* | ?:[\\/]*) target=$to;; - *) target=../$to;; - esac - - # Do not overwrite unchanged header files to avoid useless - # recompilations. Always update the parser itself: it is the - # destination of the .y.c rule in the Makefile. Divert the - # output of all other files to a temporary file so we can - # compare them to existing versions. - if test $from != $parser; then - realtarget=$target - target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` - fi - - # Munge "#line" or "#" directives. Don't let the resulting - # debug information point at an absolute srcdir. Use the real - # output file name, not yy.lex.c for instance. Adjust the - # include guards too. - sed -e "/^#/!b" \ - -e "s|$input_rx|$input_sub_rx|" \ - -e "$sed_fix_filenames" \ - -e "$sed_fix_header_guards" \ - "$from" >"$target" || ret=$? - - # Check whether files must be updated. - if test "$from" != "$parser"; then - if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then - echo "$to is unchanged" - rm -f "$target" - else - echo "updating $to" - mv -f "$target" "$realtarget" - fi - fi - else - # A missing file is only an error for the parser. This is a - # blatant hack to let us support using "yacc -d". If -d is not - # specified, don't fail when the header file is "missing". - if test "$from" = "$parser"; then - ret=1 - fi - fi - done -fi - -# Remove the directory. -cd .. -rm -rf $dirname - -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/ci/build.sh b/ci/build.sh new file mode 100755 index 00000000..c50bb7f2 --- /dev/null +++ b/ci/build.sh @@ -0,0 +1,53 @@ +#!/bin/sh -ex +# +# Copyright (c) 2018-2024 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +opts='-Doptimization=2 -Dwerror=true -Dpam_lastlog=enabled' + +case "${VENDORDIR-}" in + */*) + opts="$opts -Dvendordir=$VENDORDIR" + ;; +esac + +case "${USE_OPENSSL-}" in + yes) + opts="$opts -Dopenssl=enabled" + ;; +esac + +case "${ENABLE_DEBUG-}" in + yes) + opts="$opts -Dpam-debug=true" + ;; +esac + +echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION' +uname -a |head -1 +libc="$(ldd /bin/sh |sed -n 's|^[^/]*\(/[^ ]*/libc\.so[^ ]*\).*|\1|p' |head -1)" +$libc |head -1 +$CC --version |head -1 +meson --version |head -1 +ninja --version |head -1 +kver="$(printf '%s\n%s\n' '#include <linux/version.h>' 'LINUX_VERSION_CODE' | $CC -E -P -)" +printf 'kernel-headers %s.%s.%s\n' $((kver/65536)) $((kver/256%256)) $((kver%256)) +echo 'END OF BUILD ENVIRONMENT INFORMATION' + +mkdir build +meson setup $opts build + +# If "meson dist" supported -v option, it could be used here +# instead of all subsequent individual meson commands. + +meson compile -v -C build +mkdir build/destdir +DESTDIR=$(pwd)/build/destdir meson install -C build +meson test -v -C build + +if git status --porcelain |grep '^?'; then + echo >&2 'git status reported untracked files' + exit 1 +fi diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh new file mode 100755 index 00000000..d38aba98 --- /dev/null +++ b/ci/install-dependencies.sh @@ -0,0 +1,77 @@ +#!/bin/sh -ex +# +# Copyright (c) 2018-2019 The strace developers. +# All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +j=-j`nproc` || j= +type sudo >/dev/null 2>&1 && sudo=sudo || sudo= +packages=" +bison +docbook5-xml +docbook-xsl-ns +flex +gettext +libaudit-dev +libdb-dev +libfl-dev +libselinux1-dev +libssl-dev +libxml2-utils +meson +pkg-config +sed +w3m +xsltproc +xz-utils +$CC" + +retry_if_failed() +{ + for i in `seq 0 99`; do + "$@" && i= && break || sleep 1 + done + [ -z "$i" ] +} + +updated= +apt_get_install() +{ + [ -n "$updated" ] || { + retry_if_failed $sudo apt-get -qq update + updated=1 + } + retry_if_failed $sudo \ + apt-get -qq --no-install-suggests --no-install-recommends \ + install -y "$@" +} + +case "$CC" in + gcc-*) + retry_if_failed \ + $sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + ;; +esac + +case "$TARGET" in + x32|x86) + packages="$packages gcc-multilib" + case "$CC" in + gcc-*) packages="$packages $CC-multilib" ;; + esac + ;; +esac + +apt_get_install $packages + +case "${CHECK-}" in + coverage) + apt_get_install lcov python-pip python-setuptools + retry_if_failed \ + pip install --user codecov + ;; + valgrind) + apt_get_install valgrind + ;; +esac diff --git a/conf/Makefile.am b/conf/Makefile.am deleted file mode 100644 index f8b693bf..00000000 --- a/conf/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ - -SUBDIRS = pam_conv1 - -CLEANFILES = *~ - -EXTRA_DIST = install_conf md5itall pam.conf diff --git a/conf/Makefile.in b/conf/Makefile.in deleted file mode 100644 index 05fdd2d1..00000000 --- a/conf/Makefile.in +++ /dev/null @@ -1,709 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = conf -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir distdir-am -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = pam_conv1 -CLEANFILES = *~ -EXTRA_DIST = install_conf md5itall pam.conf -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu conf/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu conf/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic clean-libtool cscopelist-am ctags \ - ctags-am distclean distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# 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: diff --git a/conf/pam_conv1/Makefile.am b/conf/pam_conv1/Makefile.am deleted file mode 100644 index 88993a20..00000000 --- a/conf/pam_conv1/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ - -EXTRA_DIST = README - -AM_YFLAGS = -d - -AM_CFLAGS = -I$(top_srcdir)/libpam/include $(WARN_CFLAGS) - -pam_conv1_CFLAGS = $(AM_CFLAGS) -Wno-unused-function -Wno-sign-compare - -BUILT_SOURCES = pam_conv_y.h - -noinst_PROGRAMS = pam_conv1 - -pam_conv1_SOURCES = pam_conv_l.l pam_conv_y.y diff --git a/conf/pam_conv1/Makefile.in b/conf/pam_conv1/Makefile.in deleted file mode 100644 index 3717b3b8..00000000 --- a/conf/pam_conv1/Makefile.in +++ /dev/null @@ -1,762 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = pam_conv1$(EXEEXT) -subdir = conf/pam_conv1 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am_pam_conv1_OBJECTS = pam_conv1-pam_conv_l.$(OBJEXT) \ - pam_conv1-pam_conv_y.$(OBJEXT) -pam_conv1_OBJECTS = $(am_pam_conv1_OBJECTS) -pam_conv1_LDADD = $(LDADD) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -pam_conv1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(pam_conv1_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_conv1-pam_conv_l.Po \ - ./$(DEPDIR)/pam_conv1-pam_conv_y.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) -LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) -AM_V_LEX = $(am__v_LEX_@AM_V@) -am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) -am__v_LEX_0 = @echo " LEX " $@; -am__v_LEX_1 = -YLWRAP = $(top_srcdir)/build-aux/ylwrap -am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ - -e s/c++$$/h++/ -e s/c$$/h/ -YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) -LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) -AM_V_YACC = $(am__v_YACC_@AM_V@) -am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) -am__v_YACC_0 = @echo " YACC " $@; -am__v_YACC_1 = -SOURCES = $(pam_conv1_SOURCES) -DIST_SOURCES = $(pam_conv1_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp $(top_srcdir)/build-aux/ylwrap \ - README pam_conv_l.c pam_conv_y.c pam_conv_y.h -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -EXTRA_DIST = README -AM_YFLAGS = -d -AM_CFLAGS = -I$(top_srcdir)/libpam/include $(WARN_CFLAGS) -pam_conv1_CFLAGS = $(AM_CFLAGS) -Wno-unused-function -Wno-sign-compare -BUILT_SOURCES = pam_conv_y.h -pam_conv1_SOURCES = pam_conv_l.l pam_conv_y.y -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -.SUFFIXES: .c .l .lo .o .obj .y -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu conf/pam_conv1/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu conf/pam_conv1/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -pam_conv_y.h: pam_conv_y.c - @if test ! -f $@; then rm -f pam_conv_y.c; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) pam_conv_y.c; else :; fi - -pam_conv1$(EXEEXT): $(pam_conv1_OBJECTS) $(pam_conv1_DEPENDENCIES) $(EXTRA_pam_conv1_DEPENDENCIES) - @rm -f pam_conv1$(EXEEXT) - $(AM_V_CCLD)$(pam_conv1_LINK) $(pam_conv1_OBJECTS) $(pam_conv1_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_conv1-pam_conv_l.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_conv1-pam_conv_y.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -pam_conv1-pam_conv_l.o: pam_conv_l.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_conv1_CFLAGS) $(CFLAGS) -MT pam_conv1-pam_conv_l.o -MD -MP -MF $(DEPDIR)/pam_conv1-pam_conv_l.Tpo -c -o pam_conv1-pam_conv_l.o `test -f 'pam_conv_l.c' || echo '$(srcdir)/'`pam_conv_l.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_conv1-pam_conv_l.Tpo $(DEPDIR)/pam_conv1-pam_conv_l.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pam_conv_l.c' object='pam_conv1-pam_conv_l.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_conv1_CFLAGS) $(CFLAGS) -c -o pam_conv1-pam_conv_l.o `test -f 'pam_conv_l.c' || echo '$(srcdir)/'`pam_conv_l.c - -pam_conv1-pam_conv_l.obj: pam_conv_l.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_conv1_CFLAGS) $(CFLAGS) -MT pam_conv1-pam_conv_l.obj -MD -MP -MF $(DEPDIR)/pam_conv1-pam_conv_l.Tpo -c -o pam_conv1-pam_conv_l.obj `if test -f 'pam_conv_l.c'; then $(CYGPATH_W) 'pam_conv_l.c'; else $(CYGPATH_W) '$(srcdir)/pam_conv_l.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_conv1-pam_conv_l.Tpo $(DEPDIR)/pam_conv1-pam_conv_l.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pam_conv_l.c' object='pam_conv1-pam_conv_l.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_conv1_CFLAGS) $(CFLAGS) -c -o pam_conv1-pam_conv_l.obj `if test -f 'pam_conv_l.c'; then $(CYGPATH_W) 'pam_conv_l.c'; else $(CYGPATH_W) '$(srcdir)/pam_conv_l.c'; fi` - -pam_conv1-pam_conv_y.o: pam_conv_y.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_conv1_CFLAGS) $(CFLAGS) -MT pam_conv1-pam_conv_y.o -MD -MP -MF $(DEPDIR)/pam_conv1-pam_conv_y.Tpo -c -o pam_conv1-pam_conv_y.o `test -f 'pam_conv_y.c' || echo '$(srcdir)/'`pam_conv_y.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_conv1-pam_conv_y.Tpo $(DEPDIR)/pam_conv1-pam_conv_y.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pam_conv_y.c' object='pam_conv1-pam_conv_y.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_conv1_CFLAGS) $(CFLAGS) -c -o pam_conv1-pam_conv_y.o `test -f 'pam_conv_y.c' || echo '$(srcdir)/'`pam_conv_y.c - -pam_conv1-pam_conv_y.obj: pam_conv_y.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_conv1_CFLAGS) $(CFLAGS) -MT pam_conv1-pam_conv_y.obj -MD -MP -MF $(DEPDIR)/pam_conv1-pam_conv_y.Tpo -c -o pam_conv1-pam_conv_y.obj `if test -f 'pam_conv_y.c'; then $(CYGPATH_W) 'pam_conv_y.c'; else $(CYGPATH_W) '$(srcdir)/pam_conv_y.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_conv1-pam_conv_y.Tpo $(DEPDIR)/pam_conv1-pam_conv_y.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pam_conv_y.c' object='pam_conv1-pam_conv_y.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_conv1_CFLAGS) $(CFLAGS) -c -o pam_conv1-pam_conv_y.obj `if test -f 'pam_conv_y.c'; then $(CYGPATH_W) 'pam_conv_y.c'; else $(CYGPATH_W) '$(srcdir)/pam_conv_y.c'; fi` - -.l.c: - $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) - -.y.c: - $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am -install-exec: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -rm -f pam_conv_l.c - -rm -f pam_conv_y.c - -rm -f pam_conv_y.h - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_conv1-pam_conv_l.Po - -rm -f ./$(DEPDIR)/pam_conv1-pam_conv_y.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_conv1-pam_conv_l.Po - -rm -f ./$(DEPDIR)/pam_conv1-pam_conv_y.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: all check install install-am install-exec install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# 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: diff --git a/conf/pam_conv1/meson.build b/conf/pam_conv1/meson.build new file mode 100644 index 00000000..487acd6a --- /dev/null +++ b/conf/pam_conv1/meson.build @@ -0,0 +1,25 @@ +pam_conv_y = custom_target( + 'pam_conv_y.[ch]', + input: 'pam_conv_y.y', + output: ['pam_conv_y.c', 'pam_conv_y.h'], + command: yacc_cmd, +) + +pam_conv_l = custom_target( + 'pam_conv_l.c', + input: 'pam_conv_l.l', + output: 'pam_conv_l.c', + depends: pam_conv_y, + command: [prog_flex, '-o', '@OUTPUT@', '@INPUT@'], +) + +executable( + 'pam_conv1', + sources: [pam_conv_l, pam_conv_y], + include_directories: [libpam_inc], + c_args: [ + '-Wno-unused-function', + '-Wno-sign-compare', + ], + link_args: exe_link_args, +) diff --git a/conf/pam_conv1/pam_conv_l.c b/conf/pam_conv1/pam_conv_l.c deleted file mode 100644 index 4c8e4da0..00000000 --- a/conf/pam_conv1/pam_conv_l.c +++ /dev/null @@ -1,1798 +0,0 @@ - -#line 3 "pam_conv_l.c" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 4 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -/* Feature test macros. Flex uses functions that require a minimum set of - * macros defined. As defining some macros may hide function declarations that - * user code might use, be conservative and respect user's definitions as much - * as possible. In glibc, feature test macros may not be all set up until one - * of the libc header (that includes <features.h>) is included. This creates - * a circular dependency when we check the macros. <assert.h> is the safest - * header we can include and does not declare too many functions we don't need. - */ -#if !defined(__GNU_LIBRARY__) && defined(__STDC__) -#include <assert.h> -#endif -#if !(defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ - defined(_POSIX_SOURCE)) -# define _POSIX_C_SOURCE 1 /* Required for fileno() */ -# define _POSIX_SOURCE 1 -#endif -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <stdlib.h> - -/* end standard C headers. */ - -/* begin standard C++ headers. */ - -/* flex integer type definitions */ - -#ifndef YYFLEX_INTTYPES_DEFINED -#define YYFLEX_INTTYPES_DEFINED - -/* Prefer C99 integer types if available. */ -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -/* Include <inttypes.h> and not <stdint.h> because Solaris 2.6 has the former - * and not the latter. - */ -#include <inttypes.h> -# define YYFLEX_USE_STDINT -# else -# if defined(_MSC_VER) && _MSC_VER >= 1600 -/* Visual C++ 2010 does not define __STDC_VERSION__ and has <stdint.h> but not - * <inttypes.h>. - */ -#include <stdint.h> -# define YYFLEX_USE_STDINT -# endif -# endif -# ifdef YYFLEX_USE_STDINT -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -# else -typedef unsigned char flex_uint8_t; -typedef short int flex_int16_t; -typedef unsigned short int flex_uint16_t; -# ifdef __STDC__ -typedef signed char flex_int8_t; -/* ISO C only requires at least 16 bits for int. */ -#include <limits.h> -# if UINT_MAX >= 4294967295 -# define YYFLEX_INT32_DEFINED -typedef int flex_int32_t; -typedef unsigned int flex_uint32_t; -# endif -# else -typedef char flex_int8_t; -# endif -# ifndef YYFLEX_INT32_DEFINED -typedef long int flex_int32_t; -typedef unsigned long int flex_uint32_t; -# endif -# endif -#endif /* YYFLEX_INTTYPES_DEFINED */ - -/* TODO: this is always defined, so inline it */ -#define yyconst const - -#if defined(__GNUC__) && __GNUC__ >= 3 -#define yynoreturn __attribute__((__noreturn__)) -#define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -#else -#define yynoreturn -#define YY_ATTRIBUTE_UNUSED /* __attribute__ ((__unused__)) */ -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an - * integer in range [0..255] for use as an array index. - */ -#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else -#define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -extern int yyleng; - -extern FILE *yyin, *yyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - #define YY_LINENO_REWIND_TO(ptr) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ - } \ - while ( 0 ) -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - int yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when yytext is formed. */ -static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int yyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = NULL; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void yyrestart ( FILE *input_file ); -void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); -void yy_delete_buffer ( YY_BUFFER_STATE b ); -void yy_flush_buffer ( YY_BUFFER_STATE b ); -void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state ( void ); - -static void yyensure_buffer_stack ( void ); -static void yy_load_buffer_state ( void ); -static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); -#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); - -void *yyalloc ( yy_size_t ); -void *yyrealloc ( void *, yy_size_t ); -void yyfree ( void * ); - -#define yy_new_buffer yy_create_buffer -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ - -#define yywrap() (/*CONSTCOND*/1) -#define YY_SKIP_YYWRAP -typedef flex_uint8_t YY_CHAR; - -FILE *yyin = NULL, *yyout = NULL; - -typedef int yy_state_type; - -extern int yylineno; -int yylineno = 1; - -extern char *yytext; -#ifdef yytext_ptr -#undef yytext_ptr -#endif -#define yytext_ptr yytext - -static yy_state_type yy_get_previous_state ( void ); -static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); -static int yy_get_next_buffer ( void ); -static void yynoreturn yy_fatal_error ( const char* msg ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 6 -#define YY_END_OF_BUFFER 7 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static const flex_int16_t yy_accept[21] = - { 0, - 0, 0, 7, 3, 4, 5, 1, 3, 3, 3, - 4, 1, 1, 1, 3, 2, 3, 1, 1, 0 - } ; - -static const YY_CHAR yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 4, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static const YY_CHAR yy_meta[6] = - { 0, - 1, 2, 3, 1, 1 - } ; - -static const flex_int16_t yy_base[24] = - { 0, - 0, 0, 26, 20, 0, 27, 5, 10, 19, 20, - 0, 0, 0, 15, 0, 27, 0, 0, 0, 27, - 17, 6, 20 - } ; - -static const flex_int16_t yy_def[24] = - { 0, - 20, 1, 20, 21, 22, 20, 20, 20, 21, 8, - 22, 7, 23, 20, 9, 20, 10, 7, 14, 0, - 20, 20, 20 - } ; - -static const flex_int16_t yy_nxt[33] = - { 0, - 4, 5, 6, 7, 8, 12, 13, 11, 12, 14, - 15, 9, 16, 15, 17, 18, 12, 9, 18, 19, - 13, 13, 20, 10, 10, 20, 3, 20, 20, 20, - 20, 20 - } ; - -static const flex_int16_t yy_chk[33] = - { 0, - 1, 1, 1, 1, 1, 7, 7, 22, 7, 7, - 8, 8, 8, 8, 8, 14, 14, 21, 14, 14, - 23, 23, 10, 9, 4, 3, 20, 20, 20, 20, - 20, 20 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int yy_flex_debug; -int yy_flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *yytext; -#line 1 "pam_conv_l.l" -#line 3 "pam_conv_l.l" -/* - * $Id$ - * - * Copyright (c) Andrew G. Morgan 1997 <morgan@parc.power.net> - * - * This file is covered by the Linux-PAM License (which should be - * distributed with this file.) - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <stdio.h> - -#include "pam_conv_y.h" - - extern int current_line; -#line 475 "pam_conv_l.c" -#line 476 "pam_conv_l.c" - -#define INITIAL 0 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#include <unistd.h> -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals ( void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int yylex_destroy ( void ); - -int yyget_debug ( void ); - -void yyset_debug ( int debug_flag ); - -YY_EXTRA_TYPE yyget_extra ( void ); - -void yyset_extra ( YY_EXTRA_TYPE user_defined ); - -FILE *yyget_in ( void ); - -void yyset_in ( FILE * _in_str ); - -FILE *yyget_out ( void ); - -void yyset_out ( FILE * _out_str ); - - int yyget_leng ( void ); - -char *yyget_text ( void ); - -int yyget_lineno ( void ); - -void yyset_lineno ( int _line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int yywrap ( void ); -#else -extern int yywrap ( void ); -#endif -#endif - -#ifndef YY_NO_UNPUT - - static void yyunput ( int c, char *buf_ptr ); - -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy ( char *, const char *, int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen ( const char * ); -#endif - -#ifndef YY_NO_INPUT -#ifdef __cplusplus -static int yyinput ( void ); -#else -static int input ( void ); -#endif - -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else -#define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - int n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - }\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int yylex (void); - -#define YY_DECL int yylex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after yytext and yyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK /*LINTED*/break; -#endif - -#define YY_RULE_SETUP \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - yy_state_type yy_current_state; - char *yy_cp, *yy_bp; - int yy_act; - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! yyin ) - yyin = stdin; - - if ( ! yyout ) - yyout = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_load_buffer_state( ); - } - - { -#line 24 "pam_conv_l.l" - - -#line 696 "pam_conv_l.c" - - while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - - /* Support of yytext. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = (yy_start); -yy_match: - do - { - YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 21 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 27 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 26 "pam_conv_l.l" -; /* skip comments (sorry) */ - YY_BREAK -case 2: -/* rule 2 can match eol */ -YY_RULE_SETUP -#line 28 "pam_conv_l.l" -{ - ++current_line; -} - YY_BREAK -case 3: -YY_RULE_SETUP -#line 32 "pam_conv_l.l" -{ - return TOK; -} - YY_BREAK -case 4: -YY_RULE_SETUP -#line 36 "pam_conv_l.l" -; /* Ignore */ - YY_BREAK -case YY_STATE_EOF(INITIAL): -#line 38 "pam_conv_l.l" -{ - return EOFILE; -} - YY_BREAK -case 5: -/* rule 5 can match eol */ -YY_RULE_SETUP -#line 42 "pam_conv_l.l" -{ - ++current_line; - return NL; -} - YY_BREAK -case 6: -YY_RULE_SETUP -#line 47 "pam_conv_l.l" -ECHO; - YY_BREAK -#line 798 "pam_conv_l.c" - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_c_buf_p); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( yywrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ - } /* end of user's declarations */ -} /* end of yylex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - char *source = (yytext_ptr); - int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - yyrealloc( (void *) b->yy_ch_buf, - (yy_size_t) (b->yy_buf_size + 2) ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = NULL; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( - (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - /* "- 2" to take care of EOB's */ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - yy_state_type yy_current_state; - char *yy_cp; - - yy_current_state = (yy_start); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 21 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - int yy_is_jam; - char *yy_cp = (yy_c_buf_p); - - YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 21 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 20); - - return yy_is_jam ? 0 : yy_current_state; -} - -#ifndef YY_NO_UNPUT - - static void yyunput (int c, char * yy_bp ) -{ - char *yy_cp; - - yy_cp = (yy_c_buf_p); - - /* undo effects of setting up yytext */ - *yy_cp = (yy_hold_char); - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - int number_to_move = (yy_n_chars) + 2; - char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - (yytext_ptr) = yy_bp; - (yy_hold_char) = *yy_cp; - (yy_c_buf_p) = yy_cp; -} - -#endif - -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - yyrestart( yyin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( yywrap( ) ) - return 0; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve yytext */ - (yy_hold_char) = *++(yy_c_buf_p); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void yyrestart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_init_buffer( YY_CURRENT_BUFFER, input_file ); - yy_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * yypop_buffer_state(); - * yypush_buffer_state(new_buffer); - */ - yyensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void yy_load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - yy_init_buffer( b, file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with yy_create_buffer() - * - */ - void yy_delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - yyfree( (void *) b->yy_ch_buf ); - - yyfree( (void *) b ); -} - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a yyrestart() or at EOF. - */ - static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - yy_flush_buffer( b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then yy_init_buffer was _probably_ - * called from yyrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void yy_flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - yyensure_buffer_stack(); - - /* This block is copied from yy_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void yypop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void yyensure_buffer_stack (void) -{ - yy_size_t num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ - (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - yy_size_t grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return NULL; - - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - - b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = NULL; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - yy_switch_to_buffer( b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to yylex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * yy_scan_bytes() instead. - */ -YY_BUFFER_STATE yy_scan_string (const char * yystr ) -{ - - return yy_scan_bytes( yystr, (int) strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to yylex() will - * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) yyalloc( n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = yy_scan_buffer( buf, n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yynoreturn yy_fatal_error (const char* msg YY_ATTRIBUTE_UNUSED) -{ - fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - yytext[yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = yytext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - yyleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int yyget_lineno (void) -{ - - return yylineno; -} - -/** Get the input stream. - * - */ -FILE *yyget_in (void) -{ - return yyin; -} - -/** Get the output stream. - * - */ -FILE *yyget_out (void) -{ - return yyout; -} - -/** Get the length of the current token. - * - */ -int yyget_leng (void) -{ - return yyleng; -} - -/** Get the current token. - * - */ - -char *yyget_text (void) -{ - return yytext; -} - -/** Set the current line number. - * @param _line_number line number - * - */ -void yyset_lineno (int _line_number ) -{ - - yylineno = _line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param _in_str A readable stream. - * - * @see yy_switch_to_buffer - */ -void yyset_in (FILE * _in_str ) -{ - yyin = _in_str ; -} - -void yyset_out (FILE * _out_str ) -{ - yyout = _out_str ; -} - -int yyget_debug (void) -{ - return yy_flex_debug; -} - -void yyset_debug (int _bdebug ) -{ - yy_flex_debug = _bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from yylex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = NULL; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = NULL; - (yy_init) = 0; - (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT - yyin = stdin; - yyout = stdout; -#else - yyin = NULL; - yyout = NULL; -#endif - - /* For future reference: Set errno on error, since we are called by - * yylex_init() - */ - return 0; -} - -/* yylex_destroy is for both reentrant and non-reentrant scanners. */ -int yylex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - yy_delete_buffer( YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - yypop_buffer_state(); - } - - /* Destroy the stack itself. */ - yyfree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * yylex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, const char * s2, int n YY_ATTRIBUTE_UNUSED) -{ - int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (const char * s YY_ATTRIBUTE_UNUSED) -{ - int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *yyalloc (yy_size_t size YY_ATTRIBUTE_UNUSED) -{ - return malloc(size); -} - -void *yyrealloc (void * ptr, yy_size_t size YY_ATTRIBUTE_UNUSED) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return realloc(ptr, size); -} - -void yyfree (void * ptr YY_ATTRIBUTE_UNUSED) -{ - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ -} - -#line 47 "pam_conv_l.l" - - diff --git a/conf/pam_conv1/pam_conv_l.l b/conf/pam_conv1/pam_conv_l.l index 2d973475..06fc3202 100644 --- a/conf/pam_conv1/pam_conv_l.l +++ b/conf/pam_conv1/pam_conv_l.l @@ -9,15 +9,13 @@ * distributed with this file.) */ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif +#include <config.h> #include <stdio.h> #include "pam_conv_y.h" - extern int current_line; + extern unsigned long long current_line; %} %option noyywrap diff --git a/conf/pam_conv1/pam_conv_y.c b/conf/pam_conv1/pam_conv_y.c deleted file mode 100644 index 519307ce..00000000 --- a/conf/pam_conv1/pam_conv_y.c +++ /dev/null @@ -1,1535 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.7.6. */ - -/* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, - Inc. - - 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 3 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, see <https://www.gnu.org/licenses/>. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output, and Bison version. */ -#define YYBISON 30706 - -/* Bison version string. */ -#define YYBISON_VERSION "3.7.6" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - - - - -/* First part of user prologue. */ -#line 1 "pam_conv_y.y" - - -/* - * $Id$ - * - * Copyright (c) Andrew G. Morgan 1997 <morgan@parc.power.net> - * - * This file is covered by the Linux-PAM License (which should be - * distributed with this file.) - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <stdlib.h> -#include <ctype.h> -#include <sys/stat.h> - -#include <security/_pam_types.h> - - extern int yylex(void); - - int current_line=1; - extern char *yytext; - -/* XXX - later we'll change this to be the specific conf file(s) */ -#define newpamf stderr - -#define PAM_D "./pam.d" -#define PAM_D_MODE 0755 -#define PAM_D_MAGIC_HEADER \ - "#%%PAM-1.0\n" \ - "#[For version 1.0 syntax, the above header is optional]\n" - -#define PAM_D_FILE_FMT PAM_D "/%s" - - const char *old_to_new_ctrl_flag(const char *old); - void yyerror(const char *format, ...); - -#line 115 "pam_conv_y.c" - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast<Type> (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_YY_PAM_CONV_Y_H_INCLUDED -# define YY_YY_PAM_CONV_Y_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - NL = 258, /* NL */ - EOFILE = 259, /* EOFILE */ - TOK = 260 /* TOK */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEMPTY -2 -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define NL 258 -#define EOFILE 259 -#define TOK 260 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 45 "pam_conv_y.y" - - int def; - char *string; - -#line 183 "pam_conv_y.c" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_PAM_CONV_Y_H_INCLUDED */ -/* Symbol kind. */ -enum yysymbol_kind_t -{ - YYSYMBOL_YYEMPTY = -2, - YYSYMBOL_YYEOF = 0, /* "end of file" */ - YYSYMBOL_YYerror = 1, /* error */ - YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ - YYSYMBOL_NL = 3, /* NL */ - YYSYMBOL_EOFILE = 4, /* EOFILE */ - YYSYMBOL_TOK = 5, /* TOK */ - YYSYMBOL_YYACCEPT = 6, /* $accept */ - YYSYMBOL_complete = 7, /* complete */ - YYSYMBOL_line = 8, /* line */ - YYSYMBOL_tokenls = 9, /* tokenls */ - YYSYMBOL_path = 10, /* path */ - YYSYMBOL_tok = 11 /* tok */ -}; -typedef enum yysymbol_kind_t yysymbol_kind_t; - - - - -#ifdef short -# undef short -#endif - -/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure - <limits.h> and (if available) <stdint.h> are included - so that the code can choose integer types of a good width. */ - -#ifndef __PTRDIFF_MAX__ -# include <limits.h> /* INFRINGES ON USER NAME SPACE */ -# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include <stdint.h> /* INFRINGES ON USER NAME SPACE */ -# define YY_STDINT_H -# endif -#endif - -/* Narrow types that promote to a signed type and that can represent a - signed or unsigned integer of at least N bits. In tables they can - save space and decrease cache pressure. Promoting to a signed type - helps avoid bugs in integer arithmetic. */ - -#ifdef __INT_LEAST8_MAX__ -typedef __INT_LEAST8_TYPE__ yytype_int8; -#elif defined YY_STDINT_H -typedef int_least8_t yytype_int8; -#else -typedef signed char yytype_int8; -#endif - -#ifdef __INT_LEAST16_MAX__ -typedef __INT_LEAST16_TYPE__ yytype_int16; -#elif defined YY_STDINT_H -typedef int_least16_t yytype_int16; -#else -typedef short yytype_int16; -#endif - -/* Work around bug in HP-UX 11.23, which defines these macros - incorrectly for preprocessor constants. This workaround can likely - be removed in 2023, as HPE has promised support for HP-UX 11.23 - (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of - <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */ -#ifdef __hpux -# undef UINT_LEAST8_MAX -# undef UINT_LEAST16_MAX -# define UINT_LEAST8_MAX 255 -# define UINT_LEAST16_MAX 65535 -#endif - -#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST8_TYPE__ yytype_uint8; -#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST8_MAX <= INT_MAX) -typedef uint_least8_t yytype_uint8; -#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX -typedef unsigned char yytype_uint8; -#else -typedef short yytype_uint8; -#endif - -#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST16_TYPE__ yytype_uint16; -#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST16_MAX <= INT_MAX) -typedef uint_least16_t yytype_uint16; -#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX -typedef unsigned short yytype_uint16; -#else -typedef int yytype_uint16; -#endif - -#ifndef YYPTRDIFF_T -# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ -# define YYPTRDIFF_T __PTRDIFF_TYPE__ -# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ -# elif defined PTRDIFF_MAX -# ifndef ptrdiff_t -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# endif -# define YYPTRDIFF_T ptrdiff_t -# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX -# else -# define YYPTRDIFF_T long -# define YYPTRDIFF_MAXIMUM LONG_MAX -# endif -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned -# endif -#endif - -#define YYSIZE_MAXIMUM \ - YY_CAST (YYPTRDIFF_T, \ - (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ - ? YYPTRDIFF_MAXIMUM \ - : YY_CAST (YYSIZE_T, -1))) - -#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) - - -/* Stored state numbers (used for stacks). */ -typedef yytype_int8 yy_state_t; - -/* State numbers in computations. */ -typedef int yy_state_fast_t; - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ -# define YY_(Msgid) dgettext ("bison-runtime", Msgid) -# endif -# endif -# ifndef YY_ -# define YY_(Msgid) Msgid -# endif -#endif - - -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define YY_ATTRIBUTE_PURE -# endif -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define YY_ATTRIBUTE_UNUSED -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) -#else -# define YY_USE(E) /* empty */ -#endif - -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else -# define YY_INITIAL_VALUE(Value) Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - - -#define YY_ASSERT(E) ((void) (0 && (E))) - -#if !defined yyoverflow - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* !defined yyoverflow */ - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yy_state_t yyss_alloc; - YYSTYPE yyvs_alloc; -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -# define YYCOPY_NEEDED 1 - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYPTRDIFF_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / YYSIZEOF (*yyptr); \ - } \ - while (0) - -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYPTRDIFF_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ - while (0) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 2 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 13 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 6 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 6 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 11 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 17 - -/* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 260 - - -/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK \ - ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ - : YYSYMBOL_YYUNDEF) - -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex. */ -static const yytype_int8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5 -}; - -#if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint8 yyrline[] = -{ - 0, 59, 59, 60, 61, 62, 68, 132, 138, 141, - 157, 163 -}; -#endif - -/** Accessing symbol of state STATE. */ -#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) - -#if YYDEBUG || 0 -/* The user-facing name of the symbol whose (internal) number is - YYSYMBOL. No bounds checking. */ -static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; - -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "\"end of file\"", "error", "\"invalid token\"", "NL", "EOFILE", "TOK", - "$accept", "complete", "line", "tokenls", "path", "tok", YY_NULLPTR -}; - -static const char * -yysymbol_name (yysymbol_kind_t yysymbol) -{ - return yytname[yysymbol]; -} -#endif - -#ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ -static const yytype_int16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260 -}; -#endif - -#define YYPACT_NINF (-9) - -#define yypact_value_is_default(Yyn) \ - ((Yyn) == YYPACT_NINF) - -#define YYTABLE_NINF (-1) - -#define yytable_value_is_error(Yyn) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int8 yypact[] = -{ - -9, 4, -9, 7, -9, -9, -9, -9, 6, -9, - 6, 8, -9, -9, -2, -9, -9 -}; - - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ -static const yytype_int8 yydefact[] = -{ - 2, 0, 1, 0, 3, 5, 11, 4, 0, 7, - 0, 0, 10, 8, 0, 6, 9 -}; - - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int8 yypgoto[] = -{ - -9, -9, -9, -9, -9, -8 -}; - - /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int8 yydefgoto[] = -{ - 0, 1, 7, 14, 13, 8 -}; - - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int8 yytable[] = -{ - 10, 15, 11, 6, 2, 3, 16, 4, 5, 6, - 9, 6, 0, 12 -}; - -static const yytype_int8 yycheck[] = -{ - 8, 3, 10, 5, 0, 1, 14, 3, 4, 5, - 3, 5, -1, 5 -}; - - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_int8 yystos[] = -{ - 0, 7, 0, 1, 3, 4, 5, 8, 11, 3, - 11, 11, 5, 10, 9, 3, 11 -}; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_int8 yyr1[] = -{ - 0, 6, 7, 7, 7, 7, 8, 8, 9, 9, - 10, 11 -}; - - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_int8 yyr2[] = -{ - 0, 2, 0, 2, 2, 2, 6, 2, 0, 2, - 1, 1 -}; - - -enum { YYENOMEM = -2 }; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ - do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ - while (0) - -/* Backward compatibility with an undocumented macro. - Use YYerror or YYUNDEF. */ -#define YYERRCODE YYUNDEF - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) - -/* This macro is provided for backward compatibility. */ -# ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif - - -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Kind, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*-----------------------------------. -| Print this symbol's value on YYO. | -`-----------------------------------*/ - -static void -yy_symbol_value_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) -{ - FILE *yyoutput = yyo; - YY_USE (yyoutput); - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yykind < YYNTOKENS) - YYPRINT (yyo, yytoknum[yykind], *yyvaluep); -# endif - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YY_USE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - -/*---------------------------. -| Print this symbol on YYO. | -`---------------------------*/ - -static void -yy_symbol_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) -{ - YYFPRINTF (yyo, "%s %s (", - yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - - yy_symbol_value_print (yyo, yykind, yyvaluep); - YYFPRINTF (yyo, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -static void -yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) -{ - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, - int yyrule) -{ - int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), - &yyvsp[(yyi + 1) - (yynrhs)]); - YYFPRINTF (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule); \ -} while (0) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) ((void) 0) -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - - - - - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -static void -yydestruct (const char *yymsg, - yysymbol_kind_t yykind, YYSTYPE *yyvaluep) -{ - YY_USE (yyvaluep); - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YY_USE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - -/* Lookahead token kind. */ -int yychar; - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - - - -/*----------. -| yyparse. | -`----------*/ - -int -yyparse (void) -{ - yy_state_fast_t yystate = 0; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus = 0; - - /* Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* Their size. */ - YYPTRDIFF_T yystacksize = YYINITDEPTH; - - /* The state stack: array, bottom, top. */ - yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss = yyssa; - yy_state_t *yyssp = yyss; - - /* The semantic value stack: array, bottom, top. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp = yyvs; - - int yyn; - /* The return value of yyparse. */ - int yyresult; - /* Lookahead symbol kind. */ - yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yychar = YYEMPTY; /* Cause a token to be read. */ - goto yysetstate; - - -/*------------------------------------------------------------. -| yynewstate -- push a new state, which is found in yystate. | -`------------------------------------------------------------*/ -yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - -/*--------------------------------------------------------------------. -| yysetstate -- set current state (the top of the stack) to yystate. | -`--------------------------------------------------------------------*/ -yysetstate: - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - YY_IGNORE_USELESS_CAST_BEGIN - *yyssp = YY_CAST (yy_state_t, yystate); - YY_IGNORE_USELESS_CAST_END - YY_STACK_PRINT (yyss, yyssp); - - if (yyss + yystacksize - 1 <= yyssp) -#if !defined yyoverflow && !defined YYSTACK_RELOCATE - goto yyexhaustedlab; -#else - { - /* Get the current used size of the three stacks, in elements. */ - YYPTRDIFF_T yysize = yyssp - yyss + 1; - -# if defined yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - yy_state_t *yyss1 = yyss; - YYSTYPE *yyvs1 = yyvs; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * YYSIZEOF (*yyssp), - &yyvs1, yysize * YYSIZEOF (*yyvsp), - &yystacksize); - yyss = yyss1; - yyvs = yyvs1; - } -# else /* defined YYSTACK_RELOCATE */ - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yy_state_t *yyss1 = yyss; - union yyalloc *yyptr = - YY_CAST (union yyalloc *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - YY_IGNORE_USELESS_CAST_BEGIN - YYDPRINTF ((stderr, "Stack size increased to %ld\n", - YY_CAST (long, yystacksize))); - YY_IGNORE_USELESS_CAST_END - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } -#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - - if (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token\n")); - yychar = yylex (); - } - - if (yychar <= YYEOF) - { - yychar = YYEOF; - yytoken = YYSYMBOL_YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else if (yychar == YYerror) - { - /* The scanner already issued an error message, process directly - to error recovery. But do not keep the error token as - lookahead, it is too special and may lead us to an endless - loop in error recovery. */ - yychar = YYUNDEF; - yytoken = YYSYMBOL_YYerror; - goto yyerrlab1; - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yytable_value_is_error (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - /* Discard the shifted token. */ - yychar = YYEMPTY; - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 5: /* complete: complete EOFILE */ -#line 62 "pam_conv_y.y" - { - return 0; -} -#line 1175 "pam_conv_y.c" - break; - - case 6: /* line: tok tok tok path tokenls NL */ -#line 68 "pam_conv_y.y" - { - char *filename; - FILE *conf; - int i; - - /* make sure we have lower case */ - for (i=0; (yyvsp[-5].string)[i]; ++i) { - (yyvsp[-5].string)[i] = tolower((yyvsp[-5].string)[i]); - } - - /* $1 = service-name */ - yyerror("Appending to " PAM_D "/%s", (yyvsp[-5].string)); - - filename = malloc(strlen((yyvsp[-5].string)) + sizeof(PAM_D) + 6); - sprintf(filename, PAM_D_FILE_FMT, (yyvsp[-5].string)); - conf = fopen(filename, "r"); - if (conf == NULL) { - /* new file */ - conf = fopen(filename, "w"); - if (conf != NULL) { - fprintf(conf, PAM_D_MAGIC_HEADER); - fprintf(conf, - "#\n" - "# The PAM configuration file for the `%s' service\n" - "#\n", (yyvsp[-5].string)); - } - } else { - fclose(conf); - conf = fopen(filename, "a"); - } - if (conf == NULL) { - yyerror("trouble opening %s - aborting", filename); - exit(1); - } - free(filename); - - /* $2 = module-type */ - fprintf(conf, "%-10s", (yyvsp[-4].string)); - free((yyvsp[-4].string)); - - /* $3 = required etc. */ - { - const char *trans; - - trans = old_to_new_ctrl_flag((yyvsp[-3].string)); - free((yyvsp[-3].string)); - fprintf(conf, " %-10s", trans); - } - - /* $4 = module-path */ - fprintf(conf, " %s", (yyvsp[-2].string)); - free((yyvsp[-2].string)); - - /* $5 = arguments */ - if ((yyvsp[-1].string) != NULL) { - fprintf(conf, " \\\n\t\t%s", (yyvsp[-1].string)); - free((yyvsp[-1].string)); - } - - /* end line */ - fprintf(conf, "\n"); - - fclose(conf); -} -#line 1244 "pam_conv_y.c" - break; - - case 7: /* line: error NL */ -#line 132 "pam_conv_y.y" - { - yyerror("malformed line"); -} -#line 1252 "pam_conv_y.c" - break; - - case 8: /* tokenls: %empty */ -#line 138 "pam_conv_y.y" - { - (yyval.string)=NULL; -} -#line 1260 "pam_conv_y.c" - break; - - case 9: /* tokenls: tokenls tok */ -#line 141 "pam_conv_y.y" - { - int len; - - if ((yyvsp[-1].string)) { - len = strlen((yyvsp[-1].string)) + strlen((yyvsp[0].string)) + 2; - (yyval.string) = malloc(len); - sprintf((yyval.string),"%s %s",(yyvsp[-1].string),(yyvsp[0].string)); - free((yyvsp[-1].string)); - free((yyvsp[0].string)); - } else { - (yyval.string) = (yyvsp[0].string); - } -} -#line 1278 "pam_conv_y.c" - break; - - case 10: /* path: TOK */ -#line 157 "pam_conv_y.y" - { - /* XXX - this could be used to check if file present */ - (yyval.string) = strdup(yytext); -} -#line 1287 "pam_conv_y.c" - break; - - case 11: /* tok: TOK */ -#line 163 "pam_conv_y.y" - { - (yyval.string) = strdup(yytext); -} -#line 1295 "pam_conv_y.c" - break; - - -#line 1299 "pam_conv_y.c" - - default: break; - } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - - *++yyvsp = yyval; - - /* Now 'shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - { - const int yylhs = yyr1[yyn] - YYNTOKENS; - const int yyi = yypgoto[yylhs] + *yyssp; - yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp - ? yytable[yyi] - : yydefgoto[yylhs]); - } - - goto yynewstate; - - -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ -yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - yyerror (YY_("syntax error")); - } - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and the - label yyerrorlab therefore never appears in user code. */ - if (0) - YYERROR; - - /* Do not reclaim the symbols of the rule whose action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - /* Pop stack until we find a state that shifts the error token. */ - for (;;) - { - yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) - { - yyn += YYSYMBOL_YYerror; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - YY_ACCESSING_SYMBOL (yystate), yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - - -#if !defined yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - goto yyreturn; -#endif - - -/*-------------------------------------------------------. -| yyreturn -- parsing is finished, clean up and return. | -`-------------------------------------------------------*/ -yyreturn: - if (yychar != YYEMPTY) - { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - } - /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - - return yyresult; -} - -#line 167 "pam_conv_y.y" - - -const char *old_to_new_ctrl_flag(const char *old) -{ - static const char *clist[] = { - "requisite", - "required", - "sufficient", - "optional", - NULL, - }; - int i; - - for (i=0; clist[i]; ++i) { - if (strcasecmp(clist[i], old) == 0) { - break; - } - } - - return clist[i]; -} - -PAM_FORMAT((printf, 1, 2)) -void yyerror(const char *format, ...) -{ - va_list args; - - fprintf(stderr, "line %d: ", current_line); - va_start(args, format); - vfprintf(stderr, format, args); - va_end(args); - fprintf(stderr, "\n"); -} - -int main(void) -{ - if (mkdir(PAM_D, PAM_D_MODE) != 0) { - yyerror(PAM_D " already exists.. aborting"); - exit(1); - } - yyparse(); - exit(0); -} diff --git a/conf/pam_conv1/pam_conv_y.h b/conf/pam_conv1/pam_conv_y.h deleted file mode 100644 index 17bdcea1..00000000 --- a/conf/pam_conv1/pam_conv_y.h +++ /dev/null @@ -1,94 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.7.6. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, - Inc. - - 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 3 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, see <https://www.gnu.org/licenses/>. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - -#ifndef YY_YY_PAM_CONV_Y_H_INCLUDED -# define YY_YY_PAM_CONV_Y_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - NL = 258, /* NL */ - EOFILE = 259, /* EOFILE */ - TOK = 260 /* TOK */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEMPTY -2 -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define NL 258 -#define EOFILE 259 -#define TOK 260 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 45 "pam_conv_y.y" - - int def; - char *string; - -#line 82 "pam_conv_y.h" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_PAM_CONV_Y_H_INCLUDED */ diff --git a/conf/pam_conv1/pam_conv_y.y b/conf/pam_conv1/pam_conv_y.y index 66d80440..b36351cd 100644 --- a/conf/pam_conv1/pam_conv_y.y +++ b/conf/pam_conv1/pam_conv_y.y @@ -9,9 +9,7 @@ * distributed with this file.) */ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif +#include <config.h> #include <string.h> #include <stdio.h> @@ -24,7 +22,7 @@ extern int yylex(void); - int current_line=1; + unsigned long long current_line=0; extern char *yytext; /* XXX - later we'll change this to be the specific conf file(s) */ @@ -72,14 +70,16 @@ line /* make sure we have lower case */ for (i=0; $1[i]; ++i) { - $1[i] = tolower($1[i]); + $1[i] = tolower((unsigned char)$1[i]); } /* $1 = service-name */ yyerror("Appending to " PAM_D "/%s", $1); - filename = malloc(strlen($1) + sizeof(PAM_D) + 6); - sprintf(filename, PAM_D_FILE_FMT, $1); + if (asprintf(&filename, PAM_D_FILE_FMT, $1) < 0) { + yyerror("unable to create filename - aborting"); + exit(1); + } conf = fopen(filename, "r"); if (conf == NULL) { /* new file */ @@ -100,6 +100,7 @@ line exit(1); } free(filename); + free($1); /* $2 = module-type */ fprintf(conf, "%-10s", $2); @@ -139,12 +140,11 @@ tokenls $$=NULL; } | tokenls tok { - int len; - if ($1) { - len = strlen($1) + strlen($2) + 2; - $$ = malloc(len); - sprintf($$,"%s %s",$1,$2); + if (asprintf(&$$, "%s %s", $1, $2) < 0) { + yyerror("failed to assemble tokenls"); + exit(1); + } free($1); free($2); } else { @@ -157,18 +157,26 @@ path : TOK { /* XXX - this could be used to check if file present */ $$ = strdup(yytext); + if ($$ == NULL) { + yyerror("failed to duplicate path"); + exit(1); + } } tok : TOK { $$ = strdup(yytext); + if ($$ == NULL) { + yyerror("failed to duplicate token"); + exit(1); + } } %% const char *old_to_new_ctrl_flag(const char *old) { - static const char *clist[] = { + static const char *const clist[] = { "requisite", "required", "sufficient", @@ -191,7 +199,7 @@ void yyerror(const char *format, ...) { va_list args; - fprintf(stderr, "line %d: ", current_line); + fprintf(stderr, "line %llu: ", current_line); va_start(args, format); vfprintf(stderr, format, args); va_end(args); @@ -202,8 +210,8 @@ int main(void) { if (mkdir(PAM_D, PAM_D_MODE) != 0) { yyerror(PAM_D " already exists.. aborting"); - exit(1); + return 1; } yyparse(); - exit(0); + return 0; } diff --git a/config.h.in b/config.h.in deleted file mode 100644 index d8f322ab..00000000 --- a/config.h.in +++ /dev/null @@ -1,469 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define if building universal (internal helper macro) */ -#undef AC_APPLE_UNIVERSAL_BUILD - -/* Defines the value usergroups option should have by default */ -#undef DEFAULT_USERGROUPS_SETTING - -/* Define to 1 if translation of program messages to the user's native - language is requested. */ -#undef ENABLE_NLS - -/* Define to the type of elements in the array set by `getgroups'. Usually - this is either `int' or `gid_t'. */ -#undef GETGROUPS_T - -/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the - CoreFoundation framework. */ -#undef HAVE_CFLOCALECOPYCURRENT - -/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in - the CoreFoundation framework. */ -#undef HAVE_CFPREFERENCESCOPYAPPVALUE - -/* Define to 1 if you have the <crypt.h> header file. */ -#undef HAVE_CRYPT_H - -/* Define to 1 if you have the `crypt_r' function. */ -#undef HAVE_CRYPT_R - -/* Define to 1 if you have the `dbm_store' function. */ -#undef HAVE_DBM_STORE - -/* Define to 1 if you have the `db_create' function. */ -#undef HAVE_DB_CREATE - -/* Define to 1 if you have the <db.h> header file. */ -#undef HAVE_DB_H - -/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -#undef HAVE_DCGETTEXT - -/* Define to 1 if you have the declaration of `getrpcport', and to 0 if you - don't. */ -#undef HAVE_DECL_GETRPCPORT - -/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. - */ -#undef HAVE_DIRENT_H - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the `dngettext' function. */ -#undef HAVE_DNGETTEXT - -/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -#undef HAVE_DOPRNT - -/* Define to 1 if you have the `explicit_bzero' function. */ -#undef HAVE_EXPLICIT_BZERO - -/* Define to 1 if you have the <fcntl.h> header file. */ -#undef HAVE_FCNTL_H - -/* Define to 1 if you have the `fseeko' function. */ -#undef HAVE_FSEEKO - -/* Define to 1 if you have the `getdelim' function. */ -#undef HAVE_GETDELIM - -/* Define to 1 if you have the `getdomainname' function. */ -#undef HAVE_GETDOMAINNAME - -/* Define to 1 if you have the `getgrgid_r' function. */ -#undef HAVE_GETGRGID_R - -/* Define to 1 if you have the `getgrnam_r' function. */ -#undef HAVE_GETGRNAM_R - -/* Define to 1 if you have the `getgrouplist' function. */ -#undef HAVE_GETGROUPLIST - -/* Define to 1 if you have the `gethostname' function. */ -#undef HAVE_GETHOSTNAME - -/* Define to 1 if you have the `getline' function. */ -#undef HAVE_GETLINE - -/* Define to 1 if you have the `getmntent_r' function. */ -#undef HAVE_GETMNTENT_R - -/* Define to 1 if you have the `getpwnam_r' function. */ -#undef HAVE_GETPWNAM_R - -/* Define to 1 if you have the `getpwuid_r' function. */ -#undef HAVE_GETPWUID_R - -/* Define to 1 if you have the `getrpcport' function. */ -#undef HAVE_GETRPCPORT - -/* Define to 1 if you have the `getseuser' function. */ -#undef HAVE_GETSEUSER - -/* Define to 1 if you have the `getspnam_r' function. */ -#undef HAVE_GETSPNAM_R - -/* Define if the GNU gettext() function is already present or preinstalled. */ -#undef HAVE_GETTEXT - -/* Define to 1 if you have the `gettimeofday' function. */ -#undef HAVE_GETTIMEOFDAY - -/* Define to 1 if you have the `getutent_r' function. */ -#undef HAVE_GETUTENT_R - -/* Define if you have the iconv() function and it works. */ -#undef HAVE_ICONV - -/* Define to 1 if you have the `inet_ntop' function. */ -#undef HAVE_INET_NTOP - -/* Define to 1 if you have the `inet_pton' function. */ -#undef HAVE_INET_PTON - -/* Define to 1 if you have the <inittypes.h> header file. */ -#undef HAVE_INITTYPES_H - -/* Define to 1 if you have the `innetgr' function. */ -#undef HAVE_INNETGR - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the <lastlog.h> header file. */ -#undef HAVE_LASTLOG_H - -/* Define to 1 if you have the `lckpwdf' function. */ -#undef HAVE_LCKPWDF - -/* Define to 1 if audit support should be compiled in. */ -#undef HAVE_LIBAUDIT - -/* Define to 1 if you have the <limits.h> header file. */ -#undef HAVE_LIMITS_H - -/* Define to 1 if you have the `logwtmp' function. */ -#undef HAVE_LOGWTMP - -/* Define to 1 if you have the <malloc.h> header file. */ -#undef HAVE_MALLOC_H - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the `memset_explicit' function. */ -#undef HAVE_MEMSET_EXPLICIT - -/* Define to 1 if you have the `mkdir' function. */ -#undef HAVE_MKDIR - -/* Define to 1 if you have the <ndbm.h> header file. */ -#undef HAVE_NDBM_H - -/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ -#undef HAVE_NDIR_H - -/* Define to 1 if you have the <net/if.h> header file. */ -#undef HAVE_NET_IF_H - -/* Defines that NIS should be used */ -#undef HAVE_NIS - -/* Define to 1 if you have the <paths.h> header file. */ -#undef HAVE_PATHS_H - -/* Define to 1 if you have the `quotactl' function. */ -#undef HAVE_QUOTACTL - -/* Define to 1 if you have the `rpcb_getaddr' function. */ -#undef HAVE_RPCB_GETADDR - -/* Define to 1 if you have the `ruserok' function. */ -#undef HAVE_RUSEROK - -/* Define to 1 if you have the `ruserok_af' function. */ -#undef HAVE_RUSEROK_AF - -/* Define to 1 if you have the `select' function. */ -#undef HAVE_SELECT - -/* Define to 1 if you have the `setkeycreatecon' function. */ -#undef HAVE_SETKEYCREATECON - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `strcspn' function. */ -#undef HAVE_STRCSPN - -/* Define to 1 if you have the `strdup' function. */ -#undef HAVE_STRDUP - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the `strspn' function. */ -#undef HAVE_STRSPN - -/* Define to 1 if you have the `strstr' function. */ -#undef HAVE_STRSTR - -/* Define to 1 if you have the `strtol' function. */ -#undef HAVE_STRTOL - -/* Define to 1 if `log_passwd' is a member of `struct audit_tty_status'. */ -#undef HAVE_STRUCT_AUDIT_TTY_STATUS_LOG_PASSWD - -/* Define to 1 if you have the <syslog.h> header file. */ -#undef HAVE_SYSLOG_H - -/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. - */ -#undef HAVE_SYS_DIR_H - -/* Define to 1 if you have the <sys/file.h> header file. */ -#undef HAVE_SYS_FILE_H - -/* Define to 1 if you have the <sys/fsuid.h> header file. */ -#undef HAVE_SYS_FSUID_H - -/* Define to 1 if you have the <sys/ioctl.h> header file. */ -#undef HAVE_SYS_IOCTL_H - -/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. - */ -#undef HAVE_SYS_NDIR_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/time.h> header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ -#undef HAVE_SYS_WAIT_H - -/* Define to 1 if you have the <termio.h> header file. */ -#undef HAVE_TERMIO_H - -/* Define to 1 if you have the `uname' function. */ -#undef HAVE_UNAME - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the `unshare' function. */ -#undef HAVE_UNSHARE - -/* Define to 1 if you have the <utmpx.h> header file. */ -#undef HAVE_UTMPX_H - -/* Define to 1 if you have the <utmp.h> header file. */ -#undef HAVE_UTMP_H - -/* Define to 1 if you have the `vprintf' function. */ -#undef HAVE_VPRINTF - -/* Define to 1 if you have the `yperr_string' function. */ -#undef HAVE_YPERR_STRING - -/* Define to 1 if you have the `yp_bind' function. */ -#undef HAVE_YP_BIND - -/* Define to 1 if you have the `yp_get_default_domain' function. */ -#undef HAVE_YP_GET_DEFAULT_DOMAIN - -/* Define to 1 if you have the `yp_master' function. */ -#undef HAVE_YP_MASTER - -/* Define to 1 if you have the `yp_match' function. */ -#undef HAVE_YP_MATCH - -/* Define to 1 if you have the `yp_unbind' function. */ -#undef HAVE_YP_UNBIND - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#undef LT_OBJDIR - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* lots of stuff gets written to /var/run/pam-debug.log */ -#undef PAM_DEBUG - -/* libpam should observe a global authentication lock */ -#undef PAM_LOCKING - -/* libpam_misc misc_conv() buffer size. */ -#undef PAM_MISC_CONV_BUFSIZE - -/* Path where mails are stored */ -#undef PAM_PATH_MAILDIR - -/* Random device path. */ -#undef PAM_PATH_RANDOMDEV - -/* Additional path of xauth executable */ -#undef PAM_PATH_XAUTH - -/* read both /etc/pam.d and /etc/pam.conf files */ -#undef PAM_READ_BOTH_CONFS - -/* Kernel overflow uid. */ -#undef PAM_USERTYPE_OVERFLOW_UID - -/* Minimum regular user uid. */ -#undef PAM_USERTYPE_UIDMIN - -/* Directory for PAM modules system configuration files */ -#undef SCONFIGDIR - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ -#undef TIME_WITH_SYS_TIME - -/* Define to 1 if your <sys/time.h> declares `struct tm'. */ -#undef TM_IN_SYS_TIME - -/* Define if the compiler supports __attribute__((unused)) */ -#undef UNUSED - -/* Define to 1 if the lckpwdf function should be used */ -#undef USE_LCKPWDF - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif - - -/* Directory for distribution provided configuration files */ -#undef VENDORDIR - -/* Directory for PAM modules distribution provided configuration files */ -#undef VENDOR_SCONFIGDIR - -/* Version number of package */ -#undef VERSION - -/* OpenSSL provides crypto algorithm for hmac */ -#undef WITH_OPENSSL - -/* Defined if SE Linux support is compiled in */ -#undef WITH_SELINUX - -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -# undef WORDS_BIGENDIAN -# endif -#endif - -/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a - `char[]'. */ -#undef YYTEXT_POINTER - -/* Enable large inode numbers on Mac OS X 10.5. */ -#ifndef _DARWIN_USE_64_BIT_INODE -# define _DARWIN_USE_64_BIT_INODE 1 -#endif - -/* Number of bits in a file offset, on hosts where this is settable. */ -#undef _FILE_OFFSET_BITS - -/* Define for large files, on AIX-style hosts. */ -#undef _LARGE_FILES - -/* Define to 1 if on MINIX. */ -#undef _MINIX - -/* Define to the path, relative to SECUREDIR, where PAMs specific to this - architecture can be found. */ -#undef _PAM_ISA - -/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -#undef _POSIX_1_SOURCE - -/* Define to 1 if you need to in order for `stat' and other things to work. */ -#undef _POSIX_SOURCE - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define to `int' if <sys/types.h> doesn't define. */ -#undef gid_t - -/* Define to `long int' if <sys/types.h> does not define. */ -#undef off_t - -/* Define to `int' if <sys/types.h> does not define. */ -#undef pid_t - -/* Define to `unsigned int' if <sys/types.h> does not define. */ -#undef size_t - -/* Define to `int' if <sys/types.h> doesn't define. */ -#undef uid_t - -#ifdef ENABLE_NLS -#include <libintl.h> -#define _(msgid) dgettext(PACKAGE, msgid) -#define N_(msgid) msgid -#else -#define _(msgid) (msgid) -#define N_(msgid) msgid -#endif /* ENABLE_NLS */ diff --git a/configure b/configure deleted file mode 100755 index 3fefcaba..00000000 --- a/configure +++ /dev/null @@ -1,24534 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Linux-PAM 1.5.3. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1 - - test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ - || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -test -n "$DJDIR" || exec 7<&0 </dev/null -exec 6>&1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='Linux-PAM' -PACKAGE_TARNAME='Linux-PAM' -PACKAGE_VERSION='1.5.3' -PACKAGE_STRING='Linux-PAM 1.5.3' -PACKAGE_BUGREPORT='' -PACKAGE_URL='' - -ac_unique_file="conf/pam_conv1/pam_conv_y.y" -ac_default_prefix=/usr -# Factoring default headers for most tests. -ac_includes_default="\ -#include <stdio.h> -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#ifdef STDC_HEADERS -# include <stdlib.h> -# include <stddef.h> -#else -# ifdef HAVE_STDLIB_H -# include <stdlib.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#endif -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif" - -gt_needs= -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -COND_BUILD_PAM_USERDB_FALSE -COND_BUILD_PAM_USERDB_TRUE -COND_BUILD_PAM_UNIX_FALSE -COND_BUILD_PAM_UNIX_TRUE -COND_BUILD_PAM_TTY_AUDIT_FALSE -COND_BUILD_PAM_TTY_AUDIT_TRUE -COND_BUILD_PAM_SETQUOTA_FALSE -COND_BUILD_PAM_SETQUOTA_TRUE -COND_BUILD_PAM_SEPERMIT_FALSE -COND_BUILD_PAM_SEPERMIT_TRUE -COND_BUILD_PAM_SELINUX_FALSE -COND_BUILD_PAM_SELINUX_TRUE -COND_BUILD_PAM_RHOSTS_FALSE -COND_BUILD_PAM_RHOSTS_TRUE -COND_BUILD_PAM_NAMESPACE_FALSE -COND_BUILD_PAM_NAMESPACE_TRUE -COND_BUILD_PAM_LASTLOG_FALSE -COND_BUILD_PAM_LASTLOG_TRUE -COND_BUILD_PAM_KEYINIT_FALSE -COND_BUILD_PAM_KEYINIT_TRUE -systemdunitdir -POSUB -LTLIBINTL -LIBINTL -INTLLIBS -LTLIBICONV -LIBICONV -INTL_MACOSX_LIBS -XGETTEXT_EXTRA_OPTIONS -MSGMERGE -XGETTEXT_015 -XGETTEXT -GMSGFMT_015 -MSGFMT_015 -GMSGFMT -MSGFMT -GETTEXT_MACRO_VERSION -USE_NLS -ENABLE_GENERATE_PDF_FALSE -ENABLE_GENERATE_PDF_TRUE -ENABLE_REGENERATE_MAN_FALSE -ENABLE_REGENERATE_MAN_TRUE -FO2PDF -BROWSER -XMLCATALOG -XML_CATALOG_FILE -XMLLINT -XSLTPROC -LIBOBJS -STRINGPARAM_PROFILECONDITIONS -COND_USE_OPENSSL_FALSE -COND_USE_OPENSSL_TRUE -CRYPTO_LIBS -HAVE_VENDORDIR_FALSE -HAVE_VENDORDIR_TRUE -VENDOR_SCONFIGDIR -STRINGPARAM_VENDORDIR -ECONF_LIBS -ECONF_CFLAGS -LOGIND_CFLAGS -SYSTEMD_LIBS -SYSTEMD_CFLAGS -LIBSELINUX -HAVE_NIS_FALSE -HAVE_NIS_TRUE -NIS_LIBS -NIS_CFLAGS -NSL_LIBS -NSL_CFLAGS -TIRPC_LIBS -TIRPC_CFLAGS -LIBDB -LIBCRYPT -CRYPT_LIBS -CRYPT_CFLAGS -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG -LIBAUDIT -LIBDL -pam_xauth_path -SCONFIGDIR -SECUREDIR -MAN_STYLESHEET -PDF_STYLESHEET -TXT_STYLESHEET -HTML_STYLESHEET -DOCBOOK_RNG -LIBPRELUDE_CONFIG_PREFIX -LIBPRELUDE_PREFIX -LIBPRELUDE_LIBS -LIBPRELUDE_LDFLAGS -LIBPRELUDE_PTHREAD_CFLAGS -LIBPRELUDE_CFLAGS -LIBPRELUDE_CONFIG -HAVE_DOC_FALSE -HAVE_DOC_TRUE -EXE_LDFLAGS -EXE_CFLAGS -HAVE_VERSIONING_FALSE -HAVE_VERSIONING_TRUE -BUILD_LDFLAGS -BUILD_CFLAGS -BUILD_CPPFLAGS -CC_FOR_BUILD -WARN_CFLAGS -LEXLIB -LEX_OUTPUT_ROOT -LEX -YFLAGS -YACC -LT_SYS_LIBRARY_PATH -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -RANLIB -ac_ct_AR -AR -DLLTOOL -OBJDUMP -FILECMD -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -SED -LIBTOOL -EGREP -GREP -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL -am__quote' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_dependency_tracking -enable_static -enable_shared -with_pic -enable_fast_install -with_aix_soname -with_gnu_ld -with_sysroot -enable_libtool_lock -enable_largefile -enable_Werror -enable_pie -enable_doc -enable_prelude -with_libprelude_prefix -enable_debug -enable_docbook_rng -enable_html_stylesheet -enable_txt_stylesheet -enable_pdf_stylesheet -enable_man_stylesheet -enable_securedir -enable_isadir -enable_sconfigdir -enable_pamlocking -enable_read_both_confs -enable_lckpwdf -with_mailspool -with_xauth -enable_audit -with_randomdev -enable_db -with_db_uniquename -enable_nis -enable_usergroups -enable_selinux -enable_logind -enable_econf -enable_vendordir -enable_openssl -enable_regenerate_docu -with_xml_catalog -enable_nls -enable_rpath -with_libiconv_prefix -with_libintl_prefix -with_uidmin -with_kernel_overflow_uid -with_systemdunitdir -enable_unix -enable_lastlog -with_misc_conv_bufsize -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -LT_SYS_LIBRARY_PATH -YACC -YFLAGS -PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR -CRYPT_CFLAGS -CRYPT_LIBS -TIRPC_CFLAGS -TIRPC_LIBS -NSL_CFLAGS -NSL_LIBS -SYSTEMD_CFLAGS -SYSTEMD_LIBS -ECONF_CFLAGS -ECONF_LIBS' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures Linux-PAM 1.5.3 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/Linux-PAM] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of Linux-PAM 1.5.3:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-static[=PKGS] build static libraries [default=no] - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --disable-largefile omit support for large files - --enable-Werror turn on -Werror compiler option - --disable-pie disable position-independent executables (PIE) - --disable-doc Do not generate or install documentation - --disable-prelude do not use prelude - --enable-debug specify you are building with debugging on - --enable-docbook-rng=FILE - RNG file for checking XML files - [default=http://docbook.org/xml/5.0/rng/docbookxi.rng] - --enable-html-stylesheet=FILE - html stylesheet path - [default=http://docbook.sourceforge.net/release/xsl-ns/current/html/chunk.xsl] - --enable-txt-stylesheet=FILE - text stylesheet path - [default=http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl] - --enable-pdf-stylesheet=FILE - pdf stylesheet path - [default=http://docbook.sourceforge.net/release/xsl-ns/current/fo/docbook.xsl] - --enable-man-stylesheet=FILE - man stylesheet path - [default=http://docbook.sourceforge.net/release/xsl-ns/current/manpages/profile-docbook.xsl] - --enable-securedir=DIR path to location of PAMs [default=$libdir/security] - --enable-isadir=DIR path to arch-specific module files - [default=../../(basename of $libdir)/security] - --enable-sconfigdir=DIR path to module conf files - [default=$sysconfdir/security] - --enable-pamlocking configure libpam to observe a global authentication - lock - --enable-read-both-confs - read both /etc/pam.d and /etc/pam.conf files - --disable-lckpwdf do not use the lckpwdf function - --disable-audit do not enable audit support - --enable-db=(db|ndbm|yes|no) - Default behavior 'yes', which is to check for libdb - first, followed by ndbm. Use 'no' to disable db - support. - --disable-nis Disable building NIS/YP support in pam_unix - --enable-usergroups sets the usergroups option default to enabled - --disable-selinux do not use SELinux - --disable-logind Disable logind support - --disable-econf do not use libeconf - --enable-vendordir=DIR Directory for distribution provided configuration - files - --enable-openssl use OpenSSL crypto libraries - --disable-regenerate-docu - Don't re-build documentation from XML sources - --disable-nls do not use Native Language Support - --disable-rpath do not hardcode runtime library paths - --disable-unix do not build pam_unix module - --enable-lastlog do build pam_lastlog module - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use - both] - --with-aix-soname=aix|svr4|both - shared library versioning (aka "SONAME") variant to - provide on AIX, [default=aix]. - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot[=DIR] Search for dependent libraries within DIR (or the - compiler's sysroot if not specified). - --with-libprelude-prefix=PFX - Prefix where libprelude is installed (optional) - --with-mailspool path to mail spool directory - default _PATH_MAILDIR if defined in paths.h, otherwise /var/spool/mail - --with-xauth additional path to check for xauth when it is called from pam_xauth - added to the default of /usr/X11R6/bin/xauth, /usr/bin/xauth, /usr/bin/X11/xauth - --with-randomdev=(<path>|yes|no) - use specified random device instead of /dev/urandom - or 'no' to disable - --with-db-uniquename=extension - Unique name for db libraries and functions. - --with-xml-catalog=CATALOG - path to xml catalog to use - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib - --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib - --without-libintl-prefix don't search for libintl in includedir and libdir - --with-uidmin=<number> default value for regular user min uid (1000) - --with-kernel-overflow-uid=<number> - kernel overflow uid, default (uint16_t)-2=65534 - --with-systemdunitdir=DIR - path to systemd service directory - --with-misc-conv-bufsize=<number> - Size of input buffer for libpam_misc's misc_conv() - conversation function, default=4096 - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> - CPP C preprocessor - LT_SYS_LIBRARY_PATH - User-defined run-time library search path. - YACC The `Yet Another Compiler Compiler' implementation to use. - Defaults to the first program found out of: `bison -y', `byacc', - `yacc'. - YFLAGS The list of arguments that will be passed by default to $YACC. - This script will default YFLAGS to the empty string to avoid a - default value of `-d' given by some make applications. - PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path - CRYPT_CFLAGS - C compiler flags for CRYPT, overriding pkg-config - CRYPT_LIBS linker flags for CRYPT, overriding pkg-config - TIRPC_CFLAGS - C compiler flags for TIRPC, overriding pkg-config - TIRPC_LIBS linker flags for TIRPC, overriding pkg-config - NSL_CFLAGS C compiler flags for NSL, overriding pkg-config - NSL_LIBS linker flags for NSL, overriding pkg-config - SYSTEMD_CFLAGS - C compiler flags for SYSTEMD, overriding pkg-config - SYSTEMD_LIBS - linker flags for SYSTEMD, overriding pkg-config - ECONF_CFLAGS - C compiler flags for ECONF, overriding pkg-config - ECONF_LIBS linker flags for ECONF, overriding pkg-config - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -Linux-PAM configure 1.5.3 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case <limits.h> declares $2. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $2 innocuous_$2 - -/* Tell GNU C headers to include stubs. */ -#define __need_GNU_STUBS_H - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - if test "$GCC" = yes; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#undef $2 -/* Declare this function with the same prototype as __builtin_$2. - This removes a warning about conflicting types for built-in function $2 */ -__typeof__(__builtin_$2) $2; -__typeof__(__builtin_$2) *volatile f = $2; - -int -main () -{ -return f != $2; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - else - eval "$3=no" - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type - -# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES -# ---------------------------------------------------- -# Tries to find if the field MEMBER exists in type AGGR, after including -# INCLUDES, setting cache variable VAR accordingly. -ac_fn_c_check_member () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main () -{ -static $2 ac_aggr; -if (sizeof ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$4=yes" -else - eval "$4=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$4 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_member - -# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -# --------------------------------------------- -# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. -ac_fn_c_check_decl () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - as_decl_name=`echo $2|sed 's/ *(.*//'` - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -#ifndef $as_decl_name -#ifdef __cplusplus - (void) $as_decl_use; -#else - (void) $as_decl_name; -#endif -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_decl -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by Linux-PAM $as_me 1.5.3, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Sanitize IFS. - IFS=" "" $as_nl" - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -gt_needs="$gt_needs " -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_aux_dir= -for ac_dir in build-aux "$srcdir"/build-aux; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -am__api_version='1.16' - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` - -if test x"${MISSING+set}" != xset; then - MISSING="\${SHELL} '$am_aux_dir/missing'" -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='Linux-PAM' - VERSION='1.5.3' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> -# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: <https://www.gnu.org/software/coreutils/>. - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi - - -ac_config_headers="$ac_config_headers config.h" - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - - - - - - -test "${prefix}" = "NONE" && prefix="/usr" -if test ${prefix} = '/usr' -then - if test ${sysconfdir} = '${prefix}/etc' - then - sysconfdir="/etc" - fi - if test ${libdir} = '${exec_prefix}/lib' - then - case "$host_cpu" in - x86_64|ppc64|s390x|sparc64) - libdir="/lib64" ;; - *) - libdir="/lib" ;; - esac - fi - if test ${sbindir} = '${exec_prefix}/sbin' - then - sbindir="/sbin" - fi - if test ${mandir} = '${prefix}/man' - then - mandir='${prefix}/share/man' - fi - if test ${includedir} = '${prefix}/include' - then - includedir="${prefix}/include/security" - fi - - if test ${localstatedir} = '${prefix}/var' - then - localstatedir="/var" - fi - -fi - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 -$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 - (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - case $?:`cat confinc.out 2>/dev/null` in #( - '0:this is the am__doit target') : - case $s in #( - BSD) : - am__include='.include' am__quote='"' ;; #( - *) : - am__include='include' am__quote='' ;; -esac ;; #( - *) : - ;; -esac - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -$as_echo "${_am_result}" >&6; } - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdio.h> -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ctype.h> -#include <stdlib.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= -fi - - - if test "$MINIX" = yes; then - -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h - - -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h - - -$as_echo "#define _MINIX 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "#define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - - - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.4.7' -macro_revision='2.4.7' - - - - - - - - - - - - - -ltmain=$ac_aux_dir/ltmain.sh - -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -$as_echo_n "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} - -case $ECHO in - printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -$as_echo "printf" >&6; } ;; - print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -$as_echo "print -r" >&6; } ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -$as_echo "cat" >&6; } ;; -esac - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_FGREP" || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test yes = "$GCC"; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - 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. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname 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 yes = "$with_gnu_ld"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${lt_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD=$ac_dir/$ac_prog - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in - *GNU* | *'with BFD'*) - test no != "$with_gnu_ld" && break - ;; - *) - test yes != "$with_gnu_ld" && break - ;; - esac - fi - done - IFS=$lt_save_ifs -else - lt_cv_path_LD=$LD # Let the user override the test with a path. -fi -fi - -LD=$lt_cv_path_LD -if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${lt_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 </dev/null` in -*GNU* | *'with BFD'*) - lt_cv_prog_gnu_ld=yes - ;; -*) - lt_cv_prog_gnu_ld=no - ;; -esac -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if ${lt_cv_path_NM+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM=$NM -else - lt_nm_to_check=${ac_tool_prefix}nm - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - tmp_nm=$ac_dir/$lt_tmp_nm - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the 'sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty - case $build_os in - mingw*) lt_bad_file=conftest.nm/nofile ;; - *) lt_bad_file=/dev/null ;; - esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in - *$lt_bad_file* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break 2 - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break 2 - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS=$lt_save_ifs - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test no != "$lt_cv_path_NM"; then - NM=$lt_cv_path_NM -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols -headers" - ;; - *) - DUMPBIN=: - ;; - esac - fi - - if test : != "$DUMPBIN"; then - NM=$DUMPBIN - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if ${lt_cv_nm_interface+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if ${lt_cv_sys_max_cmd_len+:} false; then : - $as_echo_n "(cached) " >&6 -else - i=0 - teststring=ABCD - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - 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` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then - 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` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test X`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test 17 != "$i" # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n "$lt_cv_sys_max_cmd_len"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -if ${lt_cv_to_host_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac - -fi - -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -$as_echo "$lt_cv_to_host_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -if ${lt_cv_to_tool_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac - -fi - -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -$as_echo "$lt_cv_to_tool_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if ${lt_cv_ld_reload_flag+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test yes != "$GCC"; then - reload_cmds=false - fi - ;; - darwin*) - if test yes = "$GCC"; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args. -set dummy ${ac_tool_prefix}file; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_FILECMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$FILECMD"; then - ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_FILECMD="${ac_tool_prefix}file" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -FILECMD=$ac_cv_prog_FILECMD -if test -n "$FILECMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 -$as_echo "$FILECMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_FILECMD"; then - ac_ct_FILECMD=$FILECMD - # Extract the first word of "file", so it can be a program name with args. -set dummy file; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_FILECMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_FILECMD"; then - ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_FILECMD="file" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD -if test -n "$ac_ct_FILECMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5 -$as_echo "$ac_ct_FILECMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_FILECMD" = x; then - FILECMD=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - FILECMD=$ac_ct_FILECMD - fi -else - FILECMD="$ac_cv_prog_FILECMD" -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if ${lt_cv_deplibs_check_method+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# 'unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# that responds to the $file_magic_cmd with a given extended regex. -# If you have 'file' or equivalent on your system and you're not sure -# whether 'pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='$FILECMD -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly* | midnightbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=$FILECMD - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=$FILECMD - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=$FILECMD - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd* | bitrig*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -os2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh; - # decide which one to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd=$ECHO - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - - - - - - - -if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AR" && break - done -fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -fi - -: ${AR=ar} - - - - - - -# Use ARFLAGS variable as AR's operation code to sync the variable naming with -# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have -# higher priority because thats what people were doing historically (setting -# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS -# variable obsoleted/removed. - -test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} -lt_ar_flags=$AR_FLAGS - - - - - - -# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override -# by AR_FLAGS because that was never working and AR_FLAGS is about to die. - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -$as_echo_n "checking for archiver @FILE support... " >&6; } -if ${lt_cv_ar_at_file+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test 0 -eq "$ac_status"; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test 0 -ne "$ac_status"; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } - -if test no = "$lt_cv_ar_at_file"; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - bitrig* | openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if ${lt_cv_sys_global_symbol_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test ia64 = "$host_cpu"; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" - # Adjust the below global symbol transforms to fixup imported variables. - lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" - lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" - lt_c_name_lib_hook="\ - -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ - -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" -else - # Disable hooks by default. - lt_cv_sys_global_symbol_to_import= - lt_cdecl_hook= - lt_c_name_hook= - lt_c_name_lib_hook= -fi - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ -$lt_cdecl_hook\ -" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ -$lt_c_name_hook\ -" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" - -# Transform an extracted symbol line into symbol name with lib prefix and -# symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ -$lt_c_name_lib_hook\ -" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function, - # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++ or ICC, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ -" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ -" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ -" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ -" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE -/* DATA imports from DLLs on WIN32 can't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined __osf__ -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS=conftstm.$ac_objext - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest$ac_exeext; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test yes = "$pipe_works"; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } - -# Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : - withval=$with_sysroot; -else - with_sysroot=no -fi - - -lt_sysroot= -case $with_sysroot in #( - yes) - if test yes = "$GCC"; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 -$as_echo "$with_sysroot" >&6; } - as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -$as_echo "${lt_sysroot:-no}" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 -$as_echo_n "checking for a working dd... " >&6; } -if ${ac_cv_path_lt_DD+:} false; then : - $as_echo_n "(cached) " >&6 -else - printf 0123456789abcdef0123456789abcdef >conftest.i -cat conftest.i conftest.i >conftest2.i -: ${lt_DD:=$DD} -if test -z "$lt_DD"; then - ac_path_lt_DD_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in dd; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_lt_DD" || continue -if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then - cmp -s conftest.i conftest.out \ - && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: -fi - $ac_path_lt_DD_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_lt_DD"; then - : - fi -else - ac_cv_path_lt_DD=$lt_DD -fi - -rm -f conftest.i conftest2.i conftest.out -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 -$as_echo "$ac_cv_path_lt_DD" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 -$as_echo_n "checking how to truncate binary pipes... " >&6; } -if ${lt_cv_truncate_bin+:} false; then : - $as_echo_n "(cached) " >&6 -else - printf 0123456789abcdef0123456789abcdef >conftest.i -cat conftest.i conftest.i >conftest2.i -lt_cv_truncate_bin= -if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then - cmp -s conftest.i conftest.out \ - && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" -fi -rm -f conftest.i conftest2.i conftest.out -test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 -$as_echo "$lt_cv_truncate_bin" >&6; } - - - - - - - -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -func_cc_basename () -{ - for cc_temp in $*""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac - done - func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -} - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test no = "$enable_libtool_lock" || enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out what ABI is being produced by ac_compile, and set mode - # options accordingly. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `$FILECMD conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE=32 - ;; - *ELF-64*) - HPUX_IA64_MODE=64 - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test yes = "$lt_cv_prog_gnu_ld"; then - case `$FILECMD conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `$FILECMD conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -mips64*-*linux*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - emul=elf - case `$FILECMD conftest.$ac_objext` in - *32-bit*) - emul="${emul}32" - ;; - *64-bit*) - libsuff=64 - emul="${emul}64" - ;; - esac - case `$FILECMD conftest.$ac_objext` in - *MSB*) - emul="${emul}btsmip" - ;; - *LSB*) - emul="${emul}ltsmip" - ;; - esac - case `$FILECMD conftest.$ac_objext` in - *N32*) - libsuff=n32 - emul="${emul}n32" - ;; - esac - LD="${LD-ld} -m $emul" - fi - rm -rf conftest* - ;; - -aarch64*-*linux*|x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ -loongarch64*-*linux*| \ -riscv64*-*linux*|s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. Note that the listed cases only cover the - # situations where additional linker options are needed (such as when - # doing 32-bit compilation for a host where ld defaults to 64-bit, or - # vice versa); the common cases where no linker options are needed do - # not appear in the list. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `$FILECMD conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*-gnux32) - libsuff=x32 - LD="${LD-ld} -m elf32_x86_64" - ;; - x86_64-*linux*) - case `$FILECMD conftest.o` in - *x86-64*) - LD="${LD-ld} -m elf32_x86_64" - ;; - *) - LD="${LD-ld} -m elf_i386" - ;; - esac - ;; - powerpc64le-*linux*) - LD="${LD-ld} -m elf32lppclinux" - ;; - powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - libsuff=64 - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - powerpcle-*linux*) - LD="${LD-ld} -m elf64lppc" - ;; - powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if ${lt_cv_cc_needs_belf+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test yes != "$lt_cv_cc_needs_belf"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS=$SAVE_CFLAGS - fi - ;; -*-*solaris*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `$FILECMD conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*|x86_64-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD=${LD-ld}_sol2 - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks=$enable_libtool_lock - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MANIFEST_TOOL"; then - ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -if test -n "$MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -$as_echo "$MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_MANIFEST_TOOL"; then - ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL - # Extract the first word of "mt", so it can be a program name with args. -set dummy mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_MANIFEST_TOOL"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -if test -n "$ac_ct_MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_MANIFEST_TOOL" = x; then - MANIFEST_TOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL - fi -else - MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -fi - -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if ${lt_cv_path_mainfest_tool+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&5 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test yes != "$lt_cv_path_mainfest_tool"; then - MANIFEST_TOOL=: -fi - - - - - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -$as_echo "$ac_ct_NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -$as_echo "$LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -$as_echo "$ac_ct_LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -$as_echo "$OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -$as_echo "$ac_ct_OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -$as_echo "$OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -$as_echo "$ac_ct_OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -$as_echo_n "checking for -single_module linker flag... " >&6; } -if ${lt_cv_apple_cc_single_mod+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "$LT_MULTI_MODULE"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&5 - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test 0 = "$_lt_result"; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -$as_echo "$lt_cv_apple_cc_single_mod" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if ${lt_cv_ld_exported_symbols_list+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 -$as_echo_n "checking for -force_load linker flag... " >&6; } -if ${lt_cv_ld_force_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 - $AR $AR_FLAGS libconftest.a conftest.o 2>&5 - echo "$RANLIB libconftest.a" >&5 - $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&5 - elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&5 - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) - case $MACOSX_DEPLOYMENT_TARGET,$host in - 10.[012],*|,*powerpc*-darwin[5-8]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - *) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test yes = "$lt_cv_apple_cc_single_mod"; then - _lt_dar_single_mod='$single_module' - fi - if test yes = "$lt_cv_ld_exported_symbols_list"; then - _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' - fi - if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -# func_munge_path_list VARIABLE PATH -# ----------------------------------- -# VARIABLE is name of variable containing _space_ separated list of -# directories to be munged by the contents of PATH, which is string -# having a format: -# "DIR[:DIR]:" -# string "DIR[ DIR]" will be prepended to VARIABLE -# ":DIR[:DIR]" -# string "DIR[ DIR]" will be appended to VARIABLE -# "DIRP[:DIRP]::[DIRA:]DIRA" -# string "DIRP[ DIRP]" will be prepended to VARIABLE and string -# "DIRA[ DIRA]" will be appended to VARIABLE -# "DIR[:DIR]" -# VARIABLE will be replaced by "DIR[ DIR]" -func_munge_path_list () -{ - case x$2 in - x) - ;; - *:) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" - ;; - x:*) - eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" - ;; - *::*) - eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" - eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" - ;; - *) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" - ;; - esac -} - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - - - -# Set options -# Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - enable_static=no -fi - - - - - - - - - - - enable_dlopen=no - - - enable_win32_dll=no - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for lt_pkg in $withval; do - IFS=$lt_save_ifs - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - pic_mode=default -fi - - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - shared_archive_member_spec= -case $host,$enable_shared in -power*-*-aix[5-9]*,yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 -$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } - -# Check whether --with-aix-soname was given. -if test "${with_aix_soname+set}" = set; then : - withval=$with_aix_soname; case $withval in - aix|svr4|both) - ;; - *) - as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 - ;; - esac - lt_cv_with_aix_soname=$with_aix_soname -else - if ${lt_cv_with_aix_soname+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_with_aix_soname=aix -fi - - with_aix_soname=$lt_cv_with_aix_soname -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 -$as_echo "$with_aix_soname" >&6; } - if test aix != "$with_aix_soname"; then - # For the AIX way of multilib, we name the shared archive member - # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', - # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. - # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, - # the AIX toolchain works better with OBJECT_MODE set (default 32). - if test 64 = "${OBJECT_MODE-32}"; then - shared_archive_member_spec=shr_64 - else - shared_archive_member_spec=shr - fi - fi - ;; -*) - with_aix_soname=aix - ;; -esac - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS=$ltmain - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if ${lt_cv_objdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test set != "${COLLECT_NAMES+set}"; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a '.a' archive for static linking (except MSVC and -# ICC, which need '.lib'). -libext=a - -with_gnu_ld=$lt_cv_prog_gnu_ld - -old_CC=$CC -old_CFLAGS=$CFLAGS - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -func_cc_basename $compiler -cc_basename=$func_cc_basename_result - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD=$MAGIC_CMD - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/${ac_tool_prefix}file"; then - lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD=$lt_cv_path_MAGIC_CMD - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS=$lt_save_ifs - MAGIC_CMD=$lt_save_MAGIC_CMD - ;; -esac -fi - -MAGIC_CMD=$lt_cv_path_MAGIC_CMD -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD=$MAGIC_CMD - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/file"; then - lt_cv_path_MAGIC_CMD=$ac_dir/"file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD=$lt_cv_path_MAGIC_CMD - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS=$lt_save_ifs - MAGIC_CMD=$lt_save_MAGIC_CMD - ;; -esac -fi - -MAGIC_CMD=$lt_cv_path_MAGIC_CMD -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC=$CC -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test yes = "$GCC"; then - case $cc_basename in - nvcc*) - lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; - *) - lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $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 other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test yes = "$GCC"; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - lt_prog_compiler_pic='-fPIC' - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the '-m68020' flag to GCC prevents building anything better, - # like '-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - case $host_os in - os2*) - lt_prog_compiler_static='$wl-static' - ;; - esac - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - lt_prog_compiler_static= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - lt_prog_compiler_wl='-Xlinker ' - if test -n "$lt_prog_compiler_pic"; then - lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - case $cc_basename in - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - case $host_os in - os2*) - lt_prog_compiler_static='$wl-static' - ;; - esac - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='$wl-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64, which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - tcc*) - # Fabrice Bellard et al's Tiny C Compiler - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | $SED 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - *Sun\ F* | *Sun*Fortran*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Intel*\ [CF]*Compiler*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - *Portland\ Group*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms that do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -if ${lt_cv_prog_compiler_pic+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } -lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if ${lt_cv_prog_compiler_pic_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $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 other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - -if test yes = "$lt_cv_prog_compiler_pic_works"; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if ${lt_cv_prog_compiler_static_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS=$save_LDFLAGS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - -if test yes = "$lt_cv_prog_compiler_static_works"; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $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 - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $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 - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links=nottested -if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test no = "$hard_links"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ' (' and ')$', so one must not match beginning or - # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', - # as well as any symbol that contains 'd'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++ or Intel C++ Compiler. - if test yes != "$GCC"; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) - with_gnu_ld=yes - ;; - openbsd* | bitrig*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu) - link_all_deplibs=no - ;; - esac - - ld_shlibs=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test yes = "$with_gnu_ld"; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; - *\ \(GNU\ Binutils\)\ [3-9]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test yes = "$lt_use_gnu_ld_interface"; 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 - 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 | $SED -e 's/([^)]\+)\s\+//' 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [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 - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test ia64 != "$host_cpu"; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='$wl--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file, use it as - # is; otherwise, prepend EXPORTS... - archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - link_all_deplibs=yes - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - shrext_cmds=.dll - archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - enable_shared_with_static_runtimes=yes - file_list_spec='@' - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - export_dynamic_flag_spec='$wl-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test linux-dietlibc = "$host_os"; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test no = "$tmp_diet" - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - tmp_addflag=' $pic_flag -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' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - nagfor*) # NAGFOR 5.3 - tmp_sharedflag='-Wl,-shared' ;; - xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - compiler_needs_object=yes - ;; - esac - case `$CC -V 2>&1 | $SED 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - - if test yes = "$supports_anon_versioning"; 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~ - if test -r $libname-altlinux.ver; then cp $libname-altlinux.ver $output_objdir/$libname.ver; fi~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - tcc*) - export_dynamic_flag_spec='-rdynamic' - ;; - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test yes = "$supports_anon_versioning"; 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~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - 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' - wlarc= - else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test no = "$ld_shlibs"; 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) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test ia64 = "$host_cpu"; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag= - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to GNU nm, but means don't demangle to AIX nm. - # Without the "-l" option, or with the "-B" option, AIX nm treats - # weak defined symbols like other global defined symbols, whereas - # GNU nm marks them as "W". - # While the 'weak' keyword is ignored in the Export File, we need - # it in the Import File for the 'aix-soname' feature, so we have - # to replace the "-B" option with "-P" for AIX nm. - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # have runtime linking enabled, and use it for executables. - # For shared libraries, we enable/disable runtime linking - # depending on the kind of the shared library created - - # when "with_aix_soname,aix_use_runtimelinking" is: - # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables - # "aix,yes" lib.so shared, rtl:yes, for executables - # lib.a static archive - # "both,no" lib.so.V(shr.o) shared, rtl:yes - # lib.a(lib.so.V) shared, rtl:no, for executables - # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a(lib.so.V) shared, rtl:no - # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a static archive - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then - aix_use_runtimelinking=yes - break - fi - done - if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then - # With aix-soname=svr4, we create the lib.so.V shared archives only, - # so we don't have lib.a shared libs to link our executables. - # We have to force runtime linking in this case. - aix_use_runtimelinking=yes - LDFLAGS="$LDFLAGS -Wl,-brtl" - fi - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='$wl-f,' - case $with_aix_soname,$aix_use_runtimelinking in - aix,*) ;; # traditional, no import file - svr4,* | *,yes) # use import file - # The Import File defines what to hardcode. - hardcode_direct=no - hardcode_direct_absolute=no - ;; - esac - - if test yes = "$GCC"; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`$CC -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test yes = "$aix_use_runtimelinking"; then - shared_flag="$shared_flag "'$wl-G' - fi - # Need to ensure runtime linking is disabled for the traditional - # shared library, or the linker may eventually find shared libraries - # /with/ Import File - we do not want to mix them. - shared_flag_aix='-shared' - shared_flag_svr4='-shared $wl-G' - else - # not using gcc - if test ia64 = "$host_cpu"; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test yes = "$aix_use_runtimelinking"; then - shared_flag='$wl-G' - else - shared_flag='$wl-bM:SRE' - fi - shared_flag_aix='$wl-bM:SRE' - shared_flag_svr4='$wl-G' - fi - fi - - export_dynamic_flag_spec='$wl-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test set = "${lt_cv_aix_libpath+set}"; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=/usr/lib:/lib - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag - else - if test ia64 = "$host_cpu"; then - hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test set = "${lt_cv_aix_libpath+set}"; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=/usr/lib:/lib - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' $wl-bernotok' - allow_undefined_flag=' $wl-berok' - if test yes = "$with_gnu_ld"; then - # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - fi - archive_cmds_need_lc=yes - archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' - # -brtl affects multiple linker settings, -berok does not and is overridden later - compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' - if test svr4 != "$with_aix_soname"; then - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' - fi - if test aix != "$with_aix_soname"; then - archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' - else - # used by -dlpreopen to get the symbols - archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' - fi - archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++ or Intel C++ Compiler. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl* | icl*) - # Native MSVC or ICC - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - always_export_symbols=yes - file_list_spec='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' - archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then - cp "$export_symbols" "$output_objdir/$soname.def"; - echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; - else - $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, )='true' - enable_shared_with_static_runtimes=yes - exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - old_postinstall_cmds='chmod 644 $oldlib' - postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile=$lt_outputfile.exe - lt_tool_outputfile=$lt_tool_outputfile.exe - ;; - esac~ - if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC and ICC wrapper - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - enable_shared_with_static_runtimes=yes - ;; - esac - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - if test yes = "$lt_cv_ld_force_load"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - - else - whole_archive_flag_spec='' - fi - link_all_deplibs=yes - allow_undefined_flag=$_lt_dar_allow_undefined - case $cc_basename in - ifort*|nagfor*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test yes = "$_lt_dar_can_shared"; then - output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly* | midnightbsd*) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test yes = "$GCC"; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='$wl-E' - ;; - - hpux10*) - if test yes,no = "$GCC,$with_gnu_ld"; then - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test no = "$with_gnu_ld"; then - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='$wl-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test yes,no = "$GCC,$with_gnu_ld"; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 -$as_echo_n "checking if $CC understands -b... " >&6; } -if ${lt_cv_prog_compiler__b+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler__b=no - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -b" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler__b=yes - fi - else - lt_cv_prog_compiler__b=yes - fi - fi - $RM -r conftest* - LDFLAGS=$save_LDFLAGS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } - -if test yes = "$lt_cv_prog_compiler__b"; then - archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -fi - - ;; - esac - fi - if test no = "$with_gnu_ld"; then - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='$wl-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test yes = "$GCC"; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -if ${lt_cv_irix_exported_symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo (void) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test yes = "$lt_cv_irix_exported_symbol"; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' - fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - linux*) - case $cc_basename in - tcc*) - # Fabrice Bellard et al's Tiny C Compiler - ld_shlibs=yes - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd* | bitrig*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - export_dynamic_flag_spec='$wl-E' - else - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - shrext_cmds=.dll - archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - enable_shared_with_static_runtimes=yes - file_list_spec='@' - ;; - - osf3*) - if test yes = "$GCC"; then - allow_undefined_flag=' $wl-expect_unresolved $wl\*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test yes = "$GCC"; then - allow_undefined_flag=' $wl-expect_unresolved $wl\*' - archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-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; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_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' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test yes = "$GCC"; then - wlarc='$wl' - archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $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 $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - 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' - ;; - *) - wlarc='$wl' - archive_cmds='$CC -G$allow_undefined_flag -h $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 -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands '-z linker_flag'. GCC discards it without '$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test yes = "$GCC"; then - whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test sequent = "$host_vendor"; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='$wl-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test yes = "$GCC"; then - archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We CANNOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='$wl-z,text' - allow_undefined_flag='$wl-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='$wl-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='$wl-Bexport' - runpath_var='LD_RUN_PATH' - - if test yes = "$GCC"; then - archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test sni = "$host_vendor"; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='$wl-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test no = "$ld_shlibs" && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test yes,yes = "$GCC,$enable_shared"; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -if ${lt_cv_archive_cmds_need_lc+:} false; then : - $as_echo_n "(cached) " >&6 -else - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } - archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } - -if test yes = "$GCC"; then - case $host_os in - darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; - *) lt_awk_arg='/^libraries:/' ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; - *) lt_sed_strip_eq='s|=/|/|g' ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary... - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - # ...but if some path component already ends with the multilib dir we assume - # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). - case "$lt_multi_os_dir; $lt_search_path_spec " in - "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) - lt_multi_os_dir= - ;; - esac - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" - elif test -n "$lt_multi_os_dir"; then - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS = " "; FS = "/|\n";} { - lt_foo = ""; - lt_count = 0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo = "/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's|/\([A-Za-z]:\)|\1|g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib$libsuff /usr/lib$libsuff /usr/local/lib$libsuff" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=.so -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib$libsuff /usr/lib$libsuff" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - - - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='$libname$release$shared_ext$major' - ;; - -aix[4-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test ia64 = "$host_cpu"; then - # AIX 5 supports IA64 - library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line '#! .'. This would cause the generated library to - # depend on '.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # Using Import Files as archive members, it is possible to support - # filename-based versioning of shared library archives on AIX. While - # this would work for both with and without runtime linking, it will - # prevent static linking of such archives. So we do filename-based - # shared library versioning with .so extension only, which is used - # when both runtime linking and shared linking is enabled. - # Unfortunately, runtime linking may impact performance, so we do - # not want this to be the default eventually. Also, we use the - # versioned .so libs for executables only if there is the -brtl - # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. - # To allow for filename-based versioning support, we need to create - # libNAME.so.V as an archive file, containing: - # *) an Import File, referring to the versioned filename of the - # archive as well as the shared archive member, telling the - # bitwidth (32 or 64) of that shared object, and providing the - # list of exported symbols of that shared object, eventually - # decorated with the 'weak' keyword - # *) the shared object with the F_LOADONLY flag set, to really avoid - # it being seen by the linker. - # At run time we better use the real file rather than another symlink, - # but for link time we create the symlink libNAME.so -> libNAME.so.V - - case $with_aix_soname,$aix_use_runtimelinking in - # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - aix,yes) # traditional libtool - dynamic_linker='AIX unversionable lib.so' - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - ;; - aix,no) # traditional AIX only - dynamic_linker='AIX lib.a(lib.so.V)' - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' - ;; - svr4,*) # full svr4 only - dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" - library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' - # We do not specify a path in Import Files, so LIBPATH fires. - shlibpath_overrides_runpath=yes - ;; - *,yes) # both, prefer svr4 - dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" - library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' - # unpreferred sharedlib libNAME.a needs extra handling - postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' - postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' - # We do not specify a path in Import Files, so LIBPATH fires. - shlibpath_overrides_runpath=yes - ;; - *,no) # both, prefer aix - dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" - library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' - # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling - postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' - postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' - ;; - esac - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='$libname$shared_ext' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=.dll - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl* | *,icl*) - # Native MSVC or ICC - libname_spec='$name' - soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - library_names_spec='$libname.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec=$LIB - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC and ICC wrapper - library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' - soname_spec='$libname$release$major$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly* | midnightbsd*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[23].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=no - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - if test 32 = "$HPUX_IA64_MODE"; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - sys_lib_dlsearch_path_spec=/usr/lib/hpux32 - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - sys_lib_dlsearch_path_spec=/usr/lib/hpux64 - fi - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[3-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test yes = "$lt_cv_prog_gnu_ld"; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='$libname$release$shared_ext$major' - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" - sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -linux*android*) - version_type=none # Android doesn't support versioned libraries. - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext' - soname_spec='$libname$release$shared_ext' - finish_cmds= - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - dynamic_linker='Android linker' - # Don't embed -rpath directories since the linker doesn't support them. - hardcode_libdir_flag_spec='-L$libdir' - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - if ${lt_cv_shlibpath_overrides_runpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - lt_cv_shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - -fi - - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Ideally, we could use ldconfig to report *all* directores which are - # searched for libraries, however this is still not possible. Aside from not - # being certain /sbin/ldconfig is available, command - # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, - # even though it is searched at run-time. Try to do the best guess by - # appending ld.so.conf contents (and includes) to the search path. - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd* | bitrig*) - version_type=sunos - sys_lib_dlsearch_path_spec=/usr/lib - need_lib_prefix=no - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - need_version=no - else - need_version=yes - fi - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -os2*) - libname_spec='$name' - version_type=windows - shrext_cmds=.dll - need_version=no - need_lib_prefix=no - # OS/2 can only load a DLL with a base name of 8 characters or less. - soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; - v=$($ECHO $release$versuffix | tr -d .-); - n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); - $ECHO $n$v`$shared_ext' - library_names_spec='${libname}_dll.$libext' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=BEGINLIBPATH - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='$libname$release$shared_ext$major' - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test yes = "$with_gnu_ld"; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec; then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' - soname_spec='$libname$shared_ext.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=sco - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test yes = "$with_gnu_ld"; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test no = "$dynamic_linker" && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test yes = "$GCC"; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then - sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec -fi - -if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then - sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec -fi - -# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... -configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec - -# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code -func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" - -# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool -configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test yes = "$hardcode_automatic"; then - - # We can hardcode non-existent directories. - if test no != "$hardcode_direct" && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && - test no != "$hardcode_minus_L"; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test relink = "$hardcode_action" || - test yes = "$inherit_rpath"; then - # Fast installation is not supported - enable_fast_install=no -elif test yes = "$shlibpath_overrides_runpath" || - test no = "$enable_shared"; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test yes != "$enable_dlopen"; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen=load_add_on - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen=LoadLibrary - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else - - lt_cv_dlopen=dyld - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - tpf*) - # Don't try to run any link tests for TPF. We know it's impossible - # because TPF is a cross-compiler, and we know how we open DSOs. - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - lt_cv_dlopen_self=no - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen=shl_load -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen=dlopen -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if ${ac_cv_lib_svld_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if ${ac_cv_lib_dld_dld_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test no = "$lt_cv_dlopen"; then - enable_dlopen=no - else - enable_dlopen=yes - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS=$CPPFLAGS - test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS=$LDFLAGS - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS=$LIBS - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test yes = "$cross_compiling"; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisibility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test yes = "$lt_cv_dlopen_self"; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self_static+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test yes = "$cross_compiling"; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisibility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS=$save_CPPFLAGS - LDFLAGS=$save_LDFLAGS - LIBS=$save_LIBS - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -z "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -else - if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - old_striplib="$STRIP --strip-debug" - striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - case $host_os in - darwin*) - # FIXME - insert some real tests, host_os isn't really good enough - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ;; - freebsd*) - if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then - old_striplib="$STRIP --strip-debug" - striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac - fi -fi - - - - - - - - - - - - - # Report what library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test no = "$can_build_shared" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test yes = "$enable_shared" && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test ia64 != "$host_cpu"; then - case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in - yes,aix,yes) ;; # shared object as lib.so file only - yes,svr4,*) ;; # shared object as lib.so archive member only - yes,*) enable_static=no ;; # shared object in lib.a archive as well - esac - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test yes = "$enable_shared" || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC=$lt_save_CC - - - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - -# Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - enable_static=no -fi - - - - - - -# Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else - enable_shared=yes -fi - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -for ac_prog in 'bison -y' byacc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_YACC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$YACC"; then - ac_cv_prog_YACC="$YACC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_YACC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -YACC=$ac_cv_prog_YACC -if test -n "$YACC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 -$as_echo "$YACC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$YACC" && break -done -test -n "$YACC" || YACC="yacc" - -for ac_prog in flex lex -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LEX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LEX"; then - ac_cv_prog_LEX="$LEX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_LEX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LEX=$ac_cv_prog_LEX -if test -n "$LEX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 -$as_echo "$LEX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$LEX" && break -done -test -n "$LEX" || LEX=":" - -if test "x$LEX" != "x:"; then - cat >conftest.l <<_ACEOF -%% -a { ECHO; } -b { REJECT; } -c { yymore (); } -d { yyless (1); } -e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */ - yyless ((input () != 0)); } -f { unput (yytext[0]); } -. { BEGIN INITIAL; } -%% -#ifdef YYTEXT_POINTER -extern char *yytext; -#endif -int -main (void) -{ - return ! yylex () + ! yywrap (); -} -_ACEOF -{ { ac_try="$LEX conftest.l" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$LEX conftest.l") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 -$as_echo_n "checking lex output file root... " >&6; } -if ${ac_cv_prog_lex_root+:} false; then : - $as_echo_n "(cached) " >&6 -else - -if test -f lex.yy.c; then - ac_cv_prog_lex_root=lex.yy -elif test -f lexyy.c; then - ac_cv_prog_lex_root=lexyy -else - as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 -$as_echo "$ac_cv_prog_lex_root" >&6; } -LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root - -if test -z "${LEXLIB+set}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 -$as_echo_n "checking lex library... " >&6; } -if ${ac_cv_lib_lex+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ac_save_LIBS=$LIBS - ac_cv_lib_lex='none needed' - for ac_lib in '' -lfl -ll; do - LIBS="$ac_lib $ac_save_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -`cat $LEX_OUTPUT_ROOT.c` -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lex=$ac_lib -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - test "$ac_cv_lib_lex" != 'none needed' && break - done - LIBS=$ac_save_LIBS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 -$as_echo "$ac_cv_lib_lex" >&6; } - test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 -$as_echo_n "checking whether yytext is a pointer... " >&6; } -if ${ac_cv_prog_lex_yytext_pointer+:} false; then : - $as_echo_n "(cached) " >&6 -else - # POSIX says lex can declare yytext either as a pointer or an array; the -# default is implementation-dependent. Figure out which it is, since -# not all implementations provide the %pointer and %array declarations. -ac_cv_prog_lex_yytext_pointer=no -ac_save_LIBS=$LIBS -LIBS="$LEXLIB $ac_save_LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #define YYTEXT_POINTER 1 -`cat $LEX_OUTPUT_ROOT.c` -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_prog_lex_yytext_pointer=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_save_LIBS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 -$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } -if test $ac_cv_prog_lex_yytext_pointer = yes; then - -$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h - -fi -rm -f conftest.l $LEX_OUTPUT_ROOT.c - -fi -if test "$LEX" = :; then - LEX=${am_missing_run}flex -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports --as-needed" >&5 -$as_echo_n "checking whether ld supports --as-needed... " >&6; } -if ${pam_cv_ld_as_needed+:} false; then : - $as_echo_n "(cached) " >&6 -else - saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,--as-needed" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pam_cv_ld_as_needed=yes -else - pam_cv_ld_as_needed=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$saved_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_ld_as_needed" >&5 -$as_echo "$pam_cv_ld_as_needed" >&6; } - if test $pam_cv_ld_as_needed = yes; then : - LDFLAGS="$LDFLAGS -Wl,--as-needed" -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports --no-undefined" >&5 -$as_echo_n "checking whether ld supports --no-undefined... " >&6; } -if ${pam_cv_ld_no_undefined+:} false; then : - $as_echo_n "(cached) " >&6 -else - saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,--no-undefined" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pam_cv_ld_no_undefined=yes -else - pam_cv_ld_no_undefined=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$saved_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_ld_no_undefined" >&5 -$as_echo "$pam_cv_ld_no_undefined" >&6; } - if test $pam_cv_ld_no_undefined = yes; then : - LDFLAGS="$LDFLAGS -Wl,--no-undefined" -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports -O1" >&5 -$as_echo_n "checking whether ld supports -O1... " >&6; } -if ${pam_cv_ld_O1+:} false; then : - $as_echo_n "(cached) " >&6 -else - saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,-O1" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pam_cv_ld_O1=yes -else - pam_cv_ld_O1=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$saved_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_ld_O1" >&5 -$as_echo "$pam_cv_ld_O1" >&6; } - if test $pam_cv_ld_O1 = yes; then : - LDFLAGS="$LDFLAGS -Wl,-O1" -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports \"-z now\"" >&5 -$as_echo_n "checking whether ld supports \"-z now\"... " >&6; } -if ${pam_cv_ld_z_now+:} false; then : - $as_echo_n "(cached) " >&6 -else - saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,-z,now" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pam_cv_ld_z_now=yes -else - pam_cv_ld_z_now=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$saved_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_ld_z_now" >&5 -$as_echo "$pam_cv_ld_z_now" >&6; } - if test $pam_cv_ld_z_now = yes; then : - ZNOW_LDFLAGS="-Wl,-z,now" -else - ZNOW_LDFLAGS= -fi - - -# Check whether --enable-largefile was given. -if test "${enable_largefile+set}" = set; then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; } -if ${ac_cv_sys_largefile_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - break -fi -rm -f core conftest.err conftest.$ac_objext - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -$as_echo "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF -;; -esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } -if ${ac_cv_sys_large_files+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _LARGE_FILES 1 -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -$as_echo "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF -;; -esac -rm -rf conftest* - fi - - -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -W" >&5 -$as_echo_n "checking whether $CC handles -W... " >&6; } -if ${gl_cv_warn_CFLAGS__W+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -W" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__W=yes -else - gl_cv_warn_CFLAGS__W=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__W" >&5 -$as_echo "$gl_cv_warn_CFLAGS__W" >&6; } -if test "x$gl_cv_warn_CFLAGS__W" = xyes; then : - as_fn_append WARN_CFLAGS " -W" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wall" >&5 -$as_echo_n "checking whether $CC handles -Wall... " >&6; } -if ${gl_cv_warn_CFLAGS__Wall+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wall" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wall=yes -else - gl_cv_warn_CFLAGS__Wall=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wall" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wall" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wall" = xyes; then : - as_fn_append WARN_CFLAGS " -Wall" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wbad-function-cast" >&5 -$as_echo_n "checking whether $CC handles -Wbad-function-cast... " >&6; } -if ${gl_cv_warn_CFLAGS__Wbad_function_cast+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wbad-function-cast" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wbad_function_cast=yes -else - gl_cv_warn_CFLAGS__Wbad_function_cast=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wbad_function_cast" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wbad_function_cast" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wbad_function_cast" = xyes; then : - as_fn_append WARN_CFLAGS " -Wbad-function-cast" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wcast-align" >&5 -$as_echo_n "checking whether $CC handles -Wcast-align... " >&6; } -if ${gl_cv_warn_CFLAGS__Wcast_align+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wcast-align" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wcast_align=yes -else - gl_cv_warn_CFLAGS__Wcast_align=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wcast_align" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wcast_align" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wcast_align" = xyes; then : - as_fn_append WARN_CFLAGS " -Wcast-align" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wcast-align=strict" >&5 -$as_echo_n "checking whether $CC handles -Wcast-align=strict... " >&6; } -if ${gl_cv_warn_CFLAGS__Wcast_align_strict+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wcast-align=strict" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wcast_align_strict=yes -else - gl_cv_warn_CFLAGS__Wcast_align_strict=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wcast_align_strict" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wcast_align_strict" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wcast_align_strict" = xyes; then : - as_fn_append WARN_CFLAGS " -Wcast-align=strict" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wcast-qual" >&5 -$as_echo_n "checking whether $CC handles -Wcast-qual... " >&6; } -if ${gl_cv_warn_CFLAGS__Wcast_qual+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wcast-qual" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wcast_qual=yes -else - gl_cv_warn_CFLAGS__Wcast_qual=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wcast_qual" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wcast_qual" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wcast_qual" = xyes; then : - as_fn_append WARN_CFLAGS " -Wcast-qual" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wdeprecated" >&5 -$as_echo_n "checking whether $CC handles -Wdeprecated... " >&6; } -if ${gl_cv_warn_CFLAGS__Wdeprecated+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wdeprecated" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wdeprecated=yes -else - gl_cv_warn_CFLAGS__Wdeprecated=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wdeprecated" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wdeprecated" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wdeprecated" = xyes; then : - as_fn_append WARN_CFLAGS " -Wdeprecated" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wformat=2" >&5 -$as_echo_n "checking whether $CC handles -Wformat=2... " >&6; } -if ${gl_cv_warn_CFLAGS__Wformat_2+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wformat=2" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wformat_2=yes -else - gl_cv_warn_CFLAGS__Wformat_2=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wformat_2" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wformat_2" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wformat_2" = xyes; then : - as_fn_append WARN_CFLAGS " -Wformat=2" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Winit-self" >&5 -$as_echo_n "checking whether $CC handles -Winit-self... " >&6; } -if ${gl_cv_warn_CFLAGS__Winit_self+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Winit-self" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Winit_self=yes -else - gl_cv_warn_CFLAGS__Winit_self=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Winit_self" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Winit_self" >&6; } -if test "x$gl_cv_warn_CFLAGS__Winit_self" = xyes; then : - as_fn_append WARN_CFLAGS " -Winit-self" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Winline" >&5 -$as_echo_n "checking whether $CC handles -Winline... " >&6; } -if ${gl_cv_warn_CFLAGS__Winline+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Winline" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Winline=yes -else - gl_cv_warn_CFLAGS__Winline=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Winline" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Winline" >&6; } -if test "x$gl_cv_warn_CFLAGS__Winline" = xyes; then : - as_fn_append WARN_CFLAGS " -Winline" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmain" >&5 -$as_echo_n "checking whether $CC handles -Wmain... " >&6; } -if ${gl_cv_warn_CFLAGS__Wmain+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmain" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wmain=yes -else - gl_cv_warn_CFLAGS__Wmain=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmain" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wmain" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wmain" = xyes; then : - as_fn_append WARN_CFLAGS " -Wmain" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmissing-declarations" >&5 -$as_echo_n "checking whether $CC handles -Wmissing-declarations... " >&6; } -if ${gl_cv_warn_CFLAGS__Wmissing_declarations+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-declarations" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wmissing_declarations=yes -else - gl_cv_warn_CFLAGS__Wmissing_declarations=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmissing_declarations" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wmissing_declarations" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wmissing_declarations" = xyes; then : - as_fn_append WARN_CFLAGS " -Wmissing-declarations" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmissing-format-attribute" >&5 -$as_echo_n "checking whether $CC handles -Wmissing-format-attribute... " >&6; } -if ${gl_cv_warn_CFLAGS__Wmissing_format_attribute+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-format-attribute" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wmissing_format_attribute=yes -else - gl_cv_warn_CFLAGS__Wmissing_format_attribute=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmissing_format_attribute" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wmissing_format_attribute" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wmissing_format_attribute" = xyes; then : - as_fn_append WARN_CFLAGS " -Wmissing-format-attribute" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wmissing-prototypes" >&5 -$as_echo_n "checking whether $CC handles -Wmissing-prototypes... " >&6; } -if ${gl_cv_warn_CFLAGS__Wmissing_prototypes+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-prototypes" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wmissing_prototypes=yes -else - gl_cv_warn_CFLAGS__Wmissing_prototypes=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wmissing_prototypes" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wmissing_prototypes" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wmissing_prototypes" = xyes; then : - as_fn_append WARN_CFLAGS " -Wmissing-prototypes" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wnull-dereference" >&5 -$as_echo_n "checking whether $CC handles -Wnull-dereference... " >&6; } -if ${gl_cv_warn_CFLAGS__Wnull_dereference+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wnull-dereference" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wnull_dereference=yes -else - gl_cv_warn_CFLAGS__Wnull_dereference=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wnull_dereference" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wnull_dereference" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wnull_dereference" = xyes; then : - as_fn_append WARN_CFLAGS " -Wnull-dereference" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wp64" >&5 -$as_echo_n "checking whether $CC handles -Wp64... " >&6; } -if ${gl_cv_warn_CFLAGS__Wp64+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wp64" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wp64=yes -else - gl_cv_warn_CFLAGS__Wp64=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wp64" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wp64" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wp64" = xyes; then : - as_fn_append WARN_CFLAGS " -Wp64" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wpointer-arith" >&5 -$as_echo_n "checking whether $CC handles -Wpointer-arith... " >&6; } -if ${gl_cv_warn_CFLAGS__Wpointer_arith+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wpointer-arith" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wpointer_arith=yes -else - gl_cv_warn_CFLAGS__Wpointer_arith=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wpointer_arith" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wpointer_arith" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wpointer_arith" = xyes; then : - as_fn_append WARN_CFLAGS " -Wpointer-arith" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wreturn-type" >&5 -$as_echo_n "checking whether $CC handles -Wreturn-type... " >&6; } -if ${gl_cv_warn_CFLAGS__Wreturn_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wreturn-type" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wreturn_type=yes -else - gl_cv_warn_CFLAGS__Wreturn_type=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wreturn_type" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wreturn_type" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wreturn_type" = xyes; then : - as_fn_append WARN_CFLAGS " -Wreturn-type" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wshadow" >&5 -$as_echo_n "checking whether $CC handles -Wshadow... " >&6; } -if ${gl_cv_warn_CFLAGS__Wshadow+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wshadow" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wshadow=yes -else - gl_cv_warn_CFLAGS__Wshadow=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wshadow" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wshadow" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wshadow" = xyes; then : - as_fn_append WARN_CFLAGS " -Wshadow" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wstrict-prototypes" >&5 -$as_echo_n "checking whether $CC handles -Wstrict-prototypes... " >&6; } -if ${gl_cv_warn_CFLAGS__Wstrict_prototypes+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wstrict-prototypes" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wstrict_prototypes=yes -else - gl_cv_warn_CFLAGS__Wstrict_prototypes=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wstrict_prototypes" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wstrict_prototypes" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wstrict_prototypes" = xyes; then : - as_fn_append WARN_CFLAGS " -Wstrict-prototypes" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wundef" >&5 -$as_echo_n "checking whether $CC handles -Wundef... " >&6; } -if ${gl_cv_warn_CFLAGS__Wundef+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wundef" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wundef=yes -else - gl_cv_warn_CFLAGS__Wundef=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wundef" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wundef" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wundef" = xyes; then : - as_fn_append WARN_CFLAGS " -Wundef" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wuninitialized" >&5 -$as_echo_n "checking whether $CC handles -Wuninitialized... " >&6; } -if ${gl_cv_warn_CFLAGS__Wuninitialized+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wuninitialized" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wuninitialized=yes -else - gl_cv_warn_CFLAGS__Wuninitialized=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wuninitialized" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wuninitialized" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wuninitialized" = xyes; then : - as_fn_append WARN_CFLAGS " -Wuninitialized" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wunused" >&5 -$as_echo_n "checking whether $CC handles -Wunused... " >&6; } -if ${gl_cv_warn_CFLAGS__Wunused+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wunused" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wunused=yes -else - gl_cv_warn_CFLAGS__Wunused=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wunused" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wunused" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wunused" = xyes; then : - as_fn_append WARN_CFLAGS " -Wunused" -fi - - -if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Wwrite-strings" >&5 -$as_echo_n "checking whether $CC handles -Wwrite-strings... " >&6; } -if ${gl_cv_warn_CFLAGS__Wwrite_strings+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wwrite-strings" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Wwrite_strings=yes -else - gl_cv_warn_CFLAGS__Wwrite_strings=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Wwrite_strings" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Wwrite_strings" >&6; } -if test "x$gl_cv_warn_CFLAGS__Wwrite_strings" = xyes; then : - as_fn_append WARN_CFLAGS " -Wwrite-strings" -fi - - -# Check whether --enable-Werror was given. -if test "${enable_Werror+set}" = set; then : - enableval=$enable_Werror; case $enableval in - yes) if test x${gl_unknown_warnings_are_errors+set} = x; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror -Wunknown-warning-option" >&5 -$as_echo_n "checking whether $CC handles -Werror -Wunknown-warning-option... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=yes -else - gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror__Wunknown_warning_option" = xyes; then : - gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' -else - gl_unknown_warnings_are_errors= -fi - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC handles -Werror" >&5 -$as_echo_n "checking whether $CC handles -Werror... " >&6; } -if ${gl_cv_warn_CFLAGS__Werror+:} false; then : - $as_echo_n "(cached) " >&6 -else - - gl_save_compiler_FLAGS="$CFLAGS" - as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gl_cv_warn_CFLAGS__Werror=yes -else - gl_cv_warn_CFLAGS__Werror=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$gl_save_compiler_FLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_CFLAGS__Werror" >&5 -$as_echo "$gl_cv_warn_CFLAGS__Werror" >&6; } -if test "x$gl_cv_warn_CFLAGS__Werror" = xyes; then : - as_fn_append WARN_CFLAGS " -Werror" -fi - - ;; - no) ;; - *) as_fn_error $? "bad value $enableval for Werror option" "$LINENO" 5 ;; - esac -fi - - - - -if test "x${CC_FOR_BUILD+set}" != "xset" ; then - if test "x$cross_compiling" = "xyes" ; then - for ac_prog in gcc cc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC_FOR_BUILD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC_FOR_BUILD"; then - ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC_FOR_BUILD="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD -if test -n "$CC_FOR_BUILD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 -$as_echo "$CC_FOR_BUILD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC_FOR_BUILD" && break -done - - else - CC_FOR_BUILD=${CC} - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CC_FOR_BUILD" >&5 -$as_echo_n "checking for CC_FOR_BUILD... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5 -$as_echo "$CC_FOR_BUILD" >&6; } - - -if test "x${BUILD_CPPFLAGS+set}" != "xset" ; then - if test "x$cross_compiling" = "xyes" ; then - BUILD_CPPFLAGS= - else - BUILD_CPPFLAGS=${CPPFLAGS} - fi -fi - - -if test "x${BUILD_CFLAGS+set}" != "xset" ; then - if test "x$cross_compiling" = "xyes" ; then - BUILD_CFLAGS= - else - BUILD_CFLAGS=${CFLAGS} - fi -fi - - -if test "x${BUILD_LDFLAGS+set}" != "xset" ; then - if test "x$cross_compiling" = "xyes" ; then - BUILD_LDFLAGS= - else - BUILD_LDFLAGS=${LDFLAGS} - fi -fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__((unused))" >&5 -$as_echo_n "checking for __attribute__((unused))... " >&6; } -if ${pam_cv_attribute_unused+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int fun(int i __attribute__((unused))); -int -main () -{ -return fun(0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - pam_cv_attribute_unused=yes -else - pam_cv_attribute_unused=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_attribute_unused" >&5 -$as_echo "$pam_cv_attribute_unused" >&6; } - if test "$pam_cv_attribute_unused" = yes; then : - unused='__attribute__((unused))' -else - unused= -fi - -cat >>confdefs.h <<_ACEOF -#define UNUSED $unused -_ACEOF - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .symver assembler directive" >&5 -$as_echo_n "checking for .symver assembler directive... " >&6; } -if ${libc_cv_asm_symver_directive+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.s <<EOF -${libc_cv_dot_text} -_sym: -.symver _sym,sym@VERS -EOF -if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then - libc_cv_asm_symver_directive=yes -else - libc_cv_asm_symver_directive=no -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_symver_directive" >&5 -$as_echo "$libc_cv_asm_symver_directive" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld --version-script" >&5 -$as_echo_n "checking for ld --version-script... " >&6; } -if ${libc_cv_ld_version_script_option+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test $libc_cv_asm_symver_directive = yes; then - cat > conftest.s <<EOF -${libc_cv_dot_text} -_sym: -.symver _sym,sym@VERS -EOF - cat > conftest.map <<EOF -VERS_1 { - global: sym; -}; - -VERS_2 { - global: sym; -} VERS_1; -EOF - if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; -then - if { ac_try='${CC-cc} $CFLAGS $LDFLAGS -shared - -o conftest.so conftest.o - -nostartfiles -nostdlib - -Wl,--version-script,conftest.map - 1>&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; - then - libc_cv_ld_version_script_option=yes - else - libc_cv_ld_version_script_option=no - fi - else - libc_cv_ld_version_script_option=no - fi -else - libc_cv_ld_version_script_option=no -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ld_version_script_option" >&5 -$as_echo "$libc_cv_ld_version_script_option" >&6; } - if test "$libc_cv_ld_version_script_option" = "yes"; then - HAVE_VERSIONING_TRUE= - HAVE_VERSIONING_FALSE='#' -else - HAVE_VERSIONING_TRUE='#' - HAVE_VERSIONING_FALSE= -fi - - -# Check whether --enable-pie was given. -if test "${enable_pie+set}" = set; then : - enableval=$enable_pie; -else - enable_pie=check -fi - -case "$enable_pie" in - no) ;; - yes|check) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fpie/-pie support" >&5 -$as_echo_n "checking for -fpie/-pie support... " >&6; } -if ${pam_cv_pie+:} false; then : - $as_echo_n "(cached) " >&6 -else - saved_CFLAGS="$CFLAGS" - saved_LDFLAGS="$LDFLAGS" - CFLAGS="$CFLAGS -fpie" - LDFLAGS="$LDFLAGS -pie" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pam_cv_pie=yes -else - pam_cv_pie=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$saved_LDFLAGS" - CFLAGS="$saved_CFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_cv_pie" >&5 -$as_echo "$pam_cv_pie" >&6; } - if test "$pam_cv_pie" = yes; then : - enable_pie=yes -else - if test "$enable_pie" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "requested -fpie/-pie support not found -See \`config.log' for more details" "$LINENO" 5; } -else - enable_pie=no -fi -fi - ;; - *) as_fn_error $? "bad value $enable_pie for --enable-pie option" "$LINENO" 5 ;; -esac - -if test "$enable_pie" = yes; then : - PIE_CFLAGS="-fpie" - PIE_LDFLAGS="-pie" -else - PIE_CFLAGS= - PIE_LDFLAGS= -fi - -EXE_CFLAGS="$PIE_CFLAGS" -EXE_LDFLAGS="$PIE_LDFLAGS $ZNOW_LDFLAGS" - - - - - -# Check whether --enable-doc was given. -if test "${enable_doc+set}" = set; then : - enableval=$enable_doc; WITH_DOC=$enableval -else - WITH_DOC=yes -fi - - if test "x$WITH_DOC" = "xyes"; then - HAVE_DOC_TRUE= - HAVE_DOC_FALSE='#' -else - HAVE_DOC_TRUE='#' - HAVE_DOC_FALSE= -fi - - -# Check whether --enable-prelude was given. -if test "${enable_prelude+set}" = set; then : - enableval=$enable_prelude; WITH_PRELUDE=$enableval -else - WITH_PRELUDE=yes -fi - -if test "$WITH_PRELUDE" = "yes" ; then - -# Check whether --with-libprelude-prefix was given. -if test "${with_libprelude_prefix+set}" = set; then : - withval=$with_libprelude_prefix; libprelude_config_prefix="$withval" -else - libprelude_config_prefix="" -fi - - - if test x$libprelude_config_prefix != x ; then - if test x${LIBPRELUDE_CONFIG+set} != xset ; then - LIBPRELUDE_CONFIG=$libprelude_config_prefix/bin/libprelude-config - fi - fi - - # Extract the first word of "libprelude-config", so it can be a program name with args. -set dummy libprelude-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LIBPRELUDE_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $LIBPRELUDE_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_LIBPRELUDE_CONFIG="$LIBPRELUDE_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LIBPRELUDE_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_LIBPRELUDE_CONFIG" && ac_cv_path_LIBPRELUDE_CONFIG="no" - ;; -esac -fi -LIBPRELUDE_CONFIG=$ac_cv_path_LIBPRELUDE_CONFIG -if test -n "$LIBPRELUDE_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBPRELUDE_CONFIG" >&5 -$as_echo "$LIBPRELUDE_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - min_libprelude_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libprelude - version >= $min_libprelude_version" >&5 -$as_echo_n "checking for libprelude - version >= $min_libprelude_version... " >&6; } - no_libprelude="" - if test "$LIBPRELUDE_CONFIG" = "no" ; then - no_libprelude=yes - else - LIBPRELUDE_CFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --cflags` - LIBPRELUDE_PTHREAD_CFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --pthread-cflags` - LIBPRELUDE_LDFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --ldflags` - LIBPRELUDE_LIBS=`$LIBPRELUDE_CONFIG $libprelude_config_args --libs` - LIBPRELUDE_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --prefix` - LIBPRELUDE_CONFIG_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --config-prefix` - libprelude_config_version=`$LIBPRELUDE_CONFIG $libprelude_config_args --version` - - - ac_save_CFLAGS="$CFLAGS" - ac_save_LDFLAGS="$LDFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS" - LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS" - LIBS="$LIBS $LIBPRELUDE_LIBS" - rm -f conf.libpreludetest - if test "$cross_compiling" = yes; then : - echo $ac_n "cross compiling; assumed OK... $ac_c" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <libprelude/prelude.h> - -int -main () -{ - system ("touch conf.libpreludetest"); - - if( strcmp( prelude_check_version(NULL), "$libprelude_config_version" ) ) - { - printf("\n*** 'libprelude-config --version' returned %s, but LIBPRELUDE (%s)\n", - "$libprelude_config_version", prelude_check_version(NULL) ); - printf("*** was found! If libprelude-config was correct, then it is best\n"); - printf("*** to remove the old version of LIBPRELUDE. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH environment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If libprelude-config was wrong, set the environment variable LIBPRELUDE_CONFIG\n"); - printf("*** to point to the correct copy of libprelude-config, and remove the file config.cache\n"); - printf("*** before re-running configure\n"); - } - else if ( strcmp(prelude_check_version(NULL), LIBPRELUDE_VERSION ) ) - { - printf("\n*** LIBPRELUDE header file (version %s) does not match\n", LIBPRELUDE_VERSION); - printf("*** library (version %s)\n", prelude_check_version(NULL) ); - } - else - { - if ( prelude_check_version( "$min_libprelude_version" ) ) - { - return 0; - } - else - { - printf("no\n*** An old version of LIBPRELUDE (%s) was found.\n", - prelude_check_version(NULL) ); - printf("*** You need a version of LIBPRELUDE newer than %s. The latest version of\n", - "$min_libprelude_version" ); - printf("*** LIBPRELUDE is always available from http://www.prelude-ids.org/download/releases.\n"); - printf("*** \n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the libprelude-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of LIBPRELUDE, but you can also set the LIBPRELUDE_CONFIG environment to point to the\n"); - printf("*** correct copy of libprelude-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - no_libprelude=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - LDFLAGS="$ac_save_LDFLAGS" - fi - - if test "x$no_libprelude" = x ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - : - else - if test -f conf.libpreludetest ; then - : - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - if test "$LIBPRELUDE_CONFIG" = "no" ; then - if test x$libprelude_config_prefix != x ; then - echo "*** The libprelude-config script installed by LIBPRELUDE could not be found" - echo "*** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the LIBPRELUDE_CONFIG environment variable to the" - echo "*** full path to libprelude-config." - fi - else - if test -f conf.libpreludetest ; then - : - else - echo "*** Could not run libprelude test program, checking why..." - CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS" - LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS" - LIBS="$LIBS $LIBPRELUDE_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <libprelude/prelude.h> - -int -main () -{ - return !!prelude_check_version(NULL); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding LIBPRELUDE or finding the wrong" - echo "*** version of LIBPRELUDE. If it is not finding LIBPRELUDE, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" - echo "***" -else - echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occurred. This usually means LIBPRELUDE was incorrectly installed" - echo "*** or that you have moved LIBPRELUDE since it was installed. In the latter case, you" - echo "*** may want to edit the libprelude-config script: $LIBPRELUDE_CONFIG" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$ac_save_CFLAGS" - LDFLAGS="$ac_save_LDFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - LIBPRELUDE_CFLAGS="" - LIBPRELUDE_LDFLAGS="" - LIBPRELUDE_LIBS="" - : - fi - rm -f conf.libpreludetest - - - - - - - - if test "$LIBPRELUDE_CONFIG" != "no" ; then - LIBPRELUDE_CFLAGS="$LIBPRELUDE_CFLAGS -DPRELUDE=1" - fi -fi - -# Check whether --enable-debug was given. -if test "${enable_debug+set}" = set; then : - enableval=$enable_debug; -fi - - -if test x"$enable_debug" = x"yes" ; then - -$as_echo "#define PAM_DEBUG /**/" >>confdefs.h - -fi - -# Check whether --enable-docbook_rng was given. -if test "${enable_docbook_rng+set}" = set; then : - enableval=$enable_docbook_rng; DOCBOOK_RNG=$enableval -else - DOCBOOK_RNG=http://docbook.org/xml/5.0/rng/docbookxi.rng -fi - - - -# Check whether --enable-html_stylesheet was given. -if test "${enable_html_stylesheet+set}" = set; then : - enableval=$enable_html_stylesheet; HTML_STYLESHEET=$enableval -else - HTML_STYLESHEET=http://docbook.sourceforge.net/release/xsl-ns/current/html/chunk.xsl -fi - - - -# Check whether --enable-txt_stylesheet was given. -if test "${enable_txt_stylesheet+set}" = set; then : - enableval=$enable_txt_stylesheet; TXT_STYLESHEET=$enableval -else - TXT_STYLESHEET=http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl -fi - - - - -# It has to be TXT_STYLESHEET otherwise a html tree will be generated while generating all README files. -sed "s+HTML_STYLESHEET+$TXT_STYLESHEET+g" <doc/custom-html.xsl.in >doc/custom-html.xsl - -# Check whether --enable-pdf_stylesheet was given. -if test "${enable_pdf_stylesheet+set}" = set; then : - enableval=$enable_pdf_stylesheet; PDF_STYLESHEET=$enableval -else - PDF_STYLESHEET=http://docbook.sourceforge.net/release/xsl-ns/current/fo/docbook.xsl -fi - - - -# Check whether --enable-man_stylesheet was given. -if test "${enable_man_stylesheet+set}" = set; then : - enableval=$enable_man_stylesheet; MAN_STYLESHEET=$enableval -else - MAN_STYLESHEET=http://docbook.sourceforge.net/release/xsl-ns/current/manpages/profile-docbook.xsl -fi - - - - -sed "s+MAN_STYLESHEET+$MAN_STYLESHEET+g" <doc/custom-man.xsl.in >doc/custom-man.xsl - -# Check whether --enable-securedir was given. -if test "${enable_securedir+set}" = set; then : - enableval=$enable_securedir; SECUREDIR=$enableval -else - SECUREDIR=$libdir/security -fi - - - -# Check whether --enable-isadir was given. -if test "${enable_isadir+set}" = set; then : - enableval=$enable_isadir; ISA=$enableval -else - ISA=../../`basename $libdir`/security -fi - -unset mylibdirbase - -cat >>confdefs.h <<_ACEOF -#define _PAM_ISA "$ISA" -_ACEOF - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Defining \$ISA to \"$ISA\"" >&5 -$as_echo "Defining \$ISA to \"$ISA\"" >&6; } - -# Check whether --enable-sconfigdir was given. -if test "${enable_sconfigdir+set}" = set; then : - enableval=$enable_sconfigdir; SCONFIGDIR=$enableval -else - SCONFIGDIR=$sysconfdir/security -fi - - -cat >>confdefs.h <<_ACEOF -#define SCONFIGDIR "$SCONFIGDIR" -_ACEOF - - - -# Check whether --enable-pamlocking was given. -if test "${enable_pamlocking+set}" = set; then : - enableval=$enable_pamlocking; -fi - - -if test x"$enable_pamlocking" = "xyes"; then - -$as_echo "#define PAM_LOCKING /**/" >>confdefs.h - -fi - -# Check whether --enable-read-both-confs was given. -if test "${enable_read_both_confs+set}" = set; then : - enableval=$enable_read_both_confs; -fi - - -if test x"$enable_read_both_confs" = "xyes"; then - -$as_echo "#define PAM_READ_BOTH_CONFS /**/" >>confdefs.h - -fi - -# Check whether --enable-lckpwdf was given. -if test "${enable_lckpwdf+set}" = set; then : - enableval=$enable_lckpwdf; WITH_LCKPWDF=$enableval -else - WITH_LCKPWDF=yes -fi - -if test "$WITH_LCKPWDF" = "yes" ; then - -$as_echo "#define USE_LCKPWDF 1" >>confdefs.h - -fi - -for ac_header in paths.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "paths.h" "ac_cv_header_paths_h" "$ac_includes_default" -if test "x$ac_cv_header_paths_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PATHS_H 1 -_ACEOF - -fi - -done - - -# Check whether --with-mailspool was given. -if test "${with_mailspool+set}" = set; then : - withval=$with_mailspool; with_mailspool=${withval} -fi - -if test x$with_mailspool != x ; then - pam_mail_spool="\"$with_mailspool\"" -else - if test "$cross_compiling" = yes; then : - pam_mail_spool="\"/var/spool/mail\"" -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <paths.h> -#include <stdlib.h> -int main() { -#ifdef _PATH_MAILDIR -exit(0); -#else -exit(1); -#endif -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - pam_mail_spool="_PATH_MAILDIR" -else - pam_mail_spool="\"/var/spool/mail\"" -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi - -cat >>confdefs.h <<_ACEOF -#define PAM_PATH_MAILDIR $pam_mail_spool -_ACEOF - - - -# Check whether --with-xauth was given. -if test "${with_xauth+set}" = set; then : - withval=$with_xauth; pam_xauth_path=${withval} -fi - -if test x$with_xauth = x ; then - # Extract the first word of "xauth", so it can be a program name with args. -set dummy xauth; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_pam_xauth_path+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $pam_xauth_path in - [\\/]* | ?:[\\/]*) - ac_cv_path_pam_xauth_path="$pam_xauth_path" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_pam_xauth_path="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -pam_xauth_path=$ac_cv_path_pam_xauth_path -if test -n "$pam_xauth_path"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pam_xauth_path" >&5 -$as_echo "$pam_xauth_path" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test x$pam_xauth_path = x/usr/X11R6/bin/xauth ; then - unset pam_xauth_path - fi -fi - -if test x$pam_xauth_path != x ; then - -cat >>confdefs.h <<_ACEOF -#define PAM_PATH_XAUTH "$pam_xauth_path" -_ACEOF - -fi - -saved_LIBS="$LIBS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 -$as_echo_n "checking for library containing dlopen... " >&6; } -if ${ac_cv_search_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlopen=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlopen+:} false; then : - break -fi -done -if ${ac_cv_search_dlopen+:} false; then : - -else - ac_cv_search_dlopen=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -$as_echo "$ac_cv_search_dlopen" >&6; } -ac_res=$ac_cv_search_dlopen -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -LIBS="$saved_LIBS" -case "$ac_cv_search_dlopen" in - no) { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to find dlopen -See \`config.log' for more details" "$LINENO" 5; } ;; - -l*) LIBDL="$ac_cv_search_dlopen" ;; - *) LIBDL= ;; -esac - - -# Check whether --enable-audit was given. -if test "${enable_audit+set}" = set; then : - enableval=$enable_audit; WITH_LIBAUDIT=$enableval -else - WITH_LIBAUDIT=yes -fi - -if test x"$WITH_LIBAUDIT" != xno ; then - ac_fn_c_check_header_mongrel "$LINENO" "libaudit.h" "ac_cv_header_libaudit_h" "$ac_includes_default" -if test "x$ac_cv_header_libaudit_h" = xyes; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for audit_log_acct_message in -laudit" >&5 -$as_echo_n "checking for audit_log_acct_message in -laudit... " >&6; } -if ${ac_cv_lib_audit_audit_log_acct_message+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-laudit $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char audit_log_acct_message (); -int -main () -{ -return audit_log_acct_message (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_audit_audit_log_acct_message=yes -else - ac_cv_lib_audit_audit_log_acct_message=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audit_audit_log_acct_message" >&5 -$as_echo "$ac_cv_lib_audit_audit_log_acct_message" >&6; } -if test "x$ac_cv_lib_audit_audit_log_acct_message" = xyes; then : - LIBAUDIT=-laudit -else - LIBAUDIT="" -fi - - ac_fn_c_check_type "$LINENO" "struct audit_tty_status" "ac_cv_type_struct_audit_tty_status" "#include <libaudit.h> -" -if test "x$ac_cv_type_struct_audit_tty_status" = xyes; then : - HAVE_AUDIT_TTY_STATUS=yes -else - HAVE_AUDIT_TTY_STATUS="" -fi - - -fi - - - if test -n "$LIBAUDIT" && test "$ac_cv_header_libaudit_h" != "no" ; then - -$as_echo "#define HAVE_LIBAUDIT 1" >>confdefs.h - - fi - if test -n "$HAVE_AUDIT_TTY_STATUS" ; then - ac_fn_c_check_member "$LINENO" "struct audit_tty_status" "log_passwd" "ac_cv_member_struct_audit_tty_status_log_passwd" "#include <libaudit.h> -" -if test "x$ac_cv_member_struct_audit_tty_status_log_passwd" = xyes; then : - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_AUDIT_TTY_STATUS_LOG_PASSWD 1 -_ACEOF - - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: audit_tty_status.log_passwd is not available. The log_passwd option is disabled." >&5 -$as_echo "$as_me: WARNING: audit_tty_status.log_passwd is not available. The log_passwd option is disabled." >&2;} -fi - - fi -else - LIBAUDIT="" -fi - - -for ac_header in crypt.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default" -if test "x$ac_cv_header_crypt_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CRYPT_H 1 -_ACEOF - -fi - -done - - -BACKUP_LIBS=$LIBS -LIBCRYPT="" - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi -fi - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcrypt" >&5 -$as_echo_n "checking for libcrypt... " >&6; } - -if test -n "$CRYPT_CFLAGS"; then - pkg_cv_CRYPT_CFLAGS="$CRYPT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcrypt\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libcrypt") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRYPT_CFLAGS=`$PKG_CONFIG --cflags "libcrypt" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CRYPT_LIBS"; then - pkg_cv_CRYPT_LIBS="$CRYPT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcrypt\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libcrypt") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CRYPT_LIBS=`$PKG_CONFIG --libs "libcrypt" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libcrypt" 2>&1` - else - CRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libcrypt" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CRYPT_PKG_ERRORS" >&5 - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_gensalt_rn" >&5 -$as_echo_n "checking for library containing crypt_gensalt_rn... " >&6; } -if ${ac_cv_search_crypt_gensalt_rn+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt_gensalt_rn (); -int -main () -{ -return crypt_gensalt_rn (); - ; - return 0; -} -_ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_gensalt_rn=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt_gensalt_rn+:} false; then : - break -fi -done -if ${ac_cv_search_crypt_gensalt_rn+:} false; then : - -else - ac_cv_search_crypt_gensalt_rn=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_gensalt_rn" >&5 -$as_echo "$ac_cv_search_crypt_gensalt_rn" >&6; } -ac_res=$ac_cv_search_crypt_gensalt_rn -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - case "$ac_cv_search_crypt_gensalt_rn" in - -l*) LIBCRYPT="$ac_cv_search_crypt_gensalt_rn" ;; - no) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 -$as_echo_n "checking for library containing crypt_r... " >&6; } -if ${ac_cv_search_crypt_r+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt_r (); -int -main () -{ -return crypt_r (); - ; - return 0; -} -_ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_r=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt_r+:} false; then : - break -fi -done -if ${ac_cv_search_crypt_r+:} false; then : - -else - ac_cv_search_crypt_r=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 -$as_echo "$ac_cv_search_crypt_r" >&6; } -ac_res=$ac_cv_search_crypt_r -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - case "$ac_cv_search_crypt_r" in - -l*) LIBCRYPT="$ac_cv_search_crypt_r" ;; - no ) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 -$as_echo_n "checking for library containing crypt... " >&6; } -if ${ac_cv_search_crypt+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt (); -int -main () -{ -return crypt (); - ; - return 0; -} -_ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt+:} false; then : - break -fi -done -if ${ac_cv_search_crypt+:} false; then : - -else - ac_cv_search_crypt=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 -$as_echo "$ac_cv_search_crypt" >&6; } -ac_res=$ac_cv_search_crypt -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - case "$ac_cv_search_crypt" in - -l*) LIBCRYPT="$ac_cv_search_crypt" ;; - esac ;; - esac ;; - esac - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_gensalt_rn" >&5 -$as_echo_n "checking for library containing crypt_gensalt_rn... " >&6; } -if ${ac_cv_search_crypt_gensalt_rn+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt_gensalt_rn (); -int -main () -{ -return crypt_gensalt_rn (); - ; - return 0; -} -_ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_gensalt_rn=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt_gensalt_rn+:} false; then : - break -fi -done -if ${ac_cv_search_crypt_gensalt_rn+:} false; then : - -else - ac_cv_search_crypt_gensalt_rn=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_gensalt_rn" >&5 -$as_echo "$ac_cv_search_crypt_gensalt_rn" >&6; } -ac_res=$ac_cv_search_crypt_gensalt_rn -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - case "$ac_cv_search_crypt_gensalt_rn" in - -l*) LIBCRYPT="$ac_cv_search_crypt_gensalt_rn" ;; - no) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 -$as_echo_n "checking for library containing crypt_r... " >&6; } -if ${ac_cv_search_crypt_r+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt_r (); -int -main () -{ -return crypt_r (); - ; - return 0; -} -_ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt_r=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt_r+:} false; then : - break -fi -done -if ${ac_cv_search_crypt_r+:} false; then : - -else - ac_cv_search_crypt_r=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 -$as_echo "$ac_cv_search_crypt_r" >&6; } -ac_res=$ac_cv_search_crypt_r -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - case "$ac_cv_search_crypt_r" in - -l*) LIBCRYPT="$ac_cv_search_crypt_r" ;; - no ) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 -$as_echo_n "checking for library containing crypt... " >&6; } -if ${ac_cv_search_crypt+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crypt (); -int -main () -{ -return crypt (); - ; - return 0; -} -_ACEOF -for ac_lib in '' crypt; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_crypt=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_crypt+:} false; then : - break -fi -done -if ${ac_cv_search_crypt+:} false; then : - -else - ac_cv_search_crypt=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 -$as_echo "$ac_cv_search_crypt" >&6; } -ac_res=$ac_cv_search_crypt -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - case "$ac_cv_search_crypt" in - -l*) LIBCRYPT="$ac_cv_search_crypt" ;; - esac ;; - esac ;; - esac - -else - CRYPT_CFLAGS=$pkg_cv_CRYPT_CFLAGS - CRYPT_LIBS=$pkg_cv_CRYPT_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - CFLAGS="$CFLAGS $CRYPT_CFLAGS" - CPPFLAGS="$CPPFLAGS $CRYPT_CFLAGS" - LIBS="$LIBS $CRYPT_LIBS" - LIBCRYPT="$CRYPT_LIBS" - -fi -for ac_func in crypt_r -do : - ac_fn_c_check_func "$LINENO" "crypt_r" "ac_cv_func_crypt_r" -if test "x$ac_cv_func_crypt_r" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CRYPT_R 1 -_ACEOF - -fi -done - -LIBS=$BACKUP_LIBS - - - -# Check whether --with-randomdev was given. -if test "${with_randomdev+set}" = set; then : - withval=$with_randomdev; opt_randomdev=$withval -fi - -if test "$opt_randomdev" = yes || test -z "$opt_randomdev"; then - opt_randomdev="/dev/urandom" -elif test "$opt_randomdev" = no; then - opt_randomdev= -fi -if test -n "$opt_randomdev"; then - -cat >>confdefs.h <<_ACEOF -#define PAM_PATH_RANDOMDEV "$opt_randomdev" -_ACEOF - -fi - -# Check whether --enable-db was given. -if test "${enable_db+set}" = set; then : - enableval=$enable_db; WITH_DB=$enableval -else - WITH_DB=yes -fi - - -# Check whether --with-db-uniquename was given. -if test "${with_db_uniquename+set}" = set; then : - withval=$with_db_uniquename; -fi - -if test x"$WITH_DB" != xno ; then - if test x"$WITH_DB" = xyes || test x"$WITH_DB" = xdb ; then - old_libs=$LIBS - LIBS="$LIBS -ldb$with_db_uniquename" - for ac_func in db_create$with_db_uniquename db_create dbm_store$with_db_uniquename dbm_store -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - LIBDB="-ldb$with_db_uniquename"; break -fi -done - - LIBS=$old_libs - fi - if test -z "$LIBDB" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbm_store in -lndbm" >&5 -$as_echo_n "checking for dbm_store in -lndbm... " >&6; } -if ${ac_cv_lib_ndbm_dbm_store+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lndbm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dbm_store (); -int -main () -{ -return dbm_store (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_ndbm_dbm_store=yes -else - ac_cv_lib_ndbm_dbm_store=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ndbm_dbm_store" >&5 -$as_echo "$ac_cv_lib_ndbm_dbm_store" >&6; } -if test "x$ac_cv_lib_ndbm_dbm_store" = xyes; then : - LIBDB="-lndbm" -else - LIBDB="" -fi - - if test -n "$LIBDB" ; then - for ac_header in ndbm.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "ndbm.h" "ac_cv_header_ndbm_h" "$ac_includes_default" -if test "x$ac_cv_header_ndbm_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NDBM_H 1 -_ACEOF - -fi - -done - - fi - else - for ac_header in db.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" -if test "x$ac_cv_header_db_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DB_H 1 -_ACEOF - -fi - -done - - fi -fi - - -# Check whether --enable-nis was given. -if test "${enable_nis+set}" = set; then : - enableval=$enable_nis; -fi - - -if test "x$enable_nis" != "xno"; then : - - old_CFLAGS=$CFLAGS - old_CPPFLAGS=$CPPFLAGS - old_LIBS=$LIBS - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libtirpc" >&5 -$as_echo_n "checking for libtirpc... " >&6; } - -if test -n "$TIRPC_CFLAGS"; then - pkg_cv_TIRPC_CFLAGS="$TIRPC_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtirpc\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libtirpc") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_TIRPC_CFLAGS=`$PKG_CONFIG --cflags "libtirpc" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$TIRPC_LIBS"; then - pkg_cv_TIRPC_LIBS="$TIRPC_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtirpc\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libtirpc") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_TIRPC_LIBS=`$PKG_CONFIG --libs "libtirpc" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - TIRPC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libtirpc" 2>&1` - else - TIRPC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libtirpc" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$TIRPC_PKG_ERRORS" >&5 - - :; -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - :; -else - TIRPC_CFLAGS=$pkg_cv_TIRPC_CFLAGS - TIRPC_LIBS=$pkg_cv_TIRPC_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - - CFLAGS="$CFLAGS $TIRPC_CFLAGS" - CPPFLAGS="$CPPFLAGS $TIRPC_CFLAGS" - LIBS="$LIBS $TIRPC_LIBS" - -fi - - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnsl" >&5 -$as_echo_n "checking for libnsl... " >&6; } - -if test -n "$NSL_CFLAGS"; then - pkg_cv_NSL_CFLAGS="$NSL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_NSL_CFLAGS=`$PKG_CONFIG --cflags "libnsl" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$NSL_LIBS"; then - pkg_cv_NSL_LIBS="$NSL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnsl\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libnsl") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_NSL_LIBS=`$PKG_CONFIG --libs "libnsl" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - NSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnsl" 2>&1` - else - NSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnsl" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$NSL_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yp_match in -lnsl" >&5 -$as_echo_n "checking for yp_match in -lnsl... " >&6; } -if ${ac_cv_lib_nsl_yp_match+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char yp_match (); -int -main () -{ -return yp_match (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_yp_match=yes -else - ac_cv_lib_nsl_yp_match=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_yp_match" >&5 -$as_echo "$ac_cv_lib_nsl_yp_match" >&6; } -if test "x$ac_cv_lib_nsl_yp_match" = xyes; then : - NSL_LIBS="-lnsl" -else - NSL_LIBS="" -fi - -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yp_match in -lnsl" >&5 -$as_echo_n "checking for yp_match in -lnsl... " >&6; } -if ${ac_cv_lib_nsl_yp_match+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char yp_match (); -int -main () -{ -return yp_match (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_nsl_yp_match=yes -else - ac_cv_lib_nsl_yp_match=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_yp_match" >&5 -$as_echo "$ac_cv_lib_nsl_yp_match" >&6; } -if test "x$ac_cv_lib_nsl_yp_match" = xyes; then : - NSL_LIBS="-lnsl" -else - NSL_LIBS="" -fi - -else - NSL_CFLAGS=$pkg_cv_NSL_CFLAGS - NSL_LIBS=$pkg_cv_NSL_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -fi - CFLAGS="$CFLAGS $NSL_CFLAGS" - CPPFLAGS="$CPPFLAGS $NSL_CFLAGS" - LIBS="$LIBS $NSL_LIBS" - - for ac_func in yp_get_default_domain yperr_string yp_master yp_bind yp_match yp_unbind -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - for ac_func in getrpcport rpcb_getaddr -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - ac_fn_c_check_header_mongrel "$LINENO" "rpc/rpc.h" "ac_cv_header_rpc_rpc_h" "$ac_includes_default" -if test "x$ac_cv_header_rpc_rpc_h" = xyes; then : - -else - enable_nis=no -fi - - - ac_fn_c_check_header_mongrel "$LINENO" "rpcsvc/ypclnt.h" "ac_cv_header_rpcsvc_ypclnt_h" "$ac_includes_default" -if test "x$ac_cv_header_rpcsvc_ypclnt_h" = xyes; then : - -else - enable_nis=no -fi - - - ac_fn_c_check_header_mongrel "$LINENO" "rpcsvc/yp_prot.h" "ac_cv_header_rpcsvc_yp_prot_h" "$ac_includes_default" -if test "x$ac_cv_header_rpcsvc_yp_prot_h" = xyes; then : - -else - enable_nis=no -fi - - - ac_fn_c_check_decl "$LINENO" "getrpcport" "ac_cv_have_decl_getrpcport" " - #if HAVE_RPC_RPC_H - # include <rpc/rpc.h> - #endif - -" -if test "x$ac_cv_have_decl_getrpcport" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETRPCPORT $ac_have_decl -_ACEOF - - - CFLAGS="$old_CFLAGS" - CPPFLAGS="$old_CPPFLAGS" - LIBS="$old_LIBS" - -fi - - - - if test "x$enable_nis" != "xno"; then - HAVE_NIS_TRUE= - HAVE_NIS_FALSE='#' -else - HAVE_NIS_TRUE='#' - HAVE_NIS_FALSE= -fi - -if test "x$enable_nis" != "xno" ; then - -$as_echo "#define HAVE_NIS 1" >>confdefs.h - -fi - -# Check whether --enable-usergroups was given. -if test "${enable_usergroups+set}" = set; then : - enableval=$enable_usergroups; WITH_USERGROUPS=$enableval -else - WITH_USERGROUPS=no -fi - -if test "$WITH_USERGROUPS" = "yes" ; then - -$as_echo "#define DEFAULT_USERGROUPS_SETTING 1" >>confdefs.h - -else - -$as_echo "#define DEFAULT_USERGROUPS_SETTING 0" >>confdefs.h - -fi - -# Check whether --enable-selinux was given. -if test "${enable_selinux+set}" = set; then : - enableval=$enable_selinux; WITH_SELINUX=$enableval -else - WITH_SELINUX=yes -fi - -if test "$WITH_SELINUX" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getfilecon in -lselinux" >&5 -$as_echo_n "checking for getfilecon in -lselinux... " >&6; } -if ${ac_cv_lib_selinux_getfilecon+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lselinux $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char getfilecon (); -int -main () -{ -return getfilecon (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_selinux_getfilecon=yes -else - ac_cv_lib_selinux_getfilecon=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getfilecon" >&5 -$as_echo "$ac_cv_lib_selinux_getfilecon" >&6; } -if test "x$ac_cv_lib_selinux_getfilecon" = xyes; then : - LIBSELINUX="-lselinux" -else - LIBSELINUX="" -fi - -else - LIBSELINUX="" -fi - -if test -n "$LIBSELINUX" ; then - -$as_echo "#define WITH_SELINUX 1" >>confdefs.h - - BACKUP_LIBS=$LIBS - LIBS="$LIBS $LIBSELINUX" - for ac_func in setkeycreatecon -do : - ac_fn_c_check_func "$LINENO" "setkeycreatecon" "ac_cv_func_setkeycreatecon" -if test "x$ac_cv_func_setkeycreatecon" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SETKEYCREATECON 1 -_ACEOF - -fi -done - - for ac_func in getseuser -do : - ac_fn_c_check_func "$LINENO" "getseuser" "ac_cv_func_getseuser" -if test "x$ac_cv_func_getseuser" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETSEUSER 1 -_ACEOF - -fi -done - - LIBS=$BACKUP_LIBS -fi - -LOGIND_CFLAGS= -SYSTEMD_LIBS= -# Check whether --enable-logind was given. -if test "${enable_logind+set}" = set; then : - enableval=$enable_logind; WITH_LOGIND=$enableval -else - WITH_LOGIND=yes -fi - -if test "$WITH_LOGIND" = "yes"; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsystemd >= 254" >&5 -$as_echo_n "checking for libsystemd >= 254... " >&6; } - -if test -n "$SYSTEMD_CFLAGS"; then - pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd >= 254\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libsystemd >= 254") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd >= 254" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$SYSTEMD_LIBS"; then - pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd >= 254\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libsystemd >= 254") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd >= 254" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd >= 254" 2>&1` - else - SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd >= 254" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$SYSTEMD_PKG_ERRORS" >&5 - - : -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - : -else - SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS - SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - LOGIND_CFLAGS="-DUSE_LOGIND=1 $SYSTEMD_CFLAGS" -fi -fi - - - -ECONF_CFLAGS= -ECONF_LIBS= -# Check whether --enable-econf was given. -if test "${enable_econf+set}" = set; then : - enableval=$enable_econf; WITH_ECONF=$enableval -else - WITH_ECONF=yes -fi - -if test "$WITH_ECONF" = "yes"; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libeconf >= 0.5.0" >&5 -$as_echo_n "checking for libeconf >= 0.5.0... " >&6; } - -if test -n "$ECONF_CFLAGS"; then - pkg_cv_ECONF_CFLAGS="$ECONF_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libeconf >= 0.5.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libeconf >= 0.5.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ECONF_CFLAGS=`$PKG_CONFIG --cflags "libeconf >= 0.5.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$ECONF_LIBS"; then - pkg_cv_ECONF_LIBS="$ECONF_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libeconf >= 0.5.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libeconf >= 0.5.0") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_ECONF_LIBS=`$PKG_CONFIG --libs "libeconf >= 0.5.0" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - ECONF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libeconf >= 0.5.0" 2>&1` - else - ECONF_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libeconf >= 0.5.0" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$ECONF_PKG_ERRORS" >&5 - - : -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - : -else - ECONF_CFLAGS=$pkg_cv_ECONF_CFLAGS - ECONF_LIBS=$pkg_cv_ECONF_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - ECONF_CFLAGS="-DUSE_ECONF=1 $ECONF_CFLAGS" -fi -fi - - - -# Check whether --enable-vendordir was given. -if test "${enable_vendordir+set}" = set; then : - enableval=$enable_vendordir; -fi - -if test -n "$enable_vendordir"; then - -cat >>confdefs.h <<_ACEOF -#define VENDORDIR "$enable_vendordir" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VENDOR_SCONFIGDIR "$enable_vendordir/security" -_ACEOF - - if test "$WITH_ECONF" = "yes" ; then - STRINGPARAM_VENDORDIR="--stringparam vendordir '$enable_vendordir'" - profileconditions="with_vendordir;with_vendordir_and_with_econf" - else - STRINGPARAM_VENDORDIR="--stringparam vendordir '$enable_vendordir'" - profileconditions="with_vendordir;with_vendordir_and_without_econf" - fi - VENDOR_SCONFIGDIR="$enable_vendordir/security" -else - profileconditions="without_vendordir" -fi - - - if test -n "$enable_vendordir"; then - HAVE_VENDORDIR_TRUE= - HAVE_VENDORDIR_FALSE='#' -else - HAVE_VENDORDIR_TRUE='#' - HAVE_VENDORDIR_FALSE= -fi - - -# Check whether --enable-openssl was given. -if test "${enable_openssl+set}" = set; then : - enableval=$enable_openssl; OPENSSL_ENABLED=$enableval -else - OPENSSL_ENABLED=no -fi - -if test "$OPENSSL_ENABLED" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_MAC_CTX_new in -lcrypto" >&5 -$as_echo_n "checking for EVP_MAC_CTX_new in -lcrypto... " >&6; } -if ${ac_cv_lib_crypto_EVP_MAC_CTX_new+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcrypto $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char EVP_MAC_CTX_new (); -int -main () -{ -return EVP_MAC_CTX_new (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_crypto_EVP_MAC_CTX_new=yes -else - ac_cv_lib_crypto_EVP_MAC_CTX_new=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_MAC_CTX_new" >&5 -$as_echo "$ac_cv_lib_crypto_EVP_MAC_CTX_new" >&6; } -if test "x$ac_cv_lib_crypto_EVP_MAC_CTX_new" = xyes; then : - CRYPTO_LIBS="-lcrypto" - use_openssl=yes - -$as_echo "#define WITH_OPENSSL 1" >>confdefs.h - - profileconditions+=";openssl_hmac" -else - CRYPTO_LIBS="" - profileconditions+=";no_openssl_hmac" -fi - -fi - - if test "x$use_openssl" = "xyes"; then - COND_USE_OPENSSL_TRUE= - COND_USE_OPENSSL_FALSE='#' -else - COND_USE_OPENSSL_TRUE='#' - COND_USE_OPENSSL_FALSE= -fi - - -STRINGPARAM_PROFILECONDITIONS="--stringparam profile.condition '$profileconditions'" - - -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval \${$as_ac_Header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> -#include <$ac_hdr> - -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_ac_Header=yes" -else - eval "$as_ac_Header=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_ac_Header - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 -_ACEOF - -ac_header_dirent=$ac_hdr; break -fi - -done -# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -if test $ac_header_dirent = dirent.h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dir; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' x; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi -done -if ${ac_cv_search_opendir+:} false; then : - -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ctype.h> -#include <stdlib.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 -$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } -if ${ac_cv_header_sys_wait_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> -#include <sys/wait.h> -#ifndef WEXITSTATUS -# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) -#endif -#ifndef WIFEXITED -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) -#endif - -int -main () -{ - int s; - wait (&s); - s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_sys_wait_h=yes -else - ac_cv_header_sys_wait_h=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 -$as_echo "$ac_cv_header_sys_wait_h" >&6; } -if test $ac_cv_header_sys_wait_h = yes; then - -$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h - -fi - -for ac_header in fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h net/if.h termio.h unistd.h sys/fsuid.h inittypes.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_header in lastlog.h utmp.h utmpx.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - #include <sys/param.h> - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - #include <sys/param.h> - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <limits.h> - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <limits.h> - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -unsigned short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - unsigned short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - unsigned short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - unsigned short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - -#ifndef __cplusplus - /* Ultrix mips cc rejects this sort of thing. */ - typedef int charset[2]; - const charset cs = { 0, 0 }; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this sort of thing. */ - char tx; - char *t = &tx; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; } bx; - struct s *b = &bx; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "#define const /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then : - ac_cv_type_uid_t=yes -else - ac_cv_type_uid_t=no -fi -rm -f conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then - -$as_echo "#define uid_t int" >>confdefs.h - - -$as_echo "#define gid_t int" >>confdefs.h - -fi - -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define off_t long int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define pid_t int -_ACEOF - -fi - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> -#include <sys/time.h> -#include <time.h> - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> -#include <time.h> - -int -main () -{ -struct tm tm; - int *p = &tm.tm_sec; - return !p; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_struct_tm=time.h -else - ac_cv_struct_tm=sys/time.h -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } -if test $ac_cv_struct_tm = sys/time.h; then - -$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h - -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking type of array argument to getgroups" >&5 -$as_echo_n "checking type of array argument to getgroups... " >&6; } -if ${ac_cv_type_getgroups+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_type_getgroups=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Thanks to Mike Rendell for this test. */ -$ac_includes_default -#define NGID 256 -#undef MAX -#define MAX(x, y) ((x) > (y) ? (x) : (y)) - -int -main () -{ - gid_t gidset[NGID]; - int i, n; - union { gid_t gval; long int lval; } val; - - val.lval = -1; - for (i = 0; i < NGID; i++) - gidset[i] = val.gval; - n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, - gidset); - /* Exit non-zero if getgroups seems to require an array of ints. This - happens when gid_t is short int but getgroups modifies an array - of ints. */ - return n > 0 && gidset[n] != val.gval; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_type_getgroups=gid_t -else - ac_cv_type_getgroups=int -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -if test $ac_cv_type_getgroups = cross; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <unistd.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then : - ac_cv_type_getgroups=gid_t -else - ac_cv_type_getgroups=int -fi -rm -f conftest* - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_getgroups" >&5 -$as_echo "$ac_cv_type_getgroups" >&6; } - -cat >>confdefs.h <<_ACEOF -#define GETGROUPS_T $ac_cv_type_getgroups -_ACEOF - - -if test $ac_cv_c_compiler_gnu = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 -$as_echo_n "checking whether $CC needs -traditional... " >&6; } -if ${ac_cv_prog_gcc_traditional+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_pattern="Autoconf.*'x'" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sgtty.h> -Autoconf TIOCGETP -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then : - ac_cv_prog_gcc_traditional=yes -else - ac_cv_prog_gcc_traditional=no -fi -rm -f conftest* - - - if test $ac_cv_prog_gcc_traditional = no; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <termio.h> -Autoconf TCGETA -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "$ac_pattern" >/dev/null 2>&1; then : - ac_cv_prog_gcc_traditional=yes -fi -rm -f conftest* - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 -$as_echo "$ac_cv_prog_gcc_traditional" >&6; } - if test $ac_cv_prog_gcc_traditional = yes; then - CC="$CC -traditional" - fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 -$as_echo_n "checking for working memcmp... " >&6; } -if ${ac_cv_func_memcmp_working+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_memcmp_working=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Some versions of memcmp are not 8-bit clean. */ - char c0 = '\100', c1 = '\200', c2 = '\201'; - if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) - return 1; - - /* The Next x86 OpenStep bug shows up only when comparing 16 bytes - or more and with at least one buffer not starting on a 4-byte boundary. - William Lewis provided this test program. */ - { - char foo[21]; - char bar[21]; - int i; - for (i = 0; i < 4; i++) - { - char *a = foo + i; - char *b = bar + i; - strcpy (a, "--------01111111"); - strcpy (b, "--------10000000"); - if (memcmp (a, b, 16) >= 0) - return 1; - } - return 0; - } - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_memcmp_working=yes -else - ac_cv_func_memcmp_working=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 -$as_echo "$ac_cv_func_memcmp_working" >&6; } -test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in - *" memcmp.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" - ;; -esac - - -for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VPRINTF 1 -_ACEOF - -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : - -$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h - -fi - -fi -done - - -for ac_func in fseeko getdomainname gethostname gettimeofday lckpwdf mkdir select -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in strcspn strdup strspn strstr strtol uname -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in getutent_r getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r getmntent_r -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in getgrouplist getline getdelim -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in inet_ntop inet_pton innetgr -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in quotactl -do : - ac_fn_c_check_func "$LINENO" "quotactl" "ac_cv_func_quotactl" -if test "x$ac_cv_func_quotactl" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_QUOTACTL 1 -_ACEOF - -fi -done - -for ac_func in unshare -do : - ac_fn_c_check_func "$LINENO" "unshare" "ac_cv_func_unshare" -if test "x$ac_cv_func_unshare" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UNSHARE 1 -_ACEOF - -fi -done - -for ac_func in explicit_bzero memset_explicit -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -for ac_func in ruserok_af ruserok -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - break -fi -done - - -# Check whether --enable-regenerate-docu was given. -if test "${enable_regenerate_docu+set}" = set; then : - enableval=$enable_regenerate_docu; enable_docu=$enableval -else - enable_docu=yes -fi - -# Extract the first word of "xsltproc", so it can be a program name with args. -set dummy xsltproc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XSLTPROC+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XSLTPROC in - [\\/]* | ?:[\\/]*) - ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -XSLTPROC=$ac_cv_path_XSLTPROC -if test -n "$XSLTPROC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 -$as_echo "$XSLTPROC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -z "$XSLTPROC"; then - enable_docu=no -fi -# Extract the first word of "xmllint", so it can be a program name with args. -set dummy xmllint; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XMLLINT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XMLLINT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="/bin/true" - ;; -esac -fi -XMLLINT=$ac_cv_path_XMLLINT -if test -n "$XMLLINT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5 -$as_echo "$XMLLINT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - # check for the presence of the XML catalog - -# Check whether --with-xml-catalog was given. -if test "${with_xml_catalog+set}" = set; then : - withval=$with_xml_catalog; -else - with_xml_catalog=/etc/xml/catalog -fi - - jh_found_xmlcatalog=true - XML_CATALOG_FILE="$with_xml_catalog" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML catalog ($XML_CATALOG_FILE)" >&5 -$as_echo_n "checking for XML catalog ($XML_CATALOG_FILE)... " >&6; } - if test -f "$XML_CATALOG_FILE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - else - jh_found_xmlcatalog=false - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - fi - - # check for the xmlcatalog program - # Extract the first word of "xmlcatalog", so it can be a program name with args. -set dummy xmlcatalog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XMLCATALOG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $XMLCATALOG in - [\\/]* | ?:[\\/]*) - ac_cv_path_XMLCATALOG="$XMLCATALOG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_XMLCATALOG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_XMLCATALOG" && ac_cv_path_XMLCATALOG="no" - ;; -esac -fi -XMLCATALOG=$ac_cv_path_XMLCATALOG -if test -n "$XMLCATALOG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLCATALOG" >&5 -$as_echo "$XMLCATALOG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$XMLCATALOG" = xno; then - jh_found_xmlcatalog=false - fi - - if $jh_found_xmlcatalog; then - : - else - : - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook XML RNG V5.0 in XML catalog" >&5 -$as_echo_n "checking for DocBook XML RNG V5.0 in XML catalog... " >&6; } - if $jh_found_xmlcatalog && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$XMLCATALOG --noout \"\$XML_CATALOG_FILE\" \"http://docbook.org/xml/5.0/rng/docbookxi.rng\" >&2"; } >&5 - ($XMLCATALOG --noout "$XML_CATALOG_FILE" "http://docbook.org/xml/5.0/rng/docbookxi.rng" >&2) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - enable_docu=no - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook XSL Stylesheets in XML catalog" >&5 -$as_echo_n "checking for DocBook XSL Stylesheets in XML catalog... " >&6; } - if $jh_found_xmlcatalog && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$XMLCATALOG --noout \"\$XML_CATALOG_FILE\" \"http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl\" >&2"; } >&5 - ($XMLCATALOG --noout "$XML_CATALOG_FILE" "http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" >&2) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 -$as_echo "found" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 -$as_echo "not found" >&6; } - enable_docu=no - fi - - -# Extract the first word of "w3m", so it can be a program name with args. -set dummy w3m; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_BROWSER+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $BROWSER in - [\\/]* | ?:[\\/]*) - ac_cv_path_BROWSER="$BROWSER" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_BROWSER="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -BROWSER=$ac_cv_path_BROWSER -if test -n "$BROWSER"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BROWSER" >&5 -$as_echo "$BROWSER" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -if test -n "$BROWSER"; then - BROWSER="$BROWSER -T text/html -dump" -else - # Extract the first word of "elinks", so it can be a program name with args. -set dummy elinks; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_BROWSER+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $BROWSER in - [\\/]* | ?:[\\/]*) - ac_cv_path_BROWSER="$BROWSER" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_BROWSER="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -BROWSER=$ac_cv_path_BROWSER -if test -n "$BROWSER"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BROWSER" >&5 -$as_echo "$BROWSER" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -n "$BROWSER"; then - BROWSER="$BROWSER -no-numbering -no-references -dump" - else - enable_docu=no - fi -fi - -# Extract the first word of "fop", so it can be a program name with args. -set dummy fop; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_FO2PDF+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $FO2PDF in - [\\/]* | ?:[\\/]*) - ac_cv_path_FO2PDF="$FO2PDF" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_FO2PDF="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -FO2PDF=$ac_cv_path_FO2PDF -if test -n "$FO2PDF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FO2PDF" >&5 -$as_echo "$FO2PDF" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - if test x$enable_docu != xno && test x$enable_doc != xno; then - ENABLE_REGENERATE_MAN_TRUE= - ENABLE_REGENERATE_MAN_FALSE='#' -else - ENABLE_REGENERATE_MAN_TRUE='#' - ENABLE_REGENERATE_MAN_FALSE= -fi - - if test -n "$FO2PDF"; then - ENABLE_GENERATE_PDF_TRUE= - ENABLE_GENERATE_PDF_FALSE='#' -else - ENABLE_GENERATE_PDF_TRUE='#' - ENABLE_GENERATE_PDF_FALSE= -fi - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - # Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - - - - - GETTEXT_MACRO_VERSION=0.18 - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -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 "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; 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..." >&5 - if $ac_dir/$ac_word --statistics /dev/null >&5 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); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; - *) MSGFMT_015=$MSGFMT ;; - esac - - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; - *) GMSGFMT_015=$GMSGFMT ;; - esac - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -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 "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; 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..." >&5 - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 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); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; - *) XGETTEXT_015=$XGETTEXT ;; - esac - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -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 "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; 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..." >&5 - if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$localedir" || localedir='${datadir}/locale' - - - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= - - - ac_config_commands="$ac_config_commands po-directories" - - - - 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" - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - 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. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname 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 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${acl_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_save_ifs" - 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 variants of GNU ld 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="$acl_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$acl_cv_path_LD" -if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${acl_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds 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 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5 -$as_echo "$acl_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 -$as_echo_n "checking for shared library run path origin... " >&6; } -if ${acl_cv_rpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - - 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 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 -$as_echo "$acl_cv_rpath" >&6; } - wl="$acl_cv_wl" - acl_libext="$acl_cv_libext" - acl_shlibext="$acl_cv_shlibext" - acl_libname_spec="$acl_cv_libname_spec" - acl_library_names_spec="$acl_cv_library_names_spec" - acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" - # Check whether --enable-rpath was given. -if test "${enable_rpath+set}" = set; then : - enableval=$enable_rpath; : -else - enable_rpath=yes -fi - - - - - acl_libdirstem=lib - acl_libdirstem2= - case "$host_os" in - solaris*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 -$as_echo_n "checking for 64-bit host... " >&6; } -if ${gl_cv_solaris_64bit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef _LP64 -sixtyfour bits -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sixtyfour bits" >/dev/null 2>&1; then : - gl_cv_solaris_64bit=yes -else - gl_cv_solaris_64bit=no -fi -rm -f conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 -$as_echo "$gl_cv_solaris_64bit" >&6; } - if test $gl_cv_solaris_64bit = yes; then - acl_libdirstem=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" - - - - - - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then : - withval=$with_libiconv_prefix; - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi - fi - fi - -fi - - LIBICONV= - LTLIBICONV= - INCICONV= - LIBICONV_PREFIX= - HAVE_LIBICONV= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='iconv ' - 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" - 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" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - dir="$additional_libdir" - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - 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 - if test "$acl_hardcode_direct" = yes; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - 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 - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = 'iconv'; then - LIBICONV_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = 'iconv'; then - LIBICONV_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - 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 $INCICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - 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 - INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; 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 $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - 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 - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - 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 - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - 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 - 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*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" - ;; - esac - done - fi - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" - done - fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 -$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } -if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <CoreFoundation/CFPreferences.h> -int -main () -{ -CFPreferencesCopyAppValue(NULL, NULL) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_CFPreferencesCopyAppValue=yes -else - gt_cv_func_CFPreferencesCopyAppValue=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 -$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then - -$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 -$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } -if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <CoreFoundation/CFLocale.h> -int -main () -{ -CFLocaleCopyCurrent(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_CFLocaleCopyCurrent=yes -else - gt_cv_func_CFLocaleCopyCurrent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 -$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } - if test $gt_cv_func_CFLocaleCopyCurrent = yes; then - -$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h - - 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 - - - - - - - LIBINTL= - LTLIBINTL= - POSUB= - - case " $gt_needs " in - *" need-formatstring-macros "*) gt_api_version=3 ;; - *" need-ngettext "*) gt_api_version=2 ;; - *) gt_api_version=1 ;; - esac - gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" - gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" - - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - - - if test $gt_api_version -ge 3; then - gt_revision_test_code=' -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -' - else - gt_revision_test_code= - fi - if test $gt_api_version -ge 2; then - gt_expression_test_code=' + * ngettext ("", "", 0)' - else - gt_expression_test_code= - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 -$as_echo_n "checking for GNU gettext in libc... " >&6; } -if eval \${$gt_func_gnugettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <libintl.h> -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; - -int -main () -{ - -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$gt_func_gnugettext_libc=yes" -else - eval "$gt_func_gnugettext_libc=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$gt_func_gnugettext_libc - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - - - - - - am_save_CPPFLAGS="$CPPFLAGS" - - for element in $INCICONV; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if ${am_cv_func_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <stdlib.h> -#include <iconv.h> - -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <stdlib.h> -#include <iconv.h> - -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -$as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 -$as_echo_n "checking for working iconv... " >&6; } -if ${am_cv_func_iconv_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_save_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - if test "$cross_compiling" = yes; then : - - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac - -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <iconv.h> -#include <string.h> -int main () -{ - int result = 0; - /* Test against AIX 5.1 bug: Failures are not distinguishable from successful - returns. */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 1; - iconv_close (cd_utf8_to_88591); - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\263"; - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 2; - iconv_close (cd_ascii_to_88591); - } - } - /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304"; - static char buf[2] = { (char)0xDE, (char)0xAD }; - const char *inptr = input; - size_t inbytesleft = 1; - char *outptr = buf; - size_t outbytesleft = 1; - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) - result |= 4; - iconv_close (cd_88591_to_utf8); - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - result |= 8; - iconv_close (cd_88591_to_utf8); - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - if (/* Try standardized names. */ - iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) - /* Try IRIX, OSF/1 names. */ - && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) - /* Try AIX names. */ - && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) - /* Try HP-UX names. */ - && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) - result |= 16; - return result; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - am_cv_func_iconv_works=yes -else - am_cv_func_iconv_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - LIBS="$am_save_LIBS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 -$as_echo "$am_cv_func_iconv_works" >&6; } - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - -$as_echo "#define HAVE_ICONV 1" >>confdefs.h - - fi - if test "$am_cv_lib_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -$as_echo_n "checking how to link with libiconv... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -$as_echo "$LIBICONV" >&6; } - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libintl-prefix was given. -if test "${with_libintl_prefix+set}" = set; then : - withval=$with_libintl_prefix; - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi - fi - fi - -fi - - LIBINTL= - LTLIBINTL= - INCINTL= - LIBINTL_PREFIX= - HAVE_LIBINTL= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='intl ' - 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" - 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" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - dir="$additional_libdir" - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - 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 - if test "$acl_hardcode_direct" = yes; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - 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 - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = 'intl'; then - LIBINTL_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = 'intl'; then - LIBINTL_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - 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 $INCINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - 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 - INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; 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 $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - 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 - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - 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 - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - 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 - 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*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" - ;; - esac - done - fi - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" - done - fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 -$as_echo_n "checking for GNU gettext in libintl... " >&6; } -if eval \${$gt_func_gnugettext_libintl+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <libintl.h> -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); - -int -main () -{ - -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$gt_func_gnugettext_libintl=yes" -else - eval "$gt_func_gnugettext_libintl=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <libintl.h> -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); - -int -main () -{ - -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - eval "$gt_func_gnugettext_libintl=yes" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS" -fi -eval ac_res=\$$gt_func_gnugettext_libintl - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - fi - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ - || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ - && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools; }; then - gt_use_preinstalled_gnugettext=yes - else - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - - - if test -n "$INTL_MACOSX_LIBS"; then - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - 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 - -$as_echo "#define ENABLE_NLS 1" >>confdefs.h - - else - USE_NLS=no - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 -$as_echo_n "checking whether to use NLS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - if test "$USE_NLS" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 -$as_echo_n "checking where the gettext function comes from... " >&6; } - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - gt_source="external libintl" - else - gt_source="libc" - fi - else - gt_source="included intl directory" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 -$as_echo "$gt_source" >&6; } - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 -$as_echo_n "checking how to link with libintl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 -$as_echo "$LIBINTL" >&6; } - - for element in $INCINTL; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - fi - - -$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h - - -$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h - - fi - - POSUB=po - fi - - - - INTLLIBS="$LIBINTL" - - - - - - -for ac_func in dngettext -do : - ac_fn_c_check_func "$LINENO" "dngettext" "ac_cv_func_dngettext" -if test "x$ac_cv_func_dngettext" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DNGETTEXT 1 -_ACEOF - -fi -done - - - - -ac_fn_c_check_decl "$LINENO" "__NR_keyctl" "ac_cv_have_decl___NR_keyctl" "#include <sys/syscall.h> -" -if test "x$ac_cv_have_decl___NR_keyctl" = xyes; then : - have_key_syscalls=1 -else - have_key_syscalls=0 -fi - - - -# Check whether --with-uidmin was given. -if test "${with_uidmin+set}" = set; then : - withval=$with_uidmin; opt_uidmin=$withval -fi - -test -n "$opt_uidmin" || - opt_uidmin=1000 - -cat >>confdefs.h <<_ACEOF -#define PAM_USERTYPE_UIDMIN $opt_uidmin -_ACEOF - - - -# Check whether --with-kernel-overflow-uid was given. -if test "${with_kernel_overflow_uid+set}" = set; then : - withval=$with_kernel_overflow_uid; opt_kerneloverflowuid=$withval -fi - -test -n "$opt_kerneloverflowuid" || - opt_kerneloverflowuid=65534 - -cat >>confdefs.h <<_ACEOF -#define PAM_USERTYPE_OVERFLOW_UID $opt_kerneloverflowuid -_ACEOF - - - -# Check whether --with-systemdunitdir was given. -if test "${with_systemdunitdir+set}" = set; then : - withval=$with_systemdunitdir; -else - - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd\""; } >&5 - ($PKG_CONFIG --exists --print-errors "systemd") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - with_systemdunitdir=$($PKG_CONFIG --variable=systemdunitdir systemd) -else - with_systemdunitdir='${prefix}/lib/systemd/system' -fi - -fi - -systemdunitdir=$with_systemdunitdir - - -# Check whether --enable-unix was given. -if test "${enable_unix+set}" = set; then : - enableval=$enable_unix; -else - enable_unix=yes -fi - -case "$enable_unix" in - yes|no) ;; - *) as_fn_error $? "bad value $enable_unix for --enable-unix option" "$LINENO" 5 ;; -esac - -# Check whether --enable-lastlog was given. -if test "${enable_lastlog+set}" = set; then : - enableval=$enable_lastlog; -else - enable_lastlog=no -fi - -case "$enable_lastlog" in - yes|check) - BACKUP_LIBS=$LIBS - LIBS="$LIBS -lutil" - for ac_func in logwtmp -do : - ac_fn_c_check_func "$LINENO" "logwtmp" "ac_cv_func_logwtmp" -if test "x$ac_cv_func_logwtmp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LOGWTMP 1 -_ACEOF - -fi -done - - LIBS=$BACKUP_LIBS - ;; - no) ;; - *) as_fn_error $? "bad value $enable_lastlog for --enable-lastlog option" "$LINENO" 5 ;; -esac - - -# Check whether --with-misc-conv-bufsize was given. -if test "${with_misc_conv_bufsize+set}" = set; then : - withval=$with_misc_conv_bufsize; -else - with_misc_conv_bufsize=4096 -fi - - -cat >>confdefs.h <<_ACEOF -#define PAM_MISC_CONV_BUFSIZE $with_misc_conv_bufsize -_ACEOF - - - if test "$have_key_syscalls" = 1; then - COND_BUILD_PAM_KEYINIT_TRUE= - COND_BUILD_PAM_KEYINIT_FALSE='#' -else - COND_BUILD_PAM_KEYINIT_TRUE='#' - COND_BUILD_PAM_KEYINIT_FALSE= -fi - - if test "$ac_cv_func_logwtmp" = yes; then - COND_BUILD_PAM_LASTLOG_TRUE= - COND_BUILD_PAM_LASTLOG_FALSE='#' -else - COND_BUILD_PAM_LASTLOG_TRUE='#' - COND_BUILD_PAM_LASTLOG_FALSE= -fi - - if test "$ac_cv_func_unshare" = yes; then - COND_BUILD_PAM_NAMESPACE_TRUE= - COND_BUILD_PAM_NAMESPACE_FALSE='#' -else - COND_BUILD_PAM_NAMESPACE_TRUE='#' - COND_BUILD_PAM_NAMESPACE_FALSE= -fi - - if test "$ac_cv_func_ruserok_af" = yes || test "$ac_cv_func_ruserok" = yes; then - COND_BUILD_PAM_RHOSTS_TRUE= - COND_BUILD_PAM_RHOSTS_FALSE='#' -else - COND_BUILD_PAM_RHOSTS_TRUE='#' - COND_BUILD_PAM_RHOSTS_FALSE= -fi - - if test -n "$LIBSELINUX"; then - COND_BUILD_PAM_SELINUX_TRUE= - COND_BUILD_PAM_SELINUX_FALSE='#' -else - COND_BUILD_PAM_SELINUX_TRUE='#' - COND_BUILD_PAM_SELINUX_FALSE= -fi - - if test -n "$LIBSELINUX"; then - COND_BUILD_PAM_SEPERMIT_TRUE= - COND_BUILD_PAM_SEPERMIT_FALSE='#' -else - COND_BUILD_PAM_SEPERMIT_TRUE='#' - COND_BUILD_PAM_SEPERMIT_FALSE= -fi - - if test "$ac_cv_func_quotactl" = yes; then - COND_BUILD_PAM_SETQUOTA_TRUE= - COND_BUILD_PAM_SETQUOTA_FALSE='#' -else - COND_BUILD_PAM_SETQUOTA_TRUE='#' - COND_BUILD_PAM_SETQUOTA_FALSE= -fi - - if test "$HAVE_AUDIT_TTY_STATUS" = yes; then - COND_BUILD_PAM_TTY_AUDIT_TRUE= - COND_BUILD_PAM_TTY_AUDIT_FALSE='#' -else - COND_BUILD_PAM_TTY_AUDIT_TRUE='#' - COND_BUILD_PAM_TTY_AUDIT_FALSE= -fi - - if test "$enable_unix" = yes; then - COND_BUILD_PAM_UNIX_TRUE= - COND_BUILD_PAM_UNIX_FALSE='#' -else - COND_BUILD_PAM_UNIX_TRUE='#' - COND_BUILD_PAM_UNIX_FALSE= -fi - - if test -n "$LIBDB"; then - COND_BUILD_PAM_USERDB_TRUE= - COND_BUILD_PAM_USERDB_FALSE='#' -else - COND_BUILD_PAM_USERDB_TRUE='#' - COND_BUILD_PAM_USERDB_FALSE= -fi - - -ac_config_files="$ac_config_files Makefile libpam/Makefile libpamc/Makefile libpamc/test/Makefile libpam_misc/Makefile conf/Makefile conf/pam_conv1/Makefile libpam/pam.pc libpam_misc/pam_misc.pc libpamc/pamc.pc po/Makefile.in Make.xml.rules modules/Makefile modules/pam_access/Makefile modules/pam_debug/Makefile modules/pam_deny/Makefile modules/pam_echo/Makefile modules/pam_env/Makefile modules/pam_faildelay/Makefile modules/pam_faillock/Makefile modules/pam_filter/Makefile modules/pam_filter/upperLOWER/Makefile modules/pam_ftp/Makefile modules/pam_group/Makefile modules/pam_issue/Makefile modules/pam_keyinit/Makefile modules/pam_lastlog/Makefile modules/pam_limits/Makefile modules/pam_listfile/Makefile modules/pam_localuser/Makefile modules/pam_loginuid/Makefile modules/pam_mail/Makefile modules/pam_mkhomedir/Makefile modules/pam_motd/Makefile modules/pam_namespace/Makefile modules/pam_namespace/pam_namespace_helper modules/pam_namespace/pam_namespace.service modules/pam_nologin/Makefile modules/pam_permit/Makefile modules/pam_pwhistory/Makefile modules/pam_rhosts/Makefile modules/pam_rootok/Makefile modules/pam_exec/Makefile modules/pam_securetty/Makefile modules/pam_selinux/Makefile modules/pam_sepermit/Makefile modules/pam_setquota/Makefile modules/pam_shells/Makefile modules/pam_stress/Makefile modules/pam_succeed_if/Makefile modules/pam_time/Makefile modules/pam_timestamp/Makefile modules/pam_tty_audit/Makefile modules/pam_umask/Makefile modules/pam_unix/Makefile modules/pam_userdb/Makefile modules/pam_usertype/Makefile modules/pam_warn/Makefile modules/pam_wheel/Makefile modules/pam_xauth/Makefile doc/Makefile doc/specs/Makefile doc/man/Makefile doc/sag/Makefile doc/adg/Makefile doc/mwg/Makefile examples/Makefile tests/Makefile xtests/Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_VERSIONING_TRUE}" && test -z "${HAVE_VERSIONING_FALSE}"; then - as_fn_error $? "conditional \"HAVE_VERSIONING\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_DOC_TRUE}" && test -z "${HAVE_DOC_FALSE}"; then - as_fn_error $? "conditional \"HAVE_DOC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_NIS_TRUE}" && test -z "${HAVE_NIS_FALSE}"; then - as_fn_error $? "conditional \"HAVE_NIS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_VENDORDIR_TRUE}" && test -z "${HAVE_VENDORDIR_FALSE}"; then - as_fn_error $? "conditional \"HAVE_VENDORDIR\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_USE_OPENSSL_TRUE}" && test -z "${COND_USE_OPENSSL_FALSE}"; then - as_fn_error $? "conditional \"COND_USE_OPENSSL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -if test -z "${ENABLE_REGENERATE_MAN_TRUE}" && test -z "${ENABLE_REGENERATE_MAN_FALSE}"; then - as_fn_error $? "conditional \"ENABLE_REGENERATE_MAN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${ENABLE_GENERATE_PDF_TRUE}" && test -z "${ENABLE_GENERATE_PDF_FALSE}"; then - as_fn_error $? "conditional \"ENABLE_GENERATE_PDF\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_KEYINIT_TRUE}" && test -z "${COND_BUILD_PAM_KEYINIT_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_KEYINIT\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_LASTLOG_TRUE}" && test -z "${COND_BUILD_PAM_LASTLOG_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_LASTLOG\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_NAMESPACE_TRUE}" && test -z "${COND_BUILD_PAM_NAMESPACE_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_NAMESPACE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_RHOSTS_TRUE}" && test -z "${COND_BUILD_PAM_RHOSTS_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_RHOSTS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_SELINUX_TRUE}" && test -z "${COND_BUILD_PAM_SELINUX_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_SELINUX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_SEPERMIT_TRUE}" && test -z "${COND_BUILD_PAM_SEPERMIT_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_SEPERMIT\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_SETQUOTA_TRUE}" && test -z "${COND_BUILD_PAM_SETQUOTA_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_SETQUOTA\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_TTY_AUDIT_TRUE}" && test -z "${COND_BUILD_PAM_TTY_AUDIT_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_TTY_AUDIT\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_UNIX_TRUE}" && test -z "${COND_BUILD_PAM_UNIX_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_UNIX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${COND_BUILD_PAM_USERDB_TRUE}" && test -z "${COND_BUILD_PAM_USERDB_FALSE}"; then - as_fn_error $? "conditional \"COND_BUILD_PAM_USERDB\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by Linux-PAM $as_me 1.5.3, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -Linux-PAM config.status 1.5.3 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' -configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -FILECMD \ -OBJDUMP \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -DLLTOOL \ -sharedlib_from_linklib_cmd \ -AR \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_import \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -lt_cv_nm_interface \ -nm_file_list_spec \ -lt_cv_truncate_bin \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -configure_time_dlsearch_path \ -configure_time_lt_sys_library_path; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' - -# See if we are running on zsh, and set the options that allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - RM='$RM' - ofile='$ofile' - - - -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it - # from automake < 1.5. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "libpam/Makefile") CONFIG_FILES="$CONFIG_FILES libpam/Makefile" ;; - "libpamc/Makefile") CONFIG_FILES="$CONFIG_FILES libpamc/Makefile" ;; - "libpamc/test/Makefile") CONFIG_FILES="$CONFIG_FILES libpamc/test/Makefile" ;; - "libpam_misc/Makefile") CONFIG_FILES="$CONFIG_FILES libpam_misc/Makefile" ;; - "conf/Makefile") CONFIG_FILES="$CONFIG_FILES conf/Makefile" ;; - "conf/pam_conv1/Makefile") CONFIG_FILES="$CONFIG_FILES conf/pam_conv1/Makefile" ;; - "libpam/pam.pc") CONFIG_FILES="$CONFIG_FILES libpam/pam.pc" ;; - "libpam_misc/pam_misc.pc") CONFIG_FILES="$CONFIG_FILES libpam_misc/pam_misc.pc" ;; - "libpamc/pamc.pc") CONFIG_FILES="$CONFIG_FILES libpamc/pamc.pc" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "Make.xml.rules") CONFIG_FILES="$CONFIG_FILES Make.xml.rules" ;; - "modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; - "modules/pam_access/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_access/Makefile" ;; - "modules/pam_debug/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_debug/Makefile" ;; - "modules/pam_deny/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_deny/Makefile" ;; - "modules/pam_echo/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_echo/Makefile" ;; - "modules/pam_env/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_env/Makefile" ;; - "modules/pam_faildelay/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_faildelay/Makefile" ;; - "modules/pam_faillock/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_faillock/Makefile" ;; - "modules/pam_filter/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_filter/Makefile" ;; - "modules/pam_filter/upperLOWER/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_filter/upperLOWER/Makefile" ;; - "modules/pam_ftp/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_ftp/Makefile" ;; - "modules/pam_group/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_group/Makefile" ;; - "modules/pam_issue/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_issue/Makefile" ;; - "modules/pam_keyinit/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_keyinit/Makefile" ;; - "modules/pam_lastlog/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_lastlog/Makefile" ;; - "modules/pam_limits/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_limits/Makefile" ;; - "modules/pam_listfile/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_listfile/Makefile" ;; - "modules/pam_localuser/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_localuser/Makefile" ;; - "modules/pam_loginuid/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_loginuid/Makefile" ;; - "modules/pam_mail/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_mail/Makefile" ;; - "modules/pam_mkhomedir/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_mkhomedir/Makefile" ;; - "modules/pam_motd/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_motd/Makefile" ;; - "modules/pam_namespace/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_namespace/Makefile" ;; - "modules/pam_namespace/pam_namespace_helper") CONFIG_FILES="$CONFIG_FILES modules/pam_namespace/pam_namespace_helper" ;; - "modules/pam_namespace/pam_namespace.service") CONFIG_FILES="$CONFIG_FILES modules/pam_namespace/pam_namespace.service" ;; - "modules/pam_nologin/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_nologin/Makefile" ;; - "modules/pam_permit/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_permit/Makefile" ;; - "modules/pam_pwhistory/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_pwhistory/Makefile" ;; - "modules/pam_rhosts/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_rhosts/Makefile" ;; - "modules/pam_rootok/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_rootok/Makefile" ;; - "modules/pam_exec/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_exec/Makefile" ;; - "modules/pam_securetty/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_securetty/Makefile" ;; - "modules/pam_selinux/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_selinux/Makefile" ;; - "modules/pam_sepermit/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_sepermit/Makefile" ;; - "modules/pam_setquota/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_setquota/Makefile" ;; - "modules/pam_shells/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_shells/Makefile" ;; - "modules/pam_stress/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_stress/Makefile" ;; - "modules/pam_succeed_if/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_succeed_if/Makefile" ;; - "modules/pam_time/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_time/Makefile" ;; - "modules/pam_timestamp/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_timestamp/Makefile" ;; - "modules/pam_tty_audit/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_tty_audit/Makefile" ;; - "modules/pam_umask/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_umask/Makefile" ;; - "modules/pam_unix/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_unix/Makefile" ;; - "modules/pam_userdb/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_userdb/Makefile" ;; - "modules/pam_usertype/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_usertype/Makefile" ;; - "modules/pam_warn/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_warn/Makefile" ;; - "modules/pam_wheel/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_wheel/Makefile" ;; - "modules/pam_xauth/Makefile") CONFIG_FILES="$CONFIG_FILES modules/pam_xauth/Makefile" ;; - "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "doc/specs/Makefile") CONFIG_FILES="$CONFIG_FILES doc/specs/Makefile" ;; - "doc/man/Makefile") CONFIG_FILES="$CONFIG_FILES doc/man/Makefile" ;; - "doc/sag/Makefile") CONFIG_FILES="$CONFIG_FILES doc/sag/Makefile" ;; - "doc/adg/Makefile") CONFIG_FILES="$CONFIG_FILES doc/adg/Makefile" ;; - "doc/mwg/Makefile") CONFIG_FILES="$CONFIG_FILES doc/mwg/Makefile" ;; - "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; - "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; - "xtests/Makefile") CONFIG_FILES="$CONFIG_FILES xtests/Makefile" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX")` && - test -n "$tmp" && test -d "$tmp" -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' <conf$$subs.awk | sed ' -/^[^""]/{ - N - s/\n// -} -' >>$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' <confdefs.h | sed ' -s/'"$ac_delim"'/"\\\ -"/g' >>$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - case $CONFIG_FILES in #( - *\'*) : - eval set x "$CONFIG_FILES" ;; #( - *) : - set x $CONFIG_FILES ;; #( - *) : - ;; -esac - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`$as_dirname -- "$am_mf" || -$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$am_mf" : 'X\(//\)[^/]' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$am_mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - am_filepart=`$as_basename -- "$am_mf" || -$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$am_mf" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { echo "$as_me:$LINENO: cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles" >&5 - (cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } || am_rc=$? - done - if test $am_rc -ne 0; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. If GNU make was not used, consider - re-running the configure script with MAKE=\"gmake\" (or whatever is - necessary). You can also try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } - fi - { am_dirpart=; unset am_dirpart;} - { am_filepart=; unset am_filepart;} - { am_mf=; unset am_mf;} - { am_rc=; unset am_rc;} - rm -f conftest-deps.mk -} - ;; - "libtool":C) - - # See if we are running on zsh, and set the options that allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST - fi - - cfgfile=${ofile}T - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL -# Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured as follows: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. - -# Provide generalized library-building support services. -# Written by Gordon Matzigkeit, 1996 - -# Copyright (C) 2014 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool 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 of the License, or -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program or library that is built -# using GNU Libtool, you may include this file under the same -# distribution terms that you use for the rest of that program. -# -# GNU Libtool 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, see <http://www.gnu.org/licenses/>. - - -# The names of the tagged configurations supported by this script. -available_tags='' - -# Configured defaults for sys_lib_dlsearch_path munging. -: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shared archive member basename,for filename based shared library versioning on AIX. -shared_archive_member_spec=$shared_archive_member_spec - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# A file(cmd) program that detects file types. -FILECMD=$lt_FILECMD - -# An object symbol dumper. -OBJDUMP=$lt_OBJDUMP - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive (by configure). -lt_ar_flags=$lt_ar_flags - -# Flags to create an archive. -AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm into a list of symbols to manually relocate. -global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# The name lister interface. -nm_interface=$lt_lt_cv_nm_interface - -# Specify filename containing input files for \$NM. -nm_file_list_spec=$lt_nm_file_list_spec - -# The root where to search for dependent libraries,and where our libraries should be installed. -lt_sysroot=$lt_sysroot - -# Command to truncate a binary pipe. -lt_truncate_bin=$lt_lt_cv_truncate_bin - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Manifest tool. -MANIFEST_TOOL=$lt_MANIFEST_TOOL - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Permission mode override for installation of shared libraries. -install_override_mode=$lt_install_override_mode - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Detected run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path - -# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. -configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \$shlibpath_var if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Commands necessary for finishing linking programs. -postlink_cmds=$lt_postlink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - cat <<'_LT_EOF' >> "$cfgfile" - -# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE - -# func_munge_path_list VARIABLE PATH -# ----------------------------------- -# VARIABLE is name of variable containing _space_ separated list of -# directories to be munged by the contents of PATH, which is string -# having a format: -# "DIR[:DIR]:" -# string "DIR[ DIR]" will be prepended to VARIABLE -# ":DIR[:DIR]" -# string "DIR[ DIR]" will be appended to VARIABLE -# "DIRP[:DIRP]::[DIRA:]DIRA" -# string "DIRP[ DIRP]" will be prepended to VARIABLE and string -# "DIRA[ DIRA]" will be appended to VARIABLE -# "DIR[:DIR]" -# VARIABLE will be replaced by "DIR[ DIR]" -func_munge_path_list () -{ - case x$2 in - x) - ;; - *:) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" - ;; - x:*) - eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" - ;; - *::*) - eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" - eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" - ;; - *) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" - ;; - esac -} - - -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -func_cc_basename () -{ - for cc_temp in $*""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac - done - func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -} - - -# ### END FUNCTIONS SHARED WITH CONFIGURE - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test set != "${COLLECT_NAMES+set}"; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain=$ac_aux_dir/ltmain.sh - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - $SED '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - "po-directories":C) - 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" - gt_tab=`printf '\t'` - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/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 assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - # Hide the ALL_LINGUAS assignment from automake < 1.5. - 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 ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/configure.ac b/configure.ac deleted file mode 100644 index b9b0f839..00000000 --- a/configure.ac +++ /dev/null @@ -1,786 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT([Linux-PAM], [1.5.3], , [Linux-PAM]) -AC_CONFIG_SRCDIR([conf/pam_conv1/pam_conv_y.y]) -AC_CONFIG_AUX_DIR([build-aux]) -AM_INIT_AUTOMAKE([-Wall -Wno-portability]) -AC_PREREQ([2.61]) -AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIR([m4]) -AC_CANONICAL_HOST - -AC_SUBST(PACKAGE) -AC_SUBST(VERSION) - -dnl -dnl By default, everything under PAM is installed below /usr. -dnl -AC_PREFIX_DEFAULT(/usr) - -dnl and some hacks to use /etc and /lib -test "${prefix}" = "NONE" && prefix="/usr" -if test ${prefix} = '/usr' -then -dnl If we use /usr as prefix, use /etc for config files - if test ${sysconfdir} = '${prefix}/etc' - then - sysconfdir="/etc" - fi - if test ${libdir} = '${exec_prefix}/lib' - then - case "$host_cpu" in - x86_64|ppc64|s390x|sparc64) - libdir="/lib64" ;; - *) - libdir="/lib" ;; - esac - fi - if test ${sbindir} = '${exec_prefix}/sbin' - then - sbindir="/sbin" - fi -dnl If we use /usr as prefix, use /usr/share/man for manual pages - if test ${mandir} = '${prefix}/man' - then - mandir='${prefix}/share/man' - fi -dnl Add security to include directory - if test ${includedir} = '${prefix}/include' - then - includedir="${prefix}/include/security" - fi - -dnl Add /var directory - if test ${localstatedir} = '${prefix}/var' - then - localstatedir="/var" - fi - -fi - -dnl This should be called before any macros that run the C compiler. -AC_USE_SYSTEM_EXTENSIONS - -LT_INIT([disable-static]) -AC_ENABLE_STATIC([no]) -AC_ENABLE_SHARED([yes]) - -dnl Checks for programs. -AC_PROG_CC -AC_PROG_YACC -AM_PROG_LEX -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET -AM_PROG_CC_C_O -PAM_LD_AS_NEEDED -PAM_LD_NO_UNDEFINED -PAM_LD_O1 -PAM_LD_Z_NOW - -dnl Largefile support -AC_SYS_LARGEFILE - -pam_WARN_LANG_FLAGS - -if test "x${CC_FOR_BUILD+set}" != "xset" ; then - if test "x$cross_compiling" = "xyes" ; then - AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc) - else - CC_FOR_BUILD=${CC} - fi -fi -AC_MSG_CHECKING([for CC_FOR_BUILD]) -AC_MSG_RESULT([$CC_FOR_BUILD]) -AC_SUBST(CC_FOR_BUILD) - -if test "x${BUILD_CPPFLAGS+set}" != "xset" ; then - if test "x$cross_compiling" = "xyes" ; then - BUILD_CPPFLAGS= - else - BUILD_CPPFLAGS=${CPPFLAGS} - fi -fi -AC_SUBST(BUILD_CPPFLAGS) - -if test "x${BUILD_CFLAGS+set}" != "xset" ; then - if test "x$cross_compiling" = "xyes" ; then - BUILD_CFLAGS= - else - BUILD_CFLAGS=${CFLAGS} - fi -fi -AC_SUBST(BUILD_CFLAGS) - -if test "x${BUILD_LDFLAGS+set}" != "xset" ; then - if test "x$cross_compiling" = "xyes" ; then - BUILD_LDFLAGS= - else - BUILD_LDFLAGS=${LDFLAGS} - fi -fi -AC_SUBST(BUILD_LDFLAGS) - -PAM_ATTRIBUTE_UNUSED - -dnl -dnl Check if --version-script is supported by ld -dnl -AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive, -[cat > conftest.s <<EOF -${libc_cv_dot_text} -_sym: -.symver _sym,sym@VERS -EOF -if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then - libc_cv_asm_symver_directive=yes -else - libc_cv_asm_symver_directive=no -fi -rm -f conftest*]) -AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl -if test $libc_cv_asm_symver_directive = yes; then - cat > conftest.s <<EOF -${libc_cv_dot_text} -_sym: -.symver _sym,sym@VERS -EOF - cat > conftest.map <<EOF -VERS_1 { - global: sym; -}; - -VERS_2 { - global: sym; -} VERS_1; -EOF - if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; -then - if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared - -o conftest.so conftest.o - -nostartfiles -nostdlib - -Wl,--version-script,conftest.map - 1>&AS_MESSAGE_LOG_FD]); - then - libc_cv_ld_version_script_option=yes - else - libc_cv_ld_version_script_option=no - fi - else - libc_cv_ld_version_script_option=no - fi -else - libc_cv_ld_version_script_option=no -fi -rm -f conftest*]) -AM_CONDITIONAL([HAVE_VERSIONING], - [test "$libc_cv_ld_version_script_option" = "yes"]) - -AC_ARG_ENABLE([pie], - [AS_HELP_STRING([--disable-pie], - [disable position-independent executables (PIE)])], - [], [enable_pie=check]) -case "$enable_pie" in - no) ;; - yes|check) - dnl Check for -fpie/-pie support - AC_CACHE_CHECK([for -fpie/-pie support], - [pam_cv_pie], - [saved_CFLAGS="$CFLAGS" - saved_LDFLAGS="$LDFLAGS" - CFLAGS="$CFLAGS -fpie" - LDFLAGS="$LDFLAGS -pie" - AC_LINK_IFELSE([AC_LANG_PROGRAM(,)], - [pam_cv_pie=yes], - [pam_cv_pie=no]) - LDFLAGS="$saved_LDFLAGS" - CFLAGS="$saved_CFLAGS"]) - AS_IF([test "$pam_cv_pie" = yes], - [enable_pie=yes], - [AS_IF([test "$enable_pie" = yes], - [AC_MSG_FAILURE([requested -fpie/-pie support not found])], - [enable_pie=no])]) - ;; - *) AC_MSG_ERROR([bad value $enable_pie for --enable-pie option]) ;; -esac - -AS_IF([test "$enable_pie" = yes], - [PIE_CFLAGS="-fpie" - PIE_LDFLAGS="-pie"], - [PIE_CFLAGS= - PIE_LDFLAGS=]) - -EXE_CFLAGS="$PIE_CFLAGS" -EXE_LDFLAGS="$PIE_LDFLAGS $ZNOW_LDFLAGS" -AC_SUBST(EXE_CFLAGS) -AC_SUBST(EXE_LDFLAGS) - - -dnl -dnl options and defaults -dnl - -AC_ARG_ENABLE([doc], - AS_HELP_STRING([--disable-doc],[Do not generate or install documentation]), - WITH_DOC=$enableval, WITH_DOC=yes) -AM_CONDITIONAL([HAVE_DOC], [test "x$WITH_DOC" = "xyes"]) - -AC_ARG_ENABLE([prelude], - AS_HELP_STRING([--disable-prelude],[do not use prelude]), - WITH_PRELUDE=$enableval, WITH_PRELUDE=yes) -if test "$WITH_PRELUDE" = "yes" ; then - AM_PATH_LIBPRELUDE([0.9.0]) - if test "$LIBPRELUDE_CONFIG" != "no" ; then - LIBPRELUDE_CFLAGS="$LIBPRELUDE_CFLAGS -DPRELUDE=1" - fi -fi - -dnl lots of debugging information goes to /var/run/pam-debug.log -AC_ARG_ENABLE([debug], - AS_HELP_STRING([--enable-debug],[specify you are building with debugging on])) - -if test x"$enable_debug" = x"yes" ; then - AC_DEFINE([PAM_DEBUG],, - [lots of stuff gets written to /var/run/pam-debug.log]) -fi - -AC_ARG_ENABLE(docbook_rng, - AS_HELP_STRING([--enable-docbook-rng=FILE],[RNG file for checking XML files @<:@default=http://docbook.org/xml/5.0/rng/docbookxi.rng@:>@]), - DOCBOOK_RNG=$enableval, DOCBOOK_RNG=http://docbook.org/xml/5.0/rng/docbookxi.rng) -AC_SUBST(DOCBOOK_RNG) - -AC_ARG_ENABLE(html_stylesheet, - AS_HELP_STRING([--enable-html-stylesheet=FILE],[html stylesheet path @<:@default=http://docbook.sourceforge.net/release/xsl-ns/current/html/chunk.xsl@:>@]), - HTML_STYLESHEET=$enableval, HTML_STYLESHEET=http://docbook.sourceforge.net/release/xsl-ns/current/html/chunk.xsl) -AC_SUBST(HTML_STYLESHEET) - -AC_ARG_ENABLE(txt_stylesheet, - AS_HELP_STRING([--enable-txt-stylesheet=FILE],[text stylesheet path @<:@default=http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl@:>@]), - TXT_STYLESHEET=$enableval, TXT_STYLESHEET=http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl) - - -AC_SUBST(TXT_STYLESHEET) -# It has to be TXT_STYLESHEET otherwise a html tree will be generated while generating all README files. -sed "s+HTML_STYLESHEET+$TXT_STYLESHEET+g" <doc/custom-html.xsl.in >doc/custom-html.xsl - -AC_ARG_ENABLE(pdf_stylesheet, - AS_HELP_STRING([--enable-pdf-stylesheet=FILE],[pdf stylesheet path @<:@default=http://docbook.sourceforge.net/release/xsl-ns/current/fo/docbook.xsl@:>@]), - PDF_STYLESHEET=$enableval, PDF_STYLESHEET=http://docbook.sourceforge.net/release/xsl-ns/current/fo/docbook.xsl) -AC_SUBST(PDF_STYLESHEET) - -AC_ARG_ENABLE(man_stylesheet, - AS_HELP_STRING([--enable-man-stylesheet=FILE],[man stylesheet path @<:@default=http://docbook.sourceforge.net/release/xsl-ns/current/manpages/profile-docbook.xsl@:>@]), - MAN_STYLESHEET=$enableval, MAN_STYLESHEET=http://docbook.sourceforge.net/release/xsl-ns/current/manpages/profile-docbook.xsl) - - -AC_SUBST(MAN_STYLESHEET) -sed "s+MAN_STYLESHEET+$MAN_STYLESHEET+g" <doc/custom-man.xsl.in >doc/custom-man.xsl - -AC_ARG_ENABLE(securedir, - AS_HELP_STRING([--enable-securedir=DIR],[path to location of PAMs @<:@default=$libdir/security@:>@]), - SECUREDIR=$enableval, SECUREDIR=$libdir/security) -AC_SUBST(SECUREDIR) - -AC_ARG_ENABLE([isadir], - AS_HELP_STRING([--enable-isadir=DIR],[path to arch-specific module files @<:@default=../../(basename of $libdir)/security@:>@]), -ISA=$enableval, -ISA=../../`basename $libdir`/security) -unset mylibdirbase -AC_DEFINE_UNQUOTED(_PAM_ISA,"$ISA",[Define to the path, relative to SECUREDIR, where PAMs specific to this architecture can be found.]) -AC_MSG_RESULT([Defining \$ISA to "$ISA"]) - -AC_ARG_ENABLE(sconfigdir, - AS_HELP_STRING([--enable-sconfigdir=DIR],[path to module conf files @<:@default=$sysconfdir/security@:>@]), - SCONFIGDIR=$enableval, SCONFIGDIR=$sysconfdir/security) -AC_DEFINE_UNQUOTED([SCONFIGDIR], ["$SCONFIGDIR"], - [Directory for PAM modules system configuration files]) -AC_SUBST(SCONFIGDIR) - -AC_ARG_ENABLE(pamlocking, - AS_HELP_STRING([--enable-pamlocking],[configure libpam to observe a global authentication lock])) - -if test x"$enable_pamlocking" = "xyes"; then - AC_DEFINE([PAM_LOCKING],, - [libpam should observe a global authentication lock]) -fi - -AC_ARG_ENABLE(read-both-confs, - AS_HELP_STRING([--enable-read-both-confs],[read both /etc/pam.d and /etc/pam.conf files])) - -if test x"$enable_read_both_confs" = "xyes"; then - AC_DEFINE([PAM_READ_BOTH_CONFS],, - [read both /etc/pam.d and /etc/pam.conf files]) -fi - -AC_ARG_ENABLE([lckpwdf], - AS_HELP_STRING([--disable-lckpwdf],[do not use the lckpwdf function]), - WITH_LCKPWDF=$enableval, WITH_LCKPWDF=yes) -if test "$WITH_LCKPWDF" = "yes" ; then - AC_DEFINE([USE_LCKPWDF], 1, - [Define to 1 if the lckpwdf function should be used]) -fi - -AC_CHECK_HEADERS(paths.h) -AC_ARG_WITH(mailspool, -[ --with-mailspool path to mail spool directory - [default _PATH_MAILDIR if defined in paths.h, otherwise /var/spool/mail]], -with_mailspool=${withval}) -if test x$with_mailspool != x ; then - pam_mail_spool="\"$with_mailspool\"" -else - AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <paths.h> -#include <stdlib.h> -int main() { -#ifdef _PATH_MAILDIR -exit(0); -#else -exit(1); -#endif -}]])],[pam_mail_spool="_PATH_MAILDIR"],[pam_mail_spool="\"/var/spool/mail\""],[pam_mail_spool="\"/var/spool/mail\""]) -fi -AC_DEFINE_UNQUOTED(PAM_PATH_MAILDIR, $pam_mail_spool, - [Path where mails are stored]) - -AC_ARG_WITH(xauth, -[ --with-xauth additional path to check for xauth when it is called from pam_xauth - [added to the default of /usr/X11R6/bin/xauth, /usr/bin/xauth, /usr/bin/X11/xauth]], -pam_xauth_path=${withval}) -if test x$with_xauth = x ; then - AC_PATH_PROG(pam_xauth_path, xauth) -dnl There is no sense in adding the first default path - if test x$pam_xauth_path = x/usr/X11R6/bin/xauth ; then - unset pam_xauth_path - fi -fi - -if test x$pam_xauth_path != x ; then - AC_DEFINE_UNQUOTED(PAM_PATH_XAUTH, "$pam_xauth_path", - [Additional path of xauth executable]) -fi - -dnl Checks for the existence of libdl - in musl its a part of libc -saved_LIBS="$LIBS" -AC_SEARCH_LIBS([dlopen], [dl]) -LIBS="$saved_LIBS" -case "$ac_cv_search_dlopen" in - no) AC_MSG_FAILURE([failed to find dlopen]) ;; - -l*) LIBDL="$ac_cv_search_dlopen" ;; - *) LIBDL= ;; -esac -AC_SUBST(LIBDL) - -dnl Look for Linux Auditing library - see documentation -AC_ARG_ENABLE([audit], - AS_HELP_STRING([--disable-audit],[do not enable audit support]), - WITH_LIBAUDIT=$enableval, WITH_LIBAUDIT=yes) -if test x"$WITH_LIBAUDIT" != xno ; then - AC_CHECK_HEADER([libaudit.h], - [AC_CHECK_LIB(audit, audit_log_acct_message, LIBAUDIT=-laudit, LIBAUDIT="") - AC_CHECK_TYPE([struct audit_tty_status], - [HAVE_AUDIT_TTY_STATUS=yes], - [HAVE_AUDIT_TTY_STATUS=""], - [#include <libaudit.h>])] - ) - if test -n "$LIBAUDIT" && test "$ac_cv_header_libaudit_h" != "no" ; then - AC_DEFINE([HAVE_LIBAUDIT], 1, [Define to 1 if audit support should be compiled in.]) - fi - if test -n "$HAVE_AUDIT_TTY_STATUS" ; then - AC_CHECK_MEMBERS([struct audit_tty_status.log_passwd], [], - AC_MSG_WARN([audit_tty_status.log_passwd is not available. The log_passwd option is disabled.]), - [[#include <libaudit.h>]]) - fi -else - LIBAUDIT="" -fi -AC_SUBST(LIBAUDIT) - -AC_CHECK_HEADERS(crypt.h) - -BACKUP_LIBS=$LIBS -LIBCRYPT="" -PKG_CHECK_MODULES([CRYPT], [libcrypt], [ - CFLAGS="$CFLAGS $CRYPT_CFLAGS" - CPPFLAGS="$CPPFLAGS $CRYPT_CFLAGS" - LIBS="$LIBS $CRYPT_LIBS" - LIBCRYPT="$CRYPT_LIBS" -], [ - AC_SEARCH_LIBS([crypt_gensalt_rn],[crypt]) - case "$ac_cv_search_crypt_gensalt_rn" in - -l*) LIBCRYPT="$ac_cv_search_crypt_gensalt_rn" ;; - no) AC_SEARCH_LIBS([crypt_r],[crypt]) - case "$ac_cv_search_crypt_r" in - -l*) LIBCRYPT="$ac_cv_search_crypt_r" ;; - no ) AC_SEARCH_LIBS([crypt],[crypt]) - case "$ac_cv_search_crypt" in - -l*) LIBCRYPT="$ac_cv_search_crypt" ;; - esac ;; - esac ;; - esac -]) -AC_CHECK_FUNCS([crypt_r]) -LIBS=$BACKUP_LIBS -AC_SUBST(LIBCRYPT) - -AC_ARG_WITH([randomdev], AS_HELP_STRING([--with-randomdev=(<path>|yes|no)],[use specified random device instead of /dev/urandom or 'no' to disable]), opt_randomdev=$withval) -if test "$opt_randomdev" = yes || test -z "$opt_randomdev"; then - opt_randomdev="/dev/urandom" -elif test "$opt_randomdev" = no; then - opt_randomdev= -fi -if test -n "$opt_randomdev"; then - AC_DEFINE_UNQUOTED(PAM_PATH_RANDOMDEV, "$opt_randomdev", [Random device path.]) -fi - -dnl check for libdb or libndbm as fallback. Some libndbm compat -dnl libraries are unusable, so try libdb first. -AC_ARG_ENABLE([db], - AS_HELP_STRING([--enable-db=(db|ndbm|yes|no)],[Default behavior 'yes', which is to check for libdb first, followed by ndbm. Use 'no' to disable db support.]), - WITH_DB=$enableval, WITH_DB=yes) -AC_ARG_WITH([db-uniquename], - AS_HELP_STRING([--with-db-uniquename=extension],[Unique name for db libraries and functions.])) -if test x"$WITH_DB" != xno ; then - if test x"$WITH_DB" = xyes || test x"$WITH_DB" = xdb ; then - old_libs=$LIBS - LIBS="$LIBS -ldb$with_db_uniquename" - AC_CHECK_FUNCS([db_create$with_db_uniquename db_create dbm_store$with_db_uniquename dbm_store], - [LIBDB="-ldb$with_db_uniquename"; break]) - LIBS=$old_libs - fi - if test -z "$LIBDB" ; then - AC_CHECK_LIB([ndbm],[dbm_store], LIBDB="-lndbm", LIBDB="") - if test -n "$LIBDB" ; then - AC_CHECK_HEADERS(ndbm.h) - fi - else - AC_CHECK_HEADERS(db.h) - fi -fi -AC_SUBST(LIBDB) - -AC_ARG_ENABLE([nis], - AS_HELP_STRING([--disable-nis], [Disable building NIS/YP support in pam_unix])) - -AS_IF([test "x$enable_nis" != "xno"], [ - old_CFLAGS=$CFLAGS - old_CPPFLAGS=$CPPFLAGS - old_LIBS=$LIBS - - dnl if there's libtirpc available, prefer that over the system - dnl implementation. - PKG_CHECK_MODULES([TIRPC], [libtirpc], [ - CFLAGS="$CFLAGS $TIRPC_CFLAGS" - CPPFLAGS="$CPPFLAGS $TIRPC_CFLAGS" - LIBS="$LIBS $TIRPC_LIBS" - ], [:;]) - - PKG_CHECK_MODULES([NSL], [libnsl], [], - [AC_CHECK_LIB([nsl],[yp_match],[NSL_LIBS="-lnsl"],[NSL_LIBS=""])]) - CFLAGS="$CFLAGS $NSL_CFLAGS" - CPPFLAGS="$CPPFLAGS $NSL_CFLAGS" - LIBS="$LIBS $NSL_LIBS" - - AC_CHECK_FUNCS([yp_get_default_domain yperr_string yp_master yp_bind yp_match yp_unbind]) - AC_CHECK_FUNCS([getrpcport rpcb_getaddr]) - AC_CHECK_HEADER([rpc/rpc.h], , [enable_nis=no]) - AC_CHECK_HEADER([rpcsvc/ypclnt.h], , [enable_nis=no]) - AC_CHECK_HEADER([rpcsvc/yp_prot.h], , [enable_nis=no]) - AC_CHECK_DECLS([getrpcport], , , [ - #if HAVE_RPC_RPC_H - # include <rpc/rpc.h> - #endif - ]) - - CFLAGS="$old_CFLAGS" - CPPFLAGS="$old_CPPFLAGS" - LIBS="$old_LIBS" -]) - -AC_SUBST([NIS_CFLAGS]) -AC_SUBST([NIS_LIBS]) -AM_CONDITIONAL([HAVE_NIS], [test "x$enable_nis" != "xno"]) -if test "x$enable_nis" != "xno" ; then - AC_DEFINE([HAVE_NIS], 1, - [Defines that NIS should be used]) -fi - -AC_ARG_ENABLE([usergroups], - AS_HELP_STRING([--enable-usergroups], [sets the usergroups option default to enabled]), - [WITH_USERGROUPS=$enableval], WITH_USERGROUPS=no) -if test "$WITH_USERGROUPS" = "yes" ; then - AC_DEFINE([DEFAULT_USERGROUPS_SETTING], 1, - [Defines the value usergroups option should have by default]) -else - AC_DEFINE([DEFAULT_USERGROUPS_SETTING], 0, - [Defines the value usergroups option should have by default]) -fi - -AC_ARG_ENABLE([selinux], - AS_HELP_STRING([--disable-selinux],[do not use SELinux]), - WITH_SELINUX=$enableval, WITH_SELINUX=yes) -if test "$WITH_SELINUX" = "yes" ; then - AC_CHECK_LIB([selinux],[getfilecon], LIBSELINUX="-lselinux", LIBSELINUX="") -else - LIBSELINUX="" -fi -AC_SUBST(LIBSELINUX) -if test -n "$LIBSELINUX" ; then - AC_DEFINE([WITH_SELINUX], 1, [Defined if SE Linux support is compiled in]) - BACKUP_LIBS=$LIBS - LIBS="$LIBS $LIBSELINUX" - AC_CHECK_FUNCS(setkeycreatecon) - AC_CHECK_FUNCS(getseuser) - LIBS=$BACKUP_LIBS -fi - -LOGIND_CFLAGS= -SYSTEMD_LIBS= -AC_ARG_ENABLE([logind], - AS_HELP_STRING([--disable-logind], [Disable logind support]), - [WITH_LOGIND=$enableval], [WITH_LOGIND=yes]) -if test "$WITH_LOGIND" = "yes"; then - PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 254], [LOGIND_CFLAGS="-DUSE_LOGIND=1 $SYSTEMD_CFLAGS"], [:]) -fi -AC_SUBST([LOGIND_CFLAGS]) -AC_SUBST([SYSTEMD_LIBS]) - -ECONF_CFLAGS= -ECONF_LIBS= -AC_ARG_ENABLE([econf], - AS_HELP_STRING([--disable-econf], [do not use libeconf]), - [WITH_ECONF=$enableval], [WITH_ECONF=yes]) -if test "$WITH_ECONF" = "yes"; then - PKG_CHECK_MODULES([ECONF], [libeconf >= 0.5.0], [ECONF_CFLAGS="-DUSE_ECONF=1 $ECONF_CFLAGS"], [:]) -fi -AC_SUBST([ECONF_CFLAGS]) -AC_SUBST([ECONF_LIBS]) - -AC_ARG_ENABLE([vendordir], - AS_HELP_STRING([--enable-vendordir=DIR], [Directory for distribution provided configuration files]),,[]) -if test -n "$enable_vendordir"; then - AC_DEFINE_UNQUOTED([VENDORDIR], ["$enable_vendordir"], - [Directory for distribution provided configuration files]) - AC_DEFINE_UNQUOTED([VENDOR_SCONFIGDIR], ["$enable_vendordir/security"], - [Directory for PAM modules distribution provided configuration files]) - if test "$WITH_ECONF" = "yes" ; then - STRINGPARAM_VENDORDIR="--stringparam vendordir '$enable_vendordir'" - profileconditions="with_vendordir;with_vendordir_and_with_econf" - else - STRINGPARAM_VENDORDIR="--stringparam vendordir '$enable_vendordir'" - profileconditions="with_vendordir;with_vendordir_and_without_econf" - fi - VENDOR_SCONFIGDIR="$enable_vendordir/security" -else - profileconditions="without_vendordir" -fi -AC_SUBST([STRINGPARAM_VENDORDIR]) -AC_SUBST(VENDOR_SCONFIGDIR) -AM_CONDITIONAL([HAVE_VENDORDIR], [test -n "$enable_vendordir"]) - -AC_ARG_ENABLE([openssl], - AS_HELP_STRING([--enable-openssl],[use OpenSSL crypto libraries]), - [OPENSSL_ENABLED=$enableval], OPENSSL_ENABLED=no) -if test "$OPENSSL_ENABLED" = "yes" ; then - AC_CHECK_LIB([crypto], [EVP_MAC_CTX_new], - [CRYPTO_LIBS="-lcrypto" - use_openssl=yes - AC_DEFINE([WITH_OPENSSL], 1, [OpenSSL provides crypto algorithm for hmac]) - profileconditions+=";openssl_hmac"], - [CRYPTO_LIBS="" - profileconditions+=";no_openssl_hmac"]) -fi -AC_SUBST([CRYPTO_LIBS]) -AM_CONDITIONAL([COND_USE_OPENSSL], [test "x$use_openssl" = "xyes"]) - -STRINGPARAM_PROFILECONDITIONS="--stringparam profile.condition '$profileconditions'" -AC_SUBST([STRINGPARAM_PROFILECONDITIONS]) - -dnl Checks for header files. -AC_HEADER_DIRENT -AC_HEADER_STDC -AC_HEADER_SYS_WAIT -AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h net/if.h termio.h unistd.h sys/fsuid.h inittypes.h) - -dnl For module/pam_lastlog -AC_CHECK_HEADERS(lastlog.h utmp.h utmpx.h) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_BIGENDIAN -AC_C_CONST -AC_TYPE_UID_T -AC_TYPE_OFF_T -AC_TYPE_PID_T -AC_TYPE_SIZE_T -AC_HEADER_TIME -AC_STRUCT_TM - -dnl Checks for library functions. -AC_TYPE_GETGROUPS -AC_PROG_GCC_TRADITIONAL -AC_FUNC_MEMCMP -AC_FUNC_VPRINTF -AC_CHECK_FUNCS(fseeko getdomainname gethostname gettimeofday lckpwdf mkdir select) -AC_CHECK_FUNCS(strcspn strdup strspn strstr strtol uname) -AC_CHECK_FUNCS(getutent_r getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r getmntent_r) -AC_CHECK_FUNCS(getgrouplist getline getdelim) -AC_CHECK_FUNCS(inet_ntop inet_pton innetgr) -AC_CHECK_FUNCS(quotactl) -AC_CHECK_FUNCS(unshare) -AC_CHECK_FUNCS(explicit_bzero memset_explicit) -AC_CHECK_FUNCS([ruserok_af ruserok], [break]) - -AC_ARG_ENABLE([regenerate-docu], - AS_HELP_STRING([--disable-regenerate-docu],[Don't re-build documentation from XML sources]), - [enable_docu=$enableval], [enable_docu=yes]) -dnl -dnl Check for xsltproc -dnl -AC_PATH_PROG([XSLTPROC], [xsltproc]) -if test -z "$XSLTPROC"; then - enable_docu=no -fi -AC_PATH_PROG([XMLLINT], [xmllint],[/bin/true]) -dnl check for DocBook RNG and stylesheets in the local catalog. -JH_CHECK_XML_CATALOG([http://docbook.org/xml/5.0/rng/docbookxi.rng], - [DocBook XML RNG V5.0], [], enable_docu=no) -JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl], - [DocBook XSL Stylesheets], [], enable_docu=no) - -AC_PATH_PROG([BROWSER], [w3m]) -if test -n "$BROWSER"; then - BROWSER="$BROWSER -T text/html -dump" -else - AC_PATH_PROG([BROWSER], [elinks]) - if test -n "$BROWSER"; then - BROWSER="$BROWSER -no-numbering -no-references -dump" - else - enable_docu=no - fi -fi - -AC_PATH_PROG([FO2PDF], [fop]) - -AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test x$enable_docu != xno && test x$enable_doc != xno) -AM_CONDITIONAL(ENABLE_GENERATE_PDF, test -n "$FO2PDF") - - -AM_GNU_GETTEXT_VERSION([0.18.3]) -AM_GNU_GETTEXT([external]) -AC_CHECK_FUNCS(dngettext) - -AH_BOTTOM([#ifdef ENABLE_NLS -#include <libintl.h> -#define _(msgid) dgettext(PACKAGE, msgid) -#define N_(msgid) msgid -#else -#define _(msgid) (msgid) -#define N_(msgid) msgid -#endif /* ENABLE_NLS */]) - -dnl -dnl Check for the availability of the kernel key management facility -dnl - The pam_keyinit module only requires the syscalls, not the error codes -dnl -AC_CHECK_DECL(__NR_keyctl, [have_key_syscalls=1],[have_key_syscalls=0],[#include <sys/syscall.h>]) - -dnl -dnl Get values for default uid ranges in login.defs used in pam_usertype -dnl -AC_ARG_WITH([uidmin], AS_HELP_STRING([--with-uidmin=<number>],[default value for regular user min uid (1000)]), opt_uidmin=$withval) -test -n "$opt_uidmin" || - opt_uidmin=1000 -AC_DEFINE_UNQUOTED(PAM_USERTYPE_UIDMIN, $opt_uidmin, [Minimum regular user uid.]) - -AC_ARG_WITH([kernel-overflow-uid], AS_HELP_STRING([--with-kernel-overflow-uid=<number>],[kernel overflow uid, default (uint16_t)-2=65534]), opt_kerneloverflowuid=$withval) -test -n "$opt_kerneloverflowuid" || - opt_kerneloverflowuid=65534 -AC_DEFINE_UNQUOTED(PAM_USERTYPE_OVERFLOW_UID, $opt_kerneloverflowuid, [Kernel overflow uid.]) - -AC_ARG_WITH([systemdunitdir], -AS_HELP_STRING([--with-systemdunitdir=DIR], [path to systemd service directory]), - [], - [ - PKG_CHECK_EXISTS([systemd], - [with_systemdunitdir=$($PKG_CONFIG --variable=systemdunitdir systemd)], - [with_systemdunitdir='${prefix}/lib/systemd/system']) - ]) -AC_SUBST([systemdunitdir], [$with_systemdunitdir]) - -AC_ARG_ENABLE([unix], - [AS_HELP_STRING([--disable-unix], - [do not build pam_unix module])], - [], [enable_unix=yes]) -case "$enable_unix" in - yes|no) ;; - *) AC_MSG_ERROR([bad value $enable_unix for --enable-unix option]) ;; -esac - -AC_ARG_ENABLE([lastlog], - [AS_HELP_STRING([--enable-lastlog], - [do build pam_lastlog module])], - [], [enable_lastlog=no]) -case "$enable_lastlog" in - yes|check) - BACKUP_LIBS=$LIBS - LIBS="$LIBS -lutil" - AC_CHECK_FUNCS([logwtmp]) - LIBS=$BACKUP_LIBS - ;; - no) ;; - *) AC_MSG_ERROR([bad value $enable_lastlog for --enable-lastlog option]) ;; -esac - -AC_ARG_WITH([misc-conv-bufsize], -AS_HELP_STRING([--with-misc-conv-bufsize=<number>], - [Size of input buffer for libpam_misc's misc_conv() conversation function, default=4096]), - [], - [with_misc_conv_bufsize=4096]) -AC_DEFINE_UNQUOTED(PAM_MISC_CONV_BUFSIZE, $with_misc_conv_bufsize, [libpam_misc misc_conv() buffer size.]) - -AM_CONDITIONAL([COND_BUILD_PAM_KEYINIT], [test "$have_key_syscalls" = 1]) -AM_CONDITIONAL([COND_BUILD_PAM_LASTLOG], [test "$ac_cv_func_logwtmp" = yes]) -AM_CONDITIONAL([COND_BUILD_PAM_NAMESPACE], [test "$ac_cv_func_unshare" = yes]) -AM_CONDITIONAL([COND_BUILD_PAM_RHOSTS], [test "$ac_cv_func_ruserok_af" = yes || test "$ac_cv_func_ruserok" = yes]) -AM_CONDITIONAL([COND_BUILD_PAM_SELINUX], [test -n "$LIBSELINUX"]) -AM_CONDITIONAL([COND_BUILD_PAM_SEPERMIT], [test -n "$LIBSELINUX"]) -AM_CONDITIONAL([COND_BUILD_PAM_SETQUOTA], [test "$ac_cv_func_quotactl" = yes]) -AM_CONDITIONAL([COND_BUILD_PAM_TTY_AUDIT], [test "$HAVE_AUDIT_TTY_STATUS" = yes]) -AM_CONDITIONAL([COND_BUILD_PAM_UNIX], [test "$enable_unix" = yes]) -AM_CONDITIONAL([COND_BUILD_PAM_USERDB], [test -n "$LIBDB"]) - -dnl Files to be created from when we run configure -AC_CONFIG_FILES([Makefile libpam/Makefile libpamc/Makefile libpamc/test/Makefile \ - libpam_misc/Makefile conf/Makefile conf/pam_conv1/Makefile \ - libpam/pam.pc libpam_misc/pam_misc.pc libpamc/pamc.pc \ - po/Makefile.in \ - Make.xml.rules \ - modules/Makefile \ - modules/pam_access/Makefile \ - modules/pam_debug/Makefile modules/pam_deny/Makefile \ - modules/pam_echo/Makefile modules/pam_env/Makefile \ - modules/pam_faildelay/Makefile modules/pam_faillock/Makefile \ - modules/pam_filter/Makefile modules/pam_filter/upperLOWER/Makefile \ - modules/pam_ftp/Makefile modules/pam_group/Makefile \ - modules/pam_issue/Makefile modules/pam_keyinit/Makefile \ - modules/pam_lastlog/Makefile modules/pam_limits/Makefile \ - modules/pam_listfile/Makefile modules/pam_localuser/Makefile \ - modules/pam_loginuid/Makefile modules/pam_mail/Makefile \ - modules/pam_mkhomedir/Makefile modules/pam_motd/Makefile \ - modules/pam_namespace/Makefile \ - modules/pam_namespace/pam_namespace_helper modules/pam_namespace/pam_namespace.service \ - modules/pam_nologin/Makefile modules/pam_permit/Makefile \ - modules/pam_pwhistory/Makefile modules/pam_rhosts/Makefile \ - modules/pam_rootok/Makefile modules/pam_exec/Makefile \ - modules/pam_securetty/Makefile modules/pam_selinux/Makefile \ - modules/pam_sepermit/Makefile modules/pam_setquota/Makefile \ - modules/pam_shells/Makefile modules/pam_stress/Makefile \ - modules/pam_succeed_if/Makefile modules/pam_time/Makefile \ - modules/pam_timestamp/Makefile modules/pam_tty_audit/Makefile \ - modules/pam_umask/Makefile \ - modules/pam_unix/Makefile modules/pam_userdb/Makefile \ - modules/pam_usertype/Makefile \ - modules/pam_warn/Makefile modules/pam_wheel/Makefile \ - modules/pam_xauth/Makefile doc/Makefile doc/specs/Makefile \ - doc/man/Makefile doc/sag/Makefile doc/adg/Makefile \ - doc/mwg/Makefile examples/Makefile tests/Makefile \ - xtests/Makefile]) -AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index 3b772427..00000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# -# Copyright (c) 2005, 2006 Thorsten Kukuk <kukuk@suse.de> -# - -SUBDIRS = man specs sag adg mwg - -CLEANFILES = *~ - -dist_html_DATA = index.html - -EXTRA_DIST = custom-html.xsl.in custom-man.xsl.in - -####################################################### - -releasedocs: all - $(mkinstalldirs) $(top_builddir)/Linux-PAM-$(VERSION)/doc/specs - cp -av specs/draft-morgan-pam-current.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/specs/ - cp -av $(srcdir)/specs/rfc86.0.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/specs/ - make -C sag releasedocs - make -C adg releasedocs - make -C mwg releasedocs diff --git a/doc/Makefile.in b/doc/Makefile.in deleted file mode 100644 index 361d6df4..00000000 --- a/doc/Makefile.in +++ /dev/null @@ -1,782 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006 Thorsten Kukuk <kukuk@suse.de> -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = doc -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_html_DATA) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(htmldir)" -DATA = $(dist_html_DATA) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir distdir-am -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = man specs sag adg mwg -CLEANFILES = *~ -dist_html_DATA = index.html -EXTRA_DIST = custom-html.xsl.in custom-man.xsl.in -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-dist_htmlDATA: $(dist_html_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ - done - -uninstall-dist_htmlDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(htmldir)'; $(am__uninstall_files_from_dir) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(DATA) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(htmldir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-dist_htmlDATA - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-dist_htmlDATA - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic clean-libtool cscopelist-am ctags \ - ctags-am distclean distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am \ - install-dist_htmlDATA install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am uninstall-dist_htmlDATA - -.PRECIOUS: Makefile - - -####################################################### - -releasedocs: all - $(mkinstalldirs) $(top_builddir)/Linux-PAM-$(VERSION)/doc/specs - cp -av specs/draft-morgan-pam-current.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/specs/ - cp -av $(srcdir)/specs/rfc86.0.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/specs/ - make -C sag releasedocs - make -C adg releasedocs - make -C mwg releasedocs - -# 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: diff --git a/doc/adg/Linux-PAM_ADG.xml b/doc/adg/Linux-PAM_ADG.xml index 169e15cf..0f1957ec 100644 --- a/doc/adg/Linux-PAM_ADG.xml +++ b/doc/adg/Linux-PAM_ADG.xml @@ -524,11 +524,11 @@ cc -o application .... -lpam -lpam_misc <term>Authentication token</term> <listitem> <para> - Generally, this is a password. However, a user can authenticate - him/herself in a variety of ways. Updating the user's + Generally, this is a password. However, users can authenticate + themselves in a variety of ways. Updating the user's authentication token thus corresponds to <emphasis>refreshing</emphasis> the object they use to - authenticate themself with the system. The word password is + authenticate themselves with the system. The word password is avoided to keep open the possibility that the authentication involves a retinal scan or other non-textual mode of challenge/response. @@ -746,4 +746,4 @@ TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH </programlisting> </chapter> -</book>
\ No newline at end of file +</book> diff --git a/doc/adg/Makefile.am b/doc/adg/Makefile.am deleted file mode 100644 index 77abdb71..00000000 --- a/doc/adg/Makefile.am +++ /dev/null @@ -1,113 +0,0 @@ -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = Linux-PAM_ADG.fo *~ - -EXTRA_DIST = $(XMLS) - -XMLS = Linux-PAM_ADG.xml $(shell ls $(srcdir)/pam_*.xml) -DEP_XMLS = $(shell ls $(top_srcdir)/doc/man/pam_*.xml) - -if ENABLE_REGENERATE_MAN -MAINTAINERCLEANFILES = Linux-PAM_ADG.txt Linux-PAM_ADG.pdf html/*.html - -all: Linux-PAM_ADG.txt html/Linux-PAM_ADG.html Linux-PAM_ADG.pdf - -Linux-PAM_ADG.pdf: $(XMLS) $(DEP_XMLS) -if ENABLE_GENERATE_PDF - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam generate.toc "book toc" \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 3 --xinclude --nonet \ - $(PDF_STYLESHEET) $< > Linux-PAM_ADG.fo - $(FO2PDF) Linux-PAM_ADG.fo $@ -else - echo "No fo2pdf processor installed, skip PDF generation" -endif - -Linux-PAM_ADG.txt: $(XMLS) $(DEP_XMLS) - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam generate.toc "book toc" \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 3 --xinclude --nonet \ - $(TXT_STYLESHEET) $< | $(BROWSER) > $@ - -html/Linux-PAM_ADG.html: $(XMLS) $(DEP_XMLS) - @test -d html || mkdir -p html - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam base.dir html/ \ - --stringparam root.filename Linux-PAM_ADG \ - --stringparam use.id.as.filename 1 \ - --stringparam chunk.first.sections 1 \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 3 --xinclude --nonet \ - --stringparam chunker.output.encoding UTF-8 \ - $(HTML_STYLESHEET) $< - -distclean-local: - -rm -rf html Linux-PAM_ADG.txt Linux-PAM_ADG.pdf - -endif - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(docdir) - $(mkinstalldirs) $(DESTDIR)$(pdfdir) - $(mkinstalldirs) $(DESTDIR)$(htmldir) - if test -f html/Linux-PAM_ADG.html; then \ - $(install_sh_DATA) html/Linux-PAM_ADG.html html/adg-*.html \ - $(DESTDIR)$(htmldir)/; \ - elif test -f $(srcdir)/html/Linux-PAM_ADG.html; then \ - $(install_sh_DATA) $(srcdir)/html/Linux-PAM_ADG.html \ - $(srcdir)/html/adg-*.html \ - $(DESTDIR)$(htmldir)/; \ - fi - if test -f Linux-PAM_ADG.txt; then \ - $(install_sh_DATA) Linux-PAM_ADG.txt $(DESTDIR)$(docdir)/; \ - elif test -f $(srcdir)/Linux-PAM_ADG.txt; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_ADG.txt \ - $(DESTDIR)$(docdir)/; \ - fi - if test -f Linux-PAM_ADG.pdf; then \ - $(install_sh_DATA) Linux-PAM_ADG.pdf $(DESTDIR)$(pdfdir)/; \ - elif test -f $(srcdir)/Linux-PAM_ADG.pdf; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_ADG.pdf \ - $(DESTDIR)$(pdfdir)/; \ - fi - -uninstall-local: - -rm $(DESTDIR)$(htmldir)/Linux-PAM_ADG.html - -rm $(DESTDIR)$(htmldir)/adg-*.html - -rm $(DESTDIR)$(docdir)/Linux-PAM_ADG.txt - -rm $(DESTDIR)$(pdfdir)/Linux-PAM_ADG.pdf - -releasedocs: all - $(mkinstalldirs) $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/html - if test -f html/Linux-PAM_ADG.html; then \ - cp -ap html/Linux-PAM_ADG.html html/adg-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/html/; \ - elif test -f $(srcdir)/html/Linux-PAM_ADG.html; then \ - cp -ap $(srcdir)/html/Linux-PAM_ADG.html \ - $(srcdir)/html/adg-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/html/; \ - else exit 1; \ - fi - if test -f Linux-PAM_ADG.txt; then \ - cp -p Linux-PAM_ADG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/; \ - elif test -f $(srcdir)/Linux-PAM_ADG.txt; then \ - cp -p $(srcdir)/Linux-PAM_ADG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/; \ - else exit 1; \ - fi - if test -f Linux-PAM_ADG.pdf; then \ - cp -p Linux-PAM_ADG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/; \ - elif test -f $(srcdir)/Linux-PAM_ADG.pdf; then \ - cp -p $(srcdir)/Linux-PAM_ADG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/; \ - else exit 1; \ - fi diff --git a/doc/adg/Makefile.in b/doc/adg/Makefile.in deleted file mode 100644 index 3cb17bbf..00000000 --- a/doc/adg/Makefile.in +++ /dev/null @@ -1,633 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@thkukuk.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = doc/adg -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = Linux-PAM_ADG.fo *~ -EXTRA_DIST = $(XMLS) -XMLS = Linux-PAM_ADG.xml $(shell ls $(srcdir)/pam_*.xml) -DEP_XMLS = $(shell ls $(top_srcdir)/doc/man/pam_*.xml) -@ENABLE_REGENERATE_MAN_TRUE@MAINTAINERCLEANFILES = Linux-PAM_ADG.txt Linux-PAM_ADG.pdf html/*.html -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/adg/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/adg/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -@ENABLE_REGENERATE_MAN_FALSE@distclean-local: -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-local - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-data-local - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-local - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - cscopelist-am ctags-am distclean distclean-generic \ - distclean-libtool distclean-local distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-local install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am uninstall-local - -.PRECIOUS: Makefile - - -@ENABLE_REGENERATE_MAN_TRUE@all: Linux-PAM_ADG.txt html/Linux-PAM_ADG.html Linux-PAM_ADG.pdf - -@ENABLE_REGENERATE_MAN_TRUE@Linux-PAM_ADG.pdf: $(XMLS) $(DEP_XMLS) -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam generate.toc "book toc" \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 3 --xinclude --nonet \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(PDF_STYLESHEET) $< > Linux-PAM_ADG.fo -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(FO2PDF) Linux-PAM_ADG.fo $@ -@ENABLE_GENERATE_PDF_FALSE@@ENABLE_REGENERATE_MAN_TRUE@ echo "No fo2pdf processor installed, skip PDF generation" - -@ENABLE_REGENERATE_MAN_TRUE@Linux-PAM_ADG.txt: $(XMLS) $(DEP_XMLS) -@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam generate.toc "book toc" \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 3 --xinclude --nonet \ -@ENABLE_REGENERATE_MAN_TRUE@ $(TXT_STYLESHEET) $< | $(BROWSER) > $@ - -@ENABLE_REGENERATE_MAN_TRUE@html/Linux-PAM_ADG.html: $(XMLS) $(DEP_XMLS) -@ENABLE_REGENERATE_MAN_TRUE@ @test -d html || mkdir -p html -@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam base.dir html/ \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam root.filename Linux-PAM_ADG \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam use.id.as.filename 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam chunk.first.sections 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 3 --xinclude --nonet \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam chunker.output.encoding UTF-8 \ -@ENABLE_REGENERATE_MAN_TRUE@ $(HTML_STYLESHEET) $< - -@ENABLE_REGENERATE_MAN_TRUE@distclean-local: -@ENABLE_REGENERATE_MAN_TRUE@ -rm -rf html Linux-PAM_ADG.txt Linux-PAM_ADG.pdf - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(docdir) - $(mkinstalldirs) $(DESTDIR)$(pdfdir) - $(mkinstalldirs) $(DESTDIR)$(htmldir) - if test -f html/Linux-PAM_ADG.html; then \ - $(install_sh_DATA) html/Linux-PAM_ADG.html html/adg-*.html \ - $(DESTDIR)$(htmldir)/; \ - elif test -f $(srcdir)/html/Linux-PAM_ADG.html; then \ - $(install_sh_DATA) $(srcdir)/html/Linux-PAM_ADG.html \ - $(srcdir)/html/adg-*.html \ - $(DESTDIR)$(htmldir)/; \ - fi - if test -f Linux-PAM_ADG.txt; then \ - $(install_sh_DATA) Linux-PAM_ADG.txt $(DESTDIR)$(docdir)/; \ - elif test -f $(srcdir)/Linux-PAM_ADG.txt; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_ADG.txt \ - $(DESTDIR)$(docdir)/; \ - fi - if test -f Linux-PAM_ADG.pdf; then \ - $(install_sh_DATA) Linux-PAM_ADG.pdf $(DESTDIR)$(pdfdir)/; \ - elif test -f $(srcdir)/Linux-PAM_ADG.pdf; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_ADG.pdf \ - $(DESTDIR)$(pdfdir)/; \ - fi - -uninstall-local: - -rm $(DESTDIR)$(htmldir)/Linux-PAM_ADG.html - -rm $(DESTDIR)$(htmldir)/adg-*.html - -rm $(DESTDIR)$(docdir)/Linux-PAM_ADG.txt - -rm $(DESTDIR)$(pdfdir)/Linux-PAM_ADG.pdf - -releasedocs: all - $(mkinstalldirs) $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/html - if test -f html/Linux-PAM_ADG.html; then \ - cp -ap html/Linux-PAM_ADG.html html/adg-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/html/; \ - elif test -f $(srcdir)/html/Linux-PAM_ADG.html; then \ - cp -ap $(srcdir)/html/Linux-PAM_ADG.html \ - $(srcdir)/html/adg-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/html/; \ - else exit 1; \ - fi - if test -f Linux-PAM_ADG.txt; then \ - cp -p Linux-PAM_ADG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/; \ - elif test -f $(srcdir)/Linux-PAM_ADG.txt; then \ - cp -p $(srcdir)/Linux-PAM_ADG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/; \ - else exit 1; \ - fi - if test -f Linux-PAM_ADG.pdf; then \ - cp -p Linux-PAM_ADG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/; \ - elif test -f $(srcdir)/Linux-PAM_ADG.pdf; then \ - cp -p $(srcdir)/Linux-PAM_ADG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/adg/; \ - else exit 1; \ - fi - -# 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: diff --git a/doc/adg/html/meson.build b/doc/adg/html/meson.build new file mode 120000 index 00000000..d6d90eaa --- /dev/null +++ b/doc/adg/html/meson.build @@ -0,0 +1 @@ +../../guide-html-meson.build
\ No newline at end of file diff --git a/doc/adg/meson.build b/doc/adg/meson.build new file mode 120000 index 00000000..2e19d830 --- /dev/null +++ b/doc/adg/meson.build @@ -0,0 +1 @@ +../guide-meson.build
\ No newline at end of file diff --git a/doc/custom-html.xsl.in b/doc/custom-html.xsl.in deleted file mode 100644 index b2eaf150..00000000 --- a/doc/custom-html.xsl.in +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version='1.0'?> <!--*-nxml-*--> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:ss="http://docbook.sf.net/xmlns/string.subst/1.0" - xmlns:exsl="http://exslt.org/common" version="1.0"> - - <xsl:import href="HTML_STYLESHEET"/> - <xsl:param name="vendordir"/> - - <xsl:template match="filename"> - <xsl:variable name="replacements"> - <ss:substitution oldstring="%vendordir%" newstring="{$vendordir}" /> - </xsl:variable> - <xsl:call-template name="apply-string-subst-map"> - <xsl:with-param name="content" select="."/> - <xsl:with-param name="map.contents" select="exsl:node-set($replacements)/*" /> - </xsl:call-template> - </xsl:template> -</xsl:stylesheet> diff --git a/doc/guide-html-meson.build b/doc/guide-html-meson.build new file mode 100644 index 00000000..e5c90812 --- /dev/null +++ b/doc/guide-html-meson.build @@ -0,0 +1,32 @@ +# -*- mode: meson -*- + +html = custom_target( + input: xml, + output: name + '.html', + command: [ + prog_xsltproc, + '--nonet', + '--xinclude', + '--stringparam', 'base.dir', meson.current_build_dir(), + '--stringparam', 'root.filename', name, + '--stringparam', 'use.id.as.filename', '1', + '--stringparam', 'chunk.first.sections', '1', + '--stringparam', 'section.autolabel', '1', + '--stringparam', 'section.label.includes.component.label', '1', + '--stringparam', 'toc.max.depth', toc_max_depth, + '--stringparam', 'chunker.output.encoding', 'UTF-8', + html_stylesheet, + '@INPUT@', + ], + install: true, + install_dir: htmldir, + install_tag: 'doc', +) + +meson.add_install_script( + install_html, + meson.current_build_dir(), + htmldir, + html, + install_tag: 'doc', +) diff --git a/doc/guide-meson.build b/doc/guide-meson.build new file mode 100644 index 00000000..e29d16e2 --- /dev/null +++ b/doc/guide-meson.build @@ -0,0 +1,90 @@ +# -*- mode: meson -*- + +guide = fs.name(meson.current_source_dir()).to_upper() +name = 'Linux-PAM_' + guide + +xml = files(name + '.xml') + +if guide == 'SAG' + toc_max_depth = '2' +else + toc_max_depth = '3' +endif + + +run_command( + [prog_xmllint, + '--noent', + '--nonet', + '--noout', + '--xinclude', + '--relaxng', docbook_rng, + xml], + check: true, +) + + +html = custom_target( + input: xml, + output: name + '.html', + command: [ + prog_xsltproc, + '-o', '@OUTPUT@', + '--nonet', + '--xinclude', + '--stringparam', 'generate.toc', 'book toc', + '--stringparam', 'section.autolabel', '1', + '--stringparam', 'section.label.includes.component.label', '1', + '--stringparam', 'toc.max.depth', toc_max_depth, + txt_stylesheet, + '@INPUT@', + ], +) + +custom_target( + input: html, + output: name + '.txt', + command: [ + redir_exe, + '@INPUT@', + '@OUTPUT@', + browser, + ], + install: true, + install_dir: docdir, + install_tag: 'doc', +) + + +fop = custom_target( + input: xml, + output: name + '.fop', + command: [ + prog_xsltproc, + '-o', '@OUTPUT@', + '--nonet', + '--xinclude', + '--stringparam', 'generate.toc', 'book toc', + '--stringparam', 'section.autolabel', '1', + '--stringparam', 'section.label.includes.component.label', '1', + '--stringparam', 'toc.max.depth', toc_max_depth, + pdf_stylesheet, + '@INPUT@', + ], +) + +custom_target( + input: fop, + output: name + '.pdf', + command: [ + prog_fop, + '@INPUT@', + '@OUTPUT@', + ], + install: true, + install_dir: pdfdir, + install_tag: 'doc', +) + + +subdir('html') diff --git a/doc/install-html.sh b/doc/install-html.sh new file mode 100755 index 00000000..884fc27c --- /dev/null +++ b/doc/install-html.sh @@ -0,0 +1,7 @@ +#!/bin/sh -eu + +cd "$1"; shift +MESON_INSTALL_DESTDIR=${MESON_INSTALL_DESTDIR_PREFIX%$MESON_INSTALL_PREFIX} +dest="$MESON_INSTALL_DESTDIR$1"; shift + +install -p -m644 -t "$dest" -- *.html diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am deleted file mode 100644 index aec365cf..00000000 --- a/doc/man/Makefile.am +++ /dev/null @@ -1,63 +0,0 @@ -# -# Copyright (c) 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) - -EXTRA_DIST = $(MANS) $(XMLS) - -man_MANS = pam.3 PAM.8 pam.8 pam.conf.5 pam.d.5 \ - pam_acct_mgmt.3 pam_authenticate.3 \ - pam_chauthtok.3 pam_close_session.3 pam_conv.3 \ - pam_end.3 pam_error.3 \ - pam_fail_delay.3 pam_xauth_data.3 \ - pam_get_authtok.3 pam_get_authtok_noverify.3 pam_get_authtok_verify.3 \ - pam_get_data.3 pam_get_item.3 pam_get_user.3 \ - pam_getenv.3 pam_getenvlist.3 \ - pam_info.3 \ - pam_open_session.3 \ - pam_prompt.3 pam_putenv.3 \ - pam_set_data.3 pam_set_item.3 pam_syslog.3 \ - pam_setcred.3 pam_sm_acct_mgmt.3 pam_sm_authenticate.3 \ - pam_sm_close_session.3 pam_sm_open_session.3 pam_sm_setcred.3 \ - pam_sm_chauthtok.3 pam_start.3 pam_strerror.3 \ - pam_verror.3 pam_vinfo.3 pam_vprompt.3 pam_vsyslog.3 \ - misc_conv.3 pam_misc_paste_env.3 pam_misc_drop_env.3 \ - pam_misc_setenv.3 -XMLS = pam.3.xml pam.8.xml pam.conf.5.xml \ - pam_acct_mgmt.3.xml pam_authenticate.3.xml \ - pam_chauthtok.3.xml pam_close_session.3.xml pam_conv.3.xml \ - pam_end.3.xml pam_error.3.xml pam_fail_delay.3.xml \ - pam_get_authtok.3.xml pam_get_data.3.xml pam_get_item.3.xml \ - pam_get_user.3.xml pam_getenv.3.xml pam_getenvlist.3.xml \ - pam_info.3.xml pam_misc_drop_env.3.xml pam_misc_paste_env.3.xml \ - pam_misc_setenv.3.xml pam_open_session.3.xml \ - pam_prompt.3.xml pam_putenv.3.xml \ - pam_set_data.3.xml pam_set_item.3.xml pam_setcred.3.xml \ - pam_sm_acct_mgmt.3.xml pam_sm_authenticate.3.xml \ - pam_sm_chauthtok.3.xml pam_sm_close_session.3.xml \ - pam_sm_open_session.3.xml pam_sm_setcred.3.xml \ - pam_start.3.xml pam_strerror.3.xml \ - pam_syslog.3.xml pam_xauth_data.3.xml \ - pam_item_types_std.inc.xml pam_item_types_ext.inc.xml \ - pam.conf-desc.xml pam.conf-dir.xml pam.conf-syntax.xml \ - misc_conv.3.xml - - -if ENABLE_REGENERATE_MAN -PAM.8: pam.8 -pam_get_authtok_noverify.3: pam_get_authtok.3 -pam_get_authtok_verify.3: pam_get_authtok.3 -pam_verror.3: pam_error.3 -pam_vinfo.3: pam_info.3 -pam_vprompt.3: pam_prompt.3 -pam_vsyslog.3: pam_syslog.3 -pam.d.5: pam.conf.5 - test -f $(srcdir)/pam\\.d.5 && mv $(srcdir)/pam\\.d.5 $(srcdir)/pam.d.5 ||: - -pam_get_item.3: pam_item_types_std.inc.xml pam_item_types_ext.inc.xml -pam_set_data.3: pam_item_types_std.inc.xml pam_item_types_ext.inc.xml -pam.conf.5: pam.conf-desc.xml pam.conf-dir.xml pam.conf-syntax.xml --include $(top_srcdir)/Make.xml.rules -endif diff --git a/doc/man/Makefile.in b/doc/man/Makefile.in deleted file mode 100644 index d18dc7d4..00000000 --- a/doc/man/Makefile.in +++ /dev/null @@ -1,757 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = doc/man -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -man3dir = $(mandir)/man3 -am__installdirs = "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" \ - "$(DESTDIR)$(man8dir)" -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(man_MANS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) -EXTRA_DIST = $(MANS) $(XMLS) -man_MANS = pam.3 PAM.8 pam.8 pam.conf.5 pam.d.5 \ - pam_acct_mgmt.3 pam_authenticate.3 \ - pam_chauthtok.3 pam_close_session.3 pam_conv.3 \ - pam_end.3 pam_error.3 \ - pam_fail_delay.3 pam_xauth_data.3 \ - pam_get_authtok.3 pam_get_authtok_noverify.3 pam_get_authtok_verify.3 \ - pam_get_data.3 pam_get_item.3 pam_get_user.3 \ - pam_getenv.3 pam_getenvlist.3 \ - pam_info.3 \ - pam_open_session.3 \ - pam_prompt.3 pam_putenv.3 \ - pam_set_data.3 pam_set_item.3 pam_syslog.3 \ - pam_setcred.3 pam_sm_acct_mgmt.3 pam_sm_authenticate.3 \ - pam_sm_close_session.3 pam_sm_open_session.3 pam_sm_setcred.3 \ - pam_sm_chauthtok.3 pam_start.3 pam_strerror.3 \ - pam_verror.3 pam_vinfo.3 pam_vprompt.3 pam_vsyslog.3 \ - misc_conv.3 pam_misc_paste_env.3 pam_misc_drop_env.3 \ - pam_misc_setenv.3 - -XMLS = pam.3.xml pam.8.xml pam.conf.5.xml \ - pam_acct_mgmt.3.xml pam_authenticate.3.xml \ - pam_chauthtok.3.xml pam_close_session.3.xml pam_conv.3.xml \ - pam_end.3.xml pam_error.3.xml pam_fail_delay.3.xml \ - pam_get_authtok.3.xml pam_get_data.3.xml pam_get_item.3.xml \ - pam_get_user.3.xml pam_getenv.3.xml pam_getenvlist.3.xml \ - pam_info.3.xml pam_misc_drop_env.3.xml pam_misc_paste_env.3.xml \ - pam_misc_setenv.3.xml pam_open_session.3.xml \ - pam_prompt.3.xml pam_putenv.3.xml \ - pam_set_data.3.xml pam_set_item.3.xml pam_setcred.3.xml \ - pam_sm_acct_mgmt.3.xml pam_sm_authenticate.3.xml \ - pam_sm_chauthtok.3.xml pam_sm_close_session.3.xml \ - pam_sm_open_session.3.xml pam_sm_setcred.3.xml \ - pam_start.3.xml pam_strerror.3.xml \ - pam_syslog.3.xml pam_xauth_data.3.xml \ - pam_item_types_std.inc.xml pam_item_types_ext.inc.xml \ - pam.conf-desc.xml pam.conf-dir.xml pam.conf-syntax.xml \ - misc_conv.3.xml - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/man/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/man/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man3: $(man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(man_MANS)'; \ - test -n "$(man3dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.3[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ - done; } - -uninstall-man3: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man3dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.3[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) -install-man5: $(man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(MANS) -installdirs: - for dir in "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man3 install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man - -uninstall-man: uninstall-man3 uninstall-man5 uninstall-man8 - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - cscopelist-am ctags-am distclean distclean-generic \ - distclean-libtool distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man3 install-man5 install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am uninstall-man uninstall-man3 uninstall-man5 \ - uninstall-man8 - -.PRECIOUS: Makefile - - -@ENABLE_REGENERATE_MAN_TRUE@PAM.8: pam.8 -@ENABLE_REGENERATE_MAN_TRUE@pam_get_authtok_noverify.3: pam_get_authtok.3 -@ENABLE_REGENERATE_MAN_TRUE@pam_get_authtok_verify.3: pam_get_authtok.3 -@ENABLE_REGENERATE_MAN_TRUE@pam_verror.3: pam_error.3 -@ENABLE_REGENERATE_MAN_TRUE@pam_vinfo.3: pam_info.3 -@ENABLE_REGENERATE_MAN_TRUE@pam_vprompt.3: pam_prompt.3 -@ENABLE_REGENERATE_MAN_TRUE@pam_vsyslog.3: pam_syslog.3 -@ENABLE_REGENERATE_MAN_TRUE@pam.d.5: pam.conf.5 -@ENABLE_REGENERATE_MAN_TRUE@ test -f $(srcdir)/pam\\.d.5 && mv $(srcdir)/pam\\.d.5 $(srcdir)/pam.d.5 ||: - -@ENABLE_REGENERATE_MAN_TRUE@pam_get_item.3: pam_item_types_std.inc.xml pam_item_types_ext.inc.xml -@ENABLE_REGENERATE_MAN_TRUE@pam_set_data.3: pam_item_types_std.inc.xml pam_item_types_ext.inc.xml -@ENABLE_REGENERATE_MAN_TRUE@pam.conf.5: pam.conf-desc.xml pam.conf-dir.xml pam.conf-syntax.xml -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/doc/man/PAM.8 b/doc/man/PAM.8 deleted file mode 100644 index 57fefc56..00000000 --- a/doc/man/PAM.8 +++ /dev/null @@ -1,138 +0,0 @@ -'\" t -.\" Title: pam -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -PAM, pam \- Pluggable Authentication Modules for Linux -.SH "DESCRIPTION" -.PP -This manual is intended to offer a quick introduction to -\fBLinux\-PAM\fR\&. For more information the reader is directed to the -\fBLinux\-PAM system administrators\*(Aq guide\fR\&. -.PP -\fBLinux\-PAM\fR -is a system of libraries that handle the authentication tasks of applications (services) on the system\&. The library provides a stable general interface (Application Programming Interface \- API) that privilege granting programs (such as -\fBlogin\fR(1) -and -\fBsu\fR(1)) defer to to perform standard authentication tasks\&. -.PP -The principal feature of the PAM approach is that the nature of the authentication is dynamically configurable\&. In other words, the system administrator is free to choose how individual service\-providing applications will authenticate users\&. This dynamic configuration is set by the contents of the single -\fBLinux\-PAM\fR -configuration file -/etc/pam\&.conf\&. Alternatively and preferably, the configuration can be set by individual configuration files located in a -pam\&.d -directory\&. The presence of this directory will cause -\fBLinux\-PAM\fR -to -\fIignore\fR -/etc/pam\&.conf\&. -.PP -Vendor\-supplied PAM configuration files might be installed in the system directory -/usr/lib/pam\&.d/ -or a configurable vendor specific directory instead of the machine configuration directory -/etc/pam\&.d/\&. If no machine configuration file is found, the vendor\-supplied file is used\&. All files in -/etc/pam\&.d/ -override files with the same name in other directories\&. -.PP -From the point of view of the system administrator, for whom this manual is provided, it is not of primary importance to understand the internal behavior of the -\fBLinux\-PAM\fR -library\&. The important point to recognize is that the configuration file(s) -\fIdefine\fR -the connection between applications -(\fBservices\fR) and the pluggable authentication modules -(\fBPAM\fRs) that perform the actual authentication tasks\&. -.PP -\fBLinux\-PAM\fR -separates the tasks of -\fIauthentication\fR -into four independent management groups: -\fBaccount\fR -management; -\fBauth\fRentication management; -\fBpassword\fR -management; and -\fBsession\fR -management\&. (We highlight the abbreviations used for these groups in the configuration file\&.) -.PP -Simply put, these groups take care of different aspects of a typical user\*(Aqs request for a restricted service: -.PP -\fBaccount\fR -\- provide account verification types of service: has the user\*(Aqs password expired?; is this user permitted access to the requested service? -.PP -\fBauth\fRentication \- authenticate a user and set up user credentials\&. Typically this is via some challenge\-response request that the user must satisfy: if you are who you claim to be please enter your password\&. Not all authentications are of this type, there exist hardware based authentication schemes (such as the use of smart\-cards and biometric devices), with suitable modules, these may be substituted seamlessly for more standard approaches to authentication \- such is the flexibility of -\fBLinux\-PAM\fR\&. -.PP -\fBpassword\fR -\- this group\*(Aqs responsibility is the task of updating authentication mechanisms\&. Typically, such services are strongly coupled to those of the -\fBauth\fR -group\&. Some authentication mechanisms lend themselves well to being updated with such a function\&. Standard UN*X password\-based access is the obvious example: please enter a replacement password\&. -.PP -\fBsession\fR -\- this group of tasks cover things that should be done prior to a service being given and after it is withdrawn\&. Such tasks include the maintenance of audit trails and the mounting of the user\*(Aqs home directory\&. The -\fBsession\fR -management group is important as it provides both an opening and closing hook for modules to affect the services available to a user\&. -.SH "FILES" -.PP -/etc/pam\&.conf -.RS 4 -the configuration file -.RE -.PP -/etc/pam\&.d -.RS 4 -the -\fBLinux\-PAM\fR -configuration directory\&. Generally, if this directory is present, the -/etc/pam\&.conf -file is ignored\&. -.RE -.PP -/usr/lib/pam\&.d -.RS 4 -the -\fBLinux\-PAM\fR -vendor configuration directory\&. Files in -/etc/pam\&.d -override files with the same name in this directory\&. -.RE -.SH "ERRORS" -.PP -Typically errors generated by the -\fBLinux\-PAM\fR -system of libraries, will be written to -\fBsyslog\fR(3)\&. -.SH "CONFORMING TO" -.PP -DCE\-RFC 86\&.0, October 1995\&. Contains additional features, but remains backwardly compatible with this RFC\&. -.SH "SEE ALSO" -.PP -\fBpam\fR(3), -\fBpam_authenticate\fR(3), -\fBpam_sm_setcred\fR(3), -\fBpam_strerror\fR(3), -\fBPAM\fR(8) diff --git a/doc/man/meson.build b/doc/man/meson.build new file mode 100644 index 00000000..b90b1578 --- /dev/null +++ b/doc/man/meson.build @@ -0,0 +1,67 @@ +foreach man: [['misc_conv.3', []], + ['pam.3', []], + ['pam_acct_mgmt.3', []], + ['pam_authenticate.3', []], + ['pam_chauthtok.3', []], + ['pam_close_session.3', []], + ['pam_conv.3', []], + ['pam_end.3', []], + ['pam_error.3', ['pam_verror.3']], + ['pam_fail_delay.3', []], + ['pam_get_authtok.3', ['pam_get_authtok_noverify.3', 'pam_get_authtok_verify.3']], + ['pam_get_data.3', []], + ['pam_get_item.3', []], + ['pam_get_user.3', []], + ['pam_getenv.3', []], + ['pam_getenvlist.3', []], + ['pam_info.3', ['pam_vinfo.3']], + ['pam_misc_drop_env.3', []], + ['pam_misc_paste_env.3', []], + ['pam_misc_setenv.3', []], + ['pam_open_session.3', []], + ['pam_prompt.3', ['pam_vprompt.3']], + ['pam_putenv.3', []], + ['pam_set_data.3', []], + ['pam_set_item.3', []], + ['pam_setcred.3', []], + ['pam_sm_acct_mgmt.3', []], + ['pam_sm_authenticate.3', []], + ['pam_sm_chauthtok.3', []], + ['pam_sm_close_session.3', []], + ['pam_sm_open_session.3', []], + ['pam_sm_setcred.3', []], + ['pam_start.3', []], + ['pam_strerror.3', []], + ['pam_syslog.3', ['pam_vsyslog.3']], + ['pam_xauth_data.3', []], + ['pam.conf.5', ['pam.d.5']], + ['pam.8', ['PAM.8']], + ] + xml = man[0] + '.xml' + + run_command([prog_xmllint, + '--nonet', + '--noout', + '--xinclude', + '--relaxng', docbook_rng, + xml], + check: true) + + custom_target(man[0], + input: xml, + output: man, + depends: custom_man_xsl, + command: [prog_xsltproc, + '-o', '@OUTPUT0@', + '--nonet', + '--xinclude', + '--path', meson.current_source_dir(), + stringparam_vendordir, + stringparam_profileconditions, + custom_man_xsl, + '@INPUT@'], + install: true, + install_dir: mandir / 'man' + man[0].substring(-1), + install_tag: 'man', + ) +endforeach diff --git a/doc/man/misc_conv.3 b/doc/man/misc_conv.3 deleted file mode 100644 index 62656642..00000000 --- a/doc/man/misc_conv.3 +++ /dev/null @@ -1,127 +0,0 @@ -'\" t -.\" Title: misc_conv -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "MISC_CONV" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -misc_conv \- text based conversation function -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_misc\&.h> -.fi -.ft -.HP \w'int\ misc_conv('u -.BI "int misc_conv(int\ " "num_msg" ", const\ struct\ pam_message\ **" "msgm" ", struct\ pam_response\ **" "response" ", void\ *" "appdata_ptr" ");" -.SH "DESCRIPTION" -.PP -The -\fBmisc_conv\fR -function is part of -\fBlibpam_misc\fR -and not of the standard -\fBlibpam\fR -library\&. This function will prompt the user with the appropriate comments and obtain the appropriate inputs as directed by authentication modules\&. -.PP -In addition to simply slotting into the appropriate -\fBpam_conv\fR(3), this function provides some time\-out facilities\&. The function exports five variables that can be used by an application programmer to limit the amount of time this conversation function will spend waiting for the user to type something\&. The five variables are as follows: -.PP -time_t pam_misc_conv_warn_time; -.RS 4 -This variable contains the -\fItime\fR -(as returned by -\fBtime\fR(2)) that the user should be first warned that the clock is ticking\&. By default it has the value -0, which indicates that no such warning will be given\&. The application may set its value to sometime in the future, but this should be done prior to passing control to the -\fILinux\-PAM\fR -library\&. -.RE -.PP -const char *pam_misc_conv_warn_line; -.RS 4 -Used in conjunction with -\fIpam_misc_conv_warn_time\fR, this variable is a pointer to the string that will be displayed when it becomes time to warn the user that the timeout is approaching\&. Its default value is a translated version of -\(lq\&.\&.\&.Time is running out\&.\&.\&.\(rq, but this can be changed by the application prior to passing control to -\fILinux\-PAM\fR\&. -.RE -.PP -time_t pam_misc_conv_die_time; -.RS 4 -This variable contains the -\fItime\fR -(as returned by -\fBtime\fR(2)) that the will time out\&. By default it has the value -0, which indicates that the conversation function will not timeout\&. The application may set its value to sometime in the future, but this should be done prior to passing control to the -\fILinux\-PAM\fR -library\&. -.RE -.PP -const char *pam_misc_conv_die_line; -.RS 4 -Used in conjunction with -\fIpam_misc_conv_die_time\fR, this variable is a pointer to the string that will be displayed when the conversation times out\&. Its default value is a translated version of -\(lq\&.\&.\&.Sorry, your time is up!\(rq, but this can be changed by the application prior to passing control to -\fILinux\-PAM\fR\&. -.RE -.PP -int pam_misc_conv_died; -.RS 4 -Following a return from the -\fILinux\-PAM\fR -library, the value of this variable indicates whether the conversation has timed out\&. A value of -1 -indicates the time\-out occurred\&. -.RE -.PP -The following two function pointers are available for supporting binary prompts in the conversation function\&. They are optimized for the current incarnation of the -\fBlibpamc\fR -library and are subject to change\&. -.PP -int (*pam_binary_handler_fn)(void *appdata, pamc_bp_t *prompt_p); -.RS 4 -This function pointer is initialized to -NULL -but can be filled with a function that provides machine\-machine (hidden) message exchange\&. It is intended for use with hidden authentication protocols such as RSA or Diffie\-Hellman key exchanges\&. (This is still under development\&.) -.RE -.PP -int (*pam_binary_handler_free)(void *appdata, pamc_bp_t *delete_me); -.RS 4 -This function pointer is initialized to -\fBPAM_BP_RENEW(delete_me, 0, 0)\fR, but can be redefined as desired by the application\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_conv\fR(3), -\fBpam\fR(8) -.SH "STANDARDS" -.PP -The -\fBmisc_conv\fR -function is part of the -\fBlibpam_misc\fR -Library and not defined in any standard\&. diff --git a/doc/man/pam.3 b/doc/man/pam.3 deleted file mode 100644 index e103ceab..00000000 --- a/doc/man/pam.3 +++ /dev/null @@ -1,302 +0,0 @@ -'\" t -.\" Title: pam -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam \- Pluggable Authentication Modules Library -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.sp -.ft B -.nf -#include <security/pam_ext\&.h> -.fi -.ft -.SH "DESCRIPTION" -.PP -\fBPAM\fR -is a system of libraries that handle the authentication tasks of applications (services) on the system\&. The library provides a stable general interface (Application Programming Interface \- API) that privilege granting programs (such as -\fBlogin\fR(1) -and -\fBsu\fR(1)) defer to to perform standard authentication tasks\&. -.SS "Initialization and Cleanup" -.PP -The -\fBpam_start\fR(3) -function creates the PAM context and initiates the PAM transaction\&. It is the first of the PAM functions that needs to be called by an application\&. The transaction state is contained entirely within the structure identified by this handle, so it is possible to have multiple transactions in parallel\&. But it is not possible to use the same handle for different transactions, a new one is needed for every new context\&. -.PP -The -\fBpam_end\fR(3) -function terminates the PAM transaction and is the last function an application should call in the PAM context\&. Upon return the handle pamh is no longer valid and all memory associated with it will be invalid\&. It can be called at any time to terminate a PAM transaction\&. -.SS "Authentication" -.PP -The -\fBpam_authenticate\fR(3) -function is used to authenticate the user\&. The user is required to provide an authentication token depending upon the authentication service, usually this is a password, but could also be a finger print\&. -.PP -The -\fBpam_setcred\fR(3) -function manages the user\*(Aqs credentials\&. -.SS "Account Management" -.PP -The -\fBpam_acct_mgmt\fR(3) -function is used to determine if the user\*(Aqs account is valid\&. It checks for authentication token and account expiration and verifies access restrictions\&. It is typically called after the user has been authenticated\&. -.SS "Password Management" -.PP -The -\fBpam_chauthtok\fR(3) -function is used to change the authentication token for a given user on request or because the token has expired\&. -.SS "Session Management" -.PP -The -\fBpam_open_session\fR(3) -function sets up a user session for a previously successful authenticated user\&. The session should later be terminated with a call to -\fBpam_close_session\fR(3)\&. -.SS "Conversation" -.PP -The PAM library uses an application\-defined callback to allow a direct communication between a loaded module and the application\&. This callback is specified by the -\fIstruct pam_conv\fR -passed to -\fBpam_start\fR(3) -at the start of the transaction\&. See -\fBpam_conv\fR(3) -for details\&. -.SS "Data Objects" -.PP -The -\fBpam_set_item\fR(3) -and -\fBpam_get_item\fR(3) -functions allows applications and PAM service modules to set and retrieve PAM information\&. -.PP -The -\fBpam_get_user\fR(3) -function is the preferred method to obtain the username\&. -.PP -The -\fBpam_set_data\fR(3) -and -\fBpam_get_data\fR(3) -functions allows PAM service modules to set and retrieve free\-form data from one invocation to another\&. -.SS "Environment and Error Management" -.PP -The -\fBpam_putenv\fR(3), -\fBpam_getenv\fR(3) -and -\fBpam_getenvlist\fR(3) -functions are for maintaining a set of private environment variables\&. -.PP -The -\fBpam_strerror\fR(3) -function returns a pointer to a string describing the given PAM error code\&. -.SH "RETURN VALUES" -.PP -The following return codes are known by PAM: -.PP -PAM_ABORT -.RS 4 -Critical error, immediate abort\&. -.RE -.PP -PAM_ACCT_EXPIRED -.RS 4 -User account has expired\&. -.RE -.PP -PAM_AUTHINFO_UNAVAIL -.RS 4 -Authentication service cannot retrieve authentication info\&. -.RE -.PP -PAM_AUTHTOK_DISABLE_AGING -.RS 4 -Authentication token aging disabled\&. -.RE -.PP -PAM_AUTHTOK_ERR -.RS 4 -Authentication token manipulation error\&. -.RE -.PP -PAM_AUTHTOK_EXPIRED -.RS 4 -Authentication token expired\&. -.RE -.PP -PAM_AUTHTOK_LOCK_BUSY -.RS 4 -Authentication token lock busy\&. -.RE -.PP -PAM_AUTHTOK_RECOVERY_ERR -.RS 4 -Authentication information cannot be recovered\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -Authentication failure\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -Conversation failure\&. -.RE -.PP -PAM_CRED_ERR -.RS 4 -Failure setting user credentials\&. -.RE -.PP -PAM_CRED_EXPIRED -.RS 4 -User credentials expired\&. -.RE -.PP -PAM_CRED_INSUFFICIENT -.RS 4 -Insufficient credentials to access authentication data\&. -.RE -.PP -PAM_CRED_UNAVAIL -.RS 4 -Authentication service cannot retrieve user credentials\&. -.RE -.PP -PAM_IGNORE -.RS 4 -The return value should be ignored by PAM dispatch\&. -.RE -.PP -PAM_MAXTRIES -.RS 4 -Have exhausted maximum number of retries for service\&. -.RE -.PP -PAM_MODULE_UNKNOWN -.RS 4 -Module is unknown\&. -.RE -.PP -PAM_NEW_AUTHTOK_REQD -.RS 4 -Authentication token is no longer valid; new one required\&. -.RE -.PP -PAM_NO_MODULE_DATA -.RS 4 -No module specific data is present\&. -.RE -.PP -PAM_OPEN_ERR -.RS 4 -Failed to load module\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Permission denied\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Error in service module\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Cannot make/remove an entry for the specified session\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success\&. -.RE -.PP -PAM_SYMBOL_ERR -.RS 4 -Symbol not found\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -System error\&. -.RE -.PP -PAM_TRY_AGAIN -.RS 4 -Failed preliminary check by password service\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known to the underlying authentication module\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_acct_mgmt\fR(3), -\fBpam_authenticate\fR(3), -\fBpam_chauthtok\fR(3), -\fBpam_close_session\fR(3), -\fBpam_conv\fR(3), -\fBpam_end\fR(3), -\fBpam_get_data\fR(3), -\fBpam_getenv\fR(3), -\fBpam_getenvlist\fR(3), -\fBpam_get_item\fR(3), -\fBpam_get_user\fR(3), -\fBpam_open_session\fR(3), -\fBpam_putenv\fR(3), -\fBpam_set_data\fR(3), -\fBpam_set_item\fR(3), -\fBpam_setcred\fR(3), -\fBpam_start\fR(3), -\fBpam_strerror\fR(3) -.SH "NOTES" -.PP -The -\fIlibpam\fR -interfaces are only thread\-safe if each thread within the multithreaded application uses its own PAM handle\&. diff --git a/doc/man/pam.3.xml b/doc/man/pam.3.xml index 4b828016..a7d13b45 100644 --- a/doc/man/pam.3.xml +++ b/doc/man/pam.3.xml @@ -150,7 +150,7 @@ <citerefentry> <refentrytitle>pam_get_item</refentrytitle><manvolnum>3</manvolnum> </citerefentry> - functions allows applications and PAM service modules to set and + functions allow applications and PAM service modules to set and retrieve PAM information. </para> <para> @@ -169,7 +169,7 @@ <citerefentry> <refentrytitle>pam_get_data</refentrytitle><manvolnum>3</manvolnum> </citerefentry> - functions allows PAM service modules to set and retrieve free-form + function allows PAM service modules to set and retrieve free-form data from one invocation to another. </para> </refsect2> diff --git a/doc/man/pam.8 b/doc/man/pam.8 deleted file mode 100644 index 78b1afa0..00000000 --- a/doc/man/pam.8 +++ /dev/null @@ -1 +0,0 @@ -.so PAM.8 diff --git a/doc/man/pam.conf.5 b/doc/man/pam.conf.5 deleted file mode 100644 index bd74f9dd..00000000 --- a/doc/man/pam.conf.5 +++ /dev/null @@ -1,416 +0,0 @@ -'\" t -.\" Title: pam.conf -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam.conf, pam.d \- PAM configuration files -.SH "DESCRIPTION" -.PP -When a -\fIPAM\fR -aware privilege granting application is started, it activates its attachment to the PAM\-API\&. This activation performs a number of tasks, the most important being the reading of the configuration file(s): -/etc/pam\&.conf\&. Alternatively and preferably, the configuration can be set by individual configuration files located in a -pam\&.d -directory\&. The presence of this directory will cause -\fBLinux\-PAM\fR -to -\fIignore\fR -/etc/pam\&.conf\&. -.PP -These files list the -\fIPAM\fRs that will do the authentication tasks required by this service, and the appropriate behavior of the PAM\-API in the event that individual -\fIPAM\fRs fail\&. -.PP -The syntax of the -/etc/pam\&.conf -configuration file is as follows\&. The file is made up of a list of rules, each rule is typically placed on a single line, but may be extended with an escaped end of line: `\e<LF>\*(Aq\&. Comments are preceded with `#\*(Aq marks and extend to the next end of line\&. -.PP -The format of each rule is a space separated collection of tokens, the first three being case\-insensitive: -.PP -\fB service type control module\-path module\-arguments\fR -.PP -The syntax of files contained in the -/etc/pam\&.d/ -directory, are identical except for the absence of any -\fIservice\fR -field\&. In this case, the -\fIservice\fR -is the name of the file in the -/etc/pam\&.d/ -directory\&. This filename must be in lower case\&. -.PP -An important feature of -\fIPAM\fR, is that a number of rules may be -\fIstacked\fR -to combine the services of a number of PAMs for a given authentication task\&. -.PP -The -\fIservice\fR -is typically the familiar name of the corresponding application: -\fIlogin\fR -and -\fIsu\fR -are good examples\&. The -\fIservice\fR\-name, -\fIother\fR, is reserved for giving -\fIdefault\fR -rules\&. Only lines that mention the current service (or in the absence of such, the -\fIother\fR -entries) will be associated with the given service\-application\&. -.PP -The -\fItype\fR -is the management group that the rule corresponds to\&. It is used to specify which of the management groups the subsequent module is to be associated with\&. Valid entries are: -.PP -account -.RS 4 -this module type performs non\-authentication based account management\&. It is typically used to restrict/permit access to a service based on the time of day, currently available system resources (maximum number of users) or perhaps the location of the applicant user \-\- \*(Aqroot\*(Aq login only on the console\&. -.RE -.PP -auth -.RS 4 -this module type provides two aspects of authenticating the user\&. Firstly, it establishes that the user is who they claim to be, by instructing the application to prompt the user for a password or other means of identification\&. Secondly, the module can grant group membership or other privileges through its credential granting properties\&. -.RE -.PP -password -.RS 4 -this module type is required for updating the authentication token associated with the user\&. Typically, there is one module for each \*(Aqchallenge/response\*(Aq based authentication (auth) type\&. -.RE -.PP -session -.RS 4 -this module type is associated with doing things that need to be done for the user before/after they can be given service\&. Such things include the logging of information concerning the opening/closing of some data exchange with a user, mounting directories, etc\&. -.RE -.PP -If the -\fItype\fR -value from the list above is prepended with a -\fI\-\fR -character the PAM library will not log to the system log if it is not possible to load the module because it is missing in the system\&. This can be useful especially for modules which are not always installed on the system and are not required for correct authentication and authorization of the login session\&. -.PP -The third field, -\fIcontrol\fR, indicates the behavior of the PAM\-API should the module fail to succeed in its authentication task\&. There are two types of syntax for this control field: the simple one has a single simple keyword; the more complicated one involves a square\-bracketed selection of -\fIvalue=action\fR -pairs\&. -.PP -For the simple (historical) syntax valid -\fIcontrol\fR -values are: -.PP -required -.RS 4 -failure of such a PAM will ultimately lead to the PAM\-API returning failure but only after the remaining -\fIstacked\fR -modules (for this -\fIservice\fR -and -\fItype\fR) have been invoked\&. -.RE -.PP -requisite -.RS 4 -like -\fIrequired\fR, however, in the case that such a module returns a failure, control is directly returned to the application or to the superior PAM stack\&. The return value is that associated with the first required or requisite module to fail\&. Note, this flag can be used to protect against the possibility of a user getting the opportunity to enter a password over an unsafe medium\&. It is conceivable that such behavior might inform an attacker of valid accounts on a system\&. This possibility should be weighed against the not insignificant concerns of exposing a sensitive password in a hostile environment\&. -.RE -.PP -sufficient -.RS 4 -if such a module succeeds and no prior -\fIrequired\fR -module has failed the PAM framework returns success to the application or to the superior PAM stack immediately without calling any further modules in the stack\&. A failure of a -\fIsufficient\fR -module is ignored and processing of the PAM module stack continues unaffected\&. -.RE -.PP -optional -.RS 4 -the success or failure of this module is only important if it is the only module in the stack associated with this -\fIservice\fR+\fItype\fR\&. -.RE -.PP -include -.RS 4 -include all lines of given type from the configuration file specified as an argument to this control\&. -.RE -.PP -substack -.RS 4 -include all lines of given type from the configuration file specified as an argument to this control\&. This differs from -\fIinclude\fR -in that evaluation of the -\fIdone\fR -and -\fIdie\fR -actions in a substack does not cause skipping the rest of the complete module stack, but only of the substack\&. Jumps in a substack also can not make evaluation jump out of it, and the whole substack is counted as one module when the jump is done in a parent stack\&. The -\fIreset\fR -action will reset the state of a module stack to the state it was in as of beginning of the substack evaluation\&. -.RE -.PP -For the more complicated syntax valid -\fIcontrol\fR -values have the following form: -.sp -.if n \{\ -.RS 4 -.\} -.nf - [value1=action1 value2=action2 \&.\&.\&.] - -.fi -.if n \{\ -.RE -.\} -.PP -Where -\fIvalueN\fR -corresponds to the return code from the function invoked in the module for which the line is defined\&. It is selected from one of these: -\fIsuccess\fR, -\fIopen_err\fR, -\fIsymbol_err\fR, -\fIservice_err\fR, -\fIsystem_err\fR, -\fIbuf_err\fR, -\fIperm_denied\fR, -\fIauth_err\fR, -\fIcred_insufficient\fR, -\fIauthinfo_unavail\fR, -\fIuser_unknown\fR, -\fImaxtries\fR, -\fInew_authtok_reqd\fR, -\fIacct_expired\fR, -\fIsession_err\fR, -\fIcred_unavail\fR, -\fIcred_expired\fR, -\fIcred_err\fR, -\fIno_module_data\fR, -\fIconv_err\fR, -\fIauthtok_err\fR, -\fIauthtok_recover_err\fR, -\fIauthtok_lock_busy\fR, -\fIauthtok_disable_aging\fR, -\fItry_again\fR, -\fIignore\fR, -\fIabort\fR, -\fIauthtok_expired\fR, -\fImodule_unknown\fR, -\fIbad_item\fR, -\fIconv_again\fR, -\fIincomplete\fR, and -\fIdefault\fR\&. -.PP -The last of these, -\fIdefault\fR, implies \*(Aqall -\fIvalueN\fR\*(Aqs not mentioned explicitly\&. Note, the full list of PAM errors is available in -/usr/include/security/_pam_types\&.h\&. The -\fIactionN\fR -can take one of the following forms: -.PP -ignore -.RS 4 -when used with a stack of modules, the module\*(Aqs return status will not contribute to the return code the application obtains\&. -.RE -.PP -bad -.RS 4 -this action indicates that the return code should be thought of as indicative of the module failing\&. If this module is the first in the stack to fail, its status value will be used for that of the whole stack\&. This is the default action for all return codes\&. -.RE -.PP -die -.RS 4 -equivalent to -\fIbad\fR -with the side effect of terminating the module stack and PAM immediately returning to the application\&. -.RE -.PP -ok -.RS 4 -this tells PAM that the administrator thinks this return code should contribute directly to the return code of the full stack of modules\&. In other words, if the former state of the stack would lead to a return of -\fIPAM_SUCCESS\fR, the module\*(Aqs return code will override this value\&. Note, if the former state of the stack holds some value that is indicative of a modules failure, this \*(Aqok\*(Aq value will not be used to override that value\&. -.RE -.PP -done -.RS 4 -equivalent to -\fIok\fR -with the side effect of terminating the module stack and PAM immediately returning to the application unless there was a non\-ignored module failure before\&. -.RE -.PP -N (an unsigned integer) -.RS 4 -jump over the next N modules in the stack\&. Note that N equal to 0 is not allowed, it would be treated as -\fIignore\fR -in such case\&. The side effect depends on the PAM function call: for -\fIpam_authenticate\fR, -\fIpam_acct_mgmt\fR, -\fIpam_chauthtok\fR, and -\fIpam_open_session\fR -it is -\fIignore\fR; for -\fIpam_setcred\fR -and -\fIpam_close_session\fR -it is one of -\fIignore\fR, -\fIok\fR, or -\fIbad\fR -depending on the module\*(Aqs return value\&. -.RE -.PP -reset -.RS 4 -clear all memory of the state of the module stack and start again with the next stacked module\&. -.RE -.PP -If a return code\*(Aqs action is not specifically defined via a -\fIvalueN\fR -token, and the -\fIdefault\fR -value is not specified, that return code\*(Aqs action defaults to -\fIbad\fR\&. -.PP -Each of the four keywords: required; requisite; sufficient; and optional, have an equivalent expression in terms of the [\&.\&.\&.] syntax\&. They are as follows: -.PP -required -.RS 4 -[success=ok new_authtok_reqd=ok ignore=ignore default=bad] -.RE -.PP -requisite -.RS 4 -[success=ok new_authtok_reqd=ok ignore=ignore default=die] -.RE -.PP -sufficient -.RS 4 -[success=done new_authtok_reqd=done default=ignore] -.RE -.PP -optional -.RS 4 -[success=ok new_authtok_reqd=ok default=ignore] -.RE -.PP -\fImodule\-path\fR -is either the full filename of the PAM to be used by the application (it begins with a \*(Aq/\*(Aq), or a relative pathname from the default module location: -/lib/security/ -or -/lib64/security/, depending on the architecture\&. -.PP -\fImodule\-arguments\fR -are a space separated list of tokens that can be used to modify the specific behavior of the given PAM\&. Such arguments will be documented for each individual module\&. Note, if you wish to include spaces in an argument, you should surround that argument with square brackets\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf - squid auth required pam_mysql\&.so user=passwd_query passwd=mada \e - db=eminence [query=select user_name from internet_service \e - where user_name=\*(Aq%u\*(Aq and password=PASSWORD(\*(Aq%p\*(Aq) and \e - service=\*(Aqweb_proxy\*(Aq] - -.fi -.if n \{\ -.RE -.\} -.PP -When using this convention, you can include `[\*(Aq characters inside the string, and if you wish to include a `]\*(Aq character inside the string that will survive the argument parsing, you should use `\e]\*(Aq\&. In other words: -.sp -.if n \{\ -.RS 4 -.\} -.nf - [\&.\&.[\&.\&.\e]\&.\&.] \-\-> \&.\&.[\&.\&.]\&.\&. - -.fi -.if n \{\ -.RE -.\} -.PP -Any line in (one of) the configuration file(s), that is not formatted correctly, will generally tend (erring on the side of caution) to make the authentication process fail\&. A corresponding error is written to the system log files with a call to -\fBsyslog\fR(3)\&. -.PP -More flexible than the single configuration file is it to configure libpam via the contents of -pam\&.d -directories\&. In this case the directories are filled with files each of which has a filename equal to a service\-name (in lower\-case): it is the personal configuration file for the named service\&. -.PP -Vendor\-supplied PAM configuration files might be installed in the system directory -/usr/lib/pam\&.d/ -or a configurable vendor specific directory instead of the machine configuration directory -/etc/pam\&.d/\&. If no machine configuration file is found, the vendor\-supplied file is used\&. All files in -/etc/pam\&.d/ -override files with the same name in other directories\&. -.PP -The syntax of each file in pam\&.d is similar to that of the -/etc/pam\&.conf -file and is made up of lines of the following form: -.sp -.if n \{\ -.RS 4 -.\} -.nf -type control module\-path module\-arguments - -.fi -.if n \{\ -.RE -.\} -.PP -The only difference being that the service\-name is not present\&. The service\-name is of course the name of the given configuration file\&. For example, -/etc/pam\&.d/login -contains the configuration for the -\fBlogin\fR -service\&. -.SH "FILES" -.PP -/etc/pam\&.conf -.RS 4 -the configuration file -.RE -.PP -/etc/pam\&.d -.RS 4 -the -\fBLinux\-PAM\fR -configuration directory\&. Generally, if this directory is present, the -/etc/pam\&.conf -file is ignored\&. -.RE -.PP -/usr/lib/pam\&.d -.RS 4 -the -\fBLinux\-PAM\fR -vendor configuration directory\&. Files in -/etc/pam\&.d -override files with the same name in this directory\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(3), -\fBPAM\fR(8), -\fBpam_start\fR(3) diff --git a/doc/man/pam.d.5 b/doc/man/pam.d.5 deleted file mode 100644 index 91277d6e..00000000 --- a/doc/man/pam.d.5 +++ /dev/null @@ -1 +0,0 @@ -.so pam.conf.5 diff --git a/doc/man/pam_acct_mgmt.3 b/doc/man/pam_acct_mgmt.3 deleted file mode 100644 index 18e91d56..00000000 --- a/doc/man/pam_acct_mgmt.3 +++ /dev/null @@ -1,100 +0,0 @@ -'\" t -.\" Title: pam_acct_mgmt -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_ACCT_MGMT" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_acct_mgmt \- PAM account validation management -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_acct_mgmt('u -.BI "int pam_acct_mgmt(pam_handle_t\ *" "pamh" ", int\ " "flags" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_acct_mgmt\fR -function is used to determine if the user\*(Aqs account is valid\&. It checks for authentication token and account expiration and verifies access restrictions\&. It is typically called after the user has been authenticated\&. -.PP -The -\fIpamh\fR -argument is an authentication handle obtained by a prior call to pam_start()\&. The flags argument is the binary or of zero or more of the following values: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.PP -PAM_DISALLOW_NULL_AUTHTOK -.RS 4 -The PAM module service should return PAM_NEW_AUTHTOK_REQD if the user has a null authentication token\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_ACCT_EXPIRED -.RS 4 -User account has expired\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -Authentication failure\&. -.RE -.PP -PAM_NEW_AUTHTOK_REQD -.RS 4 -The user account is valid but their authentication token is -\fIexpired\fR\&. The correct response to this return\-value is to require that the user satisfies the -\fBpam_chauthtok()\fR -function before obtaining service\&. It may not be possible for some applications to do this\&. In such cases, the user should be denied access until such time as they can update their password\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Permission denied\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The authentication token was successfully updated\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User unknown to password service\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_authenticate\fR(3), -\fBpam_chauthtok\fR(3), -\fBpam_strerror\fR(3), -\fBpam\fR(8) diff --git a/doc/man/pam_authenticate.3 b/doc/man/pam_authenticate.3 deleted file mode 100644 index 1760e2ac..00000000 --- a/doc/man/pam_authenticate.3 +++ /dev/null @@ -1,110 +0,0 @@ -'\" t -.\" Title: pam_authenticate -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_AUTHENTICATE" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_authenticate \- account authentication -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_authenticate('u -.BI "int pam_authenticate(pam_handle_t\ *" "pamh" ", int\ " "flags" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_authenticate\fR -function is used to authenticate the user\&. The user is required to provide an authentication token depending upon the authentication service, usually this is a password, but could also be a finger print\&. -.PP -The PAM service module may request that the user enter their username via the conversation mechanism (see -\fBpam_start\fR(3) -and -\fBpam_conv\fR(3))\&. The name of the authenticated user will be present in the PAM item PAM_USER\&. This item may be recovered with a call to -\fBpam_get_item\fR(3)\&. -.PP -The -\fIpamh\fR -argument is an authentication handle obtained by a prior call to pam_start()\&. The flags argument is the binary or of zero or more of the following values: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.PP -PAM_DISALLOW_NULL_AUTHTOK -.RS 4 -The PAM module service should return PAM_AUTH_ERR if the user does not have a registered authentication token\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_ABORT -.RS 4 -The application should exit immediately after calling -\fBpam_end\fR(3) -first\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -The user was not authenticated\&. -.RE -.PP -PAM_CRED_INSUFFICIENT -.RS 4 -For some reason the application does not have sufficient credentials to authenticate the user\&. -.RE -.PP -PAM_AUTHINFO_UNAVAIL -.RS 4 -The modules were not able to access the authentication information\&. This might be due to a network or hardware failure etc\&. -.RE -.PP -PAM_MAXTRIES -.RS 4 -One or more of the authentication modules has reached its limit of tries authenticating the user\&. Do not try again\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The user was successfully authenticated\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User unknown to authentication service\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_setcred\fR(3), -\fBpam_chauthtok\fR(3), -\fBpam_strerror\fR(3), -\fBpam\fR(8) diff --git a/doc/man/pam_chauthtok.3 b/doc/man/pam_chauthtok.3 deleted file mode 100644 index 60d267ff..00000000 --- a/doc/man/pam_chauthtok.3 +++ /dev/null @@ -1,109 +0,0 @@ -'\" t -.\" Title: pam_chauthtok -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_CHAUTHTOK" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_chauthtok \- updating authentication tokens -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_chauthtok('u -.BI "int pam_chauthtok(pam_handle_t\ *" "pamh" ", int\ " "flags" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_chauthtok\fR -function is used to change the authentication token for a given user (as indicated by the state associated with the handle -\fIpamh\fR)\&. -.PP -The -\fIpamh\fR -argument is an authentication handle obtained by a prior call to pam_start()\&. The flags argument is the binary or of zero or more of the following values: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.PP -PAM_CHANGE_EXPIRED_AUTHTOK -.RS 4 -This argument indicates to the modules that the user\*(Aqs authentication token (password) should only be changed if it has expired\&. If this argument is not passed, the application requires that all authentication tokens are to be changed\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_AUTHTOK_ERR -.RS 4 -A module was unable to obtain the new authentication token\&. -.RE -.PP -PAM_AUTHTOK_RECOVERY_ERR -.RS 4 -A module was unable to obtain the old authentication token\&. -.RE -.PP -PAM_AUTHTOK_LOCK_BUSY -.RS 4 -One or more of the modules was unable to change the authentication token since it is currently locked\&. -.RE -.PP -PAM_AUTHTOK_DISABLE_AGING -.RS 4 -Authentication token aging has been disabled for at least one of the modules\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Permission denied\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The authentication token was successfully updated\&. -.RE -.PP -PAM_TRY_AGAIN -.RS 4 -Not all of the modules were in a position to update the authentication token(s)\&. In such a case none of the user\*(Aqs authentication tokens are updated\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User unknown to password service\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_authenticate\fR(3), -\fBpam_setcred\fR(3), -\fBpam_get_item\fR(3), -\fBpam_strerror\fR(3), -\fBpam\fR(8) diff --git a/doc/man/pam_close_session.3 b/doc/man/pam_close_session.3 deleted file mode 100644 index 8322f91f..00000000 --- a/doc/man/pam_close_session.3 +++ /dev/null @@ -1,81 +0,0 @@ -'\" t -.\" Title: pam_close_session -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_CLOSE_SESSION" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_close_session \- terminate PAM session management -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_close_session('u -.BI "int pam_close_session(pam_handle_t\ *" "pamh" ", int\ " "flags" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_close_session\fR -function is used to indicate that an authenticated session has ended\&. The session should have been created with a call to -\fBpam_open_session\fR(3)\&. -.PP -It should be noted that the effective uid, -\fBgeteuid\fR(2)\&. of the application should be of sufficient privilege to perform such tasks as unmounting the user\*(Aqs home directory for example\&. -.PP -The flags argument is the binary or of zero or more of the following values: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_ABORT -.RS 4 -General failure\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Session failure\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Session was successful terminated\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_open_session\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_conv.3 b/doc/man/pam_conv.3 deleted file mode 100644 index 5ada0837..00000000 --- a/doc/man/pam_conv.3 +++ /dev/null @@ -1,177 +0,0 @@ -'\" t -.\" Title: pam_conv -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_CONV" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_conv \- PAM conversation function -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.sp -.nf -struct pam_message { - int msg_style; - const char *msg; -}; - -struct pam_response { - char *resp; - int resp_retcode; -}; - -struct pam_conv { - int (*conv)(int num_msg, const struct pam_message **msg, - struct pam_response **resp, void *appdata_ptr); - void *appdata_ptr; -}; - -.fi -.SH "DESCRIPTION" -.PP -The PAM library uses an application\-defined callback to allow a direct communication between a loaded module and the application\&. This callback is specified by the -\fIstruct pam_conv\fR -passed to -\fBpam_start\fR(3) -at the start of the transaction\&. -.PP -When a module calls the referenced conv() function, the argument -\fIappdata_ptr\fR -is set to the second element of this structure\&. -.PP -The other arguments of a call to conv() concern the information exchanged by module and application\&. That is to say, -\fInum_msg\fR -holds the length of the array of pointers, -\fImsg\fR\&. After a successful return, the pointer -\fIresp\fR -points to an array of pam_response structures, holding the application supplied text\&. The -\fIresp_retcode\fR -member of this struct is unused and should be set to zero\&. It is the caller\*(Aqs responsibility to release both, this array and the responses themselves, using -\fBfree\fR(3)\&. Note, -\fI*resp\fR -is a -\fIstruct pam_response\fR -array and not an array of pointers\&. -.PP -The number of responses is always equal to the -\fInum_msg\fR -conversation function argument\&. This does require that the response array is -\fBfree\fR(3)\*(Aqd after every call to the conversation function\&. The index of the responses corresponds directly to the prompt index in the pam_message array\&. -.PP -On failure, the conversation function should release any resources it has allocated, and return one of the predefined PAM error codes\&. -.PP -Each message can have one of four types, specified by the -\fImsg_style\fR -member of -\fIstruct pam_message\fR: -.PP -PAM_PROMPT_ECHO_OFF -.RS 4 -Obtain a string without echoing any text\&. -.RE -.PP -PAM_PROMPT_ECHO_ON -.RS 4 -Obtain a string whilst echoing text\&. -.RE -.PP -PAM_ERROR_MSG -.RS 4 -Display an error message\&. -.RE -.PP -PAM_TEXT_INFO -.RS 4 -Display some text\&. -.RE -.PP -The point of having an array of messages is that it becomes possible to pass a number of things to the application in a single call from the module\&. It can also be convenient for the application that related things come at once: a windows based application can then present a single form with many messages/prompts on at once\&. -.PP -In passing, it is worth noting that there is a discrepancy between the way Linux\-PAM handles the const struct pam_message **msg conversation function argument and the way that Solaris\*(Aq PAM (and derivatives, known to include HP/UX, are there others?) does\&. Linux\-PAM interprets the msg argument as entirely equivalent to the following prototype const struct pam_message *msg[] (which, in spirit, is consistent with the commonly used prototypes for argv argument to the familiar main() function: char **argv; and char *argv[])\&. Said another way Linux\-PAM interprets the msg argument as a pointer to an array of num_msg read only \*(Aqstruct pam_message\*(Aq pointers\&. Solaris\*(Aq PAM implementation interprets this argument as a pointer to a pointer to an array of num_msg pam_message structures\&. Fortunately, perhaps, for most module/application developers when num_msg has a value of one these two definitions are entirely equivalent\&. Unfortunately, casually raising this number to two has led to unanticipated compatibility problems\&. -.PP -For what its worth the two known module writer work\-arounds for trying to maintain source level compatibility with both PAM implementations are: -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -never call the conversation function with num_msg greater than one\&. -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -set up msg as doubly referenced so both types of conversation function can find the messages\&. That is, make -.sp -.if n \{\ -.RS 4 -.\} -.nf - msg[n] = & (( *msg )[n]) - -.fi -.if n \{\ -.RE -.\} -.RE -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -Conversation failure\&. The application should not set -\fI*resp\fR\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_set_item\fR(3), -\fBpam_get_item\fR(3), -\fBpam_strerror\fR(3), -\fBpam\fR(8) diff --git a/doc/man/pam_end.3 b/doc/man/pam_end.3 deleted file mode 100644 index 752f86cb..00000000 --- a/doc/man/pam_end.3 +++ /dev/null @@ -1,89 +0,0 @@ -'\" t -.\" Title: pam_end -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_END" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_end \- termination of PAM transaction -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_end('u -.BI "int pam_end(pam_handle_t\ *" "pamh" ", int\ " "pam_status" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_end\fR -function terminates the PAM transaction and is the last function an application should call in the PAM context\&. Upon return the handle -\fIpamh\fR -is no longer valid and all memory associated with it will be invalid\&. -.PP -The -\fIpam_status\fR -argument should be set to the value returned to the application by the last PAM library call\&. -.PP -The value taken by -\fIpam_status\fR -is used as an argument to the module specific callback function, -\fBcleanup()\fR -(See -\fBpam_set_data\fR(3) -and -\fBpam_get_data\fR(3))\&. In this way the module can be given notification of the pass/fail nature of the tear\-down process, and perform any last minute tasks that are appropriate to the module before it is unlinked\&. This argument can be logically OR\*(Aqd with -\fIPAM_DATA_SILENT\fR -to indicate that the module should not treat the call too seriously\&. It is generally used to indicate that the current closing of the library is in a -\fBfork\fR(2)ed process, and that the parent will take care of cleaning up things that exist outside of the current process space (files etc\&.)\&. -.PP -This function -\fIfree\fR\*(Aqs all memory for items associated with the -\fBpam_set_item\fR(3) -and -\fBpam_get_item\fR(3) -functions\&. Pointers associated with such objects are not valid anymore after -\fBpam_end\fR -was called\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -Transaction was successful terminated\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -System error, for example a NULL pointer was submitted as PAM handle or the function was called by a module\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_get_data\fR(3), -\fBpam_set_data\fR(3), -\fBpam_start\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_error.3 b/doc/man/pam_error.3 deleted file mode 100644 index 9a6c3f8d..00000000 --- a/doc/man/pam_error.3 +++ /dev/null @@ -1,90 +0,0 @@ -'\" t -.\" Title: pam_error -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_ERROR" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_error, pam_verror \- display error messages to the user -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_ext\&.h> -.fi -.ft -.HP \w'int\ pam_error('u -.BI "int pam_error(pam_handle_t\ *" "pamh" ", const\ char\ *" "fmt" ", " "\&.\&.\&." ");" -.HP \w'int\ pam_verror('u -.BI "int pam_verror(pam_handle_t\ *" "pamh" ", const\ char\ *" "fmt" ", va_list\ " "args" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_error\fR -function prints error messages through the conversation function to the user\&. -.PP -The -\fBpam_verror\fR -function performs the same task as -\fBpam_error()\fR -with the difference that it takes a set of arguments which have been obtained using the -\fBstdarg\fR(3) -variable argument list macros\&. -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -Conversation failure\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Error message was displayed\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -System error\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_info\fR(3), -\fBpam_vinfo\fR(3), -\fBpam_prompt\fR(3), -\fBpam_vprompt\fR(3), -\fBpam\fR(8) -.SH "STANDARDS" -.PP -The -\fBpam_error\fR -and -\fBpam_verror\fR -functions are Linux\-PAM extensions\&. diff --git a/doc/man/pam_fail_delay.3 b/doc/man/pam_fail_delay.3 deleted file mode 100644 index c647e642..00000000 --- a/doc/man/pam_fail_delay.3 +++ /dev/null @@ -1,168 +0,0 @@ -'\" t -.\" Title: pam_fail_delay -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_FAIL_DELAY" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_fail_delay \- request a delay on failure -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_fail_delay('u -.BI "int pam_fail_delay(pam_handle_t\ *" "pamh" ", unsigned\ int\ " "usec" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_fail_delay\fR -function provides a mechanism by which an application or module can suggest a minimum delay of -\fIusec\fR -micro\-seconds\&. The function keeps a record of the longest time requested with this function\&. Should -\fBpam_authenticate\fR(3) -fail, the failing return to the application is delayed by an amount of time randomly distributed (by up to 50%) about this longest value\&. -.PP -Independent of success, the delay time is reset to its zero default value when the PAM service module returns control to the application\&. The delay occurs -\fIafter\fR -all authentication modules have been called, but -\fIbefore\fR -control is returned to the service application\&. -.PP -When using this function the programmer should check if it is available with: -.sp -.if n \{\ -.RS 4 -.\} -.nf -#ifdef HAVE_PAM_FAIL_DELAY - \&.\&.\&.\&. -#endif /* HAVE_PAM_FAIL_DELAY */ - -.fi -.if n \{\ -.RE -.\} -.PP -For applications written with a single thread that are event driven in nature, generating this delay may be undesirable\&. Instead, the application may want to register the delay in some other way\&. For example, in a single threaded server that serves multiple authentication requests from a single event loop, the application might want to simply mark a given connection as blocked until an application timer expires\&. For this reason the delay function can be changed with the -\fIPAM_FAIL_DELAY\fR -item\&. It can be queried and set with -\fBpam_get_item\fR(3) -and -\fBpam_set_item\fR(3) -respectively\&. The value used to set it should be a function pointer of the following prototype: -.sp -.if n \{\ -.RS 4 -.\} -.nf -void (*delay_fn)(int retval, unsigned usec_delay, void *appdata_ptr); - -.fi -.if n \{\ -.RE -.\} -.sp -The arguments being the -\fIretval\fR -return code of the module stack, the -\fIusec_delay\fR -micro\-second delay that libpam is requesting and the -\fIappdata_ptr\fR -that the application has associated with the current -\fIpamh\fR\&. This last value was set by the application when it called -\fBpam_start\fR(3) -or explicitly with -\fBpam_set_item\fR(3)\&. -.PP -Note that the PAM_FAIL_DELAY item is set to NULL by default\&. This indicates that PAM should perform a random delay as described above when authentication fails and a delay has been suggested\&. If an application does not want the PAM library to perform any delay on authentication failure, then the application must define a custom delay function that executes no statements and set the PAM_FAIL_DELAY item to point to this function\&. -.SH "RATIONALE" -.PP -It is often possible to attack an authentication scheme by exploiting the time it takes the scheme to deny access to an applicant user\&. In cases of -\fIshort\fR -timeouts, it may prove possible to attempt a -\fIbrute force\fR -dictionary attack \-\- with an automated process, the attacker tries all possible passwords to gain access to the system\&. In other cases, where individual failures can take measurable amounts of time (indicating the nature of the failure), an attacker can obtain useful information about the authentication process\&. These latter attacks make use of procedural delays that constitute a -\fIcovert channel\fR -of useful information\&. -.PP -To minimize the effectiveness of such attacks, it is desirable to introduce a random delay in a failed authentication process\&. Preferable this value should be set by the application or a special PAM module\&. Standard PAM modules should not modify the delay unconditional\&. -.SH "EXAMPLE" -.PP -For example, a login application may require a failure delay of roughly 3 seconds\&. It will contain the following code: -.sp -.if n \{\ -.RS 4 -.\} -.nf - pam_fail_delay (pamh, 3000000 /* micro\-seconds */ ); - pam_authenticate (pamh, 0); - -.fi -.if n \{\ -.RE -.\} -.PP -if the modules do not request a delay, the failure delay will be between 1\&.5 and 4\&.5 seconds\&. -.PP -However, the modules, invoked in the authentication process, may also request delays: -.sp -.if n \{\ -.RS 4 -.\} -.nf -module #1: pam_fail_delay (pamh, 2000000); -module #2: pam_fail_delay (pamh, 4000000); - -.fi -.if n \{\ -.RE -.\} -.PP -in this case, it is the largest requested value that is used to compute the actual failed delay: here between 2 and 6 seconds\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -Delay was successful adjusted\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -A NULL pointer was submitted as PAM handle\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_get_item\fR(3), -\fBpam_strerror\fR(3) -.SH "STANDARDS" -.PP -The -\fBpam_fail_delay\fR -function is an Linux\-PAM extension\&. diff --git a/doc/man/pam_get_authtok.3 b/doc/man/pam_get_authtok.3 deleted file mode 100644 index 105a217e..00000000 --- a/doc/man/pam_get_authtok.3 +++ /dev/null @@ -1,170 +0,0 @@ -'\" t -.\" Title: pam_get_authtok -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_GET_AUTHTOK" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_get_authtok, pam_get_authtok_verify, pam_get_authtok_noverify \- get authentication token -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_ext\&.h> -.fi -.ft -.HP \w'int\ pam_get_authtok('u -.BI "int pam_get_authtok(pam_handle_t\ *" "pamh" ", int\ " "item" ", const\ char\ **" "authtok" ", const\ char\ *" "prompt" ");" -.HP \w'int\ pam_get_authtok_noverify('u -.BI "int pam_get_authtok_noverify(pam_handle_t\ *" "pamh" ", const\ char\ **" "authtok" ", const\ char\ *" "prompt" ");" -.HP \w'int\ pam_get_authtok_verify('u -.BI "int pam_get_authtok_verify(pam_handle_t\ *" "pamh" ", const\ char\ **" "authtok" ", const\ char\ *" "prompt" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_get_authtok\fR -function returns the cached authentication token, or prompts the user if no token is currently cached\&. It is intended for internal use by Linux\-PAM and PAM service modules\&. Upon successful return, -\fIauthtok\fR -contains a pointer to the value of the authentication token\&. Note, this is a pointer to the -\fIactual\fR -data and should -\fBnot\fR -be -\fIfree()\fR\*(Aqed or over\-written! -.PP -The -\fIprompt\fR -argument specifies a prompt to use if no token is cached\&. If a NULL pointer is given, -\fBpam_get_authtok\fR -uses pre\-defined prompts\&. -.PP -The following values are supported for -\fIitem\fR: -.PP -PAM_AUTHTOK -.RS 4 -Returns the current authentication token\&. Called from -\fBpam_sm_chauthtok\fR(3) -\fBpam_get_authtok\fR -will ask the user to confirm the new token by retyping it\&. If a prompt was specified, "Retype" will be used as prefix\&. -.RE -.PP -PAM_OLDAUTHTOK -.RS 4 -Returns the previous authentication token when changing authentication tokens\&. -.RE -.PP -The -\fBpam_get_authtok_noverify\fR -function can only be used for changing the password (from -\fBpam_sm_chauthtok\fR(3))\&. It returns the cached authentication token, or prompts the user if no token is currently cached\&. The difference to -\fBpam_get_authtok\fR -is, that this function does not ask a second time for the password to verify it\&. Upon successful return, -\fIauthtok\fR -contains a pointer to the value of the authentication token\&. Note, this is a pointer to the -\fIactual\fR -data and should -\fBnot\fR -be -\fIfree()\fR\*(Aqed or over\-written! -.PP -The -\fBpam_get_authtok_verify\fR -function can only be used to verify a password for mistypes gotten by -\fBpam_get_authtok_noverify\fR(3)\&. This function asks a second time for the password and verify it with the password provided by -\fIauthtok\fR -argument\&. In case of an error, the value of -\fIauthtok\fR -is undefined\&. Else this argument will point to the -\fIactual\fR -data and should -\fBnot\fR -be -\fIfree()\fR\*(Aqed or over\-written! -.SH "OPTIONS" -.PP -\fBpam_get_authtok\fR -honours the following module options: -.PP -try_first_pass -.RS 4 -Before prompting the user for their password, the module first tries the previous stacked module\*(Aqs password in case that satisfies this module as well\&. -.RE -.PP -use_first_pass -.RS 4 -The argument -\fBuse_first_pass\fR -forces the module to use a previous stacked modules password and will never prompt the user \- if no password is available or the password is not appropriate, the user will be denied access\&. -.RE -.PP -use_authtok -.RS 4 -When password changing enforce the module to set the new token to the one provided by a previously stacked -\fBpassword\fR -module\&. If no token is available token changing will fail\&. -.RE -.PP -authtok_type=XXX -.RS 4 -The default action is for the module to use the following prompts when requesting passwords: "New UNIX password: " and "Retype UNIX password: "\&. The example word -\fIUNIX\fR -can be replaced with this option, by default it is empty\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -Authentication token could not be retrieved\&. -.RE -.PP -PAM_AUTHTOK_ERR -.RS 4 -New authentication could not be retrieved\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Authentication token was successfully retrieved\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -No space for an authentication token was provided\&. -.RE -.PP -PAM_TRY_AGAIN -.RS 4 -New authentication tokens mismatch\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(8) -.SH "STANDARDS" -.PP -The -\fBpam_get_authtok\fR -function is a Linux\-PAM extensions\&. diff --git a/doc/man/pam_get_authtok.3.xml b/doc/man/pam_get_authtok.3.xml index ba6d955e..60e0a451 100644 --- a/doc/man/pam_get_authtok.3.xml +++ b/doc/man/pam_get_authtok.3.xml @@ -210,7 +210,8 @@ <term>PAM_SYSTEM_ERR</term> <listitem> <para> - No space for an authentication token was provided. + A NULL pointer was specified as the PAM handle, or + no space for an authentication token was provided. </para> </listitem> </varlistentry> @@ -242,4 +243,4 @@ </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/doc/man/pam_get_authtok_noverify.3 b/doc/man/pam_get_authtok_noverify.3 deleted file mode 100644 index 07acbd0c..00000000 --- a/doc/man/pam_get_authtok_noverify.3 +++ /dev/null @@ -1 +0,0 @@ -.so pam_get_authtok.3 diff --git a/doc/man/pam_get_authtok_verify.3 b/doc/man/pam_get_authtok_verify.3 deleted file mode 100644 index 07acbd0c..00000000 --- a/doc/man/pam_get_authtok_verify.3 +++ /dev/null @@ -1 +0,0 @@ -.so pam_get_authtok.3 diff --git a/doc/man/pam_get_data.3 b/doc/man/pam_get_data.3 deleted file mode 100644 index b2e6da8b..00000000 --- a/doc/man/pam_get_data.3 +++ /dev/null @@ -1,82 +0,0 @@ -'\" t -.\" Title: pam_get_data -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_GET_DATA" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_get_data \- get module internal data -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_get_data('u -.BI "int pam_get_data(const\ pam_handle_t\ *" "pamh" ", const\ char\ *" "module_data_name" ", const\ void\ **" "data" ");" -.SH "DESCRIPTION" -.PP -This function together with the -\fBpam_set_data\fR(3) -function is useful to manage module\-specific data meaningful only to the calling PAM module\&. -.PP -The -\fBpam_get_data\fR -function looks up the object associated with the (hopefully) unique string -\fImodule_data_name\fR -in the PAM context specified by the -\fIpamh\fR -argument\&. A successful call to -\fBpam_get_data\fR -will result in -\fIdata\fR -pointing to the object\&. Note, this data is -\fInot\fR -a copy and should be treated as -\fIconstant\fR -by the module\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -Data was successful retrieved\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -A NULL pointer was submitted as PAM handle or the function was called by an application\&. -.RE -.PP -PAM_NO_MODULE_DATA -.RS 4 -Module data not found or there is an entry, but it has the value NULL\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_end\fR(3), -\fBpam_set_data\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_get_data.3.xml b/doc/man/pam_get_data.3.xml index 1e71cf3b..9546cc18 100644 --- a/doc/man/pam_get_data.3.xml +++ b/doc/man/pam_get_data.3.xml @@ -79,8 +79,7 @@ <term>PAM_NO_MODULE_DATA</term> <listitem> <para> - Module data not found or there is an entry, but it has - the value NULL. + No module specific data is present. </para> </listitem> </varlistentry> @@ -102,4 +101,4 @@ </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/doc/man/pam_get_item.3 b/doc/man/pam_get_item.3 deleted file mode 100644 index d08fde5f..00000000 --- a/doc/man/pam_get_item.3 +++ /dev/null @@ -1,198 +0,0 @@ -'\" t -.\" Title: pam_get_item -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_GET_ITEM" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_get_item \- getting PAM information -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_get_item('u -.BI "int pam_get_item(const\ pam_handle_t\ *" "pamh" ", int\ " "item_type" ", const\ void\ **" "item" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_get_item\fR -function allows applications and PAM service modules to access and retrieve PAM information of -\fIitem_type\fR\&. Upon successful return, -\fIitem\fR -contains a pointer to the value of the corresponding item\&. Note, this is a pointer to the -\fIactual\fR -data and should -\fBnot\fR -be -\fIfree()\fR\*(Aqed or over\-written! The following values are supported for -\fIitem_type\fR: -.PP -PAM_SERVICE -.RS 4 -The service name (which identifies that PAM stack that the PAM functions will use to authenticate the program)\&. -.RE -.PP -PAM_USER -.RS 4 -The username of the entity under whose identity service will be given\&. That is, following authentication, -\fIPAM_USER\fR -identifies the local entity that gets to use the service\&. Note, this value can be mapped from something (eg\&., "anonymous") to something else (eg\&. "guest119") by any module in the PAM stack\&. As such an application should consult the value of -\fIPAM_USER\fR -after each call to a PAM function\&. -.RE -.PP -PAM_USER_PROMPT -.RS 4 -The string used when prompting for a user\*(Aqs name\&. The default value for this string is a localized version of "login: "\&. -.RE -.PP -PAM_TTY -.RS 4 -The terminal name prefixed by -/dev/ -for device files\&. In the past, graphical X\-based applications used to store the -\fI$DISPLAY\fR -variable here, but with the introduction of -\fIPAM_XDISPLAY\fR -this usage is deprecated\&. -.RE -.PP -PAM_RUSER -.RS 4 -The requesting user name: local name for a locally requesting user or a remote user name for a remote requesting user\&. -.sp -Generally an application or module will attempt to supply the value that is most strongly authenticated (a local account before a remote one\&. The level of trust in this value is embodied in the actual authentication stack associated with the application, so it is ultimately at the discretion of the system administrator\&. -.sp -\fIPAM_RUSER@PAM_RHOST\fR -should always identify the requesting user\&. In some cases, -\fIPAM_RUSER\fR -may be NULL\&. In such situations, it is unclear who the requesting entity is\&. -.RE -.PP -PAM_RHOST -.RS 4 -The requesting hostname (the hostname of the machine from which the -\fIPAM_RUSER\fR -entity is requesting service)\&. That is -\fIPAM_RUSER@PAM_RHOST\fR -does identify the requesting user\&. In some applications, -\fIPAM_RHOST\fR -may be NULL\&. In such situations, it is unclear where the authentication request is originating from\&. -.RE -.PP -PAM_AUTHTOK -.RS 4 -The authentication token (often a password)\&. This token should be ignored by all module functions besides -\fBpam_sm_authenticate\fR(3) -and -\fBpam_sm_chauthtok\fR(3)\&. In the former function it is used to pass the most recent authentication token from one stacked module to another\&. In the latter function the token is used for another purpose\&. It contains the currently active authentication token\&. -.RE -.PP -PAM_OLDAUTHTOK -.RS 4 -The old authentication token\&. This token should be ignored by all module functions except -\fBpam_sm_chauthtok\fR(3)\&. -.RE -.PP -PAM_CONV -.RS 4 -The pam_conv structure\&. See -\fBpam_conv\fR(3)\&. -.RE -.PP -The following additional items are specific to Linux\-PAM and should not be used in portable applications: -.PP -PAM_FAIL_DELAY -.RS 4 -A function pointer to redirect centrally managed failure delays\&. See -\fBpam_fail_delay\fR(3)\&. -.RE -.PP -PAM_XDISPLAY -.RS 4 -The name of the X display\&. For graphical, X\-based applications the value for this item should be the -\fI$DISPLAY\fR -variable\&. This value may be used independently of -\fIPAM_TTY\fR -for passing the name of the display\&. -.RE -.PP -PAM_XAUTHDATA -.RS 4 -A pointer to a structure containing the X authentication data required to make a connection to the display specified by -\fIPAM_XDISPLAY\fR, if such information is necessary\&. See -\fBpam_xauth_data\fR(3)\&. -.RE -.PP -PAM_AUTHTOK_TYPE -.RS 4 -The default action is for the module to use the following prompts when requesting passwords: "New UNIX password: " and "Retype UNIX password: "\&. The example word -\fIUNIX\fR -can be replaced with this item, by default it is empty\&. This item is used by -\fBpam_get_authtok\fR(3)\&. -.RE -.PP -If a service module wishes to obtain the name of the user, it should not use this function, but instead perform a call to -\fBpam_get_user\fR(3)\&. -.PP -Only a service module is privileged to read the authentication tokens, PAM_AUTHTOK and PAM_OLDAUTHTOK\&. -.SH "RETURN VALUES" -.PP -PAM_BAD_ITEM -.RS 4 -The application attempted to set an undefined or inaccessible item\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -The value of -\fIitem\fR -was NULL\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Data was successful updated\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -The -\fIpam_handle_t\fR -passed as first argument was invalid\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_set_item\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_get_user.3 b/doc/man/pam_get_user.3 deleted file mode 100644 index fcf99e86..00000000 --- a/doc/man/pam_get_user.3 +++ /dev/null @@ -1,138 +0,0 @@ -'\" t -.\" Title: pam_get_user -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_GET_USER" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_get_user \- get user name -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_get_user('u -.BI "int pam_get_user(const\ pam_handle_t\ *" "pamh" ", const\ char\ **" "user" ", const\ char\ *" "prompt" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_get_user\fR -function returns the name of the user specified by -\fBpam_start\fR(3)\&. If no user was specified it returns what -\fBpam_get_item (pamh, PAM_USER, \&.\&.\&. );\fR -would have returned\&. If this is NULL it obtains the username via the -\fBpam_conv\fR(3) -mechanism, it prompts the user with the first non\-NULL string in the following list: -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -The -\fIprompt\fR -argument passed to the function\&. -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -What is returned by pam_get_item (pamh, PAM_USER_PROMPT, \&.\&.\&. ); -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -The default prompt: "login: " -.RE -.PP -By whatever means the username is obtained, a pointer to it is returned as the contents of -\fI*user\fR\&. Note, this memory should -\fBnot\fR -be -\fIfree()\fR\*(Aqd or -\fImodified\fR -by the module\&. -.PP -This function sets the -\fIPAM_USER\fR -item associated with the -\fBpam_set_item\fR(3) -and -\fBpam_get_item\fR(3) -functions\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -User name was successful retrieved\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -A NULL pointer was submitted\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -The conversation method supplied by the application failed to obtain the username\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_ABORT -.RS 4 -Error resuming an old conversation\&. -.RE -.PP -PAM_CONV_AGAIN -.RS 4 -The conversation method supplied by the application is waiting for an event\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_end\fR(3), -\fBpam_get_item\fR(3), -\fBpam_set_item\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_getenv.3 b/doc/man/pam_getenv.3 deleted file mode 100644 index d0d39990..00000000 --- a/doc/man/pam_getenv.3 +++ /dev/null @@ -1,60 +0,0 @@ -'\" t -.\" Title: pam_getenv -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_GETENV" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_getenv \- get a PAM environment variable -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'const\ char\ *pam_getenv('u -.BI "const char *pam_getenv(pam_handle_t\ *" "pamh" ", const\ char\ *" "name" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_getenv\fR -function searches the PAM environment list as associated with the handle -\fIpamh\fR -for an item that matches the string pointed to by -\fIname\fR -and returns a pointer to the value of the environment variable\&. The application is not allowed to free the data\&. -.SH "RETURN VALUES" -.PP -The -\fBpam_getenv\fR -function returns NULL on failure\&. -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_getenvlist\fR(3), -\fBpam_putenv\fR(3), -\fBpam\fR(8) diff --git a/doc/man/pam_getenvlist.3 b/doc/man/pam_getenvlist.3 deleted file mode 100644 index 83697643..00000000 --- a/doc/man/pam_getenvlist.3 +++ /dev/null @@ -1,66 +0,0 @@ -'\" t -.\" Title: pam_getenvlist -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_GETENVLIST" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_getenvlist \- getting the PAM environment -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'char\ **pam_getenvlist('u -.BI "char **pam_getenvlist(pam_handle_t\ *" "pamh" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_getenvlist\fR -function returns a complete copy of the PAM environment as associated with the handle -\fIpamh\fR\&. The PAM environment variables represent the contents of the regular environment variables of the authenticated user when service is granted\&. -.PP -The format of the memory is a malloc()\*(Aqd array of char pointers, the last element of which is set to NULL\&. Each of the non\-NULL entries in this array point to a NUL terminated and malloc()\*(Aqd char string of the form: "\fIname=value\fR"\&. -.PP -It should be noted that this memory will never be free()\*(Aqd by libpam\&. Once obtained by a call to -\fBpam_getenvlist\fR, it is the responsibility of the calling application to free() this memory\&. -.PP -It is by design, and not a coincidence, that the format and contents of the returned array matches that required for the third argument of the -\fBexecle\fR(3) -function call\&. -.SH "RETURN VALUES" -.PP -The -\fBpam_getenvlist\fR -function returns NULL on failure\&. -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_getenv\fR(3), -\fBpam_putenv\fR(3), -\fBpam\fR(8) diff --git a/doc/man/pam_info.3 b/doc/man/pam_info.3 deleted file mode 100644 index d66dee4b..00000000 --- a/doc/man/pam_info.3 +++ /dev/null @@ -1,86 +0,0 @@ -'\" t -.\" Title: pam_info -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_INFO" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_info, pam_vinfo \- display messages to the user -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_ext\&.h> -.fi -.ft -.HP \w'int\ pam_info('u -.BI "int pam_info(pam_handle_t\ *" "pamh" ", const\ char\ *" "fmt" ", " "\&.\&.\&." ");" -.HP \w'int\ pam_vinfo('u -.BI "int pam_vinfo(pam_handle_t\ *" "pamh" ", const\ char\ *" "fmt" ", va_list\ " "args" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_info\fR -function prints messages through the conversation function to the user\&. -.PP -The -\fBpam_vinfo\fR -function performs the same task as -\fBpam_info()\fR -with the difference that it takes a set of arguments which have been obtained using the -\fBstdarg\fR(3) -variable argument list macros\&. -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -Conversation failure\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Transaction was successful created\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -System error\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(8) -.SH "STANDARDS" -.PP -The -\fBpam_info\fR -and -\fBpam_vinfo\fR -functions are Linux\-PAM extensions\&. diff --git a/doc/man/pam_misc_drop_env.3 b/doc/man/pam_misc_drop_env.3 deleted file mode 100644 index b3d162ce..00000000 --- a/doc/man/pam_misc_drop_env.3 +++ /dev/null @@ -1,62 +0,0 @@ -'\" t -.\" Title: pam_misc_drop_env -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_MISC_DROP_ENV" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_misc_drop_env \- liberating a locally saved environment -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_misc\&.h> -.fi -.ft -.HP \w'int\ pam_misc_drop_env('u -.BI "int pam_misc_drop_env(char\ **" "env" ");" -.SH "DESCRIPTION" -.PP -This function is defined to complement the -\fBpam_getenvlist\fR(3) -function\&. It liberates the memory associated with -\fIenv\fR, -\fIoverwriting\fR -with -\fI0\fR -all memory before -\fBfree()\fRing it\&. -.SH "SEE ALSO" -.PP -\fBpam_getenvlist\fR(3), -\fBpam\fR(8) -.SH "STANDARDS" -.PP -The -\fBpam_misc_drop_env\fR -function is part of the -\fBlibpam_misc\fR -Library and not defined in any standard\&. diff --git a/doc/man/pam_misc_paste_env.3 b/doc/man/pam_misc_paste_env.3 deleted file mode 100644 index d707daa4..00000000 --- a/doc/man/pam_misc_paste_env.3 +++ /dev/null @@ -1,57 +0,0 @@ -'\" t -.\" Title: pam_misc_paste_env -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_MISC_PASTE_ENV" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_misc_paste_env \- transcribing an environment to that of PAM -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_misc\&.h> -.fi -.ft -.HP \w'int\ pam_misc_paste_env('u -.BI "int pam_misc_paste_env(pam_handle_t\ *" "pamh" ", const\ char\ *\ const\ *" "user" ");" -.SH "DESCRIPTION" -.PP -This function takes the supplied list of environment pointers and -\fIuploads\fR -its contents to the PAM environment\&. Success is indicated by -PAM_SUCCESS\&. -.SH "SEE ALSO" -.PP -\fBpam_putenv\fR(3), -\fBpam\fR(8) -.SH "STANDARDS" -.PP -The -\fBpam_misc_paste_env\fR -function is part of the -\fBlibpam_misc\fR -Library and not defined in any standard\&. diff --git a/doc/man/pam_misc_setenv.3 b/doc/man/pam_misc_setenv.3 deleted file mode 100644 index 70030b74..00000000 --- a/doc/man/pam_misc_setenv.3 +++ /dev/null @@ -1,62 +0,0 @@ -'\" t -.\" Title: pam_misc_setenv -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_MISC_SETENV" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_misc_setenv \- BSD like PAM environment variable setting -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_misc\&.h> -.fi -.ft -.HP \w'int\ pam_misc_setenv('u -.BI "int pam_misc_setenv(pam_handle_t\ *" "pamh" ", const\ char\ *" "name" ", const\ char\ *" "value" ", int\ " "readonly" ");" -.SH "DESCRIPTION" -.PP -This function performs a task equivalent to -\fBpam_putenv\fR(3), its syntax is, however, more like the BSD style function; -\fBsetenv()\fR\&. The -\fIname\fR -and -\fIvalue\fR -are concatenated with an \*(Aq=\*(Aq to form a name=value and passed to -\fBpam_putenv()\fR\&. If, however, the PAM variable is already set, the replacement will only be applied if the last argument, -\fIreadonly\fR, is zero\&. -.SH "SEE ALSO" -.PP -\fBpam_putenv\fR(3), -\fBpam\fR(8) -.SH "STANDARDS" -.PP -The -\fBpam_misc_setenv\fR -function is part of the -\fBlibpam_misc\fR -Library and not defined in any standard\&. diff --git a/doc/man/pam_open_session.3 b/doc/man/pam_open_session.3 deleted file mode 100644 index e56e1371..00000000 --- a/doc/man/pam_open_session.3 +++ /dev/null @@ -1,81 +0,0 @@ -'\" t -.\" Title: pam_open_session -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_OPEN_SESSION" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_open_session \- start PAM session management -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_open_session('u -.BI "int pam_open_session(pam_handle_t\ *" "pamh" ", int\ " "flags" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_open_session\fR -function sets up a user session for a previously successful authenticated user\&. The session should later be terminated with a call to -\fBpam_close_session\fR(3)\&. -.PP -It should be noted that the effective uid, -\fBgeteuid\fR(2)\&. of the application should be of sufficient privilege to perform such tasks as creating or mounting the user\*(Aqs home directory for example\&. -.PP -The flags argument is the binary or of zero or more of the following values: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_ABORT -.RS 4 -General failure\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Session failure\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Session was successful created\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_close_session\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_open_session.3.xml b/doc/man/pam_open_session.3.xml index d37b3e59..a05e0abe 100644 --- a/doc/man/pam_open_session.3.xml +++ b/doc/man/pam_open_session.3.xml @@ -40,7 +40,7 @@ It should be noted that the effective uid, <citerefentry> <refentrytitle>geteuid</refentrytitle><manvolnum>2</manvolnum> - </citerefentry>. of the application should be of sufficient + </citerefentry>, of the application should be of sufficient privilege to perform such tasks as creating or mounting the user's home directory for example. </para> diff --git a/doc/man/pam_prompt.3 b/doc/man/pam_prompt.3 deleted file mode 100644 index 30707477..00000000 --- a/doc/man/pam_prompt.3 +++ /dev/null @@ -1,81 +0,0 @@ -'\" t -.\" Title: pam_prompt -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_PROMPT" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_prompt, pam_vprompt \- interface to conversation function -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_ext\&.h> -.fi -.ft -.HP \w'int\ pam_prompt('u -.BI "int pam_prompt(pam_handle_t\ *" "pamh" ", int\ " "style" ", char\ **" "response" ", const\ char\ *" "fmt" ", " "\&.\&.\&." ");" -.HP \w'int\ pam_vprompt('u -.BI "int pam_vprompt(pam_handle_t\ *" "pamh" ", int\ " "style" ", char\ **" "response" ", const\ char\ *" "fmt" ", va_list\ " "args" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_prompt\fR -function constructs a message from the specified format string and arguments and passes it to the conversation function as set by the service\&. Upon successful return, -\fIresponse\fR -is set to point to a string returned from the conversation function\&. This string is allocated on heap and should be freed\&. -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -Conversation failure\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Conversation succeeded, response is set\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -System error\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(8), -\fBpam_conv\fR(3) -.SH "STANDARDS" -.PP -The -\fBpam_prompt\fR -and -\fBpam_vprompt\fR -functions are Linux\-PAM extensions\&. diff --git a/doc/man/pam_putenv.3 b/doc/man/pam_putenv.3 deleted file mode 100644 index 3b826b19..00000000 --- a/doc/man/pam_putenv.3 +++ /dev/null @@ -1,111 +0,0 @@ -'\" t -.\" Title: pam_putenv -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_PUTENV" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_putenv \- set or change PAM environment variable -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_putenv('u -.BI "int pam_putenv(pam_handle_t\ *" "pamh" ", const\ char\ *" "name_value" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_putenv\fR -function is used to add or change the value of PAM environment variables as associated with the -\fIpamh\fR -handle\&. -.PP -The -\fIpamh\fR -argument is an authentication handle obtained by a prior call to pam_start()\&. The -\fIname_value\fR -argument is a single NUL terminated string of one of the following forms: -.PP -NAME=value of variable -.RS 4 -In this case the environment variable of the given NAME is set to the indicated value: -\fIvalue of variable\fR\&. If this variable is already known, it is overwritten\&. Otherwise it is added to the PAM environment\&. -.RE -.PP -NAME= -.RS 4 -This function sets the variable to an empty value\&. It is listed separately to indicate that this is the correct way to achieve such a setting\&. -.RE -.PP -NAME -.RS 4 -Without an \*(Aq=\*(Aq the -\fBpam_putenv\fR() function will delete the corresponding variable from the PAM environment\&. -.RE -.PP -\fBpam_putenv\fR() operates on a copy of -\fIname_value\fR, which means in contrast to -\fBputenv\fR(3), the application is responsible for freeing the data\&. -.SH "RETURN VALUES" -.PP -PAM_PERM_DENIED -.RS 4 -Argument -\fIname_value\fR -given is a NULL pointer\&. -.RE -.PP -PAM_BAD_ITEM -.RS 4 -Variable requested (for deletion) is not currently set\&. -.RE -.PP -PAM_ABORT -.RS 4 -The -\fIpamh\fR -handle is corrupt\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The environment variable was successfully updated\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_getenv\fR(3), -\fBpam_getenvlist\fR(3), -\fBpam_strerror\fR(3), -\fBpam\fR(8) diff --git a/doc/man/pam_set_data.3 b/doc/man/pam_set_data.3 deleted file mode 100644 index 59fcb979..00000000 --- a/doc/man/pam_set_data.3 +++ /dev/null @@ -1,120 +0,0 @@ -'\" t -.\" Title: pam_set_data -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SET_DATA" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_set_data \- set module internal data -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_set_data('u -.BI "int pam_set_data(pam_handle_t\ *" "pamh" ", const\ char\ *" "module_data_name" ", void\ *" "data" ", void\ " "(*cleanup)(pam_handle_t\ *pamh,\ void\ *data,\ int\ error_status)" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_set_data\fR -function associates a pointer to an object with the (hopefully) unique string -\fImodule_data_name\fR -in the PAM context specified by the -\fIpamh\fR -argument\&. -.PP -PAM modules may be dynamically loadable objects\&. In general such files should not contain -\fIstatic\fR -variables\&. This function and its counterpart -\fBpam_get_data\fR(3), provide a mechanism for a module to associate some data with the handle -\fIpamh\fR\&. Typically a module will call the -\fBpam_set_data\fR -function to register some data under a (hopefully) unique -\fImodule_data_name\fR\&. The data is available for use by other modules too but -\fInot\fR -by an application\&. Since this functions stores only a pointer to the -\fIdata\fR, the module should not modify or free the content of it\&. -.PP -The function -\fBcleanup()\fR -is associated with the -\fIdata\fR -and, if non\-NULL, it is called when this data is over\-written or following a call to -\fBpam_end\fR(3)\&. -.PP -The -\fIerror_status\fR -argument is used to indicate to the module the sort of action it is to take in cleaning this data item\&. As an example, Kerberos creates a ticket file during the authentication phase, this file might be associated with a data item\&. When -\fBpam_end\fR(3) -is called by the module, the -\fIerror_status\fR -carries the return value of the -\fBpam_authenticate\fR(3) -or other -\fIlibpam\fR -function as appropriate\&. Based on this value the Kerberos module may choose to delete the ticket file (\fIauthentication failure\fR) or leave it in place\&. -.PP -The -\fIerror_status\fR -may have been logically OR\*(Aqd with either of the following two values: -.PP -PAM_DATA_REPLACE -.RS 4 -When a data item is being replaced (through a second call to -\fBpam_set_data\fR) this mask is used\&. Otherwise, the call is assumed to be from -\fBpam_end\fR(3)\&. -.RE -.PP -PAM_DATA_SILENT -.RS 4 -Which indicates that the process would prefer to perform the -\fBcleanup()\fR -quietly\&. That is, discourages logging/messages to the user\&. It is generally used to indicate that the current closing of the library is in a -\fBfork\fR(2)ed process, and that the parent will take care of cleaning up things that exist outside of the current process space (files etc\&.)\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Data was successful stored\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -A NULL pointer was submitted as PAM handle or the function was called by an application\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_end\fR(3), -\fBpam_get_data\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_set_item.3 b/doc/man/pam_set_item.3 deleted file mode 100644 index 17ab1f34..00000000 --- a/doc/man/pam_set_item.3 +++ /dev/null @@ -1,195 +0,0 @@ -'\" t -.\" Title: pam_set_item -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SET_ITEM" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_set_item \- set and update PAM information -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_set_item('u -.BI "int pam_set_item(pam_handle_t\ *" "pamh" ", int\ " "item_type" ", const\ void\ *" "item" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_set_item\fR -function allows applications and PAM service modules to access and to update PAM information of -\fIitem_type\fR\&. For this a copy of the object pointed to by the -\fIitem\fR -argument is created\&. The following -\fIitem_type\fRs are supported: -.PP -PAM_SERVICE -.RS 4 -The service name (which identifies that PAM stack that the PAM functions will use to authenticate the program)\&. -.RE -.PP -PAM_USER -.RS 4 -The username of the entity under whose identity service will be given\&. That is, following authentication, -\fIPAM_USER\fR -identifies the local entity that gets to use the service\&. Note, this value can be mapped from something (eg\&., "anonymous") to something else (eg\&. "guest119") by any module in the PAM stack\&. As such an application should consult the value of -\fIPAM_USER\fR -after each call to a PAM function\&. -.RE -.PP -PAM_USER_PROMPT -.RS 4 -The string used when prompting for a user\*(Aqs name\&. The default value for this string is a localized version of "login: "\&. -.RE -.PP -PAM_TTY -.RS 4 -The terminal name prefixed by -/dev/ -for device files\&. In the past, graphical X\-based applications used to store the -\fI$DISPLAY\fR -variable here, but with the introduction of -\fIPAM_XDISPLAY\fR -this usage is deprecated\&. -.RE -.PP -PAM_RUSER -.RS 4 -The requesting user name: local name for a locally requesting user or a remote user name for a remote requesting user\&. -.sp -Generally an application or module will attempt to supply the value that is most strongly authenticated (a local account before a remote one\&. The level of trust in this value is embodied in the actual authentication stack associated with the application, so it is ultimately at the discretion of the system administrator\&. -.sp -\fIPAM_RUSER@PAM_RHOST\fR -should always identify the requesting user\&. In some cases, -\fIPAM_RUSER\fR -may be NULL\&. In such situations, it is unclear who the requesting entity is\&. -.RE -.PP -PAM_RHOST -.RS 4 -The requesting hostname (the hostname of the machine from which the -\fIPAM_RUSER\fR -entity is requesting service)\&. That is -\fIPAM_RUSER@PAM_RHOST\fR -does identify the requesting user\&. In some applications, -\fIPAM_RHOST\fR -may be NULL\&. In such situations, it is unclear where the authentication request is originating from\&. -.RE -.PP -PAM_AUTHTOK -.RS 4 -The authentication token (often a password)\&. This token should be ignored by all module functions besides -\fBpam_sm_authenticate\fR(3) -and -\fBpam_sm_chauthtok\fR(3)\&. In the former function it is used to pass the most recent authentication token from one stacked module to another\&. In the latter function the token is used for another purpose\&. It contains the currently active authentication token\&. -.RE -.PP -PAM_OLDAUTHTOK -.RS 4 -The old authentication token\&. This token should be ignored by all module functions except -\fBpam_sm_chauthtok\fR(3)\&. -.RE -.PP -PAM_CONV -.RS 4 -The pam_conv structure\&. See -\fBpam_conv\fR(3)\&. -.RE -.PP -The following additional items are specific to Linux\-PAM and should not be used in portable applications: -.PP -PAM_FAIL_DELAY -.RS 4 -A function pointer to redirect centrally managed failure delays\&. See -\fBpam_fail_delay\fR(3)\&. -.RE -.PP -PAM_XDISPLAY -.RS 4 -The name of the X display\&. For graphical, X\-based applications the value for this item should be the -\fI$DISPLAY\fR -variable\&. This value may be used independently of -\fIPAM_TTY\fR -for passing the name of the display\&. -.RE -.PP -PAM_XAUTHDATA -.RS 4 -A pointer to a structure containing the X authentication data required to make a connection to the display specified by -\fIPAM_XDISPLAY\fR, if such information is necessary\&. See -\fBpam_xauth_data\fR(3)\&. -.RE -.PP -PAM_AUTHTOK_TYPE -.RS 4 -The default action is for the module to use the following prompts when requesting passwords: "New UNIX password: " and "Retype UNIX password: "\&. The example word -\fIUNIX\fR -can be replaced with this item, by default it is empty\&. This item is used by -\fBpam_get_authtok\fR(3)\&. -.RE -.PP -For all -\fIitem_type\fRs, other than PAM_CONV and PAM_FAIL_DELAY, -\fIitem\fR -is a pointer to a <NUL> terminated character string\&. In the case of PAM_CONV, -\fIitem\fR -points to an initialized -\fIpam_conv\fR -structure\&. In the case of PAM_FAIL_DELAY, -\fIitem\fR -is a function pointer: -\fBvoid (*delay_fn)(int retval, unsigned usec_delay, void *appdata_ptr)\fR -.PP -Both, PAM_AUTHTOK and PAM_OLDAUTHTOK, will be reset before returning to the application\&. Which means an application is not able to access the authentication tokens\&. -.SH "RETURN VALUES" -.PP -PAM_BAD_ITEM -.RS 4 -The application attempted to set an undefined or inaccessible item\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Data was successful updated\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -The -\fIpam_handle_t\fR -passed as first argument was invalid\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_get_item\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_setcred.3 b/doc/man/pam_setcred.3 deleted file mode 100644 index 1a662da1..00000000 --- a/doc/man/pam_setcred.3 +++ /dev/null @@ -1,122 +0,0 @@ -'\" t -.\" Title: pam_setcred -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SETCRED" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_setcred \- establish / delete user credentials -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_setcred('u -.BI "int pam_setcred(pam_handle_t\ *" "pamh" ", int\ " "flags" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_setcred\fR -function is used to establish, maintain and delete the credentials of a user\&. It should be called to set the credentials after a user has been authenticated and before a session is opened for the user (with -\fBpam_open_session\fR(3))\&. The credentials should be deleted after the session has been closed (with -\fBpam_close_session\fR(3))\&. -.PP -A credential is something that the user possesses\&. It is some property, such as a -\fIKerberos\fR -ticket, or a supplementary group membership that make up the uniqueness of a given user\&. On a Linux system the user\*(Aqs -\fIUID\fR -and -\fIGID\fR\*(Aqs are credentials too\&. However, it has been decided that these properties (along with the default supplementary groups of which the user is a member) are credentials that should be set directly by the application and not by PAM\&. Such credentials should be established, by the application, prior to a call to this function\&. For example, -\fBinitgroups\fR(2) -(or equivalent) should have been performed\&. -.PP -Valid -\fIflags\fR, any one of which, may be logically OR\*(Aqd with -\fBPAM_SILENT\fR, are: -.PP -PAM_ESTABLISH_CRED -.RS 4 -Initialize the credentials for the user\&. -.RE -.PP -PAM_DELETE_CRED -.RS 4 -Delete the user\*(Aqs credentials\&. -.RE -.PP -PAM_REINITIALIZE_CRED -.RS 4 -Fully reinitialize the user\*(Aqs credentials\&. -.RE -.PP -PAM_REFRESH_CRED -.RS 4 -Extend the lifetime of the existing credentials\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CRED_ERR -.RS 4 -Failed to set user credentials\&. -.RE -.PP -PAM_CRED_EXPIRED -.RS 4 -User credentials are expired\&. -.RE -.PP -PAM_CRED_UNAVAIL -.RS 4 -Failed to retrieve user credentials\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Data was successful stored\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -A NULL pointer was submitted as PAM handle, the function was called by a module or another system error occurred\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User is not known to an authentication module\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_authenticate\fR(3), -\fBpam_open_session\fR(3), -\fBpam_close_session\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_sm_acct_mgmt.3 b/doc/man/pam_sm_acct_mgmt.3 deleted file mode 100644 index d44294d4..00000000 --- a/doc/man/pam_sm_acct_mgmt.3 +++ /dev/null @@ -1,105 +0,0 @@ -'\" t -.\" Title: pam_sm_acct_mgmt -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SM_ACCT_MGMT" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_sm_acct_mgmt \- PAM service function for account management -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_sm_acct_mgmt('u -.BI "int pam_sm_acct_mgmt(pam_handle_t\ *" "pamh" ", int\ " "flags" ", int\ " "argc" ", const\ char\ **" "argv" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_sm_acct_mgmt\fR -function is the service module\*(Aqs implementation of the -\fBpam_acct_mgmt\fR(3) -interface\&. -.PP -This function performs the task of establishing whether the user is permitted to gain access at this time\&. It should be understood that the user has previously been validated by an authentication module\&. This function checks for other things\&. Such things might be: the time of day or the date, the terminal line, remote hostname, etc\&. This function may also determine things like the expiration on passwords, and respond that the user change it before continuing\&. -.PP -Valid flags, which may be logically OR\*(Aqd with -\fIPAM_SILENT\fR, are: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.PP -PAM_DISALLOW_NULL_AUTHTOK -.RS 4 -Return -\fBPAM_AUTH_ERR\fR -if the database of authentication tokens for this authentication mechanism has a -\fINULL\fR -entry for the user\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_ACCT_EXPIRED -.RS 4 -User account has expired\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -Authentication failure\&. -.RE -.PP -PAM_NEW_AUTHTOK_REQD -.RS 4 -The user\*(Aqs authentication token has expired\&. Before calling this function again the application will arrange for a new one to be given\&. This will likely result in a call to -\fBpam_sm_chauthtok()\fR\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Permission denied\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The authentication token was successfully updated\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User unknown to password service\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(3), -\fBpam_acct_mgmt\fR(3), -\fBpam_sm_chauthtok\fR(3), -\fBpam_strerror\fR(3), -\fBPAM\fR(8) diff --git a/doc/man/pam_sm_authenticate.3 b/doc/man/pam_sm_authenticate.3 deleted file mode 100644 index d622e5bf..00000000 --- a/doc/man/pam_sm_authenticate.3 +++ /dev/null @@ -1,106 +0,0 @@ -'\" t -.\" Title: pam_sm_authenticate -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SM_AUTHENTICATE" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_sm_authenticate \- PAM service function for user authentication -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_sm_authenticate('u -.BI "int pam_sm_authenticate(pam_handle_t\ *" "pamh" ", int\ " "flags" ", int\ " "argc" ", const\ char\ **" "argv" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_sm_authenticate\fR -function is the service module\*(Aqs implementation of the -\fBpam_authenticate\fR(3) -interface\&. -.PP -This function performs the task of authenticating the user\&. -.PP -Valid flags, which may be logically OR\*(Aqd with -\fIPAM_SILENT\fR, are: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.PP -PAM_DISALLOW_NULL_AUTHTOK -.RS 4 -Return -\fBPAM_AUTH_ERR\fR -if the database of authentication tokens for this authentication mechanism has a -\fINULL\fR -entry for the user\&. Without this flag, such a -\fINULL\fR -token will lead to a success without the user being prompted\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -Authentication failure\&. -.RE -.PP -PAM_CRED_INSUFFICIENT -.RS 4 -For some reason the application does not have sufficient credentials to authenticate the user\&. -.RE -.PP -PAM_AUTHINFO_UNAVAIL -.RS 4 -The modules were not able to access the authentication information\&. This might be due to a network or hardware failure etc\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The authentication token was successfully updated\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The supplied username is not known to the authentication service\&. -.RE -.PP -PAM_MAXTRIES -.RS 4 -One or more of the authentication modules has reached its limit of tries authenticating the user\&. Do not try again\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(3), -\fBpam_authenticate\fR(3), -\fBpam_sm_setcred\fR(3), -\fBpam_strerror\fR(3), -\fBPAM\fR(8) diff --git a/doc/man/pam_sm_chauthtok.3 b/doc/man/pam_sm_chauthtok.3 deleted file mode 100644 index 39f927e5..00000000 --- a/doc/man/pam_sm_chauthtok.3 +++ /dev/null @@ -1,137 +0,0 @@ -'\" t -.\" Title: pam_sm_chauthtok -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SM_CHAUTHTOK" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_sm_chauthtok \- PAM service function for authentication token management -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_sm_chauthtok('u -.BI "int pam_sm_chauthtok(pam_handle_t\ *" "pamh" ", int\ " "flags" ", int\ " "argc" ", const\ char\ **" "argv" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_sm_chauthtok\fR -function is the service module\*(Aqs implementation of the -\fBpam_chauthtok\fR(3) -interface\&. -.PP -This function is used to (re\-)set the authentication token of the user\&. -.PP -Valid flags, which may be logically OR\*(Aqd with -\fIPAM_SILENT\fR, are: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.PP -PAM_CHANGE_EXPIRED_AUTHTOK -.RS 4 -This argument indicates to the module that the user\*(Aqs authentication token (password) should only be changed if it has expired\&. This flag is optional and -\fImust\fR -be combined with one of the following two flags\&. Note, however, the following two options are -\fImutually exclusive\fR\&. -.RE -.PP -PAM_PRELIM_CHECK -.RS 4 -This indicates that the modules are being probed as to their ready status for altering the user\*(Aqs authentication token\&. If the module requires access to another system over some network it should attempt to verify it can connect to this system on receiving this flag\&. If a module cannot establish it is ready to update the user\*(Aqs authentication token it should return -\fBPAM_TRY_AGAIN\fR, this information will be passed back to the application\&. -.sp -If the control value -\fIsufficient\fR -is used in the password stack, the -\fIPAM_PRELIM_CHECK\fR -section of the modules following that control value is not always executed\&. -.RE -.PP -PAM_UPDATE_AUTHTOK -.RS 4 -This informs the module that this is the call it should change the authorization tokens\&. If the flag is logically OR\*(Aqd with -\fBPAM_CHANGE_EXPIRED_AUTHTOK\fR, the token is only changed if it has actually expired\&. -.RE -.PP -The PAM library calls this function twice in succession\&. The first time with -\fBPAM_PRELIM_CHECK\fR -and then, if the module does not return -\fBPAM_TRY_AGAIN\fR, subsequently with -\fBPAM_UPDATE_AUTHTOK\fR\&. It is only on the second call that the authorization token is (possibly) changed\&. -.SH "RETURN VALUES" -.PP -PAM_AUTHTOK_ERR -.RS 4 -The module was unable to obtain the new authentication token\&. -.RE -.PP -PAM_AUTHTOK_RECOVERY_ERR -.RS 4 -The module was unable to obtain the old authentication token\&. -.RE -.PP -PAM_AUTHTOK_LOCK_BUSY -.RS 4 -Cannot change the authentication token since it is currently locked\&. -.RE -.PP -PAM_AUTHTOK_DISABLE_AGING -.RS 4 -Authentication token aging has been disabled\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Permission denied\&. -.RE -.PP -PAM_TRY_AGAIN -.RS 4 -Preliminary check was unsuccessful\&. Signals an immediate return to the application is desired\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The authentication token was successfully updated\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User unknown to password service\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(3), -\fBpam_chauthtok\fR(3), -\fBpam_sm_chauthtok\fR(3), -\fBpam_strerror\fR(3), -\fBPAM\fR(8) diff --git a/doc/man/pam_sm_close_session.3 b/doc/man/pam_sm_close_session.3 deleted file mode 100644 index 2b77dd69..00000000 --- a/doc/man/pam_sm_close_session.3 +++ /dev/null @@ -1,74 +0,0 @@ -'\" t -.\" Title: pam_sm_close_session -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SM_CLOSE_SESSION" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_sm_close_session \- PAM service function to terminate session management -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_sm_close_session('u -.BI "int pam_sm_close_session(pam_handle_t\ *" "pamh" ", int\ " "flags" ", int\ " "argc" ", const\ char\ **" "argv" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_sm_close_session\fR -function is the service module\*(Aqs implementation of the -\fBpam_close_session\fR(3) -interface\&. -.PP -This function is called to terminate a session\&. The only valid value for -\fIflags\fR -is zero or: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_SESSION_ERR -.RS 4 -Cannot make/remove an entry for the specified session\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The session was successfully terminated\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(3), -\fBpam_close_session\fR(3), -\fBpam_sm_close_session\fR(3), -\fBpam_strerror\fR(3), -\fBPAM\fR(8) diff --git a/doc/man/pam_sm_open_session.3 b/doc/man/pam_sm_open_session.3 deleted file mode 100644 index 6a97842f..00000000 --- a/doc/man/pam_sm_open_session.3 +++ /dev/null @@ -1,74 +0,0 @@ -'\" t -.\" Title: pam_sm_open_session -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SM_OPEN_SESSION" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_sm_open_session \- PAM service function to start session management -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_sm_open_session('u -.BI "int pam_sm_open_session(pam_handle_t\ *" "pamh" ", int\ " "flags" ", int\ " "argc" ", const\ char\ **" "argv" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_sm_open_session\fR -function is the service module\*(Aqs implementation of the -\fBpam_open_session\fR(3) -interface\&. -.PP -This function is called to commence a session\&. The only valid value for -\fIflags\fR -is zero or: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.SH "RETURN VALUES" -.PP -PAM_SESSION_ERR -.RS 4 -Cannot make/remove an entry for the specified session\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The session was successfully started\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam\fR(3), -\fBpam_open_session\fR(3), -\fBpam_sm_close_session\fR(3), -\fBpam_strerror\fR(3), -\fBPAM\fR(8) diff --git a/doc/man/pam_sm_setcred.3 b/doc/man/pam_sm_setcred.3 deleted file mode 100644 index 801f204c..00000000 --- a/doc/man/pam_sm_setcred.3 +++ /dev/null @@ -1,128 +0,0 @@ -'\" t -.\" Title: pam_sm_setcred -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SM_SETCRED" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_sm_setcred \- PAM service function to alter credentials -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_modules\&.h> -.fi -.ft -.HP \w'int\ pam_sm_setcred('u -.BI "int pam_sm_setcred(pam_handle_t\ *" "pamh" ", int\ " "flags" ", int\ " "argc" ", const\ char\ **" "argv" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_sm_setcred\fR -function is the service module\*(Aqs implementation of the -\fBpam_setcred\fR(3) -interface\&. -.PP -This function performs the task of altering the credentials of the user with respect to the corresponding authorization scheme\&. Generally, an authentication module may have access to more information about a user than their authentication token\&. This function is used to make such information available to the application\&. It should only be called -\fIafter\fR -the user has been authenticated but before a session has been established\&. -.PP -Valid flags, which may be logically OR\*(Aqd with -\fIPAM_SILENT\fR, are: -.PP -PAM_SILENT -.RS 4 -Do not emit any messages\&. -.RE -.PP -PAM_ESTABLISH_CRED -.RS 4 -Initialize the credentials for the user\&. -.RE -.PP -PAM_DELETE_CRED -.RS 4 -Delete the credentials associated with the authentication service\&. -.RE -.PP -PAM_REINITIALIZE_CRED -.RS 4 -Reinitialize the user credentials\&. -.RE -.PP -PAM_REFRESH_CRED -.RS 4 -Extend the lifetime of the user credentials\&. -.RE -.PP -The way the -\fBauth\fR -stack is navigated in order to evaluate the -\fBpam_setcred\fR() function call, independent of the -\fBpam_sm_setcred\fR() return codes, is exactly the same way that it was navigated when evaluating the -\fBpam_authenticate\fR() library call\&. Typically, if a stack entry was ignored in evaluating -\fBpam_authenticate\fR(), it will be ignored when libpam evaluates the -\fBpam_setcred\fR() function call\&. Otherwise, the return codes from each module specific -\fBpam_sm_setcred\fR() call are treated as -\fBrequired\fR\&. -.SH "RETURN VALUES" -.PP -PAM_CRED_UNAVAIL -.RS 4 -This module cannot retrieve the user\*(Aqs credentials\&. -.RE -.PP -PAM_CRED_EXPIRED -.RS 4 -The user\*(Aqs credentials have expired\&. -.RE -.PP -PAM_CRED_ERR -.RS 4 -This module was unable to set the credentials of the user\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The user credential was successfully set\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The user is not known to this authentication module\&. -.RE -.PP -These, non\-\fIPAM_SUCCESS\fR, return values will typically lead to the credential stack -\fIfailing\fR\&. The first such error will dominate in the return value of -\fBpam_setcred\fR()\&. -.SH "SEE ALSO" -.PP -\fBpam\fR(3), -\fBpam_authenticate\fR(3), -\fBpam_setcred\fR(3), -\fBpam_sm_authenticate\fR(3), -\fBpam_strerror\fR(3), -\fBPAM\fR(8) diff --git a/doc/man/pam_start.3 b/doc/man/pam_start.3 deleted file mode 100644 index 904b3821..00000000 --- a/doc/man/pam_start.3 +++ /dev/null @@ -1,117 +0,0 @@ -'\" t -.\" Title: pam_start -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_START" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_start, pam_start_confdir \- initialization of PAM transaction -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'int\ pam_start('u -.BI "int pam_start(const\ char\ *" "service_name" ", const\ char\ *" "user" ", const\ struct\ pam_conv\ *" "pam_conversation" ", pam_handle_t\ **" "pamh" ");" -.HP \w'int\ pam_start_confdir('u -.BI "int pam_start_confdir(const\ char\ *" "service_name" ", const\ char\ *" "user" ", const\ struct\ pam_conv\ *" "pam_conversation" ", const\ char\ *" "confdir" ", pam_handle_t\ **" "pamh" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_start\fR -function creates the PAM context and initiates the PAM transaction\&. It is the first of the PAM functions that needs to be called by an application\&. The transaction state is contained entirely within the structure identified by this handle, so it is possible to have multiple transactions in parallel\&. But it is not possible to use the same handle for different transactions, a new one is needed for every new context\&. -.PP -The -\fIservice_name\fR -argument specifies the name of the service to apply and will be stored as PAM_SERVICE item in the new context\&. The policy for the service will be read from the file -/etc/pam\&.d/service_name -or, if that file does not exist, from -/etc/pam\&.conf\&. -.PP -The -\fIuser\fR -argument can specify the name of the target user and will be stored as PAM_USER item\&. If the argument is NULL, the module has to ask for this item if necessary\&. -.PP -The -\fIpam_conversation\fR -argument points to a -\fIstruct pam_conv\fR -describing the conversation function to use\&. An application must provide this for direct communication between a loaded module and the application\&. -.PP -Following a successful return (PAM_SUCCESS) the contents of -\fIpamh\fR -is a handle that contains the PAM context for successive calls to the PAM functions\&. In an error case is the content of -\fIpamh\fR -undefined\&. -.PP -The -\fIpam_handle_t\fR -is a blind structure and the application should not attempt to probe it directly for information\&. Instead the PAM library provides the functions -\fBpam_set_item\fR(3) -and -\fBpam_get_item\fR(3)\&. The PAM handle cannot be used for multiple authentications at the same time as long as -\fBpam_end\fR -was not called on it before\&. -.PP -The -\fBpam_start_confdir\fR -function behaves like the -\fBpam_start\fR -function but it also allows setting -\fIconfdir\fR -argument with a path to a directory to override the default (/etc/pam\&.d) path for service policy files\&. If the -\fIconfdir\fR -is NULL, the function works exactly the same as -\fBpam_start\fR\&. -.SH "RETURN VALUES" -.PP -PAM_ABORT -.RS 4 -General failure\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Transaction was successfully started\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -System error, for example a NULL pointer was submitted instead of a pointer to data\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam_get_data\fR(3), -\fBpam_set_data\fR(3), -\fBpam_end\fR(3), -\fBpam_strerror\fR(3) diff --git a/doc/man/pam_strerror.3 b/doc/man/pam_strerror.3 deleted file mode 100644 index 408eb3a0..00000000 --- a/doc/man/pam_strerror.3 +++ /dev/null @@ -1,52 +0,0 @@ -'\" t -.\" Title: pam_strerror -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_STRERROR" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_strerror \- return string describing PAM error code -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.HP \w'const\ char\ *pam_strerror('u -.BI "const char *pam_strerror(pam_handle_t\ *" "pamh" ", int\ " "errnum" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_strerror\fR -function returns a pointer to a string describing the error code passed in the argument -\fIerrnum\fR, possibly using the LC_MESSAGES part of the current locale to select the appropriate language\&. This string must not be modified by the application\&. No library function will modify this string\&. -.SH "RETURN VALUES" -.PP -This function returns always a pointer to a string\&. -.SH "SEE ALSO" -.PP -\fBpam\fR(8) diff --git a/doc/man/pam_syslog.3 b/doc/man/pam_syslog.3 deleted file mode 100644 index 82231311..00000000 --- a/doc/man/pam_syslog.3 +++ /dev/null @@ -1,77 +0,0 @@ -'\" t -.\" Title: pam_syslog -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SYSLOG" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_syslog, pam_vsyslog \- send messages to the system logger -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <syslog\&.h> -.fi -.ft -.sp -.ft B -.nf -#include <security/pam_ext\&.h> -.fi -.ft -.HP \w'void\ pam_syslog('u -.BI "void pam_syslog(const\ pam_handle_t\ *" "pamh" ", int\ " "priority" ", const\ char\ *" "fmt" ", " "\&.\&.\&." ");" -.HP \w'void\ pam_vsyslog('u -.BI "void pam_vsyslog(const\ pam_handle_t\ *" "pamh" ", int\ " "priority" ", const\ char\ *" "fmt" ", va_list\ " "args" ");" -.SH "DESCRIPTION" -.PP -The -\fBpam_syslog\fR -function logs messages using -\fBsyslog\fR(3) -and is intended for internal use by Linux\-PAM and PAM service modules\&. The -\fIpriority\fR -argument is formed by ORing the facility and the level values as documented in the -\fBsyslog\fR(3) -manual page\&. -.PP -The -\fBpam_vsyslog\fR -function performs the same task as -\fBpam_syslog()\fR -with the difference that it takes a set of arguments which have been obtained using the -\fBstdarg\fR(3) -variable argument list macros\&. -.SH "SEE ALSO" -.PP -\fBpam\fR(8) -.SH "STANDARDS" -.PP -The -\fBpam_syslog\fR -and -\fBpam_vsyslog\fR -functions are Linux\-PAM extensions\&. diff --git a/doc/man/pam_verror.3 b/doc/man/pam_verror.3 deleted file mode 100644 index a0292f44..00000000 --- a/doc/man/pam_verror.3 +++ /dev/null @@ -1 +0,0 @@ -.so pam_error.3 diff --git a/doc/man/pam_vinfo.3 b/doc/man/pam_vinfo.3 deleted file mode 100644 index 4aea758b..00000000 --- a/doc/man/pam_vinfo.3 +++ /dev/null @@ -1 +0,0 @@ -.so pam_info.3 diff --git a/doc/man/pam_vprompt.3 b/doc/man/pam_vprompt.3 deleted file mode 100644 index cec7f44c..00000000 --- a/doc/man/pam_vprompt.3 +++ /dev/null @@ -1 +0,0 @@ -.so pam_prompt.3 diff --git a/doc/man/pam_vsyslog.3 b/doc/man/pam_vsyslog.3 deleted file mode 100644 index 8d6a07e9..00000000 --- a/doc/man/pam_vsyslog.3 +++ /dev/null @@ -1 +0,0 @@ -.so pam_syslog.3 diff --git a/doc/man/pam_xauth_data.3 b/doc/man/pam_xauth_data.3 deleted file mode 100644 index 254eb56a..00000000 --- a/doc/man/pam_xauth_data.3 +++ /dev/null @@ -1,84 +0,0 @@ -'\" t -.\" Title: pam_xauth_data -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_XAUTH_DATA" "3" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_xauth_data \- structure containing X authentication data -.SH "SYNOPSIS" -.sp -.ft B -.nf -#include <security/pam_appl\&.h> -.fi -.ft -.sp -.nf -struct pam_xauth_data { - int namelen; - char *name; - int datalen; - char *data; -}; - -.fi -.SH "DESCRIPTION" -.PP -The -\fBpam_xauth_data\fR -structure contains X authentication data used to make a connection to an X display\&. Using this mechanism, an application can communicate X authentication data to PAM service modules\&. This allows modules to make a connection to the user\*(Aqs X display in order to label the user\*(Aqs session on login, display visual feedback or for other purposes\&. -.PP -The -\fIname\fR -field contains the name of the authentication method, such as "MIT\-MAGIC\-COOKIE\-1"\&. The -\fInamelen\fR -field contains the length of this string, not including the trailing NUL character\&. -.PP -The -\fIdata\fR -field contains the authentication method\-specific data corresponding to the specified name\&. The -\fIdatalen\fR -field contains its length in bytes\&. -.PP -The X authentication data can be changed with the -\fIPAM_XAUTH_DATA\fR -item\&. It can be queried and set with -\fBpam_get_item\fR(3) -and -\fBpam_set_item \fR(3) -respectively\&. The value used to set it should be a pointer to a pam_xauth_data structure\&. An internal copy of both the structure itself and its fields is made by PAM when setting the item\&. -.SH "SEE ALSO" -.PP -\fBpam_start\fR(3), -\fBpam_get_item\fR(3), -.SH "STANDARDS" -.PP -The -\fBpam_xauth_data\fR -structure and -\fIPAM_XAUTH_DATA\fR -item are Linux\-PAM extensions\&. diff --git a/doc/meson.build b/doc/meson.build new file mode 100644 index 00000000..afe15851 --- /dev/null +++ b/doc/meson.build @@ -0,0 +1,26 @@ +custom_man_xsl = custom_target( + 'custom-man.xsl', + input: 'custom-man.xsl.in', + output: ['custom-man.xsl'], + command: [ + redir_exe, + '@INPUT@', + '@OUTPUT@', + 'sed', + 's+MAN_STYLESHEET+' + man_stylesheet + '+g' + ] +) + +install_data( + 'index.html', + install_dir: htmldir, + install_tag: 'doc', +) + +install_html = files('install-html.sh') + +subdir('man') +subdir('specs') +subdir('sag') +subdir('adg') +subdir('mwg') diff --git a/doc/mwg/Makefile.am b/doc/mwg/Makefile.am deleted file mode 100644 index 340249c6..00000000 --- a/doc/mwg/Makefile.am +++ /dev/null @@ -1,113 +0,0 @@ -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = Linux-PAM_MWG.fo *~ - -EXTRA_DIST = $(XMLS) - -XMLS = Linux-PAM_MWG.xml $(shell ls $(srcdir)/pam_*.xml) -DEP_XMLS = $(shell ls $(top_srcdir)/doc/man/pam_*.xml) - -if ENABLE_REGENERATE_MAN -MAINTAINERCLEANFILES = Linux-PAM_MWG.txt Linux-PAM_MWG.pdf html/*.html - -all: Linux-PAM_MWG.txt html/Linux-PAM_MWG.html Linux-PAM_MWG.pdf - -Linux-PAM_MWG.pdf: $(XMLS) $(DEP_XMLS) -if ENABLE_GENERATE_PDF - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam generate.toc "book toc" \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 3 --xinclude --nonet \ - $(PDF_STYLESHEET) $< > Linux-PAM_MWG.fo - $(FO2PDF) Linux-PAM_MWG.fo $@ -else - echo "No fo2pdf processor installed, skip PDF generation" -endif - -Linux-PAM_MWG.txt: $(XMLS) $(DEP_XMLS) - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam generate.toc "book toc" \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 3 --xinclude --nonet \ - $(TXT_STYLESHEET) $< | $(BROWSER) > $@ - -html/Linux-PAM_MWG.html: $(XMLS) $(DEP_XMLS) - @test -d html || mkdir -p html - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam base.dir html/ \ - --stringparam root.filename Linux-PAM_MWG \ - --stringparam use.id.as.filename 1 \ - --stringparam chunk.first.sections 1 \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 3 --xinclude --nonet \ - --stringparam chunker.output.encoding UTF-8 \ - $(HTML_STYLESHEET) $< - -distclean-local: - -rm -rf html Linux-PAM_MWG.txt Linux-PAM_MWG.pdf - -endif - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(docdir) - $(mkinstalldirs) $(DESTDIR)$(pdfdir) - $(mkinstalldirs) $(DESTDIR)$(htmldir) - if test -f html/Linux-PAM_MWG.html; then \ - $(install_sh_DATA) html/Linux-PAM_MWG.html html/mwg-*.html \ - $(DESTDIR)$(htmldir)/; \ - elif test -f $(srcdir)/html/Linux-PAM_MWG.html; then \ - $(install_sh_DATA) $(srcdir)/html/Linux-PAM_MWG.html \ - $(srcdir)/html/mwg-*.html \ - $(DESTDIR)$(htmldir)/; \ - fi - if test -f Linux-PAM_MWG.txt; then \ - $(install_sh_DATA) Linux-PAM_MWG.txt $(DESTDIR)$(docdir)/; \ - elif test -f $(srcdir)/Linux-PAM_MWG.txt; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_MWG.txt \ - $(DESTDIR)$(docdir)/; \ - fi - if test -f Linux-PAM_MWG.pdf; then \ - $(install_sh_DATA) Linux-PAM_MWG.pdf $(DESTDIR)$(pdfdir)/; \ - elif test -f $(srcdir)/Linux-PAM_MWG.pdf; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_MWG.pdf \ - $(DESTDIR)$(pdfdir)/; \ - fi - -uninstall-local: - -rm $(DESTDIR)$(htmldir)/Linux-PAM_MWG.html - -rm $(DESTDIR)$(htmldir)/mwg-*.html - -rm $(DESTDIR)$(docdir)/Linux-PAM_MWG.txt - -rm $(DESTDIR)$(pdfdir)/Linux-PAM_MWG.pdf - -releasedocs: all - $(mkinstalldirs) $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/html - if test -f html/Linux-PAM_MWG.html; then \ - cp -ap html/Linux-PAM_MWG.html html/mwg-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/html/; \ - elif test -f $(srcdir)/html/Linux-PAM_MWG.html; then \ - cp -ap $(srcdir)/html/Linux-PAM_MWG.html \ - $(srcdir)/html/mwg-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/html/; \ - else exit 1; \ - fi - if test -f Linux-PAM_MWG.txt; then \ - cp -p Linux-PAM_MWG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/; \ - elif test -f $(srcdir)/Linux-PAM_MWG.txt; then \ - cp -p $(srcdir)/Linux-PAM_MWG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/; \ - else exit 1; \ - fi - if test -f Linux-PAM_MWG.pdf; then \ - cp -p Linux-PAM_MWG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/; \ - elif test -f $(srcdir)/Linux-PAM_MWG.pdf; then \ - cp -p $(srcdir)/Linux-PAM_MWG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/; \ - else exit 1; \ - fi diff --git a/doc/mwg/Makefile.in b/doc/mwg/Makefile.in deleted file mode 100644 index 2f20d573..00000000 --- a/doc/mwg/Makefile.in +++ /dev/null @@ -1,633 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@thkukuk.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = doc/mwg -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = Linux-PAM_MWG.fo *~ -EXTRA_DIST = $(XMLS) -XMLS = Linux-PAM_MWG.xml $(shell ls $(srcdir)/pam_*.xml) -DEP_XMLS = $(shell ls $(top_srcdir)/doc/man/pam_*.xml) -@ENABLE_REGENERATE_MAN_TRUE@MAINTAINERCLEANFILES = Linux-PAM_MWG.txt Linux-PAM_MWG.pdf html/*.html -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/mwg/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/mwg/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -@ENABLE_REGENERATE_MAN_FALSE@distclean-local: -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-local - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-data-local - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-local - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - cscopelist-am ctags-am distclean distclean-generic \ - distclean-libtool distclean-local distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-local install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am uninstall-local - -.PRECIOUS: Makefile - - -@ENABLE_REGENERATE_MAN_TRUE@all: Linux-PAM_MWG.txt html/Linux-PAM_MWG.html Linux-PAM_MWG.pdf - -@ENABLE_REGENERATE_MAN_TRUE@Linux-PAM_MWG.pdf: $(XMLS) $(DEP_XMLS) -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam generate.toc "book toc" \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 3 --xinclude --nonet \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(PDF_STYLESHEET) $< > Linux-PAM_MWG.fo -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(FO2PDF) Linux-PAM_MWG.fo $@ -@ENABLE_GENERATE_PDF_FALSE@@ENABLE_REGENERATE_MAN_TRUE@ echo "No fo2pdf processor installed, skip PDF generation" - -@ENABLE_REGENERATE_MAN_TRUE@Linux-PAM_MWG.txt: $(XMLS) $(DEP_XMLS) -@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam generate.toc "book toc" \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 3 --xinclude --nonet \ -@ENABLE_REGENERATE_MAN_TRUE@ $(TXT_STYLESHEET) $< | $(BROWSER) > $@ - -@ENABLE_REGENERATE_MAN_TRUE@html/Linux-PAM_MWG.html: $(XMLS) $(DEP_XMLS) -@ENABLE_REGENERATE_MAN_TRUE@ @test -d html || mkdir -p html -@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam base.dir html/ \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam root.filename Linux-PAM_MWG \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam use.id.as.filename 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam chunk.first.sections 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 3 --xinclude --nonet \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam chunker.output.encoding UTF-8 \ -@ENABLE_REGENERATE_MAN_TRUE@ $(HTML_STYLESHEET) $< - -@ENABLE_REGENERATE_MAN_TRUE@distclean-local: -@ENABLE_REGENERATE_MAN_TRUE@ -rm -rf html Linux-PAM_MWG.txt Linux-PAM_MWG.pdf - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(docdir) - $(mkinstalldirs) $(DESTDIR)$(pdfdir) - $(mkinstalldirs) $(DESTDIR)$(htmldir) - if test -f html/Linux-PAM_MWG.html; then \ - $(install_sh_DATA) html/Linux-PAM_MWG.html html/mwg-*.html \ - $(DESTDIR)$(htmldir)/; \ - elif test -f $(srcdir)/html/Linux-PAM_MWG.html; then \ - $(install_sh_DATA) $(srcdir)/html/Linux-PAM_MWG.html \ - $(srcdir)/html/mwg-*.html \ - $(DESTDIR)$(htmldir)/; \ - fi - if test -f Linux-PAM_MWG.txt; then \ - $(install_sh_DATA) Linux-PAM_MWG.txt $(DESTDIR)$(docdir)/; \ - elif test -f $(srcdir)/Linux-PAM_MWG.txt; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_MWG.txt \ - $(DESTDIR)$(docdir)/; \ - fi - if test -f Linux-PAM_MWG.pdf; then \ - $(install_sh_DATA) Linux-PAM_MWG.pdf $(DESTDIR)$(pdfdir)/; \ - elif test -f $(srcdir)/Linux-PAM_MWG.pdf; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_MWG.pdf \ - $(DESTDIR)$(pdfdir)/; \ - fi - -uninstall-local: - -rm $(DESTDIR)$(htmldir)/Linux-PAM_MWG.html - -rm $(DESTDIR)$(htmldir)/mwg-*.html - -rm $(DESTDIR)$(docdir)/Linux-PAM_MWG.txt - -rm $(DESTDIR)$(pdfdir)/Linux-PAM_MWG.pdf - -releasedocs: all - $(mkinstalldirs) $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/html - if test -f html/Linux-PAM_MWG.html; then \ - cp -ap html/Linux-PAM_MWG.html html/mwg-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/html/; \ - elif test -f $(srcdir)/html/Linux-PAM_MWG.html; then \ - cp -ap $(srcdir)/html/Linux-PAM_MWG.html \ - $(srcdir)/html/mwg-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/html/; \ - else exit 1; \ - fi - if test -f Linux-PAM_MWG.txt; then \ - cp -p Linux-PAM_MWG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/; \ - elif test -f $(srcdir)/Linux-PAM_MWG.txt; then \ - cp -p $(srcdir)/Linux-PAM_MWG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/; \ - else exit 1; \ - fi - if test -f Linux-PAM_MWG.pdf; then \ - cp -p Linux-PAM_MWG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/; \ - elif test -f $(srcdir)/Linux-PAM_MWG.pdf; then \ - cp -p $(srcdir)/Linux-PAM_MWG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/mwg/; \ - else exit 1; \ - fi - -# 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: diff --git a/doc/mwg/html/meson.build b/doc/mwg/html/meson.build new file mode 120000 index 00000000..d6d90eaa --- /dev/null +++ b/doc/mwg/html/meson.build @@ -0,0 +1 @@ +../../guide-html-meson.build
\ No newline at end of file diff --git a/doc/mwg/meson.build b/doc/mwg/meson.build new file mode 120000 index 00000000..2e19d830 --- /dev/null +++ b/doc/mwg/meson.build @@ -0,0 +1 @@ +../guide-meson.build
\ No newline at end of file diff --git a/doc/sag/Linux-PAM_SAG.xml b/doc/sag/Linux-PAM_SAG.xml index 952f224b..205ab98e 100644 --- a/doc/sag/Linux-PAM_SAG.xml +++ b/doc/sag/Linux-PAM_SAG.xml @@ -131,9 +131,9 @@ </para> <para> To illustrate the flexibility you face, consider the following - situation: a system administrator (parent) wishes to improve the - mathematical ability of her users (children). She can configure - their favorite ``Shoot 'em up game'' (PAM-aware of course) to + situation: system administrators (parents) wish to improve the + mathematical ability of their users (children). Their favorite + ``Shoot 'em up game'' (PAM-aware of course) can be configured to authenticate them with a request for the product of a couple of random numbers less than 12. It is clear that if the game is any good they will soon learn their @@ -252,7 +252,7 @@ other session required pam_deny.so is invoked so unless the users of a system contact the administrator when failing to execute a service application, the administrator may go for a long while in ignorance of the - fact that his system is misconfigured. + fact that the system is misconfigured. </para> <para> The addition of the following line before those in the above @@ -378,6 +378,7 @@ session required pam_warn.so coming with Linux-PAM. </para> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_access.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_canonicalize_user.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_debug.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_deny.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_echo.xml"/> @@ -516,4 +517,4 @@ TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH </programlisting> </chapter> -</book>
\ No newline at end of file +</book> diff --git a/doc/sag/Makefile.am b/doc/sag/Makefile.am deleted file mode 100644 index 04c90919..00000000 --- a/doc/sag/Makefile.am +++ /dev/null @@ -1,112 +0,0 @@ -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = Linux-PAM_SAG.fo *~ - -EXTRA_DIST = $(XMLS) - -XMLS = Linux-PAM_SAG.xml $(shell ls $(srcdir)/pam_*.xml) -DEP_XMLS = $(shell ls $(top_srcdir)/modules/pam_*/pam_*.xml) - -if ENABLE_REGENERATE_MAN -MAINTAINERCLEANFILES = Linux-PAM_SAG.txt Linux-PAM_SAG.pdf html/*.html - -all: Linux-PAM_SAG.txt html/Linux-PAM_SAG.html Linux-PAM_SAG.pdf - -Linux-PAM_SAG.pdf: $(XMLS) $(DEP_XMLS) -if ENABLE_GENERATE_PDF - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam generate.toc "book toc" \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 2 --xinclude --nonet \ - $(PDF_STYLESHEET) $< > Linux-PAM_SAG.fo - $(FO2PDF) Linux-PAM_SAG.fo $@ -else - echo "No fo2pdf processor installed, skip PDF generation" -endif - -Linux-PAM_SAG.txt: $(XMLS) $(DEP_XMLS) - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam generate.toc "book toc" \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 2 --xinclude --nonet \ - $(TXT_STYLESHEET) $< | $(BROWSER) > $@ - -html/Linux-PAM_SAG.html: $(XMLS) $(DEP_XMLS) - @test -d html || mkdir -p html - $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< - $(XSLTPROC) --stringparam base.dir html/ \ - --stringparam root.filename Linux-PAM_SAG \ - --stringparam use.id.as.filename 1 \ - --stringparam chunk.first.sections 1 \ - --stringparam section.autolabel 1 \ - --stringparam section.label.includes.component.label 1 \ - --stringparam toc.max.depth 2 --xinclude --nonet \ - --stringparam chunker.output.encoding UTF-8 \ - $(HTML_STYLESHEET) $< - -distclean-local: - -rm -rf html Linux-PAM_SAG.txt Linux-PAM_SAG.pdf -endif - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(docdir) - $(mkinstalldirs) $(DESTDIR)$(pdfdir) - $(mkinstalldirs) $(DESTDIR)$(htmldir) - if test -f html/Linux-PAM_SAG.html; then \ - $(install_sh_DATA) html/Linux-PAM_SAG.html html/sag-*.html \ - $(DESTDIR)$(htmldir)/; \ - elif test -f $(srcdir)/html/Linux-PAM_SAG.html; then \ - $(install_sh_DATA) $(srcdir)/html/Linux-PAM_SAG.html \ - $(srcdir)/html/sag-*.html \ - $(DESTDIR)$(htmldir)/; \ - fi - if test -f Linux-PAM_SAG.txt; then \ - $(install_sh_DATA) Linux-PAM_SAG.txt $(DESTDIR)$(docdir)/; \ - elif test -f $(srcdir)/Linux-PAM_SAG.txt; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_SAG.txt \ - $(DESTDIR)$(docdir)/; \ - fi - if test -f Linux-PAM_SAG.pdf; then \ - $(install_sh_DATA) Linux-PAM_SAG.pdf $(DESTDIR)$(pdfdir)/; \ - elif test -f $(srcdir)/Linux-PAM_SAG.pdf; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_SAG.pdf \ - $(DESTDIR)$(pdfdir)/; \ - fi - -uninstall-local: - -rm $(DESTDIR)$(htmldir)/Linux-PAM_SAG.html - -rm $(DESTDIR)$(htmldir)/sag-*.html - -rm $(DESTDIR)$(docdir)/Linux-PAM_SAG.txt - -rm $(DESTDIR)$(pdfdir)/Linux-PAM_SAG.pdf - -releasedocs: all - $(mkinstalldirs) $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/html - if test -f html/Linux-PAM_SAG.html; then \ - cp -ap html/Linux-PAM_SAG.html html/sag-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/html/; \ - elif test -f $(srcdir)/html/Linux-PAM_SAG.html; then \ - cp -ap $(srcdir)/html/Linux-PAM_SAG.html \ - $(srcdir)/html/sag-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/html/; \ - else exit 1; \ - fi - if test -f Linux-PAM_SAG.txt; then \ - cp -p Linux-PAM_SAG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/; \ - elif test -f $(srcdir)/Linux-PAM_SAG.txt; then \ - cp -p $(srcdir)/Linux-PAM_SAG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/; \ - else exit 1; \ - fi - if test -f Linux-PAM_SAG.pdf; then \ - cp -p Linux-PAM_SAG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/; \ - elif test -f $(srcdir)/Linux-PAM_SAG.pdf; then \ - cp -p $(srcdir)/Linux-PAM_SAG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/; \ - else exit 1; \ - fi diff --git a/doc/sag/Makefile.in b/doc/sag/Makefile.in deleted file mode 100644 index 435ab867..00000000 --- a/doc/sag/Makefile.in +++ /dev/null @@ -1,633 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@thkukuk.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = doc/sag -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = Linux-PAM_SAG.fo *~ -EXTRA_DIST = $(XMLS) -XMLS = Linux-PAM_SAG.xml $(shell ls $(srcdir)/pam_*.xml) -DEP_XMLS = $(shell ls $(top_srcdir)/modules/pam_*/pam_*.xml) -@ENABLE_REGENERATE_MAN_TRUE@MAINTAINERCLEANFILES = Linux-PAM_SAG.txt Linux-PAM_SAG.pdf html/*.html -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/sag/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/sag/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -@ENABLE_REGENERATE_MAN_FALSE@distclean-local: -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-local - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-data-local - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-local - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - cscopelist-am ctags-am distclean distclean-generic \ - distclean-libtool distclean-local distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-local install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am uninstall-local - -.PRECIOUS: Makefile - - -@ENABLE_REGENERATE_MAN_TRUE@all: Linux-PAM_SAG.txt html/Linux-PAM_SAG.html Linux-PAM_SAG.pdf - -@ENABLE_REGENERATE_MAN_TRUE@Linux-PAM_SAG.pdf: $(XMLS) $(DEP_XMLS) -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam generate.toc "book toc" \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 2 --xinclude --nonet \ -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(PDF_STYLESHEET) $< > Linux-PAM_SAG.fo -@ENABLE_GENERATE_PDF_TRUE@@ENABLE_REGENERATE_MAN_TRUE@ $(FO2PDF) Linux-PAM_SAG.fo $@ -@ENABLE_GENERATE_PDF_FALSE@@ENABLE_REGENERATE_MAN_TRUE@ echo "No fo2pdf processor installed, skip PDF generation" - -@ENABLE_REGENERATE_MAN_TRUE@Linux-PAM_SAG.txt: $(XMLS) $(DEP_XMLS) -@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam generate.toc "book toc" \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 2 --xinclude --nonet \ -@ENABLE_REGENERATE_MAN_TRUE@ $(TXT_STYLESHEET) $< | $(BROWSER) > $@ - -@ENABLE_REGENERATE_MAN_TRUE@html/Linux-PAM_SAG.html: $(XMLS) $(DEP_XMLS) -@ENABLE_REGENERATE_MAN_TRUE@ @test -d html || mkdir -p html -@ENABLE_REGENERATE_MAN_TRUE@ $(XMLLINT) --nonet --xinclude --relaxng $(DOCBOOK_RNG) --noent --noout $< -@ENABLE_REGENERATE_MAN_TRUE@ $(XSLTPROC) --stringparam base.dir html/ \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam root.filename Linux-PAM_SAG \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam use.id.as.filename 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam chunk.first.sections 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.autolabel 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam section.label.includes.component.label 1 \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam toc.max.depth 2 --xinclude --nonet \ -@ENABLE_REGENERATE_MAN_TRUE@ --stringparam chunker.output.encoding UTF-8 \ -@ENABLE_REGENERATE_MAN_TRUE@ $(HTML_STYLESHEET) $< - -@ENABLE_REGENERATE_MAN_TRUE@distclean-local: -@ENABLE_REGENERATE_MAN_TRUE@ -rm -rf html Linux-PAM_SAG.txt Linux-PAM_SAG.pdf - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(docdir) - $(mkinstalldirs) $(DESTDIR)$(pdfdir) - $(mkinstalldirs) $(DESTDIR)$(htmldir) - if test -f html/Linux-PAM_SAG.html; then \ - $(install_sh_DATA) html/Linux-PAM_SAG.html html/sag-*.html \ - $(DESTDIR)$(htmldir)/; \ - elif test -f $(srcdir)/html/Linux-PAM_SAG.html; then \ - $(install_sh_DATA) $(srcdir)/html/Linux-PAM_SAG.html \ - $(srcdir)/html/sag-*.html \ - $(DESTDIR)$(htmldir)/; \ - fi - if test -f Linux-PAM_SAG.txt; then \ - $(install_sh_DATA) Linux-PAM_SAG.txt $(DESTDIR)$(docdir)/; \ - elif test -f $(srcdir)/Linux-PAM_SAG.txt; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_SAG.txt \ - $(DESTDIR)$(docdir)/; \ - fi - if test -f Linux-PAM_SAG.pdf; then \ - $(install_sh_DATA) Linux-PAM_SAG.pdf $(DESTDIR)$(pdfdir)/; \ - elif test -f $(srcdir)/Linux-PAM_SAG.pdf; then \ - $(install_sh_DATA) $(srcdir)/Linux-PAM_SAG.pdf \ - $(DESTDIR)$(pdfdir)/; \ - fi - -uninstall-local: - -rm $(DESTDIR)$(htmldir)/Linux-PAM_SAG.html - -rm $(DESTDIR)$(htmldir)/sag-*.html - -rm $(DESTDIR)$(docdir)/Linux-PAM_SAG.txt - -rm $(DESTDIR)$(pdfdir)/Linux-PAM_SAG.pdf - -releasedocs: all - $(mkinstalldirs) $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/html - if test -f html/Linux-PAM_SAG.html; then \ - cp -ap html/Linux-PAM_SAG.html html/sag-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/html/; \ - elif test -f $(srcdir)/html/Linux-PAM_SAG.html; then \ - cp -ap $(srcdir)/html/Linux-PAM_SAG.html \ - $(srcdir)/html/sag-*.html \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/html/; \ - else exit 1; \ - fi - if test -f Linux-PAM_SAG.txt; then \ - cp -p Linux-PAM_SAG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/; \ - elif test -f $(srcdir)/Linux-PAM_SAG.txt; then \ - cp -p $(srcdir)/Linux-PAM_SAG.txt \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/; \ - else exit 1; \ - fi - if test -f Linux-PAM_SAG.pdf; then \ - cp -p Linux-PAM_SAG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/; \ - elif test -f $(srcdir)/Linux-PAM_SAG.pdf; then \ - cp -p $(srcdir)/Linux-PAM_SAG.pdf \ - $(top_builddir)/Linux-PAM-$(VERSION)/doc/sag/; \ - else exit 1; \ - fi - -# 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: diff --git a/doc/sag/html/meson.build b/doc/sag/html/meson.build new file mode 120000 index 00000000..d6d90eaa --- /dev/null +++ b/doc/sag/html/meson.build @@ -0,0 +1 @@ +../../guide-html-meson.build
\ No newline at end of file diff --git a/doc/sag/meson.build b/doc/sag/meson.build new file mode 120000 index 00000000..2e19d830 --- /dev/null +++ b/doc/sag/meson.build @@ -0,0 +1 @@ +../guide-meson.build
\ No newline at end of file diff --git a/doc/sag/pam_canonicalize_user.xml b/doc/sag/pam_canonicalize_user.xml new file mode 100644 index 00000000..8c42f394 --- /dev/null +++ b/doc/sag/pam_canonicalize_user.xml @@ -0,0 +1,24 @@ +<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="sag-pam_canonicalize_user"> + <title>pam_canonicalize_user - get user name and canonicalize it</title> + <cmdsynopsis sepchar=" "> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../modules/pam_canonicalize_user/pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-cmdsynopsis")/*)'/> + </cmdsynopsis> + <section xml:id="sag-pam_canonicalize_user-description"> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../modules/pam_canonicalize_user/pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-description")/*)'/> + </section> + <section xml:id="sag-pam_canonicalize_user-options"> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../modules/pam_canonicalize_user/pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-options")/*)'/> + </section> + <section xml:id="sag-pam_canonicalize_user-types"> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../modules/pam_canonicalize_user/pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-types")/*)'/> + </section> + <section xml:id="sag-pam_canonicalize_user-return_values"> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../modules/pam_canonicalize_user/pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-return_values")/*)'/> + </section> + <section xml:id="sag-pam_canonicalize_user-examples"> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../modules/pam_canonicalize_user/pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-examples")/*)'/> + </section> + <section xml:id="sag-pam_canonicalize_user-author"> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../modules/pam_canonicalize_user/pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-author")/*)'/> + </section> +</section> diff --git a/doc/specs/Makefile.am b/doc/specs/Makefile.am deleted file mode 100644 index 58e14b38..00000000 --- a/doc/specs/Makefile.am +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2010 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = draft-morgan-pam-current.txt *~ - -EXTRA_DIST = draft-morgan-pam.raw std-agent-id.raw rfc86.0.txt - -draft-morgan-pam-current.txt: padout draft-morgan-pam.raw - ./padout < $(srcdir)/draft-morgan-pam.raw > draft-morgan-pam-current.txt - -AM_YFLAGS = -d - -CC = @CC_FOR_BUILD@ -CPPFLAGS = @BUILD_CPPFLAGS@ -CFLAGS = @BUILD_CFLAGS@ -LDFLAGS = @BUILD_LDFLAGS@ - -padout_CFLAGS = $(WARN_CFLAGS) -Wno-unused-function -Wno-sign-compare - -BUILT_SOURCES = parse_y.h - -noinst_PROGRAMS = padout - -padout_SOURCES = parse_l.l parse_y.y - -doc_DATA = draft-morgan-pam-current.txt rfc86.0.txt diff --git a/doc/specs/Makefile.in b/doc/specs/Makefile.in deleted file mode 100644 index 3213eaa0..00000000 --- a/doc/specs/Makefile.in +++ /dev/null @@ -1,818 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2010 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = padout$(EXEEXT) -subdir = doc/specs -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am_padout_OBJECTS = padout-parse_l.$(OBJEXT) padout-parse_y.$(OBJEXT) -padout_OBJECTS = $(am_padout_OBJECTS) -padout_LDADD = $(LDADD) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -padout_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(padout_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/padout-parse_l.Po \ - ./$(DEPDIR)/padout-parse_y.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) -LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) -AM_V_LEX = $(am__v_LEX_@AM_V@) -am__v_LEX_ = $(am__v_LEX_@AM_DEFAULT_V@) -am__v_LEX_0 = @echo " LEX " $@; -am__v_LEX_1 = -YLWRAP = $(top_srcdir)/build-aux/ylwrap -am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \ - -e s/c++$$/h++/ -e s/c$$/h/ -YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS) -LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS) -AM_V_YACC = $(am__v_YACC_@AM_V@) -am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) -am__v_YACC_0 = @echo " YACC " $@; -am__v_YACC_1 = -SOURCES = $(padout_SOURCES) -DIST_SOURCES = $(padout_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(docdir)" -DATA = $(doc_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp $(top_srcdir)/build-aux/ylwrap \ - parse_l.c parse_y.c parse_y.h -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC_FOR_BUILD@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @BUILD_CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @BUILD_CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @BUILD_LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = draft-morgan-pam-current.txt *~ -EXTRA_DIST = draft-morgan-pam.raw std-agent-id.raw rfc86.0.txt -AM_YFLAGS = -d -padout_CFLAGS = $(WARN_CFLAGS) -Wno-unused-function -Wno-sign-compare -BUILT_SOURCES = parse_y.h -padout_SOURCES = parse_l.l parse_y.y -doc_DATA = draft-morgan-pam-current.txt rfc86.0.txt -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -.SUFFIXES: .c .l .lo .o .obj .y -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/specs/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu doc/specs/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -parse_y.h: parse_y.c - @if test ! -f $@; then rm -f parse_y.c; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) parse_y.c; else :; fi - -padout$(EXEEXT): $(padout_OBJECTS) $(padout_DEPENDENCIES) $(EXTRA_padout_DEPENDENCIES) - @rm -f padout$(EXEEXT) - $(AM_V_CCLD)$(padout_LINK) $(padout_OBJECTS) $(padout_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/padout-parse_l.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/padout-parse_y.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -padout-parse_l.o: parse_l.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(padout_CFLAGS) $(CFLAGS) -MT padout-parse_l.o -MD -MP -MF $(DEPDIR)/padout-parse_l.Tpo -c -o padout-parse_l.o `test -f 'parse_l.c' || echo '$(srcdir)/'`parse_l.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/padout-parse_l.Tpo $(DEPDIR)/padout-parse_l.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parse_l.c' object='padout-parse_l.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(padout_CFLAGS) $(CFLAGS) -c -o padout-parse_l.o `test -f 'parse_l.c' || echo '$(srcdir)/'`parse_l.c - -padout-parse_l.obj: parse_l.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(padout_CFLAGS) $(CFLAGS) -MT padout-parse_l.obj -MD -MP -MF $(DEPDIR)/padout-parse_l.Tpo -c -o padout-parse_l.obj `if test -f 'parse_l.c'; then $(CYGPATH_W) 'parse_l.c'; else $(CYGPATH_W) '$(srcdir)/parse_l.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/padout-parse_l.Tpo $(DEPDIR)/padout-parse_l.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parse_l.c' object='padout-parse_l.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(padout_CFLAGS) $(CFLAGS) -c -o padout-parse_l.obj `if test -f 'parse_l.c'; then $(CYGPATH_W) 'parse_l.c'; else $(CYGPATH_W) '$(srcdir)/parse_l.c'; fi` - -padout-parse_y.o: parse_y.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(padout_CFLAGS) $(CFLAGS) -MT padout-parse_y.o -MD -MP -MF $(DEPDIR)/padout-parse_y.Tpo -c -o padout-parse_y.o `test -f 'parse_y.c' || echo '$(srcdir)/'`parse_y.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/padout-parse_y.Tpo $(DEPDIR)/padout-parse_y.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parse_y.c' object='padout-parse_y.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(padout_CFLAGS) $(CFLAGS) -c -o padout-parse_y.o `test -f 'parse_y.c' || echo '$(srcdir)/'`parse_y.c - -padout-parse_y.obj: parse_y.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(padout_CFLAGS) $(CFLAGS) -MT padout-parse_y.obj -MD -MP -MF $(DEPDIR)/padout-parse_y.Tpo -c -o padout-parse_y.obj `if test -f 'parse_y.c'; then $(CYGPATH_W) 'parse_y.c'; else $(CYGPATH_W) '$(srcdir)/parse_y.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/padout-parse_y.Tpo $(DEPDIR)/padout-parse_y.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parse_y.c' object='padout-parse_y.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(padout_CFLAGS) $(CFLAGS) -c -o padout-parse_y.obj `if test -f 'parse_y.c'; then $(CYGPATH_W) 'parse_y.c'; else $(CYGPATH_W) '$(srcdir)/parse_y.c'; fi` - -.l.c: - $(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) - -.y.c: - $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE) - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-docDATA: $(doc_DATA) - @$(NORMAL_INSTALL) - @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ - done - -uninstall-docDATA: - @$(NORMAL_UNINSTALL) - @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-am -all-am: Makefile $(PROGRAMS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(docdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am -install-exec: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -rm -f parse_l.c - -rm -f parse_y.c - -rm -f parse_y.h - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/padout-parse_l.Po - -rm -f ./$(DEPDIR)/padout-parse_y.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-docDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/padout-parse_l.Po - -rm -f ./$(DEPDIR)/padout-parse_y.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-docDATA - -.MAKE: all check install install-am install-exec install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-docDATA install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-docDATA - -.PRECIOUS: Makefile - - -draft-morgan-pam-current.txt: padout draft-morgan-pam.raw - ./padout < $(srcdir)/draft-morgan-pam.raw > draft-morgan-pam-current.txt - -# 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: diff --git a/doc/specs/meson.build b/doc/specs/meson.build new file mode 100644 index 00000000..4ddeef84 --- /dev/null +++ b/doc/specs/meson.build @@ -0,0 +1,42 @@ +parse_y = custom_target( + 'parse_y.[ch]', + input: 'parse_y.y', + output: ['parse_y.c', 'parse_y.h'], + command: yacc_cmd, +) + +parse_l = custom_target( + 'parse_l.c', + input: 'parse_l.l', + output: 'parse_l.c', + depends: parse_y, + command: [prog_flex, '-o', '@OUTPUT@', '@INPUT@'], +) + +padout = executable( + 'padout', + sources: [parse_l, parse_y], + include_directories: [libpam_inc], + c_args: [ + '-Wno-unused-function', + '-Wno-sign-compare', + ], + link_args: exe_link_args, +) + +custom_target( + 'draft-morgan-pam-current.txt', + input: 'draft-morgan-pam.raw', + output: 'draft-morgan-pam-current.txt', + command: [redir_exe, '@INPUT@', '@OUTPUT@', padout], + depends: padout, + install: true, + install_dir: docdir, + install_tag: 'doc', +) + +install_data( + 'rfc86.0.txt', + install_dir: docdir, + install_tag: 'doc', +) diff --git a/doc/specs/parse_l.c b/doc/specs/parse_l.c deleted file mode 100644 index 3018e599..00000000 --- a/doc/specs/parse_l.c +++ /dev/null @@ -1,1786 +0,0 @@ - -#line 3 "parse_l.c" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 4 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -/* Feature test macros. Flex uses functions that require a minimum set of - * macros defined. As defining some macros may hide function declarations that - * user code might use, be conservative and respect user's definitions as much - * as possible. In glibc, feature test macros may not be all set up until one - * of the libc header (that includes <features.h>) is included. This creates - * a circular dependency when we check the macros. <assert.h> is the safest - * header we can include and does not declare too many functions we don't need. - */ -#if !defined(__GNU_LIBRARY__) && defined(__STDC__) -#include <assert.h> -#endif -#if !(defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ - defined(_POSIX_SOURCE)) -# define _POSIX_C_SOURCE 1 /* Required for fileno() */ -# define _POSIX_SOURCE 1 -#endif -#include <stdio.h> -#include <string.h> -#include <errno.h> -#include <stdlib.h> - -/* end standard C headers. */ - -/* begin standard C++ headers. */ - -/* flex integer type definitions */ - -#ifndef YYFLEX_INTTYPES_DEFINED -#define YYFLEX_INTTYPES_DEFINED - -/* Prefer C99 integer types if available. */ -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -/* Include <inttypes.h> and not <stdint.h> because Solaris 2.6 has the former - * and not the latter. - */ -#include <inttypes.h> -# define YYFLEX_USE_STDINT -# else -# if defined(_MSC_VER) && _MSC_VER >= 1600 -/* Visual C++ 2010 does not define __STDC_VERSION__ and has <stdint.h> but not - * <inttypes.h>. - */ -#include <stdint.h> -# define YYFLEX_USE_STDINT -# endif -# endif -# ifdef YYFLEX_USE_STDINT -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -# else -typedef unsigned char flex_uint8_t; -typedef short int flex_int16_t; -typedef unsigned short int flex_uint16_t; -# ifdef __STDC__ -typedef signed char flex_int8_t; -/* ISO C only requires at least 16 bits for int. */ -#include <limits.h> -# if UINT_MAX >= 4294967295 -# define YYFLEX_INT32_DEFINED -typedef int flex_int32_t; -typedef unsigned int flex_uint32_t; -# endif -# else -typedef char flex_int8_t; -# endif -# ifndef YYFLEX_INT32_DEFINED -typedef long int flex_int32_t; -typedef unsigned long int flex_uint32_t; -# endif -# endif -#endif /* YYFLEX_INTTYPES_DEFINED */ - -/* TODO: this is always defined, so inline it */ -#define yyconst const - -#if defined(__GNUC__) && __GNUC__ >= 3 -#define yynoreturn __attribute__((__noreturn__)) -#define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -#else -#define yynoreturn -#define YY_ATTRIBUTE_UNUSED /* __attribute__ ((__unused__)) */ -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an - * integer in range [0..255] for use as an array index. - */ -#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else -#define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -extern int yyleng; - -extern FILE *yyin, *yyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - #define YY_LINENO_REWIND_TO(ptr) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ - } \ - while ( 0 ) -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - int yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when yytext is formed. */ -static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int yyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = NULL; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void yyrestart ( FILE *input_file ); -void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); -void yy_delete_buffer ( YY_BUFFER_STATE b ); -void yy_flush_buffer ( YY_BUFFER_STATE b ); -void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state ( void ); - -static void yyensure_buffer_stack ( void ); -static void yy_load_buffer_state ( void ); -static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); -#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); - -void *yyalloc ( yy_size_t ); -void *yyrealloc ( void *, yy_size_t ); -void yyfree ( void * ); - -#define yy_new_buffer yy_create_buffer -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer( yyin, YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ - -#define yywrap() (/*CONSTCOND*/1) -#define YY_SKIP_YYWRAP -typedef flex_uint8_t YY_CHAR; - -FILE *yyin = NULL, *yyout = NULL; - -typedef int yy_state_type; - -extern int yylineno; -int yylineno = 1; - -extern char *yytext; -#ifdef yytext_ptr -#undef yytext_ptr -#endif -#define yytext_ptr yytext - -static yy_state_type yy_get_previous_state ( void ); -static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); -static int yy_get_next_buffer ( void ); -static void yynoreturn yy_fatal_error ( const char* msg ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 8 -#define YY_END_OF_BUFFER 9 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static const flex_int16_t yy_accept[19] = - { 0, - 0, 0, 9, 6, 7, 3, 6, 4, 1, 0, - 5, 0, 1, 0, 1, 0, 2, 0 - } ; - -static const YY_CHAR yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, - 6, 1, 1, 1, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 1, 8, 1, 1, 9, 1, 7, 7, 7, 7, - - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 10, 1, 11, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static const YY_CHAR yy_meta[12] = - { 0, - 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, - 2 - } ; - -static const flex_int16_t yy_base[21] = - { 0, - 0, 7, 21, 30, 30, 13, 17, 30, 20, 12, - 30, 13, 10, 2, 7, 0, 30, 30, 27, 2 - } ; - -static const flex_int16_t yy_def[21] = - { 0, - 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 9, 20, 18, 20, 18, 0, 18, 18 - } ; - -static const flex_int16_t yy_nxt[42] = - { 0, - 18, 5, 6, 16, 18, 18, 18, 7, 5, 6, - 17, 15, 17, 18, 7, 8, 9, 15, 14, 11, - 18, 18, 10, 9, 18, 12, 13, 4, 4, 3, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18 - } ; - -static const flex_int16_t yy_chk[42] = - { 0, - 0, 1, 1, 20, 0, 0, 0, 1, 2, 2, - 16, 15, 14, 13, 2, 6, 6, 12, 10, 7, - 3, 0, 6, 9, 0, 9, 9, 19, 19, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int yy_flex_debug; -int yy_flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *yytext; -#line 1 "parse_l.l" -#line 2 "parse_l.l" -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <stdio.h> - -#include "parse_y.h" -#line 465 "parse_l.c" -#line 466 "parse_l.c" - -#define INITIAL 0 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#include <unistd.h> -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals ( void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int yylex_destroy ( void ); - -int yyget_debug ( void ); - -void yyset_debug ( int debug_flag ); - -YY_EXTRA_TYPE yyget_extra ( void ); - -void yyset_extra ( YY_EXTRA_TYPE user_defined ); - -FILE *yyget_in ( void ); - -void yyset_in ( FILE * _in_str ); - -FILE *yyget_out ( void ); - -void yyset_out ( FILE * _out_str ); - - int yyget_leng ( void ); - -char *yyget_text ( void ); - -int yyget_lineno ( void ); - -void yyset_lineno ( int _line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int yywrap ( void ); -#else -extern int yywrap ( void ); -#endif -#endif - -#ifndef YY_NO_UNPUT - - static void yyunput ( int c, char *buf_ptr ); - -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy ( char *, const char *, int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen ( const char * ); -#endif - -#ifndef YY_NO_INPUT -#ifdef __cplusplus -static int yyinput ( void ); -#else -static int input ( void ); -#endif - -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else -#define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - int n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - }\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int yylex (void); - -#define YY_DECL int yylex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after yytext and yyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK /*LINTED*/break; -#endif - -#define YY_RULE_SETUP \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - yy_state_type yy_current_state; - char *yy_cp, *yy_bp; - int yy_act; - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! yyin ) - yyin = stdin; - - if ( ! yyout ) - yyout = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_load_buffer_state( ); - } - - { -#line 12 "parse_l.l" - - -#line 686 "parse_l.c" - - while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - - /* Support of yytext. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = (yy_start); -yy_match: - do - { - YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 30 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 14 "parse_l.l" -return NEW_COUNTER; - YY_BREAK -case 2: -YY_RULE_SETUP -#line 15 "parse_l.l" -return LABEL; - YY_BREAK -case 3: -YY_RULE_SETUP -#line 16 "parse_l.l" -return NO_INDENT; - YY_BREAK -case 4: -YY_RULE_SETUP -#line 17 "parse_l.l" -return RIGHT; - YY_BREAK -case 5: -YY_RULE_SETUP -#line 18 "parse_l.l" -return HASH; - YY_BREAK -case 6: -YY_RULE_SETUP -#line 19 "parse_l.l" -return CHAR; - YY_BREAK -case 7: -/* rule 7 can match eol */ -YY_RULE_SETUP -#line 20 "parse_l.l" -return NEWLINE; - YY_BREAK -case 8: -YY_RULE_SETUP -#line 22 "parse_l.l" -ECHO; - YY_BREAK -#line 784 "parse_l.c" -case YY_STATE_EOF(INITIAL): - yyterminate(); - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_c_buf_p); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( yywrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ - } /* end of user's declarations */ -} /* end of yylex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - char *source = (yytext_ptr); - int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - yyrealloc( (void *) b->yy_ch_buf, - (yy_size_t) (b->yy_buf_size + 2) ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = NULL; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( - (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - /* "- 2" to take care of EOB's */ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - yy_state_type yy_current_state; - char *yy_cp; - - yy_current_state = (yy_start); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - int yy_is_jam; - char *yy_cp = (yy_c_buf_p); - - YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 19 ) - yy_c = yy_meta[yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 18); - - return yy_is_jam ? 0 : yy_current_state; -} - -#ifndef YY_NO_UNPUT - - static void yyunput (int c, char * yy_bp ) -{ - char *yy_cp; - - yy_cp = (yy_c_buf_p); - - /* undo effects of setting up yytext */ - *yy_cp = (yy_hold_char); - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - int number_to_move = (yy_n_chars) + 2; - char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - (yytext_ptr) = yy_bp; - (yy_hold_char) = *yy_cp; - (yy_c_buf_p) = yy_cp; -} - -#endif - -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - yyrestart( yyin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( yywrap( ) ) - return 0; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve yytext */ - (yy_hold_char) = *++(yy_c_buf_p); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void yyrestart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer( yyin, YY_BUF_SIZE ); - } - - yy_init_buffer( YY_CURRENT_BUFFER, input_file ); - yy_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * yypop_buffer_state(); - * yypush_buffer_state(new_buffer); - */ - yyensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void yy_load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - yy_init_buffer( b, file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with yy_create_buffer() - * - */ - void yy_delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - yyfree( (void *) b->yy_ch_buf ); - - yyfree( (void *) b ); -} - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a yyrestart() or at EOF. - */ - static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - yy_flush_buffer( b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then yy_init_buffer was _probably_ - * called from yyrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void yy_flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - yyensure_buffer_stack(); - - /* This block is copied from yy_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void yypop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void yyensure_buffer_stack (void) -{ - yy_size_t num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ - (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - yy_size_t grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return NULL; - - b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - - b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = NULL; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - yy_switch_to_buffer( b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to yylex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * yy_scan_bytes() instead. - */ -YY_BUFFER_STATE yy_scan_string (const char * yystr ) -{ - - return yy_scan_bytes( yystr, (int) strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to yylex() will - * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) yyalloc( n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = yy_scan_buffer( buf, n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yynoreturn yy_fatal_error (const char* msg YY_ATTRIBUTE_UNUSED) -{ - fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - yytext[yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = yytext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - yyleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int yyget_lineno (void) -{ - - return yylineno; -} - -/** Get the input stream. - * - */ -FILE *yyget_in (void) -{ - return yyin; -} - -/** Get the output stream. - * - */ -FILE *yyget_out (void) -{ - return yyout; -} - -/** Get the length of the current token. - * - */ -int yyget_leng (void) -{ - return yyleng; -} - -/** Get the current token. - * - */ - -char *yyget_text (void) -{ - return yytext; -} - -/** Set the current line number. - * @param _line_number line number - * - */ -void yyset_lineno (int _line_number ) -{ - - yylineno = _line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param _in_str A readable stream. - * - * @see yy_switch_to_buffer - */ -void yyset_in (FILE * _in_str ) -{ - yyin = _in_str ; -} - -void yyset_out (FILE * _out_str ) -{ - yyout = _out_str ; -} - -int yyget_debug (void) -{ - return yy_flex_debug; -} - -void yyset_debug (int _bdebug ) -{ - yy_flex_debug = _bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from yylex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = NULL; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = NULL; - (yy_init) = 0; - (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT - yyin = stdin; - yyout = stdout; -#else - yyin = NULL; - yyout = NULL; -#endif - - /* For future reference: Set errno on error, since we are called by - * yylex_init() - */ - return 0; -} - -/* yylex_destroy is for both reentrant and non-reentrant scanners. */ -int yylex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - yy_delete_buffer( YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - yypop_buffer_state(); - } - - /* Destroy the stack itself. */ - yyfree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * yylex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, const char * s2, int n YY_ATTRIBUTE_UNUSED) -{ - int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (const char * s YY_ATTRIBUTE_UNUSED) -{ - int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *yyalloc (yy_size_t size YY_ATTRIBUTE_UNUSED) -{ - return malloc(size); -} - -void *yyrealloc (void * ptr, yy_size_t size YY_ATTRIBUTE_UNUSED) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return realloc(ptr, size); -} - -void yyfree (void * ptr YY_ATTRIBUTE_UNUSED) -{ - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ -} - -#line 22 "parse_l.l" - - diff --git a/doc/specs/parse_l.l b/doc/specs/parse_l.l index d8400a07..0edc08d7 100644 --- a/doc/specs/parse_l.l +++ b/doc/specs/parse_l.l @@ -1,7 +1,5 @@ %{ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif +#include <config.h> #include <stdio.h> diff --git a/doc/specs/parse_y.c b/doc/specs/parse_y.c deleted file mode 100644 index 7009e3f9..00000000 --- a/doc/specs/parse_y.c +++ /dev/null @@ -1,1675 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.7.6. */ - -/* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, - Inc. - - 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 3 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, see <https://www.gnu.org/licenses/>. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output, and Bison version. */ -#define YYBISON 30706 - -/* Bison version string. */ -#define YYBISON_VERSION "3.7.6" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 0 - -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - - - - -/* First part of user prologue. */ -#line 2 "parse_y.y" - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define MAXLINE 1000 -#define INDENT_STRING " " -#define PAPER_WIDTH 74 - - int indent=0; - int line=1; - char *last_label=NULL; - - extern int yylex(void); - extern char *yytext; - extern void yyerror(const char *x); - extern char *get_label(const char *label); - extern void set_label(const char *label, const char *target); - char *new_counter(const char *key); - -#line 96 "parse_y.c" - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast<Type> (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_YY_PARSE_Y_H_INCLUDED -# define YY_YY_PARSE_Y_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - NEW_COUNTER = 258, /* NEW_COUNTER */ - LABEL = 259, /* LABEL */ - HASH = 260, /* HASH */ - CHAR = 261, /* CHAR */ - NEWLINE = 262, /* NEWLINE */ - NO_INDENT = 263, /* NO_INDENT */ - RIGHT = 264 /* RIGHT */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEMPTY -2 -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define NEW_COUNTER 258 -#define LABEL 259 -#define HASH 260 -#define CHAR 261 -#define NEWLINE 262 -#define NO_INDENT 263 -#define RIGHT 264 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 27 "parse_y.y" - - int def; - char *string; - -#line 172 "parse_y.c" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_PARSE_Y_H_INCLUDED */ -/* Symbol kind. */ -enum yysymbol_kind_t -{ - YYSYMBOL_YYEMPTY = -2, - YYSYMBOL_YYEOF = 0, /* "end of file" */ - YYSYMBOL_YYerror = 1, /* error */ - YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ - YYSYMBOL_NEW_COUNTER = 3, /* NEW_COUNTER */ - YYSYMBOL_LABEL = 4, /* LABEL */ - YYSYMBOL_HASH = 5, /* HASH */ - YYSYMBOL_CHAR = 6, /* CHAR */ - YYSYMBOL_NEWLINE = 7, /* NEWLINE */ - YYSYMBOL_NO_INDENT = 8, /* NO_INDENT */ - YYSYMBOL_RIGHT = 9, /* RIGHT */ - YYSYMBOL_YYACCEPT = 10, /* $accept */ - YYSYMBOL_doc = 11, /* doc */ - YYSYMBOL_stuff = 12, /* stuff */ - YYSYMBOL_text = 13 /* text */ -}; -typedef enum yysymbol_kind_t yysymbol_kind_t; - - - - -#ifdef short -# undef short -#endif - -/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure - <limits.h> and (if available) <stdint.h> are included - so that the code can choose integer types of a good width. */ - -#ifndef __PTRDIFF_MAX__ -# include <limits.h> /* INFRINGES ON USER NAME SPACE */ -# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include <stdint.h> /* INFRINGES ON USER NAME SPACE */ -# define YY_STDINT_H -# endif -#endif - -/* Narrow types that promote to a signed type and that can represent a - signed or unsigned integer of at least N bits. In tables they can - save space and decrease cache pressure. Promoting to a signed type - helps avoid bugs in integer arithmetic. */ - -#ifdef __INT_LEAST8_MAX__ -typedef __INT_LEAST8_TYPE__ yytype_int8; -#elif defined YY_STDINT_H -typedef int_least8_t yytype_int8; -#else -typedef signed char yytype_int8; -#endif - -#ifdef __INT_LEAST16_MAX__ -typedef __INT_LEAST16_TYPE__ yytype_int16; -#elif defined YY_STDINT_H -typedef int_least16_t yytype_int16; -#else -typedef short yytype_int16; -#endif - -/* Work around bug in HP-UX 11.23, which defines these macros - incorrectly for preprocessor constants. This workaround can likely - be removed in 2023, as HPE has promised support for HP-UX 11.23 - (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of - <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */ -#ifdef __hpux -# undef UINT_LEAST8_MAX -# undef UINT_LEAST16_MAX -# define UINT_LEAST8_MAX 255 -# define UINT_LEAST16_MAX 65535 -#endif - -#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST8_TYPE__ yytype_uint8; -#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST8_MAX <= INT_MAX) -typedef uint_least8_t yytype_uint8; -#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX -typedef unsigned char yytype_uint8; -#else -typedef short yytype_uint8; -#endif - -#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST16_TYPE__ yytype_uint16; -#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST16_MAX <= INT_MAX) -typedef uint_least16_t yytype_uint16; -#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX -typedef unsigned short yytype_uint16; -#else -typedef int yytype_uint16; -#endif - -#ifndef YYPTRDIFF_T -# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ -# define YYPTRDIFF_T __PTRDIFF_TYPE__ -# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ -# elif defined PTRDIFF_MAX -# ifndef ptrdiff_t -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# endif -# define YYPTRDIFF_T ptrdiff_t -# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX -# else -# define YYPTRDIFF_T long -# define YYPTRDIFF_MAXIMUM LONG_MAX -# endif -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned -# endif -#endif - -#define YYSIZE_MAXIMUM \ - YY_CAST (YYPTRDIFF_T, \ - (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ - ? YYPTRDIFF_MAXIMUM \ - : YY_CAST (YYSIZE_T, -1))) - -#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) - - -/* Stored state numbers (used for stacks). */ -typedef yytype_int8 yy_state_t; - -/* State numbers in computations. */ -typedef int yy_state_fast_t; - -#ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS -# if ENABLE_NLS -# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ -# define YY_(Msgid) dgettext ("bison-runtime", Msgid) -# endif -# endif -# ifndef YY_ -# define YY_(Msgid) Msgid -# endif -#endif - - -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define YY_ATTRIBUTE_PURE -# endif -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define YY_ATTRIBUTE_UNUSED -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) -#else -# define YY_USE(E) /* empty */ -#endif - -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") -#else -# define YY_INITIAL_VALUE(Value) Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ -#endif - -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - - -#define YY_ASSERT(E) ((void) (0 && (E))) - -#if !defined yyoverflow - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* !defined yyoverflow */ - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yy_state_t yyss_alloc; - YYSTYPE yyvs_alloc; -}; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -# define YYCOPY_NEEDED 1 - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYPTRDIFF_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / YYSIZEOF (*yyptr); \ - } \ - while (0) - -#endif - -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYPTRDIFF_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ - while (0) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 2 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 27 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 10 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 4 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 15 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 19 - -/* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 264 - - -/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK \ - ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ - : YYSYMBOL_YYUNDEF) - -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex. */ -static const yytype_int8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9 -}; - -#if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint8 yyrline[] = -{ - 0, 39, 39, 40, 44, 53, 72, 99, 128, 131, - 139, 142, 147, 151, 154, 160 -}; -#endif - -/** Accessing symbol of state STATE. */ -#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) - -#if YYDEBUG || 0 -/* The user-facing name of the symbol whose (internal) number is - YYSYMBOL. No bounds checking. */ -static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; - -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "\"end of file\"", "error", "\"invalid token\"", "NEW_COUNTER", "LABEL", - "HASH", "CHAR", "NEWLINE", "NO_INDENT", "RIGHT", "$accept", "doc", - "stuff", "text", YY_NULLPTR -}; - -static const char * -yysymbol_name (yysymbol_kind_t yysymbol) -{ - return yytname[yysymbol]; -} -#endif - -#ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ -static const yytype_int16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264 -}; -#endif - -#define YYPACT_NINF (-3) - -#define yypact_value_is_default(Yyn) \ - ((Yyn) == YYPACT_NINF) - -#define YYTABLE_NINF (-1) - -#define yytable_value_is_error(Yyn) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int8 yypact[] = -{ - -3, 0, -3, -3, 5, -3, -3, -3, -3, -3, - -3, -3, 17, 12, -3, -3, -3, -2, -3 -}; - - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ -static const yytype_int8 yydefact[] = -{ - 2, 8, 1, 3, 0, 15, 14, 13, 10, 4, - 12, 8, 9, 0, 11, 5, 8, 0, 6 -}; - - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int8 yypgoto[] = -{ - -3, -3, 11, -3 -}; - - /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int8 yydefgoto[] = -{ - 0, 1, 4, 12 -}; - - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int8 yytable[] = -{ - 2, 5, 6, 7, 8, 18, 10, 3, 5, 6, - 7, 8, 9, 10, 11, 5, 6, 7, 8, 15, - 10, 16, 13, 14, 0, 0, 0, 17 -}; - -static const yytype_int8 yycheck[] = -{ - 0, 3, 4, 5, 6, 7, 8, 7, 3, 4, - 5, 6, 7, 8, 9, 3, 4, 5, 6, 7, - 8, 9, 11, 6, -1, -1, -1, 16 -}; - - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_int8 yystos[] = -{ - 0, 11, 0, 7, 12, 3, 4, 5, 6, 7, - 8, 9, 13, 12, 6, 7, 9, 12, 7 -}; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_int8 yyr1[] = -{ - 0, 10, 11, 11, 11, 11, 11, 11, 12, 12, - 13, 13, 13, 13, 13, 13 -}; - - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_int8 yyr2[] = -{ - 0, 2, 0, 2, 3, 5, 7, 7, 0, 2, - 1, 2, 1, 1, 1, 1 -}; - - -enum { YYENOMEM = -2 }; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ - do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ - while (0) - -/* Backward compatibility with an undocumented macro. - Use YYerror or YYUNDEF. */ -#define YYERRCODE YYUNDEF - - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) - -/* This macro is provided for backward compatibility. */ -# ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif - - -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Kind, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*-----------------------------------. -| Print this symbol's value on YYO. | -`-----------------------------------*/ - -static void -yy_symbol_value_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) -{ - FILE *yyoutput = yyo; - YY_USE (yyoutput); - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yykind < YYNTOKENS) - YYPRINT (yyo, yytoknum[yykind], *yyvaluep); -# endif - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YY_USE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - -/*---------------------------. -| Print this symbol on YYO. | -`---------------------------*/ - -static void -yy_symbol_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) -{ - YYFPRINTF (yyo, "%s %s (", - yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - - yy_symbol_value_print (yyo, yykind, yyvaluep); - YYFPRINTF (yyo, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -static void -yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) -{ - YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, - int yyrule) -{ - int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), - &yyvsp[(yyi + 1) - (yynrhs)]); - YYFPRINTF (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule); \ -} while (0) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) ((void) 0) -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - - - - - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -static void -yydestruct (const char *yymsg, - yysymbol_kind_t yykind, YYSTYPE *yyvaluep) -{ - YY_USE (yyvaluep); - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YY_USE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END -} - - -/* Lookahead token kind. */ -int yychar; - -/* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; - - - - -/*----------. -| yyparse. | -`----------*/ - -int -yyparse (void) -{ - yy_state_fast_t yystate = 0; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus = 0; - - /* Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* Their size. */ - YYPTRDIFF_T yystacksize = YYINITDEPTH; - - /* The state stack: array, bottom, top. */ - yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss = yyssa; - yy_state_t *yyssp = yyss; - - /* The semantic value stack: array, bottom, top. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp = yyvs; - - int yyn; - /* The return value of yyparse. */ - int yyresult; - /* Lookahead symbol kind. */ - yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yychar = YYEMPTY; /* Cause a token to be read. */ - goto yysetstate; - - -/*------------------------------------------------------------. -| yynewstate -- push a new state, which is found in yystate. | -`------------------------------------------------------------*/ -yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - -/*--------------------------------------------------------------------. -| yysetstate -- set current state (the top of the stack) to yystate. | -`--------------------------------------------------------------------*/ -yysetstate: - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - YY_IGNORE_USELESS_CAST_BEGIN - *yyssp = YY_CAST (yy_state_t, yystate); - YY_IGNORE_USELESS_CAST_END - YY_STACK_PRINT (yyss, yyssp); - - if (yyss + yystacksize - 1 <= yyssp) -#if !defined yyoverflow && !defined YYSTACK_RELOCATE - goto yyexhaustedlab; -#else - { - /* Get the current used size of the three stacks, in elements. */ - YYPTRDIFF_T yysize = yyssp - yyss + 1; - -# if defined yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - yy_state_t *yyss1 = yyss; - YYSTYPE *yyvs1 = yyvs; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * YYSIZEOF (*yyssp), - &yyvs1, yysize * YYSIZEOF (*yyvsp), - &yystacksize); - yyss = yyss1; - yyvs = yyvs1; - } -# else /* defined YYSTACK_RELOCATE */ - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yy_state_t *yyss1 = yyss; - union yyalloc *yyptr = - YY_CAST (union yyalloc *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - YY_IGNORE_USELESS_CAST_BEGIN - YYDPRINTF ((stderr, "Stack size increased to %ld\n", - YY_CAST (long, yystacksize))); - YY_IGNORE_USELESS_CAST_END - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } -#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - - if (yystate == YYFINAL) - YYACCEPT; - - goto yybackup; - - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token\n")); - yychar = yylex (); - } - - if (yychar <= YYEOF) - { - yychar = YYEOF; - yytoken = YYSYMBOL_YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else if (yychar == YYerror) - { - /* The scanner already issued an error message, process directly - to error recovery. But do not keep the error token as - lookahead, it is too special and may lead us to an endless - loop in error recovery. */ - yychar = YYUNDEF; - yytoken = YYSYMBOL_YYerror; - goto yyerrlab1; - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yytable_value_is_error (yyn)) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - /* Discard the shifted token. */ - yychar = YYEMPTY; - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 3: /* doc: doc NEWLINE */ -#line 40 "parse_y.y" - { - printf("\n"); - ++line; -} -#line 1170 "parse_y.c" - break; - - case 4: /* doc: doc stuff NEWLINE */ -#line 44 "parse_y.y" - { - if (strlen((yyvsp[-1].string)) > (PAPER_WIDTH-(indent ? strlen(INDENT_STRING):0))) { - yyerror("line too long"); - } - printf("%s%s\n", indent ? INDENT_STRING:"", (yyvsp[-1].string)); - free((yyvsp[-1].string)); - indent = 1; - ++line; -} -#line 1184 "parse_y.c" - break; - - case 5: /* doc: doc stuff RIGHT stuff NEWLINE */ -#line 53 "parse_y.y" - { - char fixed[PAPER_WIDTH+1]; - int len; - - len = PAPER_WIDTH-(strlen((yyvsp[-3].string))+strlen((yyvsp[-1].string))); - - if (len >= 0) { - memset(fixed, ' ', len); - fixed[len] = '\0'; - } else { - yyerror("line too wide"); - fixed[0] = '\0'; - } - printf("%s%s%s\n", (yyvsp[-3].string), fixed, (yyvsp[-1].string)); - free((yyvsp[-3].string)); - free((yyvsp[-1].string)); - indent = 1; - ++line; -} -#line 1208 "parse_y.c" - break; - - case 6: /* doc: doc stuff RIGHT stuff RIGHT stuff NEWLINE */ -#line 72 "parse_y.y" - { - char fixed[PAPER_WIDTH+1]; - int len, l; - - len = PAPER_WIDTH-(strlen((yyvsp[-5].string))+strlen((yyvsp[-3].string))); - - if (len < 0) { - len = 0; - yyerror("line too wide"); - } - - l = len/2; - memset(fixed, ' ', l); - fixed[l] = '\0'; - printf("%s%s%s", (yyvsp[-5].string), fixed, (yyvsp[-3].string)); - free((yyvsp[-5].string)); - free((yyvsp[-3].string)); - - l = (len+1)/2; - memset(fixed, ' ', l); - fixed[l] = '\0'; - printf("%s%s\n", fixed, (yyvsp[-1].string)); - free((yyvsp[-1].string)); - - indent = 1; - ++line; -} -#line 1240 "parse_y.c" - break; - - case 7: /* doc: doc stuff RIGHT stuff RIGHT stuff NEWLINE */ -#line 99 "parse_y.y" - { - char fixed[PAPER_WIDTH+1]; - int len, l; - - len = PAPER_WIDTH-(strlen((yyvsp[-5].string))+strlen((yyvsp[-3].string))); - - if (len < 0) { - len = 0; - yyerror("line too wide"); - } - - l = len/2; - memset(fixed, ' ', l); - fixed[l] = '\0'; - printf("%s%s%s", (yyvsp[-5].string), fixed, (yyvsp[-3].string)); - free((yyvsp[-5].string)); - free((yyvsp[-3].string)); - - l = (len+1)/2; - memset(fixed, ' ', l); - fixed[l] = '\0'; - printf("%s%s\n", fixed, (yyvsp[-1].string)); - free((yyvsp[-1].string)); - - indent = 1; - ++line; -} -#line 1272 "parse_y.c" - break; - - case 8: /* stuff: %empty */ -#line 128 "parse_y.y" - { - (yyval.string) = strdup(""); -} -#line 1280 "parse_y.c" - break; - - case 9: /* stuff: stuff text */ -#line 131 "parse_y.y" - { - (yyval.string) = malloc(strlen((yyvsp[-1].string))+strlen((yyvsp[0].string))+1); - sprintf((yyval.string),"%s%s", (yyvsp[-1].string), (yyvsp[0].string)); - free((yyvsp[-1].string)); - free((yyvsp[0].string)); -} -#line 1291 "parse_y.c" - break; - - case 10: /* text: CHAR */ -#line 139 "parse_y.y" - { - (yyval.string) = strdup(yytext); -} -#line 1299 "parse_y.c" - break; - - case 11: /* text: text CHAR */ -#line 142 "parse_y.y" - { - (yyval.string) = malloc(strlen((yyvsp[-1].string))+2); - sprintf((yyval.string),"%s%s", (yyvsp[-1].string), yytext); - free((yyvsp[-1].string)); -} -#line 1309 "parse_y.c" - break; - - case 12: /* text: NO_INDENT */ -#line 147 "parse_y.y" - { - (yyval.string) = strdup(""); - indent = 0; -} -#line 1318 "parse_y.c" - break; - - case 13: /* text: HASH */ -#line 151 "parse_y.y" - { - (yyval.string) = strdup("#"); -} -#line 1326 "parse_y.c" - break; - - case 14: /* text: LABEL */ -#line 154 "parse_y.y" - { - if (((yyval.string) = get_label(yytext)) == NULL) { - set_label(yytext, last_label); - (yyval.string) = strdup(""); - } -} -#line 1337 "parse_y.c" - break; - - case 15: /* text: NEW_COUNTER */ -#line 160 "parse_y.y" - { - (yyval.string) = new_counter(yytext); -} -#line 1345 "parse_y.c" - break; - - -#line 1349 "parse_y.c" - - default: break; - } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - - *++yyvsp = yyval; - - /* Now 'shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - { - const int yylhs = yyr1[yyn] - YYNTOKENS; - const int yyi = yypgoto[yylhs] + *yyssp; - yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp - ? yytable[yyi] - : yydefgoto[yylhs]); - } - - goto yynewstate; - - -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ -yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; - yyerror (YY_("syntax error")); - } - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse lookahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and the - label yyerrorlab therefore never appears in user code. */ - if (0) - YYERROR; - - /* Do not reclaim the symbols of the rule whose action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - /* Pop stack until we find a state that shifts the error token. */ - for (;;) - { - yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) - { - yyn += YYSYMBOL_YYerror; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - YY_ACCESSING_SYMBOL (yystate), yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - - -#if !defined yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - goto yyreturn; -#endif - - -/*-------------------------------------------------------. -| yyreturn -- parsing is finished, clean up and return. | -`-------------------------------------------------------*/ -yyreturn: - if (yychar != YYEMPTY) - { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - } - /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif - - return yyresult; -} - -#line 165 "parse_y.y" - - -typedef struct node_s { - struct node_s *left, *right; - const char *key; - char *value; -} *node_t; - -node_t label_root = NULL; -node_t counter_root = NULL; - -static const char *find_key(node_t root, const char *key) -{ - while (root) { - int cmp = strcmp(key, root->key); - - if (cmp > 0) { - root = root->right; - } else if (cmp) { - root = root->left; - } else { - return root->value; - } - } - return NULL; -} - -static node_t set_key(node_t root, const char *key, const char *value) -{ - if (root) { - int cmp = strcmp(key, root->key); - if (cmp > 0) { - root->right = set_key(root->right, key, value); - } else if (cmp) { - root->left = set_key(root->left, key, value); - } else { - free(root->value); - root->value = strdup(value); - } - } else { - root = malloc(sizeof(struct node_s)); - root->right = root->left = NULL; - root->key = strdup(key); - root->value = strdup(value); - } - return root; -} - -void yyerror(const char *x) -{ - fprintf(stderr, "line %d: %s\n", line, x); -} - -char *get_label(const char *label) -{ - const char *found = find_key(label_root, label); - - if (found) { - return strdup(found); - } - return NULL; -} - -void set_label(const char *label, const char *target) -{ - if (target == NULL) { - yyerror("no hanging value for label"); - target = "<??" ">"; /* avoid trigraph warning */ - } - label_root = set_key(label_root, label, target); -} - -char *new_counter(const char *key) -{ - int i=0, j, ndollars = 0; - const char *old; - char *new; - - if (key[i++] != '#') { - yyerror("bad index"); - return strdup("<???" ">"); /* avoid trigraph warning */ - } - - while (key[i] == '$') { - ++ndollars; - ++i; - } - - key += i; - old = find_key(counter_root, key); - new = malloc(20*ndollars); - - if (old) { - for (j=0; ndollars > 1 && old[j]; ) { - if (old[j++] == '.' && --ndollars <= 0) { - break; - } - } - if (j) { - strncpy(new, old, j); - } - if (old[j]) { - i = atoi(old+j); - } else { - new[j++] = '.'; - i = 0; - } - } else { - j=0; - while (--ndollars > 0) { - new[j++] = '0'; - new[j++] = '.'; - } - i = 0; - } - new[j] = '\0'; - sprintf(new+j, "%d", ++i); - - counter_root = set_key(counter_root, key, new); - - if (last_label) { - free(last_label); - } - last_label = strdup(new); - - return new; -} - -int -main(void) -{ - return yyparse(); -} diff --git a/doc/specs/parse_y.h b/doc/specs/parse_y.h deleted file mode 100644 index 7445ca81..00000000 --- a/doc/specs/parse_y.h +++ /dev/null @@ -1,102 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.7.6. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, - Inc. - - 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 3 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, see <https://www.gnu.org/licenses/>. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - -#ifndef YY_YY_PARSE_Y_H_INCLUDED -# define YY_YY_PARSE_Y_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - NEW_COUNTER = 258, /* NEW_COUNTER */ - LABEL = 259, /* LABEL */ - HASH = 260, /* HASH */ - CHAR = 261, /* CHAR */ - NEWLINE = 262, /* NEWLINE */ - NO_INDENT = 263, /* NO_INDENT */ - RIGHT = 264 /* RIGHT */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEMPTY -2 -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define NEW_COUNTER 258 -#define LABEL 259 -#define HASH 260 -#define CHAR 261 -#define NEWLINE 262 -#define NO_INDENT 263 -#define RIGHT 264 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 27 "parse_y.y" - - int def; - char *string; - -#line 90 "parse_y.h" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_PARSE_Y_H_INCLUDED */ diff --git a/doc/specs/parse_y.y b/doc/specs/parse_y.y index b195f5d3..9dbd1022 100644 --- a/doc/specs/parse_y.y +++ b/doc/specs/parse_y.y @@ -1,8 +1,6 @@ %{ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif +#include <config.h> #include <stdio.h> #include <stdlib.h> @@ -282,9 +280,7 @@ char *new_counter(const char *key) counter_root = set_key(counter_root, key, new); - if (last_label) { - free(last_label); - } + free(last_label); last_label = strdup(new); return new; diff --git a/doc/specs/rfc86.0.txt b/doc/specs/rfc86.0.txt index b8c635a6..3451eaf5 100644 --- a/doc/specs/rfc86.0.txt +++ b/doc/specs/rfc86.0.txt @@ -402,7 +402,7 @@ - given access to his/her account. This function can implement + given access to the account. This function can implement account expiration and access hour restrictions. (c) Session management: This set includes the `pam_open_session()' diff --git a/examples/Makefile.am b/examples/Makefile.am deleted file mode 100644 index c4c3c261..00000000 --- a/examples/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ - -EXTRA_DIST = README - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -I$(top_srcdir)/libpam_misc/include $(WARN_CFLAGS) -LDADD = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la - -noinst_PROGRAMS = xsh vpass blank check_user tty_conv diff --git a/examples/Makefile.in b/examples/Makefile.in deleted file mode 100644 index 25bf4203..00000000 --- a/examples/Makefile.in +++ /dev/null @@ -1,745 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -noinst_PROGRAMS = xsh$(EXEEXT) vpass$(EXEEXT) blank$(EXEEXT) \ - check_user$(EXEEXT) tty_conv$(EXEEXT) -subdir = examples -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -blank_SOURCES = blank.c -blank_OBJECTS = blank.$(OBJEXT) -blank_LDADD = $(LDADD) -blank_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -check_user_SOURCES = check_user.c -check_user_OBJECTS = check_user.$(OBJEXT) -check_user_LDADD = $(LDADD) -check_user_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tty_conv_SOURCES = tty_conv.c -tty_conv_OBJECTS = tty_conv.$(OBJEXT) -tty_conv_LDADD = $(LDADD) -tty_conv_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -vpass_SOURCES = vpass.c -vpass_OBJECTS = vpass.$(OBJEXT) -vpass_LDADD = $(LDADD) -vpass_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -xsh_SOURCES = xsh.c -xsh_OBJECTS = xsh.$(OBJEXT) -xsh_LDADD = $(LDADD) -xsh_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/blank.Po ./$(DEPDIR)/check_user.Po \ - ./$(DEPDIR)/tty_conv.Po ./$(DEPDIR)/vpass.Po \ - ./$(DEPDIR)/xsh.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = blank.c check_user.c tty_conv.c vpass.c xsh.c -DIST_SOURCES = blank.c check_user.c tty_conv.c vpass.c xsh.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp README -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -EXTRA_DIST = README -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -I$(top_srcdir)/libpam_misc/include $(WARN_CFLAGS) - -LDADD = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu examples/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -blank$(EXEEXT): $(blank_OBJECTS) $(blank_DEPENDENCIES) $(EXTRA_blank_DEPENDENCIES) - @rm -f blank$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(blank_OBJECTS) $(blank_LDADD) $(LIBS) - -check_user$(EXEEXT): $(check_user_OBJECTS) $(check_user_DEPENDENCIES) $(EXTRA_check_user_DEPENDENCIES) - @rm -f check_user$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(check_user_OBJECTS) $(check_user_LDADD) $(LIBS) - -tty_conv$(EXEEXT): $(tty_conv_OBJECTS) $(tty_conv_DEPENDENCIES) $(EXTRA_tty_conv_DEPENDENCIES) - @rm -f tty_conv$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tty_conv_OBJECTS) $(tty_conv_LDADD) $(LIBS) - -vpass$(EXEEXT): $(vpass_OBJECTS) $(vpass_DEPENDENCIES) $(EXTRA_vpass_DEPENDENCIES) - @rm -f vpass$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(vpass_OBJECTS) $(vpass_LDADD) $(LIBS) - -xsh$(EXEEXT): $(xsh_OBJECTS) $(xsh_DEPENDENCIES) $(EXTRA_xsh_DEPENDENCIES) - @rm -f xsh$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(xsh_OBJECTS) $(xsh_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blank.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_user.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tty_conv.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpass.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsh.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/blank.Po - -rm -f ./$(DEPDIR)/check_user.Po - -rm -f ./$(DEPDIR)/tty_conv.Po - -rm -f ./$(DEPDIR)/vpass.Po - -rm -f ./$(DEPDIR)/xsh.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/blank.Po - -rm -f ./$(DEPDIR)/check_user.Po - -rm -f ./$(DEPDIR)/tty_conv.Po - -rm -f ./$(DEPDIR)/vpass.Po - -rm -f ./$(DEPDIR)/xsh.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# 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: diff --git a/examples/meson.build b/examples/meson.build new file mode 100644 index 00000000..4f5e85e0 --- /dev/null +++ b/examples/meson.build @@ -0,0 +1,14 @@ +foreach prog: ['xsh', + 'vpass', + 'blank', + 'check_user', + 'tty_conv' + ] + executable( + prog, + sources: prog + '.c', + link_args: exe_link_args, + include_directories: [libpamc_inc], + dependencies: [libpam_dep, libpam_misc_dep], + ) +endforeach diff --git a/examples/tty_conv.c b/examples/tty_conv.c index 23f0684c..59bbb3b3 100644 --- a/examples/tty_conv.c +++ b/examples/tty_conv.c @@ -6,8 +6,9 @@ #include <string.h> #include <errno.h> #include <unistd.h> -#include <termio.h> +#include <termios.h> #include <security/pam_appl.h> +#include <sys/ioctl.h> /*************************************** * @brief echo off/on @@ -16,7 +17,7 @@ ***************************************/ static void echoOff(int fd, int off) { - struct termio tty; + struct termios tty; if (ioctl(fd, TCGETA, &tty) < 0) { fprintf(stderr, "TCGETA failed: %s\n", strerror(errno)); @@ -67,7 +68,7 @@ static char *readline(void) int i; flockfile(stdin); - for (i = 0; i < PAM_MAX_RESP_SIZE; i++) + for (i = 0; i < PAM_MAX_RESP_SIZE - 1; i++) { int ch = getchar_unlocked(); if (ch == '\n' || ch == '\r' ||ch == EOF) diff --git a/libpam/Makefile.am b/libpam/Makefile.am deleted file mode 100644 index 389d5d02..00000000 --- a/libpam/Makefile.am +++ /dev/null @@ -1,46 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2007, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - -AM_CFLAGS = -DDEFAULT_MODULE_PATH=\"$(SECUREDIR)/\" -DLIBPAM_COMPILE \ - -I$(srcdir)/include $(LIBPRELUDE_CFLAGS) $(ECONF_CFLAGS) \ - -DPAM_VERSION=\"$(VERSION)\" -DSYSCONFDIR=\"$(sysconfdir)\" \ - $(WARN_CFLAGS) - -CLEANFILES = *~ - -EXTRA_DIST = libpam.map - -include_HEADERS = include/security/_pam_compat.h \ - include/security/_pam_macros.h include/security/_pam_types.h \ - include/security/pam_appl.h include/security/pam_modules.h \ - include/security/pam_ext.h include/security/pam_modutil.h - -noinst_HEADERS = pam_prelude.h pam_private.h pam_tokens.h \ - pam_modutil_private.h include/pam_cc_compat.h \ - include/pam_inline.h include/test_assert.h - -libpam_la_LDFLAGS = -no-undefined -version-info 85:1:85 -libpam_la_LIBADD = @LIBAUDIT@ $(LIBPRELUDE_LIBS) $(ECONF_LIBS) @LIBDL@ @LTLIBINTL@ - -if HAVE_VERSIONING - libpam_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libpam.map -endif - -lib_LTLIBRARIES = libpam.la - -libpam_la_SOURCES = pam_account.c pam_auth.c pam_data.c pam_delay.c \ - pam_dispatch.c pam_end.c pam_env.c pam_get_authtok.c \ - pam_handlers.c pam_item.c \ - pam_misc.c pam_password.c pam_prelude.c \ - pam_session.c pam_start.c pam_strerror.c \ - pam_vprompt.c pam_syslog.c pam_dynamic.c pam_audit.c \ - pam_modutil_check_user.c \ - pam_modutil_cleanup.c pam_modutil_getpwnam.c pam_modutil_ioloop.c \ - pam_modutil_getgrgid.c pam_modutil_getpwuid.c pam_modutil_getgrnam.c \ - pam_modutil_getspnam.c pam_modutil_getlogin.c pam_modutil_ingroup.c \ - pam_modutil_priv.c pam_modutil_sanitize.c pam_modutil_searchkey.c - -# Pkg-config script. -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = pam.pc diff --git a/libpam/Makefile.in b/libpam/Makefile.in deleted file mode 100644 index 597c8dcd..00000000 --- a/libpam/Makefile.in +++ /dev/null @@ -1,963 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2007, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/libpam.map -subdir = libpam -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ - $(noinst_HEADERS) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = pam.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -am__DEPENDENCIES_1 = -libpam_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am_libpam_la_OBJECTS = pam_account.lo pam_auth.lo pam_data.lo \ - pam_delay.lo pam_dispatch.lo pam_end.lo pam_env.lo \ - pam_get_authtok.lo pam_handlers.lo pam_item.lo pam_misc.lo \ - pam_password.lo pam_prelude.lo pam_session.lo pam_start.lo \ - pam_strerror.lo pam_vprompt.lo pam_syslog.lo pam_dynamic.lo \ - pam_audit.lo pam_modutil_check_user.lo pam_modutil_cleanup.lo \ - pam_modutil_getpwnam.lo pam_modutil_ioloop.lo \ - pam_modutil_getgrgid.lo pam_modutil_getpwuid.lo \ - pam_modutil_getgrnam.lo pam_modutil_getspnam.lo \ - pam_modutil_getlogin.lo pam_modutil_ingroup.lo \ - pam_modutil_priv.lo pam_modutil_sanitize.lo \ - pam_modutil_searchkey.lo -libpam_la_OBJECTS = $(am_libpam_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libpam_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libpam_la_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_account.Plo \ - ./$(DEPDIR)/pam_audit.Plo ./$(DEPDIR)/pam_auth.Plo \ - ./$(DEPDIR)/pam_data.Plo ./$(DEPDIR)/pam_delay.Plo \ - ./$(DEPDIR)/pam_dispatch.Plo ./$(DEPDIR)/pam_dynamic.Plo \ - ./$(DEPDIR)/pam_end.Plo ./$(DEPDIR)/pam_env.Plo \ - ./$(DEPDIR)/pam_get_authtok.Plo ./$(DEPDIR)/pam_handlers.Plo \ - ./$(DEPDIR)/pam_item.Plo ./$(DEPDIR)/pam_misc.Plo \ - ./$(DEPDIR)/pam_modutil_check_user.Plo \ - ./$(DEPDIR)/pam_modutil_cleanup.Plo \ - ./$(DEPDIR)/pam_modutil_getgrgid.Plo \ - ./$(DEPDIR)/pam_modutil_getgrnam.Plo \ - ./$(DEPDIR)/pam_modutil_getlogin.Plo \ - ./$(DEPDIR)/pam_modutil_getpwnam.Plo \ - ./$(DEPDIR)/pam_modutil_getpwuid.Plo \ - ./$(DEPDIR)/pam_modutil_getspnam.Plo \ - ./$(DEPDIR)/pam_modutil_ingroup.Plo \ - ./$(DEPDIR)/pam_modutil_ioloop.Plo \ - ./$(DEPDIR)/pam_modutil_priv.Plo \ - ./$(DEPDIR)/pam_modutil_sanitize.Plo \ - ./$(DEPDIR)/pam_modutil_searchkey.Plo \ - ./$(DEPDIR)/pam_password.Plo ./$(DEPDIR)/pam_prelude.Plo \ - ./$(DEPDIR)/pam_session.Plo ./$(DEPDIR)/pam_start.Plo \ - ./$(DEPDIR)/pam_strerror.Plo ./$(DEPDIR)/pam_syslog.Plo \ - ./$(DEPDIR)/pam_vprompt.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libpam_la_SOURCES) -DIST_SOURCES = $(libpam_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(include_HEADERS) $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/pam.pc.in \ - $(top_srcdir)/build-aux/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = -DDEFAULT_MODULE_PATH=\"$(SECUREDIR)/\" -DLIBPAM_COMPILE \ - -I$(srcdir)/include $(LIBPRELUDE_CFLAGS) $(ECONF_CFLAGS) \ - -DPAM_VERSION=\"$(VERSION)\" -DSYSCONFDIR=\"$(sysconfdir)\" \ - $(WARN_CFLAGS) - -CLEANFILES = *~ -EXTRA_DIST = libpam.map -include_HEADERS = include/security/_pam_compat.h \ - include/security/_pam_macros.h include/security/_pam_types.h \ - include/security/pam_appl.h include/security/pam_modules.h \ - include/security/pam_ext.h include/security/pam_modutil.h - -noinst_HEADERS = pam_prelude.h pam_private.h pam_tokens.h \ - pam_modutil_private.h include/pam_cc_compat.h \ - include/pam_inline.h include/test_assert.h - -libpam_la_LDFLAGS = -no-undefined -version-info 85:1:85 \ - $(am__append_1) -libpam_la_LIBADD = @LIBAUDIT@ $(LIBPRELUDE_LIBS) $(ECONF_LIBS) @LIBDL@ @LTLIBINTL@ -lib_LTLIBRARIES = libpam.la -libpam_la_SOURCES = pam_account.c pam_auth.c pam_data.c pam_delay.c \ - pam_dispatch.c pam_end.c pam_env.c pam_get_authtok.c \ - pam_handlers.c pam_item.c \ - pam_misc.c pam_password.c pam_prelude.c \ - pam_session.c pam_start.c pam_strerror.c \ - pam_vprompt.c pam_syslog.c pam_dynamic.c pam_audit.c \ - pam_modutil_check_user.c \ - pam_modutil_cleanup.c pam_modutil_getpwnam.c pam_modutil_ioloop.c \ - pam_modutil_getgrgid.c pam_modutil_getpwuid.c pam_modutil_getgrnam.c \ - pam_modutil_getspnam.c pam_modutil_getlogin.c pam_modutil_ingroup.c \ - pam_modutil_priv.c pam_modutil_sanitize.c pam_modutil_searchkey.c - - -# Pkg-config script. -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = pam.pc -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libpam/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu libpam/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -pam.pc: $(top_builddir)/config.status $(srcdir)/pam.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libpam.la: $(libpam_la_OBJECTS) $(libpam_la_DEPENDENCIES) $(EXTRA_libpam_la_DEPENDENCIES) - $(AM_V_CCLD)$(libpam_la_LINK) -rpath $(libdir) $(libpam_la_OBJECTS) $(libpam_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_account.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_audit.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_auth.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_data.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_delay.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_dispatch.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_dynamic.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_end.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_env.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_get_authtok.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_handlers.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_item.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_misc.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_check_user.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_cleanup.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_getgrgid.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_getgrnam.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_getlogin.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_getpwnam.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_getpwuid.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_getspnam.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_ingroup.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_ioloop.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_priv.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_sanitize.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil_searchkey.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_password.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_prelude.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_session.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_start.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_strerror.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_syslog.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_vprompt.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_account.Plo - -rm -f ./$(DEPDIR)/pam_audit.Plo - -rm -f ./$(DEPDIR)/pam_auth.Plo - -rm -f ./$(DEPDIR)/pam_data.Plo - -rm -f ./$(DEPDIR)/pam_delay.Plo - -rm -f ./$(DEPDIR)/pam_dispatch.Plo - -rm -f ./$(DEPDIR)/pam_dynamic.Plo - -rm -f ./$(DEPDIR)/pam_end.Plo - -rm -f ./$(DEPDIR)/pam_env.Plo - -rm -f ./$(DEPDIR)/pam_get_authtok.Plo - -rm -f ./$(DEPDIR)/pam_handlers.Plo - -rm -f ./$(DEPDIR)/pam_item.Plo - -rm -f ./$(DEPDIR)/pam_misc.Plo - -rm -f ./$(DEPDIR)/pam_modutil_check_user.Plo - -rm -f ./$(DEPDIR)/pam_modutil_cleanup.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getgrgid.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getgrnam.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getlogin.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getpwnam.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getpwuid.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getspnam.Plo - -rm -f ./$(DEPDIR)/pam_modutil_ingroup.Plo - -rm -f ./$(DEPDIR)/pam_modutil_ioloop.Plo - -rm -f ./$(DEPDIR)/pam_modutil_priv.Plo - -rm -f ./$(DEPDIR)/pam_modutil_sanitize.Plo - -rm -f ./$(DEPDIR)/pam_modutil_searchkey.Plo - -rm -f ./$(DEPDIR)/pam_password.Plo - -rm -f ./$(DEPDIR)/pam_prelude.Plo - -rm -f ./$(DEPDIR)/pam_session.Plo - -rm -f ./$(DEPDIR)/pam_start.Plo - -rm -f ./$(DEPDIR)/pam_strerror.Plo - -rm -f ./$(DEPDIR)/pam_syslog.Plo - -rm -f ./$(DEPDIR)/pam_vprompt.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-includeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-libLTLIBRARIES - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_account.Plo - -rm -f ./$(DEPDIR)/pam_audit.Plo - -rm -f ./$(DEPDIR)/pam_auth.Plo - -rm -f ./$(DEPDIR)/pam_data.Plo - -rm -f ./$(DEPDIR)/pam_delay.Plo - -rm -f ./$(DEPDIR)/pam_dispatch.Plo - -rm -f ./$(DEPDIR)/pam_dynamic.Plo - -rm -f ./$(DEPDIR)/pam_end.Plo - -rm -f ./$(DEPDIR)/pam_env.Plo - -rm -f ./$(DEPDIR)/pam_get_authtok.Plo - -rm -f ./$(DEPDIR)/pam_handlers.Plo - -rm -f ./$(DEPDIR)/pam_item.Plo - -rm -f ./$(DEPDIR)/pam_misc.Plo - -rm -f ./$(DEPDIR)/pam_modutil_check_user.Plo - -rm -f ./$(DEPDIR)/pam_modutil_cleanup.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getgrgid.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getgrnam.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getlogin.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getpwnam.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getpwuid.Plo - -rm -f ./$(DEPDIR)/pam_modutil_getspnam.Plo - -rm -f ./$(DEPDIR)/pam_modutil_ingroup.Plo - -rm -f ./$(DEPDIR)/pam_modutil_ioloop.Plo - -rm -f ./$(DEPDIR)/pam_modutil_priv.Plo - -rm -f ./$(DEPDIR)/pam_modutil_sanitize.Plo - -rm -f ./$(DEPDIR)/pam_modutil_searchkey.Plo - -rm -f ./$(DEPDIR)/pam_password.Plo - -rm -f ./$(DEPDIR)/pam_prelude.Plo - -rm -f ./$(DEPDIR)/pam_session.Plo - -rm -f ./$(DEPDIR)/pam_start.Plo - -rm -f ./$(DEPDIR)/pam_strerror.Plo - -rm -f ./$(DEPDIR)/pam_syslog.Plo - -rm -f ./$(DEPDIR)/pam_vprompt.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ - uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am \ - install-includeHEADERS install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-pkgconfigDATA install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-libLTLIBRARIES uninstall-pkgconfigDATA - -.PRECIOUS: Makefile - - -# 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: diff --git a/libpam/include/meson.build b/libpam/include/meson.build new file mode 100644 index 00000000..1bf46f3b --- /dev/null +++ b/libpam/include/meson.build @@ -0,0 +1,3 @@ +configure_file(output: 'config.h', configuration: cdata) + +subdir('security') diff --git a/libpam/include/pam_i18n.h b/libpam/include/pam_i18n.h new file mode 100644 index 00000000..85a21219 --- /dev/null +++ b/libpam/include/pam_i18n.h @@ -0,0 +1,17 @@ +#ifndef PAM_I18N_H +#define PAM_I18N_H + +#ifdef ENABLE_NLS + +# include <libintl.h> +# define _(msgid) dgettext(PACKAGE, msgid) +# define N_(msgid) msgid + +#else + +# define _(msgid) (msgid) +# define N_(msgid) msgid + +#endif /* ENABLE_NLS */ + +#endif /* PAM_I18N_H */ diff --git a/libpam/include/pam_inline.h b/libpam/include/pam_inline.h index 7721c0b7..cc302248 100644 --- a/libpam/include/pam_inline.h +++ b/libpam/include/pam_inline.h @@ -45,6 +45,26 @@ #define PAM_ARRAY_SIZE(a_) (sizeof(a_) / sizeof((a_)[0]) + PAM_MUST_BE_ARRAY(a_)) /* + * Zero-extend a signed integer type to unsigned long long. + */ +# define zero_extend_signed_to_ull(v_) \ + (sizeof(v_) == sizeof(char) ? (unsigned long long) (unsigned char) (v_) : \ + sizeof(v_) == sizeof(short) ? (unsigned long long) (unsigned short) (v_) : \ + sizeof(v_) == sizeof(int) ? (unsigned long long) (unsigned int) (v_) : \ + sizeof(v_) == sizeof(long) ? (unsigned long long) (unsigned long) (v_) : \ + (unsigned long long) (v_)) + +/* + * Sign-extend an unsigned integer type to long long. + */ +# define sign_extend_unsigned_to_ll(v_) \ + (sizeof(v_) == sizeof(char) ? (long long) (signed char) (v_) : \ + sizeof(v_) == sizeof(short) ? (long long) (signed short) (v_) : \ + sizeof(v_) == sizeof(int) ? (long long) (signed int) (v_) : \ + sizeof(v_) == sizeof(long) ? (long long) (signed long) (v_) : \ + (long long) (v_)) + +/* * Returns NULL if STR does not start with PREFIX, * or a pointer to the first char in STR after PREFIX. * The length of PREFIX is specified by PREFIX_LEN. @@ -82,7 +102,7 @@ pam_str_skip_icase_prefix_len(const char *str, const char *prefix, size_t prefix static inline void pam_overwrite_n(void *ptr, size_t len) { if (ptr) - memset_explicit(ptr, len); + memset_explicit(ptr, '\0', len); } #elif defined HAVE_EXPLICIT_BZERO static inline void pam_overwrite_n(void *ptr, size_t len) @@ -175,4 +195,18 @@ pam_read_passwords(int fd, int npass, char **passwords) return i; } +static inline int +pam_consttime_streq(const char *userinput, const char *secret) { + volatile const char *u = userinput, *s = secret; + volatile int ret = 0; + + do { + ret |= *u ^ *s; + + s += !!*s; + } while (*u++ != '\0'); + + return ret == 0; +} + #endif /* PAM_INLINE_H */ diff --git a/libpam/include/security/_pam_macros.h b/libpam/include/security/_pam_macros.h index b5129d2a..d01f51f5 100644 --- a/libpam/include/security/_pam_macros.h +++ b/libpam/include/security/_pam_macros.h @@ -21,21 +21,21 @@ * override the memory. */ -#define _pam_overwrite(x) \ -do { \ - PAM_DEPRECATED register char *__xx__; \ - if ((__xx__=(x))) \ - while (*__xx__) \ - *__xx__++ = '\0'; \ +#define _pam_overwrite(x) \ +do { \ + PAM_DEPRECATED register char *xx_; \ + if ((xx_=(x))) \ + while (*xx_) \ + *xx_++ = '\0'; \ } while (0) -#define _pam_overwrite_n(x,n) \ -do { \ - PAM_DEPRECATED register char *__xx__; \ - register unsigned int __i__ = 0; \ - if ((__xx__=(x))) \ - for (;__i__<n; __i__++) \ - __xx__[__i__] = 0; \ +#define _pam_overwrite_n(x,n) \ +do { \ + PAM_DEPRECATED register char *xx_; \ + register unsigned int i_ = 0; \ + if ((xx_=(x))) \ + for (;i_<(n); i_++) \ + xx_[i_] = 0; \ } while (0) /* @@ -44,28 +44,25 @@ do { \ #define _pam_drop(X) \ do { \ - if (X) { \ - free(X); \ - X=NULL; \ - } \ + free(X); \ + (X)=NULL; \ } while (0) /* - * WARNING: Do NOT use this macro, as it does not reliable override the memory. + * WARNING: Do NOT use this macro, as it does not reliably override the memory. */ #define _pam_drop_reply(/* struct pam_response * */ reply, /* int */ replies) \ -do { \ - PAM_DEPRECATED int reply_i; \ - \ - for (reply_i=0; reply_i<replies; ++reply_i) { \ - if (reply[reply_i].resp) { \ - _pam_overwrite(reply[reply_i].resp); \ - free(reply[reply_i].resp); \ - } \ - } \ - if (reply) \ - free(reply); \ +do { \ + PAM_DEPRECATED int reply_i; \ + \ + for (reply_i=0; reply_i<(replies); ++reply_i) { \ + if ((reply)[reply_i].resp) { \ + _pam_overwrite((reply)[reply_i].resp); \ + free((reply)[reply_i].resp); \ + } \ + } \ + free(reply); \ } while (0) /* some debugging code */ @@ -97,8 +94,25 @@ do { \ #define _PAM_LOGFILE "/var/run/pam-debug.log" #endif -static void _pam_output_debug_info(const char *file, const char *fn - , const int line) +#ifdef PAM_NO_HEADER_FUNCTIONS +UNUSED +extern void _pam_output_debug_info(const char *file, const char *fn + , const int line); +UNUSED +PAM_FORMAT((printf, 1, 2)) +extern void _pam_output_debug(const char *format, ...); +#else +#ifdef PAM_DEBUG_C +#define PAM_DEBUG_SCOPE +#else +#define PAM_DEBUG_SCOPE static +#endif + +#ifdef UNUSED +UNUSED +#endif +PAM_DEBUG_SCOPE void _pam_output_debug_info(const char *file, const char *fn + , const int line) { FILE *logfile; int must_close = 1, fd; @@ -123,7 +137,11 @@ static void _pam_output_debug_info(const char *file, const char *fn fclose(logfile); } -static void _pam_output_debug(const char *format, ...) +#ifdef UNUSED +UNUSED +#endif +PAM_FORMAT((printf, 1, 2)) +PAM_DEBUG_SCOPE void _pam_output_debug(const char *format, ...) { va_list args; FILE *logfile; @@ -153,6 +171,8 @@ static void _pam_output_debug(const char *format, ...) va_end(args); } +#undef PAM_DEBUG_SCOPE +#endif #define D(x) do { \ _pam_output_debug_info(__FILE__, __FUNCTION__, __LINE__); \ diff --git a/libpam/include/security/_pam_types.h b/libpam/include/security/_pam_types.h index 4d6909e8..f2d3e204 100644 --- a/libpam/include/security/_pam_types.h +++ b/libpam/include/security/_pam_types.h @@ -22,7 +22,7 @@ typedef struct pam_handle pam_handle_t; /* Major and minor version number of the Linux-PAM package. Use these macros to test for features in specific releases. */ #define __LINUX_PAM__ 1 -#define __LINUX_PAM_MINOR__ 0 +#define __LINUX_PAM_MINOR__ 7 /* ----------------- The Linux-PAM return values ------------------ */ diff --git a/libpam/include/security/meson.build b/libpam/include/security/meson.build new file mode 100644 index 00000000..1a712c9f --- /dev/null +++ b/libpam/include/security/meson.build @@ -0,0 +1,10 @@ +install_headers([ + '_pam_compat.h', + '_pam_macros.h', + '_pam_types.h', + 'pam_appl.h', + 'pam_ext.h', + 'pam_modules.h', + 'pam_modutil.h', + ], + install_dir: includedir) diff --git a/libpam/include/test_assert.h b/libpam/include/test_assert.h index 9d30d62f..879f5814 100644 --- a/libpam/include/test_assert.h +++ b/libpam/include/test_assert.h @@ -7,10 +7,9 @@ #ifndef TEST_ASSERT_H # define TEST_ASSERT_H -# ifdef HAVE_CONFIG_H -# include <config.h> -# endif +# include <config.h> +# include <limits.h> # include <stdio.h> # include <stdlib.h> @@ -52,4 +51,8 @@ ASSERT_((expected_), #expected_, >=, (seen_), #seen_) \ /* End of ASSERT_LT definition. */ +# ifndef PATH_MAX +# define PATH_MAX 4096 +# endif + #endif /* TEST_ASSERT_H */ diff --git a/libpam/meson.build b/libpam/meson.build new file mode 100644 index 00000000..3e8a531c --- /dev/null +++ b/libpam/meson.build @@ -0,0 +1,73 @@ +subdir('include') + +libpam_src = [ + 'pam_account.c', + 'pam_audit.c', + 'pam_auth.c', + 'pam_data.c', + 'pam_delay.c', + 'pam_dispatch.c', + 'pam_dynamic.c', + 'pam_end.c', + 'pam_env.c', + 'pam_get_authtok.c', + 'pam_handlers.c', + 'pam_item.c', + 'pam_misc.c', + 'pam_modutil_check_user.c', + 'pam_modutil_cleanup.c', + 'pam_modutil_getgrgid.c', + 'pam_modutil_getgrnam.c', + 'pam_modutil_getlogin.c', + 'pam_modutil_getpwnam.c', + 'pam_modutil_getpwuid.c', + 'pam_modutil_getspnam.c', + 'pam_modutil_ingroup.c', + 'pam_modutil_ioloop.c', + 'pam_modutil_priv.c', + 'pam_modutil_sanitize.c', + 'pam_modutil_searchkey.c', + 'pam_password.c', + 'pam_prelude.c', + 'pam_session.c', + 'pam_start.c', + 'pam_strerror.c', + 'pam_syslog.c', + 'pam_vprompt.c', +] + +libpam_version = '0.85.1' +libpam_map = 'libpam.map' +libpam_map_path = meson.current_source_dir() / libpam_map + +libpam_link_deps = [libpam_map] +libpam_link_args = ['-Wl,--version-script=' + libpam_map_path] + +libpam = shared_library( + 'pam', + sources: libpam_src, + include_directories: [libpam_inc], + c_args: [ + '-DDEFAULT_MODULE_PATH="@0@/"'.format(securedir), + '-DLIBPAM_COMPILE', + ], + dependencies: [libpam_internal_dep, libaudit, libeconf, libdl, libintl], + link_depends: libpam_link_deps, + link_args: libpam_link_args, + version: libpam_version, + install: true, +) + +libpam_dep = declare_dependency( + include_directories: [libpam_inc], + link_with: [libpam], +) + +pkgconfig.generate( + libpam, + description: 'The primary Linux-PAM library. It is used by PAM modules and PAM-aware applications.', + name: 'PAM', + filebase: 'pam', + version: meson.project_version(), + url: 'http://www.linux-pam.org/' +) diff --git a/libpam/pam.pc.in b/libpam/pam.pc.in index c3fafe4b..73049f1e 100644 --- a/libpam/pam.pc.in +++ b/libpam/pam.pc.in @@ -1,7 +1,7 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ -includedir=@includedir@ +includedir=@pkgconfig_includedir@ Name: PAM Description: The primary Linux-PAM library. It is used by PAM modules and PAM-aware applications. diff --git a/libpam/pam_account.c b/libpam/pam_account.c index 3a4fb1fc..c74fa449 100644 --- a/libpam/pam_account.c +++ b/libpam/pam_account.c @@ -10,7 +10,7 @@ int pam_acct_mgmt(pam_handle_t *pamh, int flags) D(("called")); - IF_NO_PAMH("pam_acct_mgmt", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_MODULE(pamh)) { D(("called from module!?")); diff --git a/libpam/pam_audit.c b/libpam/pam_audit.c index 97a9a929..1fe37c3f 100644 --- a/libpam/pam_audit.c +++ b/libpam/pam_audit.c @@ -44,7 +44,7 @@ _pam_audit_writelog(pam_handle_t *pamh, int audit_fd, int type, free(buf); } - /* libaudit sets errno to his own negative error code. This can be + /* libaudit sets errno to its own negative error code. This can be an official errno number, but must not. It can also be a audit internal error code. Which makes errno useless :-((. Try the best to fix it. */ @@ -203,7 +203,7 @@ int _pam_audit_end(pam_handle_t *pamh, int status UNUSED) { if (! (pamh->audit_state & PAMAUDIT_LOGGED)) { - /* PAM library is being shut down without any of the auditted + /* PAM library is being shut down without any of the audited * stacks having been run. Assume that this is sshd faking * things for an unknown user. */ diff --git a/libpam/pam_auth.c b/libpam/pam_auth.c index 1e7bc6e7..fdaf95db 100644 --- a/libpam/pam_auth.c +++ b/libpam/pam_auth.c @@ -15,9 +15,9 @@ int pam_authenticate(pam_handle_t *pamh, int flags) { int retval; - D(("pam_authenticate called")); + D(("called.")); - IF_NO_PAMH("pam_authenticate", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_MODULE(pamh)) { D(("called from module!?")); @@ -36,7 +36,7 @@ int pam_authenticate(pam_handle_t *pamh, int flags) if (retval != PAM_INCOMPLETE) { _pam_sanitize(pamh); _pam_await_timer(pamh, retval); /* if unsuccessful then wait now */ - D(("pam_authenticate exit")); + D(("exiting")); } else { D(("will resume when ready")); } @@ -52,9 +52,9 @@ int pam_setcred(pam_handle_t *pamh, int flags) { int retval; - D(("pam_setcred called")); + D(("called.")); - IF_NO_PAMH("pam_setcred", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_MODULE(pamh)) { D(("called from module!?")); @@ -67,7 +67,7 @@ int pam_setcred(pam_handle_t *pamh, int flags) retval = _pam_dispatch(pamh, flags, PAM_SETCRED); - D(("pam_setcred exit")); + D(("exiting")); return retval; } diff --git a/libpam/pam_data.c b/libpam/pam_data.c index 30570afb..2ad2a168 100644 --- a/libpam/pam_data.c +++ b/libpam/pam_data.c @@ -31,8 +31,6 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "config.h" - #include "pam_private.h" #include <stdlib.h> @@ -45,7 +43,7 @@ static struct pam_data *_pam_locate_data(const pam_handle_t *pamh, D(("called")); - IF_NO_PAMH("_pam_locate_data", pamh, NULL); + IF_NO_PAMH(pamh, NULL); data = pamh->data; @@ -69,7 +67,7 @@ int pam_set_data( D(("called")); - IF_NO_PAMH("pam_set_data", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_APP(pamh)) { D(("called from application!?")); @@ -122,7 +120,7 @@ int pam_get_data( D(("called")); - IF_NO_PAMH("pam_get_data", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_APP(pamh)) { D(("called from application!?")); @@ -151,7 +149,7 @@ void _pam_free_data(pam_handle_t *pamh, int status) D(("called")); - IF_NO_PAMH("_pam_free_data", pamh, /* no return value for void fn */); + IF_NO_PAMH(pamh, /* no return value for void fn */); data = pamh->data; while (data) { diff --git a/libpam/pam_delay.c b/libpam/pam_delay.c index 549da896..9c6716a1 100644 --- a/libpam/pam_delay.c +++ b/libpam/pam_delay.c @@ -14,12 +14,17 @@ */ #include "pam_private.h" +#include <limits.h> #include <unistd.h> #include <time.h> +#ifdef HAVE_SYS_RANDOM_H +#include <sys/random.h> +#endif + /* ********************************************************************** * initialize the time as unset, this is set on the return from the - * authenticating pair of of the libpam pam_XXX calls. + * authenticating pair of the libpam pam_XXX calls. */ void _pam_reset_timer(pam_handle_t *pamh) @@ -51,29 +56,40 @@ void _pam_start_timer(pam_handle_t *pamh) * in C'. It is *not* a cryptographically strong generator, but it is * probably "good enough" for our purposes here. * - * /dev/random might be a better place to look for some numbers... + * If getrandom is available, retrieve random number from there. */ static unsigned int _pam_rand(unsigned int seed) { +#ifdef HAVE_GETRANDOM + unsigned int value; + + if (getrandom(&value, sizeof(value), GRND_NONBLOCK) == + (ssize_t) sizeof(value)) { + return value; + } +#endif + #define N1 1664525 #define N2 1013904223 return N1*seed + N2; } -static unsigned int _pam_compute_delay(unsigned int seed, unsigned int base) +static unsigned long long _pam_compute_delay(unsigned int seed, + unsigned int base) { int i; double sum; - unsigned int ans; + unsigned long long ans; for (sum=i=0; i<3; ++i) { seed = _pam_rand(seed); sum += (double) ((seed / 10) % 1000000); } sum = (sum/3.)/1e6 - .5; /* rescale */ - ans = (unsigned int) ( base*(1.+sum) ); - D(("random number: base=%u -> ans=%u\n", base, ans)); + sum = base*(1.+sum); + ans = sum > (double) ULLONG_MAX ? ULLONG_MAX : (unsigned long long) sum; + D(("random number: base=%u -> ans=%llu\n", base, ans)); return ans; } @@ -88,7 +104,7 @@ static unsigned int _pam_compute_delay(unsigned int seed, unsigned int base) void _pam_await_timer(pam_handle_t *pamh, int status) { - unsigned int delay; + unsigned long long delay; D(("waiting?...")); delay = _pam_compute_delay(pamh->fail_delay.begin, @@ -99,6 +115,7 @@ void _pam_await_timer(pam_handle_t *pamh, int status) void (*fn)(int, unsigned, void *); } hack_fn_u; void *appdata_ptr; + unsigned int delay_uint; if (pamh->pam_conversation) { appdata_ptr = pamh->pam_conversation->appdata_ptr; @@ -106,14 +123,16 @@ void _pam_await_timer(pam_handle_t *pamh, int status) appdata_ptr = NULL; } - /* always call the applications delay function, even if + delay_uint = delay > UINT_MAX ? UINT_MAX : (unsigned int) delay; + + /* always call the application's delay function, even if the delay is zero - indicate status */ hack_fn_u.value = pamh->fail_delay.delay_fn_ptr; - hack_fn_u.fn(status, delay, appdata_ptr); + hack_fn_u.fn(status, delay_uint, appdata_ptr); } else if (status != PAM_SUCCESS && pamh->fail_delay.set) { - D(("will wait %u usec", delay)); + D(("will wait %llu usec", delay)); if (delay > 0) { struct timeval tval; @@ -138,7 +157,7 @@ int pam_fail_delay(pam_handle_t *pamh, unsigned int usec) { unsigned int largest; - IF_NO_PAMH("pam_fail_delay", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); D(("setting delay to %u",usec)); diff --git a/libpam/pam_dispatch.c b/libpam/pam_dispatch.c index 974104a2..3a1d59e8 100644 --- a/libpam/pam_dispatch.c +++ b/libpam/pam_dispatch.c @@ -18,8 +18,8 @@ /* impression codes - this gives some sense to the logical choices */ #define _PAM_UNDEF 0 -#define _PAM_POSITIVE +1 -#define _PAM_NEGATIVE -1 +#define _PAM_POSITIVE (+1) +#define _PAM_NEGATIVE (-1) /* frozen chain required codes */ #define _PAM_PLEASE_FREEZE 0 @@ -28,7 +28,7 @@ /* * walk a stack of modules. Interpret the administrator's instructions - * when combining the return code of each module. + * when combining the return codes of each module. */ static int _pam_dispatch_aux(pam_handle_t *pamh, int flags, struct handler *h, @@ -37,7 +37,7 @@ static int _pam_dispatch_aux(pam_handle_t *pamh, int flags, struct handler *h, int depth, impression, status, skip_depth, prev_level, stack_level; struct _pam_substack_state *substates = NULL; - IF_NO_PAMH("_pam_dispatch_aux", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (h == NULL) { const void *service=NULL; @@ -240,7 +240,7 @@ static int _pam_dispatch_aux(pam_handle_t *pamh, int flags, struct handler *h, if ( impression != _PAM_NEGATIVE ) { impression = _PAM_NEGATIVE; /* Don't return with PAM_IGNORE as status */ - if ( retval == PAM_IGNORE ) + if ( retval == PAM_IGNORE ) status = PAM_MUST_FAIL_CODE; else status = retval; @@ -299,7 +299,7 @@ static int _pam_dispatch_aux(pam_handle_t *pamh, int flags, struct handler *h, } continue; -decision_made: /* by getting here we have made a decision */ +decision_made: /* by getting here we have made a decision */ while (h->next != NULL && h->next->stack_level >= stack_level) { h = h->next; ++depth; @@ -337,7 +337,7 @@ int _pam_dispatch(pam_handle_t *pamh, int flags, int choice) int retval = PAM_SYSTEM_ERR, use_cached_chain; _pam_boolean resumed; - IF_NO_PAMH("_pam_dispatch", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_MODULE(pamh)) { D(("called from a module!?")); @@ -429,7 +429,8 @@ int _pam_dispatch(pam_handle_t *pamh, int flags, int choice) /* Should we recall where to resume next time? */ if (retval == PAM_INCOMPLETE) { - D(("module [%d] returned PAM_INCOMPLETE")); + D(("module [%s] returned PAM_INCOMPLETE", + pamh->mod_name ? pamh->mod_name : "(NULL)")); pamh->former.choice = choice; } else { pamh->former.choice = PAM_NOT_STACKED; diff --git a/libpam/pam_end.c b/libpam/pam_end.c index 9179a915..c728f1da 100644 --- a/libpam/pam_end.c +++ b/libpam/pam_end.c @@ -13,9 +13,9 @@ int pam_end(pam_handle_t *pamh, int pam_status) { int ret; - D(("entering pam_end()")); + D(("called.")); - IF_NO_PAMH("pam_end", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_MODULE(pamh)) { D(("called from module!?")); @@ -26,7 +26,7 @@ int pam_end(pam_handle_t *pamh, int pam_status) _pam_audit_end(pamh, pam_status); #endif - /* first liberate the modules (it is not inconcevible that the + /* first liberate the modules (it is not inconceivable that the modules may need to use the service_name etc. to clean up) */ _pam_free_data(pamh, pam_status); @@ -93,7 +93,7 @@ int pam_end(pam_handle_t *pamh, int pam_status) _pam_drop(pamh); - D(("exiting pam_end() successfully")); + D(("exiting successfully")); return PAM_SUCCESS; } diff --git a/libpam/pam_env.c b/libpam/pam_env.c index bfeb57ab..2b3e3953 100644 --- a/libpam/pam_env.c +++ b/libpam/pam_env.c @@ -14,6 +14,7 @@ #include "pam_inline.h" #include <string.h> +#include <stdint.h> #include <stdlib.h> #ifdef sunos @@ -33,7 +34,12 @@ static void _pam_dump_env(pam_handle_t *pamh) , pamh->env->requested, pamh->env->entries)); for (i=0; i<pamh->env->requested; ++i) { - _pam_output_debug(">%-3d [%9p]:[%s]" + _pam_output_debug( +#if UINTPTR_MAX == UINT32_MAX + ">%-3d [%10p]:[%s]" +#else + ">%-3d [%18p]:[%s]" +#endif , i, pamh->env->list[i], pamh->env->list[i]); } _pam_output_debug("*NOTE* the last item should be (nil)"); @@ -50,13 +56,13 @@ int _pam_make_env(pam_handle_t *pamh) { D(("called.")); - IF_NO_PAMH("_pam_make_env", pamh, PAM_ABORT); + IF_NO_PAMH(pamh, PAM_ABORT); /* * get structure memory */ - pamh->env = (struct pam_environ *) malloc(sizeof(struct pam_environ)); + pamh->env = malloc(sizeof(struct pam_environ)); if (pamh->env == NULL) { pam_syslog(pamh, LOG_CRIT, "_pam_make_env: out of memory"); return PAM_BUF_ERR; @@ -66,7 +72,7 @@ int _pam_make_env(pam_handle_t *pamh) * get list memory */ - pamh->env->list = (char **)calloc( PAM_ENV_CHUNK, sizeof(char *) ); + pamh->env->list = calloc( PAM_ENV_CHUNK, sizeof(char *) ); if (pamh->env->list == NULL) { pam_syslog(pamh, LOG_CRIT, "_pam_make_env: no memory for list"); _pam_drop(pamh->env); @@ -93,7 +99,7 @@ int _pam_make_env(pam_handle_t *pamh) void _pam_drop_env(pam_handle_t *pamh) { D(("called.")); - IF_NO_PAMH("_pam_make_env", pamh, /* nothing to return */); + IF_NO_PAMH(pamh, /* nothing to return */); if (pamh->env != NULL) { int i; @@ -120,7 +126,7 @@ void _pam_drop_env(pam_handle_t *pamh) */ static int _pam_search_env(const struct pam_environ *env - , const char *name_value, int length) + , const char *name_value, size_t length) { int i; @@ -152,10 +158,11 @@ static int _pam_search_env(const struct pam_environ *env int pam_putenv(pam_handle_t *pamh, const char *name_value) { - int l2eq, item, retval; + size_t l2eq; + int item, retval; D(("called.")); - IF_NO_PAMH("pam_putenv", pamh, PAM_ABORT); + IF_NO_PAMH(pamh, PAM_ABORT); if (name_value == NULL) { pam_syslog(pamh, LOG_ERR, "pam_putenv: no variable indicated"); @@ -167,7 +174,7 @@ int pam_putenv(pam_handle_t *pamh, const char *name_value) */ for (l2eq=0; name_value[l2eq] && name_value[l2eq] != '='; ++l2eq); - if (l2eq <= 0) { + if (l2eq == 0) { pam_syslog(pamh, LOG_ERR, "pam_putenv: bad variable"); return PAM_BAD_ITEM; } @@ -265,7 +272,7 @@ int pam_putenv(pam_handle_t *pamh, const char *name_value) pam_overwrite_string(pamh->env->list[item]); _pam_drop(pamh->env->list[item]); --(pamh->env->requested); - D(("mmove: item[%d]+%d -> item[%d]" + D(("memmove: item[%d]+%d -> item[%d]" , item+1, ( pamh->env->requested - item ), item)); (void) memmove(&pamh->env->list[item], &pamh->env->list[item+1] , ( pamh->env->requested - item )*sizeof(char *) ); @@ -288,7 +295,7 @@ const char *pam_getenv(pam_handle_t *pamh, const char *name) int item; D(("called.")); - IF_NO_PAMH("pam_getenv", pamh, NULL); + IF_NO_PAMH(pamh, NULL); if (name == NULL) { pam_syslog(pamh, LOG_ERR, "pam_getenv: no variable indicated"); @@ -326,7 +333,7 @@ static char **_copy_env(pam_handle_t *pamh) D(("now get some memory for dump")); /* allocate some memory for this (plus the null tail-pointer) */ - dump = (char **) calloc(i, sizeof(char *)); + dump = calloc(i, sizeof(char *)); D(("dump = %p", dump)); if (dump == NULL) { return NULL; @@ -361,7 +368,7 @@ char **pam_getenvlist(pam_handle_t *pamh) int i; D(("called.")); - IF_NO_PAMH("pam_getenvlist", pamh, NULL); + IF_NO_PAMH(pamh, NULL); if (pamh->env == NULL || pamh->env->list == NULL) { pam_syslog(pamh, LOG_ERR, "pam_getenvlist: no env%s found", diff --git a/libpam/pam_get_authtok.c b/libpam/pam_get_authtok.c index 3f383339..2e7a5996 100644 --- a/libpam/pam_get_authtok.c +++ b/libpam/pam_get_authtok.c @@ -31,9 +31,9 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "config.h" #include "pam_private.h" #include "pam_inline.h" +#include "pam_i18n.h" #include <security/pam_ext.h> @@ -84,6 +84,8 @@ pam_get_authtok_internal (pam_handle_t *pamh, int item, unsigned int flags) { + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); + char *resp[2] = {NULL, NULL}; const void *prevauthtok; const char *authtok_type = ""; @@ -229,6 +231,8 @@ int pam_get_authtok_verify (pam_handle_t *pamh, const char **authtok, const char *prompt) { + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); + char *resp = NULL; const char *authtok_type = ""; int retval; diff --git a/libpam/pam_handlers.c b/libpam/pam_handlers.c index 1f1917b5..7fd6ce84 100644 --- a/libpam/pam_handlers.c +++ b/libpam/pam_handlers.c @@ -9,6 +9,7 @@ #include "pam_private.h" #include "pam_inline.h" +#include <limits.h> #include <stdlib.h> #include <stdio.h> #include <string.h> @@ -17,21 +18,20 @@ #include <fcntl.h> #include <unistd.h> -#define BUF_SIZE 1024 +#include "pam_line.h" + #define MODULE_CHUNK 4 #define UNKNOWN_MODULE "<*unknown module*>" #ifndef _PAM_ISA #define _PAM_ISA "." #endif -static int _pam_assemble_line(FILE *f, char *buf, int buf_len); - static void _pam_free_handlers_aux(struct handler **hp); static int _pam_add_handler(pam_handle_t *pamh , int must_fail, int other, int stack_level, int type , int *actions, const char *mod_path - , int argc, char **argv, int argvlen); + , int argc, char **argv, size_t argvlen); /* Values for module type */ @@ -44,6 +44,7 @@ static int _pam_add_handler(pam_handle_t *pamh static int _pam_load_conf_file(pam_handle_t *pamh, const char *config_name , const char *service /* specific file */ , int module_type /* specific type */ + , int include_level /* level of include */ , int stack_level /* level of substack */ #ifdef PAM_READ_BOTH_CONFS , int not_other @@ -53,18 +54,22 @@ static int _pam_load_conf_file(pam_handle_t *pamh, const char *config_name static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f , const char *known_service /* specific file */ , int requested_module_type /* specific type */ + , int include_level /* level of include */ , int stack_level /* level of substack */ #ifdef PAM_READ_BOTH_CONFS , int not_other #endif /* PAM_READ_BOTH_CONFS */ ) { - char buf[BUF_SIZE]; + struct pam_line_buffer buffer; int x; /* read a line from the FILE *f ? */ + + _pam_line_buffer_init(&buffer); /* * read a line from the configuration (FILE *) f */ - while ((x = _pam_assemble_line(f, buf, BUF_SIZE)) > 0) { + while ((x = _pam_line_assemble(f, &buffer, ' ')) > 0) { + char *buf = buffer.assembled; char *tok, *nexttok=NULL; const char *this_service; const char *mod_path; @@ -74,15 +79,15 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f int handler_type = PAM_HT_MODULE; /* regular handler from a module */ int argc; char **argv; - int argvlen; + size_t argvlen; - D(("_pam_init_handler: LINE: %s", buf)); + D(("LINE: %s", buf)); if (known_service != NULL) { nexttok = buf; /* No service field: all lines are for the known service. */ this_service = known_service; } else { - this_service = tok = _pam_StrTok(buf, " \n\t", &nexttok); + this_service = tok = _pam_tokenize(buf, &nexttok); } #ifdef PAM_READ_BOTH_CONFS @@ -98,13 +103,12 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f int substack = 0; /* This is a service we are looking for */ - D(("_pam_init_handlers: Found PAM config entry for: %s" - , this_service)); + D(("Found PAM config entry for: %s", this_service)); - tok = _pam_StrTok(NULL, " \n\t", &nexttok); + tok = _pam_tokenize(NULL, &nexttok); if (tok == NULL) { /* module type does not exist */ - D(("_pam_init_handlers: empty module type for %s", this_service)); + D(("empty module type for %s", this_service)); pam_syslog(pamh, LOG_ERR, "(%s) empty module type", this_service); module_type = (requested_module_type != PAM_T_ANY) ? @@ -125,7 +129,7 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f module_type = PAM_T_PASS; } else { /* Illegal module type */ - D(("_pam_init_handlers: bad module type: %s", tok)); + D(("bad module type: %s", tok)); pam_syslog(pamh, LOG_ERR, "(%s) illegal module type: %s", this_service, tok); module_type = (requested_module_type != PAM_T_ANY) ? @@ -133,7 +137,7 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f handler_type = PAM_HT_MUST_FAIL; /* install as normal but fail when dispatched */ } } - D(("Using %s config entry: %s", handler_type?"BAD ":"", tok)); + D(("Using %sconfig entry: %s", handler_type?"BAD ":"", tok)); if (requested_module_type != PAM_T_ANY && module_type != requested_module_type) { D(("Skipping config entry: %s (requested=%d, found=%d)", @@ -148,10 +152,10 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f for (i=0; i<_PAM_RETURN_VALUES; actions[i++] = _PAM_ACTION_UNDEF); } - tok = _pam_StrTok(NULL, " \n\t", &nexttok); + tok = _pam_tokenize(NULL, &nexttok); if (tok == NULL) { /* no module name given */ - D(("_pam_init_handlers: no control flag supplied")); + D(("no control flag supplied")); pam_syslog(pamh, LOG_ERR, "(%s) no control flag supplied", this_service); _pam_set_default_control(actions, _PAM_ACTION_BAD); @@ -193,7 +197,7 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f _pam_set_default_control(actions, _PAM_ACTION_BAD); } - tok = _pam_StrTok(NULL, " \n\t", &nexttok); + tok = _pam_tokenize(NULL, &nexttok); if (pam_include) { if (substack) { res = _pam_add_handler(pamh, PAM_HT_SUBSTACK, other, @@ -206,7 +210,7 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f } } if (_pam_load_conf_file(pamh, tok, this_service, module_type, - stack_level + substack + include_level + 1, stack_level + substack #ifdef PAM_READ_BOTH_CONFS , !other #endif /* PAM_READ_BOTH_CONFS */ @@ -221,7 +225,7 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f D(("mod_path = %s",mod_path)); } else { /* no module name given */ - D(("_pam_init_handlers: no module name supplied")); + D(("no module name supplied")); pam_syslog(pamh, LOG_ERR, "(%s) no module name supplied", this_service); mod_path = NULL; @@ -233,10 +237,20 @@ static int _pam_parse_conf_file(pam_handle_t *pamh, FILE *f if (nexttok != NULL) { D(("list: %s",nexttok)); argvlen = _pam_mkargv(nexttok, &argv, &argc); - D(("argvlen = %d",argvlen)); + D(("argvlen = %zu",argvlen)); + if (argvlen == 0) { + /* memory allocation failed */ + D(("failed to allocate argument vector")); + pam_syslog(pamh, LOG_ERR, + "(%s) argument vector allocation failed", + this_service); + mod_path = NULL; + handler_type = PAM_HT_MUST_FAIL; + } } else { /* there are no arguments so fix by hand */ - D(("_pam_init_handlers: empty argument list")); - argvlen = argc = 0; + D(("empty argument list")); + argvlen = 0; + argc = 0; argv = NULL; } @@ -340,6 +354,7 @@ _pam_open_config_file(pam_handle_t *pamh static int _pam_load_conf_file(pam_handle_t *pamh, const char *config_name , const char *service /* specific file */ , int module_type /* specific type */ + , int include_level /* level of include */ , int stack_level /* level of substack */ #ifdef PAM_READ_BOTH_CONFS , int not_other @@ -350,11 +365,11 @@ static int _pam_load_conf_file(pam_handle_t *pamh, const char *config_name char *path = NULL; int retval = PAM_ABORT; - D(("_pam_load_conf_file called")); + D(("called.")); - if (stack_level >= PAM_SUBSTACK_MAX_LEVEL) { - D(("maximum level of substacks reached")); - pam_syslog(pamh, LOG_ERR, "maximum level of substacks reached"); + if (include_level >= PAM_SUBSTACK_MAX_LEVEL) { + D(("maximum level of inclusions reached")); + pam_syslog(pamh, LOG_ERR, "maximum level of inclusions reached"); return PAM_ABORT; } @@ -365,7 +380,7 @@ static int _pam_load_conf_file(pam_handle_t *pamh, const char *config_name } if (_pam_open_config_file(pamh, config_name, &path, &f) == PAM_SUCCESS) { - retval = _pam_parse_conf_file(pamh, f, service, module_type, stack_level + retval = _pam_parse_conf_file(pamh, f, service, module_type, include_level, stack_level #ifdef PAM_READ_BOTH_CONFS , not_other #endif /* PAM_READ_BOTH_CONFS */ @@ -392,15 +407,15 @@ int _pam_init_handlers(pam_handle_t *pamh) FILE *f; int retval; - D(("_pam_init_handlers called")); - IF_NO_PAMH("_pam_init_handlers",pamh,PAM_SYSTEM_ERR); + D(("called.")); + IF_NO_PAMH(pamh,PAM_SYSTEM_ERR); /* Return immediately if everything is already loaded */ if (pamh->handlers.handlers_loaded) { return PAM_SUCCESS; } - D(("_pam_init_handlers: initializing")); + D(("initializing")); /* First clean the service structure */ @@ -462,7 +477,7 @@ int _pam_init_handlers(pam_handle_t *pamh) if (_pam_open_config_file(pamh, pamh->service_name, &path, &f) == PAM_SUCCESS) { retval = _pam_parse_conf_file(pamh, f, pamh->service_name, - PAM_T_ANY, 0 + PAM_T_ANY, 0, 0 #ifdef PAM_READ_BOTH_CONFS , 0 #endif /* PAM_READ_BOTH_CONFS */ @@ -485,7 +500,7 @@ int _pam_init_handlers(pam_handle_t *pamh) if (pamh->confdir == NULL && (f = fopen(PAM_CONFIG,"r")) != NULL) { - retval = _pam_parse_conf_file(pamh, f, NULL, PAM_T_ANY, 0, 1); + retval = _pam_parse_conf_file(pamh, f, NULL, PAM_T_ANY, 0, 0, 1); fclose(f); } else #endif /* PAM_READ_BOTH_CONFS */ @@ -502,7 +517,7 @@ int _pam_init_handlers(pam_handle_t *pamh) if (_pam_open_config_file(pamh, PAM_DEFAULT_SERVICE, &path, &f) == PAM_SUCCESS) { /* would test magic here? */ retval = _pam_parse_conf_file(pamh, f, PAM_DEFAULT_SERVICE, - PAM_T_ANY, 0 + PAM_T_ANY, 0, 0 #ifdef PAM_READ_BOTH_CONFS , 0 #endif /* PAM_READ_BOTH_CONFS */ @@ -520,7 +535,7 @@ int _pam_init_handlers(pam_handle_t *pamh) _pam_drop(path); fclose(f); } else { - D(("unable to open %s", PAM_DEFAULT_SERVICE)); + D(("unable to open configuration for %s", PAM_DEFAULT_SERVICE)); pam_syslog(pamh, LOG_ERR, "_pam_init_handlers: no default config %s", PAM_DEFAULT_SERVICE); @@ -536,7 +551,7 @@ int _pam_init_handlers(pam_handle_t *pamh) return PAM_ABORT; } - retval = _pam_parse_conf_file(pamh, f, NULL, PAM_T_ANY, 0 + retval = _pam_parse_conf_file(pamh, f, NULL, PAM_T_ANY, 0, 0 #ifdef PAM_READ_BOTH_CONFS , 0 #endif /* PAM_READ_BOTH_CONFS */ @@ -555,94 +570,10 @@ int _pam_init_handlers(pam_handle_t *pamh) pamh->handlers.handlers_loaded = 1; - D(("_pam_init_handlers exiting")); + D(("exiting")); return PAM_SUCCESS; } -/* - * This is where we read a line of the PAM config file. The line may be - * preceded by lines of comments and also extended with "\\\n" - */ - -static int _pam_assemble_line(FILE *f, char *buffer, int buf_len) -{ - char *p = buffer; - char *endp = buffer + buf_len; - char *s, *os; - int used = 0; - - /* loop broken with a 'break' when a non-'\\n' ended line is read */ - - D(("called.")); - for (;;) { - if (p >= endp) { - /* Overflow */ - D(("_pam_assemble_line: overflow")); - return -1; - } - if (fgets(p, endp - p, f) == NULL) { - if (used) { - /* Incomplete read */ - return -1; - } else { - /* EOF */ - return 0; - } - } - - /* skip leading spaces --- line may be blank */ - - s = p + strspn(p, " \n\t"); - if (*s && (*s != '#')) { - os = s; - - /* - * we are only interested in characters before the first '#' - * character - */ - - while (*s && *s != '#') - ++s; - if (*s == '#') { - *s = '\0'; - used += strlen(os); - break; /* the line has been read */ - } - - s = os; - - /* - * Check for backslash by scanning back from the end of - * the entered line, the '\n' has been included since - * normally a line is terminated with this - * character. fgets() should only return one though! - */ - - s += strlen(s); - while (s > os && ((*--s == ' ') || (*s == '\t') - || (*s == '\n'))); - - /* check if it ends with a backslash */ - if (*s == '\\') { - *s++ = ' '; /* replace backslash with ' ' */ - *s = '\0'; /* truncate the line here */ - used += strlen(os); - p = s; /* there is more ... */ - } else { - /* End of the line! */ - used += strlen(os); - break; /* this is the complete line */ - } - - } else { - /* Nothing in this line */ - /* Don't move p */ - } - } - - return used; -} - static char * extract_modulename(const char *mod_path) { @@ -677,7 +608,7 @@ _pam_load_module(pam_handle_t *pamh, const char *mod_path, int handler_type) int success; struct loaded_module *mod; - D(("_pam_load_module: loading module `%s'", mod_path)); + D(("loading module `%s'", mod_path)); mod = pamh->handlers.module; @@ -708,39 +639,30 @@ _pam_load_module(pam_handle_t *pamh, const char *mod_path, int handler_type) /* Be pessimistic... */ success = PAM_ABORT; - D(("_pam_load_module: _pam_dlopen(%s)", mod_path)); + D(("_pam_dlopen(%s)", mod_path)); mod->dl_handle = _pam_dlopen(mod_path); - D(("_pam_load_module: _pam_dlopen'ed")); - D(("_pam_load_module: dlopen'ed")); + D(("_pam_dlopen'ed")); + D(("dlopen'ed")); if (mod->dl_handle == NULL) { const char *isa = strstr(mod_path, "$ISA"); size_t isa_len = strlen("$ISA"); if (isa != NULL) { - size_t pam_isa_len = strlen(_PAM_ISA); - char *mod_full_isa_path = - malloc(strlen(mod_path) - isa_len + pam_isa_len + 1); - - if (mod_full_isa_path == NULL) { - D(("_pam_load_module: couldn't get memory for mod_path")); + char *mod_full_isa_path = NULL; + if (strlen(mod_path) >= INT_MAX || + asprintf(&mod_full_isa_path, "%.*s%s%s", + (int)(isa - mod_path), mod_path, _PAM_ISA, isa + isa_len) < 0) { + D(("couldn't get memory for mod_path")); pam_syslog(pamh, LOG_CRIT, "no memory for module path"); success = PAM_ABORT; } else { - char *p = mod_full_isa_path; - - memcpy(p, mod_path, isa - mod_path); - p += isa - mod_path; - memcpy(p, _PAM_ISA, pam_isa_len); - p += pam_isa_len; - strcpy(p, isa + isa_len); - mod->dl_handle = _pam_dlopen(mod_full_isa_path); _pam_drop(mod_full_isa_path); } } } if (mod->dl_handle == NULL) { - D(("_pam_load_module: _pam_dlopen(%s) failed", mod_path)); + D(("_pam_dlopen(%s) failed", mod_path)); if (handler_type != PAM_HT_SILENT_MODULE) pam_syslog(pamh, LOG_ERR, "unable to dlopen(%s): %s", mod_path, _pam_dlerror()); @@ -764,7 +686,7 @@ _pam_load_module(pam_handle_t *pamh, const char *mod_path, int handler_type) /* indicate its name - later we will search for it by this */ if ((mod->name = _pam_strdup(mod_path)) == NULL) { - D(("_pam_load_module: couldn't get memory for mod_path")); + D(("couldn't get memory for mod_path")); pam_syslog(pamh, LOG_CRIT, "no memory for module path"); success = PAM_ABORT; } @@ -776,10 +698,10 @@ _pam_load_module(pam_handle_t *pamh, const char *mod_path, int handler_type) return success == PAM_SUCCESS ? mod : NULL; } -int _pam_add_handler(pam_handle_t *pamh - , int handler_type, int other, int stack_level, int type - , int *actions, const char *mod_path - , int argc, char **argv, int argvlen) +static int _pam_add_handler(pam_handle_t *pamh + , int handler_type, int other, int stack_level + , int type, int *actions, const char *mod_path + , int argc, char **argv, size_t argvlen) { struct loaded_module *mod = NULL; struct handler **handler_p; @@ -791,9 +713,9 @@ int _pam_add_handler(pam_handle_t *pamh int mod_type = PAM_MT_FAULTY_MOD; D(("called.")); - IF_NO_PAMH("_pam_add_handler",pamh,PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh,PAM_SYSTEM_ERR); - D(("_pam_add_handler: adding type %d, handler_type %d, module `%s'", + D(("adding type %d, handler_type %d, module `%s'", type, handler_type, mod_path)); if ((handler_type == PAM_HT_MODULE || handler_type == PAM_HT_SILENT_MODULE) && @@ -857,14 +779,14 @@ int _pam_add_handler(pam_handle_t *pamh break; default: /* Illegal module type */ - D(("_pam_add_handler: illegal module type %d", type)); + D(("illegal module type %d", type)); return PAM_ABORT; } /* are the modules reliable? */ if (mod_type != PAM_MT_DYNAMIC_MOD && mod_type != PAM_MT_FAULTY_MOD) { - D(("_pam_add_handlers: illegal module library type; %d", mod_type)); + D(("illegal module library type; %d", mod_type)); pam_syslog(pamh, LOG_ERR, "internal error: module library type not known: %s;%d", sym, mod_type); @@ -938,7 +860,7 @@ int _pam_add_handler(pam_handle_t *pamh return PAM_ABORT; } - D(("_pam_add_handler: returning successfully")); + D(("returning successfully")); return PAM_SUCCESS; } @@ -949,14 +871,14 @@ int _pam_free_handlers(pam_handle_t *pamh) struct loaded_module *mod; D(("called.")); - IF_NO_PAMH("_pam_free_handlers",pamh,PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh,PAM_SYSTEM_ERR); mod = pamh->handlers.module; /* Close all loaded modules */ while (pamh->handlers.modules_used) { - D(("_pam_free_handlers: dlclose(%s)", mod->name)); + D(("dlclose(%s)", mod->name)); free(mod->name); if (mod->type == PAM_MT_DYNAMIC_MOD) { _pam_dlclose(mod->dl_handle); diff --git a/libpam/pam_item.c b/libpam/pam_item.c index 42857da5..2e43d767 100644 --- a/libpam/pam_item.c +++ b/libpam/pam_item.c @@ -6,6 +6,7 @@ #include "pam_private.h" #include "pam_inline.h" +#include "pam_i18n.h" #include <ctype.h> #include <stdlib.h> @@ -13,7 +14,7 @@ #include <syslog.h> #define TRY_SET(X, Y) \ -{ \ +do { \ if ((X) != (Y)) { \ char *_TMP_ = _pam_strdup(Y); \ if (_TMP_ == NULL && (Y) != NULL) \ @@ -21,7 +22,7 @@ free(X); \ (X) = _TMP_; \ } \ -} +} while(0) /* functions */ @@ -31,13 +32,19 @@ int pam_set_item (pam_handle_t *pamh, int item_type, const void *item) D(("called")); - IF_NO_PAMH("pam_set_item", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); retval = PAM_SUCCESS; switch (item_type) { case PAM_SERVICE: + if (item == NULL) { + pam_syslog(pamh, LOG_ERR, + "pam_set_item: attempt to set service to NULL"); + retval = PAM_BAD_ITEM; + break; + } /* Setting handlers_loaded to 0 will cause the handlers * to be reloaded on the next call to a service module. */ @@ -46,7 +53,7 @@ int pam_set_item (pam_handle_t *pamh, int item_type, const void *item) { char *tmp; for (tmp=pamh->service_name; *tmp; ++tmp) - *tmp = tolower(*tmp); /* require lower case */ + *tmp = tolower((unsigned char)*tmp); /* require lower case */ } break; @@ -61,7 +68,7 @@ int pam_set_item (pam_handle_t *pamh, int item_type, const void *item) break; case PAM_TTY: - D(("setting tty to %s", item)); + D(("setting tty to %s", (const char *)item)); TRY_SET(pamh->tty, item); break; @@ -113,8 +120,7 @@ int pam_set_item (pam_handle_t *pamh, int item_type, const void *item) } else { struct pam_conv *tconv; - if ((tconv= - (struct pam_conv *) malloc(sizeof(struct pam_conv)) + if ((tconv = malloc(sizeof(struct pam_conv)) ) == NULL) { pam_syslog(pamh, LOG_CRIT, "pam_set_item: malloc failed for pam_conv"); @@ -177,7 +183,7 @@ int pam_get_item (const pam_handle_t *pamh, int item_type, const void **item) int retval = PAM_SUCCESS; D(("called.")); - IF_NO_PAMH("pam_get_item", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (item == NULL) { pam_syslog(pamh, LOG_ERR, @@ -280,7 +286,7 @@ int pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt) D(("called.")); - IF_NO_PAMH("pam_get_user", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (user == NULL) { /* ensure that the module has supplied a destination */ @@ -372,7 +378,7 @@ int pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt) break; } else { /* conversation should have given a response */ - D(("pam_get_user: no response provided")); + D(("no response provided")); retval = PAM_CONV_ERR; } /* fallthrough */ diff --git a/libpam/pam_misc.c b/libpam/pam_misc.c index 996f23ce..e379d2f9 100644 --- a/libpam/pam_misc.c +++ b/libpam/pam_misc.c @@ -37,44 +37,38 @@ #include "pam_private.h" +#include <limits.h> #include <stdarg.h> #include <stdlib.h> +#include <stdint.h> #include <stdio.h> #include <string.h> #include <syslog.h> #include <ctype.h> -char *_pam_StrTok(char *from, const char *format, char **next) +#define DELIMITERS " \n\t" + +char *_pam_tokenize(char *from, char **next) /* - * this function is a variant of the standard strtok, it differs in that - * it takes an additional argument and doesn't nul terminate tokens until + * this function is a variant of the standard strtok_r, it differs in that + * it uses a fixed set of delimiters and doesn't nul terminate tokens until * they are actually reached. */ { - char table[256], *end; - int i; + char *end; if (from == NULL && (from = *next) == NULL) return from; - /* initialize table */ - for (i=1; i<256; table[i++] = '\0'); - for (i=0; format[i] ; - table[(unsigned char)format[i++]] = 'y'); - /* look for first non-format char */ - while (*from && table[(unsigned char)*from]) { - ++from; - } + from += strspn(from, DELIMITERS); if (*from == '[') { /* * special case, "[...]" is considered to be a single - * object. Note, however, if one of the format[] chars is - * '[' this single string will not be read correctly. - * Note, any '[' inside the outer "[...]" pair will survive. - * Note, the first ']' will terminate this string, but - * that "\]" will get compressed into "]". That is: + * object. Note, any '[' inside the outer "[...]" pair will + * survive. Note, the first ']' will terminate this string, + * but that "\]" will get compressed into "]". That is: * * "[..[..\]..]..." --> "..[..].." */ @@ -93,7 +87,7 @@ char *_pam_StrTok(char *from, const char *format, char **next) remains */ } else if (*from) { /* simply look for next blank char */ - for (end=from; *end && !table[(unsigned char)*end]; ++end); + end = from + strcspn(from, DELIMITERS); } else { return (*next = NULL); /* no tokens left */ } @@ -123,14 +117,8 @@ char *_pam_strdup(const char *x) register char *new=NULL; if (x != NULL) { - register int len; - - len = strlen (x) + 1; /* length of string including NUL */ - if ((new = malloc(len)) == NULL) { - len = 0; + if ((new = strdup(x)) == NULL) { pam_syslog(NULL, LOG_CRIT, "_pam_strdup: failed to get memory"); - } else { - strcpy (new, x); } x = NULL; } @@ -163,67 +151,62 @@ char *_pam_memdup(const char *x, int len) /* Generate argv, argc from s */ /* caller must free(argv) */ -int _pam_mkargv(const char *s, char ***argv, int *argc) +size_t _pam_mkargv(const char *s, char ***argv, int *argc) { - int l; - int argvlen = 0; - char *sbuf, *sbuf_start; + size_t l; + size_t argvlen = 0; char **our_argv = NULL; - char **argvbuf; - char *argvbufp; -#ifdef PAM_DEBUG - int count=0; -#endif - D(("_pam_mkargv called: %s",s)); + D(("called: %s",s)); *argc = 0; l = strlen(s); - if (l) { - if ((sbuf = sbuf_start = _pam_strdup(s)) == NULL) { - pam_syslog(NULL, LOG_CRIT, - "pam_mkargv: null returned by _pam_strdup"); - D(("arg NULL")); + if (l && l < SIZE_MAX / (sizeof(char) + sizeof(char *))) { + char **argvbuf; + /* Overkill on the malloc, but not large */ + argvlen = (l + 1) * (sizeof(char) + sizeof(char *)); + if ((our_argv = argvbuf = malloc(argvlen)) == NULL) { + pam_syslog(NULL, LOG_CRIT, "pam_mkargv: null returned by malloc"); + argvlen = 0; } else { - /* Overkill on the malloc, but not large */ - argvlen = (l + 1) * ((sizeof(char)) + sizeof(char *)); - if ((our_argv = argvbuf = malloc(argvlen)) == NULL) { - pam_syslog(NULL, LOG_CRIT, - "pam_mkargv: null returned by malloc"); - } else { - char *tmp=NULL; - - argvbufp = (char *) argvbuf + (l * sizeof(char *)); - D(("[%s]",sbuf)); - while ((sbuf = _pam_StrTok(sbuf, " \n\t", &tmp))) { - D(("arg #%d",++count)); - D(("->[%s]",sbuf)); - strcpy(argvbufp, sbuf); - D(("copied token")); - *argvbuf = argvbufp; - argvbufp += strlen(argvbufp) + 1; - D(("stepped in argvbufp")); - (*argc)++; - argvbuf++; - sbuf = NULL; - D(("loop again?")); + char *argvbufp; + char *tmp=NULL; + char *tok; +#ifdef PAM_DEBUG + unsigned count=0; +#endif + argvbufp = (char *) argvbuf + (l * sizeof(char *)); + strcpy(argvbufp, s); + D(("[%s]",argvbufp)); + while ((tok = _pam_tokenize(argvbufp, &tmp))) { + D(("arg #%u",++count)); + D(("->[%s]",tok)); + *argvbuf++ = tok; + if (*argc == INT_MAX) { + pam_syslog(NULL, LOG_CRIT, + "pam_mkargv: too many arguments"); + argvlen = 0; + _pam_drop(our_argv); + break; } + (*argc)++; + argvbufp = NULL; + D(("loop again?")); } - _pam_drop(sbuf_start); } } *argv = our_argv; - D(("_pam_mkargv returned")); + D(("exiting")); return(argvlen); } /* * this function is used to protect the modules from accidental or - * semi-mallicious harm that an application may do to confuse the API. + * semi-malicious harm that an application may do to confuse the API. */ void _pam_sanitize(pam_handle_t *pamh) @@ -270,10 +253,11 @@ void _pam_parse_control(int *control_array, char *tok) int ret; while (*tok) { - int act, len; + size_t len; + int act; /* skip leading space */ - while (isspace((int)*tok) && *++tok); + while (isspace((unsigned char)*tok) && *++tok); if (!*tok) break; @@ -290,14 +274,14 @@ void _pam_parse_control(int *control_array, char *tok) } /* observe '=' */ - while (isspace((int)*tok) && *++tok); + while (isspace((unsigned char)*tok) && *++tok); if (!*tok || *tok++ != '=') { error = "expecting '='"; goto parse_error; } /* skip leading space */ - while (isspace((int)*tok) && *++tok); + while (isspace((unsigned char)*tok) && *++tok); if (!*tok) { error = "expecting action"; goto parse_error; @@ -322,16 +306,25 @@ void _pam_parse_control(int *control_array, char *tok) * cause looping problems. So, for now, we will just * allow forward jumps. (AGM 1998/1/7) */ - if (!isdigit((int)*tok)) { + if (!isdigit((unsigned char)*tok)) { error = "expecting jump number"; goto parse_error; } /* parse a number */ act = 0; do { + int digit = *tok - '0'; + if (act > INT_MAX / 10) { + error = "expecting smaller jump number"; + goto parse_error; + } act *= 10; - act += *tok - '0'; /* XXX - this assumes ascii behavior */ - } while (*++tok && isdigit((int)*tok)); + if (act > INT_MAX - digit) { + error = "expecting smaller jump number"; + goto parse_error; + } + act += digit; /* XXX - this assumes ascii behavior */ + } while (*++tok && isdigit((unsigned char)*tok)); if (! act) { /* we do not allow 0 jumps. There is a token ('ignore') for that */ diff --git a/libpam/pam_modutil_check_user.c b/libpam/pam_modutil_check_user.c index cf1bd1b5..4034e59d 100644 --- a/libpam/pam_modutil_check_user.c +++ b/libpam/pam_modutil_check_user.c @@ -10,22 +10,15 @@ pam_modutil_check_user_in_passwd(pam_handle_t *pamh, const char *user_name, const char *file_name) { - int rc; - size_t user_len; + int rc, c = EOF; FILE *fp; - char line[BUFSIZ]; /* Validate the user name. */ - if ((user_len = strlen(user_name)) == 0) { + if (user_name[0] == '\0') { pam_syslog(pamh, LOG_NOTICE, "user name is not valid"); return PAM_SERVICE_ERR; } - if (user_len > sizeof(line) - sizeof(":")) { - pam_syslog(pamh, LOG_NOTICE, "user name is too long"); - return PAM_SERVICE_ERR; - } - if (strchr(user_name, ':') != NULL) { /* * "root:x" is not a local user name even if the passwd file @@ -44,48 +37,40 @@ pam_modutil_check_user_in_passwd(pam_handle_t *pamh, } /* - * Scan the file using fgets() instead of fgetpwent_r() because + * Scan the file using fgetc() instead of fgetpwent_r() because * the latter is not flexible enough in handling long lines * in passwd files. */ rc = PAM_PERM_DENIED; - while (fgets(line, sizeof(line), fp) != NULL) { - size_t line_len; - const char *str; + do { + const char *p; /* * Does this line start with the user name * followed by a colon? */ - if (strncmp(user_name, line, user_len) == 0 && - line[user_len] == ':') { + for (p = user_name; *p != '\0'; p++) { + c = fgetc(fp); + if (c == EOF || c == '\n' || (char)c != *p) + break; + } + + if (c != EOF && c != '\n') + c = fgetc(fp); + + if (*p == '\0' && c == ':') { rc = PAM_SUCCESS; /* * Continue reading the file to avoid timing attacks. */ } - /* Has a newline been read? */ - line_len = strlen(line); - if (line_len < sizeof(line) - 1 || - line[line_len - 1] == '\n') { - /* Yes, continue with the next line. */ - continue; - } - /* No, read till the end of this line first. */ - while ((str = fgets(line, sizeof(line), fp)) != NULL) { - line_len = strlen(line); - if (line_len == 0 || - line[line_len - 1] == '\n') { - break; - } - } - if (str == NULL) { - /* fgets returned NULL, we are done. */ - break; - } + /* Read till the end of this line. */ + while (c != EOF && c != '\n') + c = fgetc(fp); + /* Continue with the next line. */ - } + } while (c != EOF); fclose(fp); return rc; diff --git a/libpam/pam_modutil_cleanup.c b/libpam/pam_modutil_cleanup.c index 8224ce67..2077cbd7 100644 --- a/libpam/pam_modutil_cleanup.c +++ b/libpam/pam_modutil_cleanup.c @@ -12,8 +12,6 @@ void pam_modutil_cleanup (pam_handle_t *pamh UNUSED, void *data, int error_status UNUSED) { - if (data) { /* junk it */ - (void) free(data); - } + free(data); } diff --git a/libpam/pam_modutil_getgrgid.c b/libpam/pam_modutil_getgrgid.c index 386d6f4b..fd495105 100644 --- a/libpam/pam_modutil_getgrgid.c +++ b/libpam/pam_modutil_getgrgid.c @@ -54,9 +54,7 @@ pam_modutil_getgrgid(pam_handle_t *pamh, gid_t gid) D(("out of memory")); /* no memory for the user - so delete the memory */ - if (buffer) { - free(buffer); - } + free(buffer); return NULL; } buffer = new_buffer; @@ -119,7 +117,7 @@ pam_modutil_getgrgid(pam_handle_t *pamh, gid_t gid) } while (length < PWD_ABSURD_PWD_LENGTH); - D(("grp structure took %u bytes or so of memory", + D(("grp structure took %zu bytes or so of memory", length+sizeof(struct group))); free(buffer); diff --git a/libpam/pam_modutil_getgrnam.c b/libpam/pam_modutil_getgrnam.c index cbb1551d..c7dd175c 100644 --- a/libpam/pam_modutil_getgrnam.c +++ b/libpam/pam_modutil_getgrnam.c @@ -44,9 +44,7 @@ pam_modutil_getgrnam(pam_handle_t *pamh, const char *group) D(("out of memory")); /* no memory for the group - so delete the memory */ - if (buffer) { - free(buffer); - } + free(buffer); return NULL; } buffer = new_buffer; @@ -108,7 +106,7 @@ pam_modutil_getgrnam(pam_handle_t *pamh, const char *group) } while (length < PWD_ABSURD_PWD_LENGTH); - D(("grp structure took %u bytes or so of memory", + D(("grp structure took %zu bytes or so of memory", length+sizeof(struct group))); free(buffer); diff --git a/libpam/pam_modutil_getpwnam.c b/libpam/pam_modutil_getpwnam.c index 8132c769..9c96150b 100644 --- a/libpam/pam_modutil_getpwnam.c +++ b/libpam/pam_modutil_getpwnam.c @@ -44,9 +44,7 @@ pam_modutil_getpwnam(pam_handle_t *pamh, const char *user) D(("out of memory")); /* no memory for the user - so delete the memory */ - if (buffer) { - free(buffer); - } + free(buffer); return NULL; } buffer = new_buffer; @@ -108,7 +106,7 @@ pam_modutil_getpwnam(pam_handle_t *pamh, const char *user) } while (length < PWD_ABSURD_PWD_LENGTH); - D(("pwd structure took %u bytes or so of memory", + D(("pwd structure took %zu bytes or so of memory", length+sizeof(struct passwd))); free(buffer); diff --git a/libpam/pam_modutil_getpwuid.c b/libpam/pam_modutil_getpwuid.c index 3a435937..671fdf23 100644 --- a/libpam/pam_modutil_getpwuid.c +++ b/libpam/pam_modutil_getpwuid.c @@ -54,9 +54,7 @@ pam_modutil_getpwuid(pam_handle_t *pamh, uid_t uid) D(("out of memory")); /* no memory for the user - so delete the memory */ - if (buffer) { - free(buffer); - } + free(buffer); return NULL; } buffer = new_buffer; @@ -119,7 +117,7 @@ pam_modutil_getpwuid(pam_handle_t *pamh, uid_t uid) } while (length < PWD_ABSURD_PWD_LENGTH); - D(("pwd structure took %u bytes or so of memory", + D(("pwd structure took %zu bytes or so of memory", length+sizeof(struct passwd))); free(buffer); diff --git a/libpam/pam_modutil_getspnam.c b/libpam/pam_modutil_getspnam.c index 032709ed..8b48db90 100644 --- a/libpam/pam_modutil_getspnam.c +++ b/libpam/pam_modutil_getspnam.c @@ -44,9 +44,7 @@ pam_modutil_getspnam(pam_handle_t *pamh, const char *user) D(("out of memory")); /* no memory for the user - so delete the memory */ - if (buffer) { - free(buffer); - } + free(buffer); return NULL; } buffer = new_buffer; @@ -108,7 +106,7 @@ pam_modutil_getspnam(pam_handle_t *pamh, const char *user) } while (length < PWD_ABSURD_PWD_LENGTH); - D(("spwd structure took %u bytes or so of memory", + D(("spwd structure took %zu bytes or so of memory", length+sizeof(struct spwd))); free(buffer); diff --git a/libpam/pam_modutil_ioloop.c b/libpam/pam_modutil_ioloop.c index 54ab0e55..72b58455 100644 --- a/libpam/pam_modutil_ioloop.c +++ b/libpam/pam_modutil_ioloop.c @@ -1,8 +1,8 @@ /* * $Id$ * - * These functions provides common methods for ensure a complete read or - * write occurs. It handles EINTR and partial read/write returns. + * These functions provide common methods to ensure a complete read or + * write occurs. They handle EINTR and partial read/write returns. */ #include "pam_modutil_private.h" @@ -15,6 +15,11 @@ pam_modutil_read(int fd, char *buffer, int count) { int block, offset = 0; + if (count < 0) { + errno = EINVAL; + return -1; + } + while (count > 0) { block = read(fd, &buffer[offset], count); @@ -36,6 +41,11 @@ pam_modutil_write(int fd, const char *buffer, int count) { int block, offset = 0; + if (count < 0) { + errno = EINVAL; + return -1; + } + while (count > 0) { block = write(fd, &buffer[offset], count); diff --git a/libpam/pam_modutil_sanitize.c b/libpam/pam_modutil_sanitize.c index f26e8ec0..1b8af743 100644 --- a/libpam/pam_modutil_sanitize.c +++ b/libpam/pam_modutil_sanitize.c @@ -11,6 +11,10 @@ #include <syslog.h> #include <sys/resource.h> +#ifndef CLOSE_RANGE_UNSHARE +#define CLOSE_RANGE_UNSHARE (1U << 1) +#endif /* CLOSE_RANGE_UNSHARE */ + /* * Creates a pipe, closes its write end, redirects fd to its read end. * Returns fd on success, -1 otherwise. @@ -84,9 +88,8 @@ redirect_out(pam_handle_t *pamh, enum pam_modutil_redirect_fd mode, return fd; } -/* Closes all descriptors after stderr. */ static void -close_fds(void) +close_fds_iteratively(void) { /* * An arbitrary upper limit for the maximum file descriptor number @@ -111,6 +114,18 @@ close_fds(void) close(fd); } +/* Closes all descriptors after stderr. */ +static void +close_fds(void) +{ +#ifdef HAVE_CLOSE_RANGE + if (close_range(STDERR_FILENO+1, -1U, CLOSE_RANGE_UNSHARE) == 0) + return; +#endif /* HAVE_CLOSE_RANGE */ + + close_fds_iteratively(); +} + int pam_modutil_sanitize_helper_fds(pam_handle_t *pamh, enum pam_modutil_redirect_fd stdin_mode, diff --git a/libpam/pam_modutil_searchkey.c b/libpam/pam_modutil_searchkey.c index ba023e52..1a497f8f 100644 --- a/libpam/pam_modutil_searchkey.c +++ b/libpam/pam_modutil_searchkey.c @@ -4,8 +4,6 @@ * lookup a value for key in login.defs file or similar key value format */ -#include "config.h" - #include "pam_private.h" #include "pam_modutil_private.h" #include <security/pam_ext.h> @@ -14,11 +12,9 @@ #include <stdlib.h> #include <ctype.h> #ifdef USE_ECONF -#include <libeconf.h> +#include "pam_econf.h" #endif -#define BUF_SIZE 8192 - #ifdef USE_ECONF #define LOGIN_DEFS "/etc/login.defs" @@ -31,10 +27,14 @@ econf_search_key (const char *name, const char *suffix, const char *key) { econf_file *key_file = NULL; char *val; + econf_err error; - if (econf_readDirs (&key_file, VENDORDIR, SYSCONFDIR, name, suffix, - " \t", "#")) - return NULL; + error = pam_econf_readconfig (&key_file, VENDORDIR, SYSCONFDIR, name, suffix, + " \t", "#", NULL, NULL); + if (error != ECONF_SUCCESS) { + econf_free (key_file); + return NULL; + } if (econf_getStringValue (key_file, NULL, key, &val)) { econf_free (key_file); @@ -70,29 +70,8 @@ pam_modutil_search_key(pam_handle_t *pamh UNUSED, while (!feof(fp)) { char *tmp, *cp; -#if defined(HAVE_GETLINE) ssize_t n = getline(&buf, &buflen, fp); -#elif defined (HAVE_GETDELIM) - ssize_t n = getdelim(&buf, &buflen, '\n', fp); -#else - ssize_t n; - - if (buf == NULL) { - buflen = BUF_SIZE; - buf = malloc(buflen); - if (buf == NULL) { - fclose(fp); - return NULL; - } - } - buf[0] = '\0'; - if (fgets(buf, buflen - 1, fp) == NULL) - break; - else if (buf != NULL) - n = strlen(buf); - else - n = 0; -#endif /* HAVE_GETLINE / HAVE_GETDELIM */ + cp = buf; if (n < 1) @@ -103,14 +82,14 @@ pam_modutil_search_key(pam_handle_t *pamh UNUSED, tmp = strchr(cp, '#'); /* remove comments */ if (tmp) *tmp = '\0'; - while (isspace((int)*cp)) /* remove spaces and tabs */ + while (isspace((unsigned char)*cp)) /* remove spaces and tabs */ ++cp; if (*cp == '\0') /* ignore empty lines */ continue; tmp = strsep (&cp, " \t="); if (cp != NULL) - while (isspace((int)*cp) || *cp == '=') + while (isspace((unsigned char)*cp) || *cp == '=') ++cp; else cp = buf + n; /* empty string */ diff --git a/libpam/pam_password.c b/libpam/pam_password.c index 592e01fb..9783dbe0 100644 --- a/libpam/pam_password.c +++ b/libpam/pam_password.c @@ -15,14 +15,14 @@ int pam_chauthtok(pam_handle_t *pamh, int flags) D(("called.")); - IF_NO_PAMH("pam_chauthtok", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_MODULE(pamh)) { D(("called from module!?")); return PAM_SYSTEM_ERR; } - /* applications are not allowed to set this flags */ + /* applications are not allowed to set these flags */ if (flags & (PAM_PRELIM_CHECK | PAM_UPDATE_AUTHTOK)) { pam_syslog (pamh, LOG_ERR, "PAM_PRELIM_CHECK or PAM_UPDATE_AUTHTOK set by application"); @@ -52,9 +52,9 @@ int pam_chauthtok(pam_handle_t *pamh, int flags) _pam_sanitize(pamh); pamh->former.update = PAM_FALSE; _pam_await_timer(pamh, retval); /* if unsuccessful then wait now */ - D(("pam_chauthtok exit %d - %d", retval, pamh->former.choice)); + D(("exiting %d - %d", retval, pamh->former.choice)); } else { - D(("will resume when ready", retval)); + D(("will resume when ready")); } return retval; diff --git a/libpam/pam_prelude.c b/libpam/pam_prelude.c index 6c73bf5d..c62e2f2c 100644 --- a/libpam/pam_prelude.c +++ b/libpam/pam_prelude.c @@ -5,17 +5,17 @@ * (C) Sebastien Tricaud 2005 <toady@gscore.org> */ -#include <stdio.h> -#include <syslog.h> - #ifdef PRELUDE +#include "pam_private.h" + +#include <stdio.h> +#include <syslog.h> #include <libprelude/prelude.h> #include <libprelude/prelude-log.h> #include <libprelude/idmef-message-print.h> #include "pam_prelude.h" -#include "pam_private.h" #define ANALYZER_CLASS "pam" diff --git a/libpam/pam_private.h b/libpam/pam_private.h index 508527cf..77dc5a69 100644 --- a/libpam/pam_private.h +++ b/libpam/pam_private.h @@ -16,6 +16,7 @@ #include "config.h" +#include <stddef.h> #include <syslog.h> #include <security/pam_appl.h> @@ -47,7 +48,7 @@ /* components of the pam_handle structure */ -#define _PAM_INVALID_RETVAL -1 /* default value for cached_retval */ +#define _PAM_INVALID_RETVAL (-1) /* default value for cached_retval */ struct handler { int handler_type; @@ -192,14 +193,14 @@ struct pam_handle { #define _PAM_ACTION_IS_JUMP(x) ((x) > 0) #define _PAM_ACTION_IGNORE 0 -#define _PAM_ACTION_OK -1 -#define _PAM_ACTION_DONE -2 -#define _PAM_ACTION_BAD -3 -#define _PAM_ACTION_DIE -4 -#define _PAM_ACTION_RESET -5 +#define _PAM_ACTION_OK (-1) +#define _PAM_ACTION_DONE (-2) +#define _PAM_ACTION_BAD (-3) +#define _PAM_ACTION_DIE (-4) +#define _PAM_ACTION_RESET (-5) /* Add any new entries here. Will need to change ..._UNDEF and then * need to change pam_tokens.h */ -#define _PAM_ACTION_UNDEF -6 /* this is treated as an error +#define _PAM_ACTION_UNDEF (-6) /* this is treated as an error ( = _PAM_ACTION_BAD) */ #define PAM_SUBSTACK_MAX_LEVEL 16 /* maximum level of substacks */ @@ -255,7 +256,7 @@ const char *_pam_dlerror (void); /* For now we just use a stack and linear search for module data. */ /* If it becomes apparent that there is a lot of data, it should */ -/* changed to either a sorted list or a hash table. */ +/* be changed to either a sorted list or a hash table. */ struct pam_data { char *name; @@ -266,13 +267,13 @@ struct pam_data { void _pam_free_data(pam_handle_t *pamh, int status); -char *_pam_StrTok(char *from, const char *format, char **next); +char *_pam_tokenize(char *from, char **next); char *_pam_strdup(const char *s); char *_pam_memdup(const char *s, int len); -int _pam_mkargv(const char *s, char ***argv, int *argc); +size_t _pam_mkargv(const char *s, char ***argv, int *argc); void _pam_sanitize(pam_handle_t *pamh); @@ -287,11 +288,13 @@ void _pam_parse_control(int *control_array, char *tok); * else */ -#define IF_NO_PAMH(X,pamh,ERR) \ -if ((pamh) == NULL) { \ - syslog(LOG_ERR, _PAM_SYSTEM_LOG_PREFIX " " X ": NULL pam handle passed"); \ - return ERR; \ -} +#define IF_NO_PAMH(pamh,ERR) \ +do { \ + if ((pamh) == NULL) { \ + syslog(LOG_ERR, _PAM_SYSTEM_LOG_PREFIX " %s: NULL pam handle passed", __FUNCTION__); \ + return ERR; \ + } \ +} while(0) /* * include some helpful macros diff --git a/libpam/pam_session.c b/libpam/pam_session.c index cb393c1a..a6c54f56 100644 --- a/libpam/pam_session.c +++ b/libpam/pam_session.c @@ -14,7 +14,7 @@ int pam_open_session(pam_handle_t *pamh, int flags) D(("called")); - IF_NO_PAMH("pam_open_session", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_MODULE(pamh)) { D(("called from module!?")); @@ -31,7 +31,7 @@ int pam_close_session(pam_handle_t *pamh, int flags) D(("called")); - IF_NO_PAMH("pam_close_session", pamh, PAM_SYSTEM_ERR); + IF_NO_PAMH(pamh, PAM_SYSTEM_ERR); if (__PAM_FROM_MODULE(pamh)) { D(("called from module!?")); diff --git a/libpam/pam_start.c b/libpam/pam_start.c index 99dd0389..97bc35b1 100644 --- a/libpam/pam_start.c +++ b/libpam/pam_start.c @@ -8,6 +8,7 @@ */ #include "pam_private.h" +#include "pam_i18n.h" #include <ctype.h> #include <stdlib.h> @@ -25,6 +26,21 @@ static int _pam_start_internal ( D(("called pam_start: [%s] [%s] [%p] [%p]" ,service_name, user, pam_conversation, pamh)); +#if defined HAVE_BINDTEXTDOMAIN && defined ENABLE_NLS + /* Bind text domain to pull in PAM translations for a case where + linux-pam is installed to non-default prefix. + + It is safe to call bindtextdomain() from multiple threads, but it + has a chance to have some overhead. Let's try to do it once (or a + small number of times as `bound_text_domain` is not protected by + a lock. */ + static int bound_text_domain = 0; + if (!bound_text_domain) { + bound_text_domain = 1; + bindtextdomain(PACKAGE, LOCALEDIR); + } +#endif + if (pamh == NULL) { pam_syslog(NULL, LOG_CRIT, "pam_start: invalid argument: pamh == NULL"); @@ -67,7 +83,7 @@ static int _pam_start_internal ( char *tmp; for (tmp=(*pamh)->service_name; *tmp; ++tmp) - *tmp = tolower(*tmp); /* require lower case */ + *tmp = tolower((unsigned char)*tmp); /* require lower case */ } if (user) { @@ -143,6 +159,7 @@ static int _pam_start_internal ( if ( _pam_init_handlers(*pamh) != PAM_SUCCESS ) { pam_syslog(*pamh, LOG_ERR, "pam_start: failed to initialize handlers"); + _pam_free_handlers(*pamh); _pam_drop_env(*pamh); /* purge the environment */ _pam_drop((*pamh)->pam_conversation); _pam_drop((*pamh)->service_name); @@ -152,7 +169,7 @@ static int _pam_start_internal ( return PAM_ABORT; } - D(("exiting pam_start successfully")); + D(("exiting successfully")); return PAM_SUCCESS; } diff --git a/libpam/pam_strerror.c b/libpam/pam_strerror.c index 17c81945..37f1e3b2 100644 --- a/libpam/pam_strerror.c +++ b/libpam/pam_strerror.c @@ -32,6 +32,7 @@ */ #include "pam_private.h" +#include "pam_i18n.h" const char *pam_strerror(pam_handle_t *pamh UNUSED, int errnum) { diff --git a/libpam/pam_syslog.c b/libpam/pam_syslog.c index c5a6feca..e67f713f 100644 --- a/libpam/pam_syslog.c +++ b/libpam/pam_syslog.c @@ -31,7 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "config.h" +#include "pam_private.h" #include <stdio.h> #include <stdlib.h> @@ -43,8 +43,6 @@ #include <security/_pam_macros.h> #include <security/pam_ext.h> -#include "pam_private.h" - #ifndef LOG_AUTHPRIV #define LOG_AUTHPRIV LOG_AUTH #endif diff --git a/libpam/pam_vprompt.c b/libpam/pam_vprompt.c index 8c9d63d5..a16f6004 100644 --- a/libpam/pam_vprompt.c +++ b/libpam/pam_vprompt.c @@ -31,7 +31,8 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "config.h" +#include "pam_private.h" +#include "pam_inline.h" #include <stdio.h> #include <stdlib.h> @@ -42,9 +43,6 @@ #include <security/pam_modules.h> #include <security/pam_ext.h> -#include "pam_private.h" -#include "pam_inline.h" - int pam_vprompt (pam_handle_t *pamh, int style, char **response, const char *fmt, va_list args) diff --git a/libpam_internal/include/pam_econf.h b/libpam_internal/include/pam_econf.h new file mode 100644 index 00000000..ebba659d --- /dev/null +++ b/libpam_internal/include/pam_econf.h @@ -0,0 +1,22 @@ +/* pam_econf.h -- routines to parse configuration files with libeconf */ + +#ifndef PAM_ECONF_H +#define PAM_ECONF_H + +#ifdef USE_ECONF + +#include <libeconf.h> + +econf_err pam_econf_readconfig(econf_file **key_file, + const char *usr_conf_dir, + const char *etc_conf_dir, + const char *config_name, + const char *config_suffix, + const char *delim, + const char *comment, + bool (*callback)(const char *filename, const void *data), + const void *callback_data); + +#endif /* USE_ECONF */ + +#endif /* PAM_ECONF_H */ diff --git a/libpam_internal/include/pam_line.h b/libpam_internal/include/pam_line.h new file mode 100644 index 00000000..70a5c483 --- /dev/null +++ b/libpam_internal/include/pam_line.h @@ -0,0 +1,26 @@ +/* pam_line.h -- routine to parse configuration lines */ + +#ifndef PAM_LINE_H +#define PAM_LINE_H + +#include "pam_inline.h" + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +struct pam_line_buffer { + char *assembled; + char *chunk; + size_t chunk_size; + size_t len; + size_t size; +}; + +void _pam_line_buffer_clear(struct pam_line_buffer *buffer); + +void _pam_line_buffer_init(struct pam_line_buffer *buffer); + +int _pam_line_assemble(FILE *f, struct pam_line_buffer *buffer, char repl); + +#endif /* PAM_LINE_H */ diff --git a/libpam_internal/meson.build b/libpam_internal/meson.build new file mode 100644 index 00000000..5d03877a --- /dev/null +++ b/libpam_internal/meson.build @@ -0,0 +1,19 @@ +libpam_internal_src = [ + 'pam_debug.c', + 'pam_econf.c', + 'pam_line.c', +] + +libpam_internal_inc = include_directories('include') + +libpam_internal = static_library( + 'pam_internal', + sources: libpam_internal_src, + include_directories: [libpam_internal_inc, libpam_inc], + dependencies: libeconf, +) + +libpam_internal_dep = declare_dependency( + include_directories: [libpam_internal_inc], + link_with: [libpam_internal], +) diff --git a/libpam_internal/pam_debug.c b/libpam_internal/pam_debug.c new file mode 100644 index 00000000..e4608f4d --- /dev/null +++ b/libpam_internal/pam_debug.c @@ -0,0 +1,21 @@ +/* + * This provides the necessary functions to do debugging in PAM. + * Cristian Gafton <gafton@redhat.com> + */ + +#include "config.h" + +#ifdef PAM_DEBUG + +#include "security/_pam_macros.h" + +#undef PAM_MACROS_H +#undef PAM_NO_HEADER_FUNCTIONS +#define PAM_DEBUG_C 1 +#include "security/_pam_macros.h" + +#else + +extern int ISO_C_forbids_an_empty_translation_unit; + +#endif /* PAM_DEBUG */ diff --git a/libpam_internal/pam_econf.c b/libpam_internal/pam_econf.c new file mode 100644 index 00000000..b3b9874d --- /dev/null +++ b/libpam_internal/pam_econf.c @@ -0,0 +1,60 @@ +/* pam_econf.c -- routines to parse configuration files with libeconf */ + +#include "config.h" + +#ifdef USE_ECONF + +#include <stdio.h> +#include <security/_pam_macros.h> +#include "pam_econf.h" + +econf_err pam_econf_readconfig(econf_file **key_file, + const char *usr_conf_dir, + const char *etc_conf_dir, + const char *config_name, + const char *config_suffix, + const char *delim, + const char *comment, + bool (*callback)(const char *filename, const void *data), + const void *callback_data) +{ + econf_err ret = ECONF_SUCCESS; + D(("Read configuration from directory %s and %s", etc_conf_dir, usr_conf_dir)); + +#ifdef HAVE_ECONF_READCONFIG + + char *parsing_dirs = NULL; + if (asprintf(&parsing_dirs, "PARSING_DIRS=%s:%s", usr_conf_dir, etc_conf_dir) < 0) { + ret = ECONF_NOMEM; + parsing_dirs = NULL; + } + if (ret == ECONF_SUCCESS) + ret = econf_newKeyFile_with_options(key_file, parsing_dirs); + if (ret == ECONF_SUCCESS) + ret = econf_readConfigWithCallback(key_file, + NULL, + usr_conf_dir, + config_name, + config_suffix, + delim, + comment, + callback, callback_data); + free(parsing_dirs); + +#else + + ret = econf_readDirsWithCallback(key_file, + usr_conf_dir, + etc_conf_dir, + config_name, + config_suffix, + delim, + comment, + callback, callback_data); + +#endif + + return ret; +} + +#endif /* USE_ECONF */ diff --git a/libpam_internal/pam_line.c b/libpam_internal/pam_line.c new file mode 100644 index 00000000..044b4d73 --- /dev/null +++ b/libpam_internal/pam_line.c @@ -0,0 +1,253 @@ +/* pam_line.c -- routine to parse configuration lines */ + +#include "config.h" + +#include "security/_pam_macros.h" +#include "pam_line.h" + +static int _pam_line_buffer_add(struct pam_line_buffer *buffer, char *start, + char *end) +{ + size_t len = end - start; + + D(("assembled: [%zu/%zu] '%s', adding [%zu] '%s'", + buffer->len, buffer->size, + buffer->assembled == NULL ? "" : buffer->assembled, len, start)); + + if (start == end) + return 0; + + if (buffer->assembled == NULL && buffer->chunk == start) { + /* no extra allocation needed, just move chunk to assembled */ + buffer->assembled = buffer->chunk; + buffer->len = len; + buffer->size = buffer->chunk_size; + + buffer->chunk = NULL; + buffer->chunk_size = 0; + + D(("exiting with quick exchange")); + return 0; + } + + if (buffer->len + len + 1 > buffer->size) { + size_t size; + char *p; + + size = buffer->len + len + 1; + if ((p = realloc(buffer->assembled, size)) == NULL) + return -1; + + buffer->assembled = p; + buffer->size = size; + } + + memcpy(buffer->assembled + buffer->len, start, len); + buffer->len += len; + buffer->assembled[buffer->len] = '\0'; + + D(("exiting")); + return 0; +} + +static inline int _pam_line_buffer_add_eol(struct pam_line_buffer *buffer, + char *start, char *end) +{ + if (buffer->assembled != NULL || (*start != '\0' && *start != '\n')) + return _pam_line_buffer_add(buffer, start, end); + return 0; +} + +void _pam_line_buffer_clear(struct pam_line_buffer *buffer) +{ + pam_overwrite_n(buffer->assembled, buffer->size); + _pam_drop(buffer->assembled); + pam_overwrite_n(buffer->chunk, buffer->chunk_size); + _pam_drop(buffer->chunk); + buffer->chunk_size = 0; + buffer->len = 0; + buffer->size = 0; +} + +void _pam_line_buffer_init(struct pam_line_buffer *buffer) +{ + buffer->assembled = NULL; + buffer->chunk = NULL; + _pam_line_buffer_clear(buffer); +} + +static void _pam_line_buffer_purge(struct pam_line_buffer *buffer) +{ + pam_overwrite_n(buffer->chunk, buffer->chunk_size); + _pam_drop(buffer->chunk); + buffer->chunk_size = 0; +} + +static void _pam_line_buffer_shift(struct pam_line_buffer *buffer) +{ + if (buffer->assembled == NULL) + return; + + _pam_line_buffer_purge(buffer); + buffer->chunk = buffer->assembled; + buffer->chunk_size = buffer->size; + + buffer->assembled = NULL; + buffer->size = 0; + buffer->len = 0; +} + +static inline int _pam_line_buffer_valid(struct pam_line_buffer *buffer) +{ + return buffer->assembled != NULL && *buffer->assembled != '\0'; +} + +/* + * Trim string to relevant parts of a configuration line. + * + * Preceding whitespaces are skipped and comment (#) marks the end of + * configuration line. + * + * Returns start of configuration line. + */ +static inline char *_pam_str_trim(char *str) +{ + /* skip leading spaces */ + str += strspn(str, " \t"); + /* + * we are only interested in characters before the first '#' + * character + */ + str[strcspn(str, "#")] = '\0'; + + return str; +} + +/* + * Remove escaped newline from end of string. + * + * Configuration lines may span across multiple lines in a file + * by ending a line with a backslash (\). + * + * If an escaped newline is encountered, the backslash will be + * replaced with "repl" and the newline itself removed. + * Then the variable "end" will point to the new end of line. + * + * Returns 0 if escaped newline was found and replaced, 1 otherwise. + */ +static inline int _pam_str_unescnl(char *start, char **end, char repl) +{ + int ret = 1; + char *p = *end; + + /* + * Check for backslash by scanning back from the end of + * the entered line, the '\n' should be included since + * normally a line is terminated with this character. + */ + while (p > start && ((*--p == ' ') || (*p == '\t') || (*p == '\n'))) + ; + if (*p == '\\') { + *p = repl; /* replace backslash with replacement char */ + if (repl != '\0') { + *++p = '\0'; /* truncate the line here if repl is not NUL */ + } + *end = p; + ret = 0; + } + + return ret; +} + +/* + * Prepare line from file for configuration line parsing. + * + * A configuration line may span across multiple lines in a file. + * Remove comments and skip preceding whitespaces. + * + * Returns 0 if line spans across multiple lines, 1 if + * end of line is encountered. + */ +static inline int _pam_str_prepare(char *line, ssize_t len, + char **start, char **end, char repl) +{ + int ret; + + *start = line; + *end = line + len; + + ret = _pam_str_unescnl(*start, end, repl) || strchr(*start, '#') != NULL; + + *start = _pam_str_trim(*start); + + return ret; +} + +/* + * This is where we read a line of the PAM config file. The line may be + * preceded by lines of comments and also extended with "\\\n" + * + * The "repl" argument is used as replacement char for the backslash used + * in newline escaping, i.e. in "\\\n". + * + * Returns 0 on EOF, 1 on successful line parsing, or -1 on error. + */ +int _pam_line_assemble(FILE *f, struct pam_line_buffer *buffer, char repl) +{ + int ret = 0; + + /* loop broken with a 'break' when a non-'\\n' ended line is read */ + + D(("called.")); + + _pam_line_buffer_shift(buffer); + + for (;;) { + char *start, *end; + ssize_t n; + int eol; + + if ((n = getline(&buffer->chunk, &buffer->chunk_size, f)) == -1) { + if (ret) { + /* Incomplete read */ + ret = -1; + } else { + /* EOF */ + ret = 0; + } + break; + } + + eol = _pam_str_prepare(buffer->chunk, n, &start, &end, repl); + + if (eol) { + if (_pam_line_buffer_add_eol(buffer, start, end)) { + ret = -1; + break; + } + if (_pam_line_buffer_valid(buffer)) { + /* Successfully parsed a line */ + ret = 1; + break; + } + /* Start parsing next line */ + _pam_line_buffer_shift(buffer); + ret = 0; + } else { + /* Configuration line spans across multiple lines in file */ + if (_pam_line_buffer_add(buffer, start, end)) { + ret = -1; + break; + } + /* Keep parsing line */ + ret = 1; + } + } + + if (ret == 1) + _pam_line_buffer_purge(buffer); + else + _pam_line_buffer_clear(buffer); + + return ret; +} diff --git a/libpam_misc/Makefile.am b/libpam_misc/Makefile.am deleted file mode 100644 index 4f01d322..00000000 --- a/libpam_misc/Makefile.am +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ - -EXTRA_DIST = libpam_misc.map - -include_HEADERS = include/security/pam_misc.h - -AM_CFLAGS = -I$(top_srcdir)/libpam/include \ - -I$(top_srcdir)/libpamc/include -I$(srcdir)/include $(WARN_CFLAGS) - -libpam_misc_la_LDFLAGS = -no-undefined -version-info 82:1:82 -if HAVE_VERSIONING - libpam_misc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libpam_misc.map -endif -libpam_misc_la_LIBADD = $(top_builddir)/libpam/libpam.la - -lib_LTLIBRARIES = libpam_misc.la - -libpam_misc_la_SOURCES = help_env.c misc_conv.c - -# Pkg-config script. -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = pam_misc.pc diff --git a/libpam_misc/Makefile.in b/libpam_misc/Makefile.in deleted file mode 100644 index 1629e493..00000000 --- a/libpam_misc/Makefile.in +++ /dev/null @@ -1,816 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/libpam_misc.map -subdir = libpam_misc -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = pam_misc.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -libpam_misc_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -am_libpam_misc_la_OBJECTS = help_env.lo misc_conv.lo -libpam_misc_la_OBJECTS = $(am_libpam_misc_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libpam_misc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(libpam_misc_la_LDFLAGS) $(LDFLAGS) -o \ - $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/help_env.Plo \ - ./$(DEPDIR)/misc_conv.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libpam_misc_la_SOURCES) -DIST_SOURCES = $(libpam_misc_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(include_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/pam_misc.pc.in \ - $(top_srcdir)/build-aux/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -EXTRA_DIST = libpam_misc.map -include_HEADERS = include/security/pam_misc.h -AM_CFLAGS = -I$(top_srcdir)/libpam/include \ - -I$(top_srcdir)/libpamc/include -I$(srcdir)/include $(WARN_CFLAGS) - -libpam_misc_la_LDFLAGS = -no-undefined -version-info 82:1:82 \ - $(am__append_1) -libpam_misc_la_LIBADD = $(top_builddir)/libpam/libpam.la -lib_LTLIBRARIES = libpam_misc.la -libpam_misc_la_SOURCES = help_env.c misc_conv.c - -# Pkg-config script. -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = pam_misc.pc -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libpam_misc/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu libpam_misc/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -pam_misc.pc: $(top_builddir)/config.status $(srcdir)/pam_misc.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libpam_misc.la: $(libpam_misc_la_OBJECTS) $(libpam_misc_la_DEPENDENCIES) $(EXTRA_libpam_misc_la_DEPENDENCIES) - $(AM_V_CCLD)$(libpam_misc_la_LINK) -rpath $(libdir) $(libpam_misc_la_OBJECTS) $(libpam_misc_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help_env.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc_conv.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/help_env.Plo - -rm -f ./$(DEPDIR)/misc_conv.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-includeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-libLTLIBRARIES - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/help_env.Plo - -rm -f ./$(DEPDIR)/misc_conv.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ - uninstall-pkgconfigDATA - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am \ - install-includeHEADERS install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-pkgconfigDATA install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am uninstall-includeHEADERS \ - uninstall-libLTLIBRARIES uninstall-pkgconfigDATA - -.PRECIOUS: Makefile - - -# 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: diff --git a/libpam_misc/help_env.c b/libpam_misc/help_env.c index b01c9f71..ad7d5190 100644 --- a/libpam_misc/help_env.c +++ b/libpam_misc/help_env.c @@ -22,10 +22,10 @@ char **pam_misc_drop_env(char **dump) { - int i; + size_t i; for (i=0; dump[i] != NULL; ++i) { - D(("dump[%d]=`%s'", i, dump[i])); + D(("dump[%zu]=`%s'", i, dump[i])); pam_overwrite_string(dump[i]); _pam_drop(dump[i]); } diff --git a/libpam_misc/include/security/meson.build b/libpam_misc/include/security/meson.build new file mode 100644 index 00000000..4330915e --- /dev/null +++ b/libpam_misc/include/security/meson.build @@ -0,0 +1 @@ +install_headers('pam_misc.h', install_dir: includedir) diff --git a/libpam_misc/meson.build b/libpam_misc/meson.build new file mode 100644 index 00000000..e0bb30f5 --- /dev/null +++ b/libpam_misc/meson.build @@ -0,0 +1,40 @@ +subdir('include/security') + +libpam_misc_src = [ + 'help_env.c', + 'misc_conv.c', +] + +libpam_misc_inc = include_directories('include') + +libpam_misc_version = '0.82.1' +libpam_misc_map = 'libpam_misc.map' +libpam_misc_map_path = meson.current_source_dir() / libpam_misc_map + +libpam_misc_link_deps = [libpam_misc_map] +libpam_misc_link_args = ['-Wl,--version-script=' + libpam_misc_map_path] + +libpam_misc = shared_library( + 'pam_misc', + sources: libpam_misc_src, + include_directories: [libpam_misc_inc, libpamc_inc], + dependencies: [libpam_internal_dep, libpam_dep], + link_depends: libpam_misc_link_deps, + link_args: libpam_misc_link_args, + version: libpam_misc_version, + install: true, +) + +libpam_misc_dep = declare_dependency( + include_directories: [libpam_misc_inc], + link_with: [libpam_misc], +) + +pkgconfig.generate( + libpam_misc, + description: 'Miscellaneous functions that make the job of writing PAM-aware applications easier.', + name: 'pam_misc', + filebase: 'pam_misc', + version: meson.project_version(), + url: 'http://www.linux-pam.org/' +) diff --git a/libpam_misc/misc_conv.c b/libpam_misc/misc_conv.c index dbcd6aec..fa3848e3 100644 --- a/libpam_misc/misc_conv.c +++ b/libpam_misc/misc_conv.c @@ -17,7 +17,9 @@ #include <security/pam_appl.h> #include <security/pam_misc.h> + #include "pam_inline.h" +#include "pam_i18n.h" #define INPUTSIZE PAM_MISC_CONV_BUFSIZE /* maximum length of input+1 */ #define CONV_ECHO_ON 1 /* types of echo state */ @@ -56,7 +58,7 @@ void (*pam_binary_handler_free)(void *appdata, pamc_bp_t *prompt_p) /* the following code is used to get text input */ -static volatile int expired=0; +static volatile sig_atomic_t expired=0; /* return to the previous signal handling */ static void reset_alarm(struct sigaction *o_ptr) @@ -97,7 +99,7 @@ static int get_delay(void) expired = 0; /* reset flag */ (void) time(&now); - /* has the quit time past? */ + /* has the quit time passed? */ if (pam_misc_conv_die_time && now >= pam_misc_conv_die_time) { fprintf(stderr,"%s",pam_misc_conv_die_line); @@ -105,7 +107,7 @@ static int get_delay(void) return -1; /* time is up */ } - /* has the warning time past? */ + /* has the warning time passed? */ if (pam_misc_conv_warn_time && now >= pam_misc_conv_warn_time) { fprintf(stderr, "%s", pam_misc_conv_warn_line); pam_misc_conv_warn_time = 0; /* reset warn_time */ @@ -145,9 +147,10 @@ static int read_string(int echo, const char *prompt, char **retstr) return -1; } memcpy(&term_tmp, &term_before, sizeof(term_tmp)); - if (!echo) { + if (echo) + term_tmp.c_lflag |= ICANON | ECHOCTL; + else term_tmp.c_lflag &= ~(ECHO); - } have_term = 1; /* @@ -285,8 +288,7 @@ int misc_conv(int num_msg, const struct pam_message **msgm, D(("allocating empty response structure array.")); - reply = (struct pam_response *) calloc(num_msg, - sizeof(struct pam_response)); + reply = calloc(num_msg, sizeof(struct pam_response)); if (reply == NULL) { D(("no memory for responses")); return PAM_CONV_ERR; diff --git a/libpam_misc/pam_misc.pc.in b/libpam_misc/pam_misc.pc.in index c3e03c4f..c1e69d21 100644 --- a/libpam_misc/pam_misc.pc.in +++ b/libpam_misc/pam_misc.pc.in @@ -1,7 +1,7 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ -includedir=@includedir@ +includedir=@pkgconfig_includedir@ Name: pam_misc Description: Miscellaneous functions that make the job of writing PAM-aware applications easier. diff --git a/libpamc/Makefile.am b/libpamc/Makefile.am deleted file mode 100644 index 2ebeadca..00000000 --- a/libpamc/Makefile.am +++ /dev/null @@ -1,28 +0,0 @@ -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -SUBDIRS = test - -CLEANFILES = *~ - -EXTRA_DIST = License libpamc.map - -include_HEADERS = include/security/pam_client.h - -noinst_HEADERS = libpamc.h - -AM_CFLAGS=-I$(top_srcdir)/libpam/include -I$(srcdir)/include $(WARN_CFLAGS) - -libpamc_la_LDFLAGS = -no-undefined -version-info 82:1:82 -if HAVE_VERSIONING - libpamc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libpamc.map -endif - -lib_LTLIBRARIES = libpamc.la - -libpamc_la_SOURCES = pamc_client.c pamc_converse.c pamc_load.c - -# Pkg-config script. -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = pamc.pc diff --git a/libpamc/Makefile.in b/libpamc/Makefile.in deleted file mode 100644 index c99f86cd..00000000 --- a/libpamc/Makefile.in +++ /dev/null @@ -1,934 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/libpamc.map -subdir = libpamc -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ - $(noinst_HEADERS) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = pamc.pc -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -libpamc_la_LIBADD = -am_libpamc_la_OBJECTS = pamc_client.lo pamc_converse.lo pamc_load.lo -libpamc_la_OBJECTS = $(am_libpamc_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -libpamc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libpamc_la_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pamc_client.Plo \ - ./$(DEPDIR)/pamc_converse.Plo ./$(DEPDIR)/pamc_load.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libpamc_la_SOURCES) -DIST_SOURCES = $(libpamc_la_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -DATA = $(pkgconfig_DATA) -HEADERS = $(include_HEADERS) $(noinst_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir distdir-am -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/pamc.pc.in \ - $(top_srcdir)/build-aux/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = test -CLEANFILES = *~ -EXTRA_DIST = License libpamc.map -include_HEADERS = include/security/pam_client.h -noinst_HEADERS = libpamc.h -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(srcdir)/include $(WARN_CFLAGS) -libpamc_la_LDFLAGS = -no-undefined -version-info 82:1:82 \ - $(am__append_1) -lib_LTLIBRARIES = libpamc.la -libpamc_la_SOURCES = pamc_client.c pamc_converse.c pamc_load.c - -# Pkg-config script. -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = pamc.pc -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libpamc/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu libpamc/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -pamc.pc: $(top_builddir)/config.status $(srcdir)/pamc.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libpamc.la: $(libpamc_la_OBJECTS) $(libpamc_la_DEPENDENCIES) $(EXTRA_libpamc_la_DEPENDENCIES) - $(AM_V_CCLD)$(libpamc_la_LINK) -rpath $(libdir) $(libpamc_la_OBJECTS) $(libpamc_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pamc_client.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pamc_converse.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pamc_load.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgconfigDATA: $(pkgconfig_DATA) - @$(NORMAL_INSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ - done - -uninstall-pkgconfigDATA: - @$(NORMAL_UNINSTALL) - @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am - -distclean: distclean-recursive - -rm -f ./$(DEPDIR)/pamc_client.Plo - -rm -f ./$(DEPDIR)/pamc_converse.Plo - -rm -f ./$(DEPDIR)/pamc_load.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS install-pkgconfigDATA - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: install-libLTLIBRARIES - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f ./$(DEPDIR)/pamc_client.Plo - -rm -f ./$(DEPDIR)/pamc_converse.Plo - -rm -f ./$(DEPDIR)/pamc_load.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ - uninstall-pkgconfigDATA - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--depfiles check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am \ - install-includeHEADERS install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-pkgconfigDATA install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-includeHEADERS uninstall-libLTLIBRARIES \ - uninstall-pkgconfigDATA - -.PRECIOUS: Makefile - - -# 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: diff --git a/libpamc/include/security/meson.build b/libpamc/include/security/meson.build new file mode 100644 index 00000000..f82fea09 --- /dev/null +++ b/libpamc/include/security/meson.build @@ -0,0 +1 @@ +install_headers('pam_client.h', install_dir: includedir) diff --git a/libpamc/include/security/pam_client.h b/libpamc/include/security/pam_client.h index 0fc2cf44..f382ac7f 100644 --- a/libpamc/include/security/pam_client.h +++ b/libpamc/include/security/pam_client.h @@ -17,6 +17,7 @@ extern "C" { #include <string.h> #include <stdio.h> #include <stdint.h> +#include <stdlib.h> #include <sys/types.h> /* opaque agent handling structure */ @@ -71,10 +72,6 @@ char **pamc_list_agents(pamc_handle_t pch); * PAM_BP_ MACROS for creating, destroying and manipulating binary prompts */ -#include <stdlib.h> -#include <stdio.h> -#include <unistd.h> - #ifndef PAM_BP_ASSERT # ifdef NDEBUG # define PAM_BP_ASSERT(x) do {} while (0) @@ -121,7 +118,7 @@ do { \ if (cntrl) { \ uint32_t __size; \ \ - __size = PAM_BP_MIN_SIZE + data_length; \ + __size = PAM_BP_MIN_SIZE + (data_length); \ if ((*(old_p) = PAM_BP_CALLOC(1, 1+__size))) { \ __PAM_BP_WOCTET(*(old_p), 3) = __size & 0xFF; \ __PAM_BP_WOCTET(*(old_p), 2) = (__size>>=8) & 0xFF; \ @@ -132,7 +129,7 @@ do { \ PAM_BP_ASSERT("out of memory for binary prompt"); \ } \ } else { \ - *old_p = NULL; \ + *(old_p) = NULL; \ } \ } else { \ PAM_BP_ASSERT("programming error, invalid binary prompt pointer"); \ diff --git a/libpamc/meson.build b/libpamc/meson.build new file mode 100644 index 00000000..f5da0679 --- /dev/null +++ b/libpamc/meson.build @@ -0,0 +1,36 @@ +subdir('include/security') + +libpamc_src = [ + 'pamc_client.c', + 'pamc_converse.c', + 'pamc_load.c', +] + +libpamc_inc = include_directories('include') + +libpamc_version = '0.82.1' +libpamc_map = 'libpamc.map' +libpamc_map_path = meson.current_source_dir() / libpamc_map + +libpamc_link_deps = [libpamc_map] +libpamc_link_args = ['-Wl,--version-script=' + libpamc_map_path] + +libpamc = shared_library( + 'pamc', + sources: libpamc_src, + include_directories: [libpam_inc, libpamc_inc], + dependencies: [libpam_internal_dep], + link_depends: libpamc_link_deps, + link_args: libpamc_link_args, + version: libpamc_version, + install: true, +) + +pkgconfig.generate( + libpamc, + description: 'The PAM client API library and binary prompt support. Rarely used.', + name: 'libpamc', + filebase: 'pamc', + version: meson.project_version(), + url: 'http://www.linux-pam.org/' +) diff --git a/libpamc/pamc.pc.in b/libpamc/pamc.pc.in index 2d841ebb..6e7ec29e 100644 --- a/libpamc/pamc.pc.in +++ b/libpamc/pamc.pc.in @@ -1,7 +1,7 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ -includedir=@includedir@ +includedir=@pkgconfig_includedir@ Name: libpamc URL: http://www.linux-pam.org/ diff --git a/libpamc/pamc_load.c b/libpamc/pamc_load.c index b4fa78b3..7efd5721 100644 --- a/libpamc/pamc_load.c +++ b/libpamc/pamc_load.c @@ -224,14 +224,13 @@ int pamc_disable(pamc_handle_t pch, const char *agent_id) return PAM_BPC_FALSE; } - block->id = malloc(1 + strlen(agent_id)); + block->id = strdup(agent_id); if (block->id == NULL) { D(("no memory for agent id")); free(block); return PAM_BPC_FALSE; } - strcpy(block->id, agent_id); block->next = pch->blocked_agents; pch->blocked_agents = block; @@ -245,9 +244,9 @@ int pamc_disable(pamc_handle_t pch, const char *agent_id) int pamc_load(pamc_handle_t pch, const char *agent_id) { pamc_agent_t *agent; - int length; + size_t length; - /* santity checking */ + /* sanity checking */ if (pch == NULL) { D(("pch is NULL")); @@ -324,7 +323,7 @@ int __pamc_valid_agent_id(int id_length, const char *id) for (i=post=0 ; i < id_length; ++i) { int ch = id[i++]; - if (isalpha(ch) || isdigit(ch) || (ch == '_')) { + if (isalpha((unsigned char)ch) || isdigit((unsigned char)ch) || (ch == '_')) { continue; } else if (post && (ch == '.')) { continue; @@ -372,10 +371,8 @@ static pamc_id_node_t *__pamc_add_node(pamc_id_node_t *root, const char *id, pamc_id_node_t *node = calloc(1, sizeof(pamc_id_node_t)); if (node) { - node->agent_id = malloc(1+strlen(id)); - if (node->agent_id) { - strcpy(node->agent_id, id); - } else { + node->agent_id = strdup(id); + if (node->agent_id == NULL) { free(node); node = NULL; } @@ -393,10 +390,8 @@ static pamc_id_node_t *__pamc_add_node(pamc_id_node_t *root, const char *id, static pamc_id_node_t *__pamc_liberate_nodes(pamc_id_node_t *tree) { if (tree) { - if (tree->agent_id) { - free(tree->agent_id); - tree->agent_id = NULL; - } + free(tree->agent_id); + tree->agent_id = NULL; tree->left = __pamc_liberate_nodes(tree->left); tree->right = __pamc_liberate_nodes(tree->right); diff --git a/libpamc/test/Makefile.am b/libpamc/test/Makefile.am deleted file mode 100644 index fc0cac46..00000000 --- a/libpamc/test/Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -AUTOMAKE_OPTIONS = 1.6 gnits - -CLEANFILES = *~ */*~ - -EXTRA_DIST = agents/secret@here modules/Makefile modules/pam_secret.c \ - regress/Makefile regress/run_test.sh regress/test.libpamc.c \ - regress/test.secret@here diff --git a/libpamc/test/Makefile.in b/libpamc/test/Makefile.in deleted file mode 100644 index bedb16b7..00000000 --- a/libpamc/test/Makefile.in +++ /dev/null @@ -1,536 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = libpamc/test -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = 1.6 gnits -CLEANFILES = *~ */*~ -EXTRA_DIST = agents/secret@here modules/Makefile modules/pam_secret.c \ - regress/Makefile regress/run_test.sh regress/test.libpamc.c \ - regress/test.secret@here - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits libpamc/test/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnits libpamc/test/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - cscopelist-am ctags-am distclean distclean-generic \ - distclean-libtool distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# 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: diff --git a/libpamc/test/agents/secret@here b/libpamc/test/agents/secret@here index 8d82c013..2bef6474 100755 --- a/libpamc/test/agents/secret@here +++ b/libpamc/test/agents/secret@here @@ -83,7 +83,7 @@ sub HandleAgentSelection ($) { return (0x04, ""); } - # the selection request is acompanied with a hexadecimal cookie + # the selection request is accompanied with a hexadecimal cookie my @tokens = split '\|', $payload; unless ((scalar @tokens) == 2) { diff --git a/libpamc/test/modules/Makefile b/libpamc/test/modules/Makefile deleted file mode 100644 index 48065462..00000000 --- a/libpamc/test/modules/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -CFLAGS = -g -fPIC -I"../../include" - -pam_secret.so: pam_secret.o - ld -x --shared -o pam_secret.so pam_secret.o -lc - -.o.c: - -clean: - rm -f *.so *.o diff --git a/libpamc/test/modules/pam_secret.c b/libpamc/test/modules/pam_secret.c index f1c74c6f..da607b1f 100644 --- a/libpamc/test/modules/pam_secret.c +++ b/libpamc/test/modules/pam_secret.c @@ -123,15 +123,17 @@ int create_digest(const char *d1, const char *d2, const char *d3, if (fgets(buffer_33, 33, pipe) == NULL) { D(("failed to read digest")); + pclose(pipe); return 0; } if (strlen(buffer_33) != 32) { D(("digest was not 32 chars")); + pclose(pipe); return 0; } - fclose(pipe); + pclose(pipe); D(("done [%s]", buffer_33)); @@ -164,16 +166,14 @@ static int converse(pam_handle_t *pamh, struct ps_state_s *new) retval = conv->conv(1, &msg_ptr, &single_reply, conv->appdata_ptr); if (retval == PAM_SUCCESS) { if ((single_reply == NULL) || (single_reply->resp == NULL)) { - retval == PAM_CONV_ERR; + retval = PAM_CONV_ERR; } else { new->current_reply = (pamc_bp_t) single_reply->resp; single_reply->resp = NULL; } } - if (single_reply) { - free(single_reply); - } + free(single_reply); } #ifdef PAM_DEBUG @@ -380,7 +380,7 @@ static int auth_sequence(pam_handle_t *pamh, /* expect to receive the following {<seqid>|<a_cookie>} */ if (new->current_reply == NULL) { - D(("converstation returned [%s] but gave no reply", + D(("conversation returned [%s] but gave no reply", pam_strerror(pamh, retval))); new->state = PS_STATE_DEAD; return PAM_CONV_ERR; diff --git a/libpamc/test/regress/Makefile b/libpamc/test/regress/Makefile deleted file mode 100644 index cba474f9..00000000 --- a/libpamc/test/regress/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -CFLAGS = -g -I ../../include - -test.libpamc: test.libpamc.o - $(CC) -o $@ $(CFLAGS) $< -L ../.. -lpamc - -clean: - rm -f test.libpamc test.libpamc.o diff --git a/libpamc/test/regress/test.libpamc.c b/libpamc/test/regress/test.libpamc.c index 4251b4fa..e6d6bb3f 100644 --- a/libpamc/test/regress/test.libpamc.c +++ b/libpamc/test/regress/test.libpamc.c @@ -153,7 +153,7 @@ char *create_digest(int length, const char *raw) exit(1); } - fclose(pipe); + pclose(pipe); return temp_packet.buffer; } diff --git a/m4/attribute.m4 b/m4/attribute.m4 deleted file mode 100644 index 3aa2e5fc..00000000 --- a/m4/attribute.m4 +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/m4 -dnl Check for compiler attributes - -AC_DEFUN([PAM_ATTRIBUTE_UNUSED], [ - AC_CACHE_CHECK([for __attribute__((unused))], [pam_cv_attribute_unused], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[int fun(int i __attribute__((unused)));]], - [[return fun(0);]])], - [pam_cv_attribute_unused=yes], - [pam_cv_attribute_unused=no])]) - AS_IF([test "$pam_cv_attribute_unused" = yes], - [unused='__attribute__((unused))'], - [unused=]) - AC_DEFINE_UNQUOTED([UNUSED], [$unused], - [Define if the compiler supports __attribute__((unused))]) -]) diff --git a/m4/gettext.m4 b/m4/gettext.m4 deleted file mode 100644 index 8d1f0665..00000000 --- a/m4/gettext.m4 +++ /dev/null @@ -1,401 +0,0 @@ -# gettext.m4 serial 66 (gettext-0.18.2) -dnl Copyright (C) 1995-2013 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-2006, 2008-2010. - -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(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], - [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) - 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], - ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), - [yes])) - define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) - gt_NEEDS_INIT - AM_GNU_GETTEXT_NEED([$2]) - - 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 { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "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 Mac OS X, libintl requires linking with CoreFoundation. - gt_INTL_MACOSX - - dnl Set USE_NLS. - AC_REQUIRE([AM_NLS]) - - ifelse(gt_included_intl, yes, [ - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - ]) - LIBINTL= - LTLIBINTL= - POSUB= - - dnl Add a version number to the cache macros. - case " $gt_needs " in - *" need-formatstring-macros "*) gt_api_version=3 ;; - *" need-ngettext "*) gt_api_version=2 ;; - *) gt_api_version=1 ;; - esac - gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" - gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" - - 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. - - if test $gt_api_version -ge 3; then - gt_revision_test_code=' -#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 -' - else - gt_revision_test_code= - fi - if test $gt_api_version -ge 2; then - gt_expression_test_code=' + * ngettext ("", "", 0)' - else - gt_expression_test_code= - fi - - AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include <libintl.h> -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings - ]])], - [eval "$gt_func_gnugettext_libc=yes"], - [eval "$gt_func_gnugettext_libc=no"])]) - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "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_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_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include <libintl.h> -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") - ]])], - [eval "$gt_func_gnugettext_libintl=yes"], - [eval "$gt_func_gnugettext_libintl=no"]) - dnl Now see whether libintl exists and depends on libiconv. - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include <libintl.h> -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); - ]], - [[ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") - ]])], - [LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - eval "$gt_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 { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ - || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "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 $LIBTHREAD" - LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" - 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 { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "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 { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "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 gt_NEEDS_INIT ensures that the gt_needs variable is initialized. -m4_define([gt_NEEDS_INIT], -[ - m4_divert_text([DEFAULTS], [gt_needs=]) - m4_define([gt_NEEDS_INIT], []) -]) - - -dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) -AC_DEFUN([AM_GNU_GETTEXT_NEED], -[ - m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) -]) - - -dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) -AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/m4/iconv.m4 b/m4/iconv.m4 deleted file mode 100644 index a5036465..00000000 --- a/m4/iconv.m4 +++ /dev/null @@ -1,268 +0,0 @@ -# iconv.m4 serial 18 (gettext-0.18.2) -dnl Copyright (C) 2000-2002, 2007-2013 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). - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - - 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_LINK_IFELSE will then fail, the second AC_LINK_IFELSE 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_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#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_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ -#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_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ - dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, - dnl Solaris 10. - am_save_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include <iconv.h> -#include <string.h> -int main () -{ - int result = 0; - /* Test against AIX 5.1 bug: Failures are not distinguishable from successful - returns. */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 1; - iconv_close (cd_utf8_to_88591); - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\263"; - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - result |= 2; - iconv_close (cd_ascii_to_88591); - } - } - /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304"; - static char buf[2] = { (char)0xDE, (char)0xAD }; - const char *inptr = input; - size_t inbytesleft = 1; - char *outptr = buf; - size_t outbytesleft = 1; - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) - result |= 4; - iconv_close (cd_88591_to_utf8); - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - result |= 8; - iconv_close (cd_88591_to_utf8); - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - if (/* Try standardized names. */ - iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) - /* Try IRIX, OSF/1 names. */ - && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) - /* Try AIX names. */ - && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) - /* Try HP-UX names. */ - && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) - result |= 16; - return result; -}]])], - [am_cv_func_iconv_works=yes], - [am_cv_func_iconv_works=no], - [ -changequote(,)dnl - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac -changequote([,])dnl - ]) - LIBS="$am_save_LIBS" - ]) - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - AC_DEFINE([HAVE_ICONV], [1], - [Define if you have the iconv() function and it works.]) - 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]) -]) - -dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to -dnl avoid warnings like -dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". -dnl This is tricky because of the way 'aclocal' is implemented: -dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. -dnl Otherwise aclocal's initial scan pass would miss the macro definition. -dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. -dnl Otherwise aclocal would emit many "Use of uninitialized value $1" -dnl warnings. -m4_define([gl_iconv_AC_DEFUN], - m4_version_prereq([2.64], - [[AC_DEFUN_ONCE( - [$1], [$2])]], - [m4_ifdef([gl_00GNULIB], - [[AC_DEFUN_ONCE( - [$1], [$2])]], - [[AC_DEFUN( - [$1], [$2])]])])) -gl_iconv_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_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -#include <stdlib.h> -#include <iconv.h> -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(_MSC_VER) || 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([ - $am_cv_proto_iconv]) - AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], - [Define as const if the declaration of iconv() needs const.]) - dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. - m4_ifdef([gl_ICONV_H_DEFAULTS], - [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) - if test -n "$am_cv_proto_iconv_arg1"; then - ICONV_CONST="const" - fi - ]) - fi -]) diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 deleted file mode 100644 index ab97d39f..00000000 --- a/m4/intlmacosx.m4 +++ /dev/null @@ -1,56 +0,0 @@ -# intlmacosx.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2004-2013 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 Checks for special options needed on Mac OS X. -dnl Defines INTL_MACOSX_LIBS. -AC_DEFUN([gt_INTL_MACOSX], -[ - dnl Check for API introduced in Mac OS X 10.2. - AC_CACHE_CHECK([for CFPreferencesCopyAppValue], - [gt_cv_func_CFPreferencesCopyAppValue], - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include <CoreFoundation/CFPreferences.h>]], - [[CFPreferencesCopyAppValue(NULL, NULL)]])], - [gt_cv_func_CFPreferencesCopyAppValue=yes], - [gt_cv_func_CFPreferencesCopyAppValue=no]) - LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then - AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], - [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) - fi - dnl Check for API introduced in Mac OS X 10.3. - AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[#include <CoreFoundation/CFLocale.h>]], - [[CFLocaleCopyCurrent();]])], - [gt_cv_func_CFLocaleCopyCurrent=yes], - [gt_cv_func_CFLocaleCopyCurrent=no]) - LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFLocaleCopyCurrent = yes; then - AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], - [Define to 1 if you have the Mac OS 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]) -]) diff --git a/m4/jh_path_xml_catalog.m4 b/m4/jh_path_xml_catalog.m4 deleted file mode 100644 index 1f2eff3a..00000000 --- a/m4/jh_path_xml_catalog.m4 +++ /dev/null @@ -1,54 +0,0 @@ -# Checks the location of the XML Catalog -# Usage: -# JH_PATH_XML_CATALOG([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# Defines XMLCATALOG and XML_CATALOG_FILE substitutions -AC_DEFUN([JH_PATH_XML_CATALOG], -[ - # check for the presence of the XML catalog - AC_ARG_WITH([xml-catalog], - [AS_HELP_STRING([--with-xml-catalog=CATALOG], - [path to xml catalog to use])],, - [with_xml_catalog=/etc/xml/catalog]) - jh_found_xmlcatalog=true - XML_CATALOG_FILE="$with_xml_catalog" - AC_SUBST([XML_CATALOG_FILE]) - AC_MSG_CHECKING([for XML catalog ($XML_CATALOG_FILE)]) - if test -f "$XML_CATALOG_FILE"; then - AC_MSG_RESULT([found]) - else - jh_found_xmlcatalog=false - AC_MSG_RESULT([not found]) - fi - - # check for the xmlcatalog program - AC_PATH_PROG(XMLCATALOG, xmlcatalog, no) - if test "x$XMLCATALOG" = xno; then - jh_found_xmlcatalog=false - fi - - if $jh_found_xmlcatalog; then - ifelse([$1],,[:],[$1]) - else - ifelse([$2],,[AC_MSG_ERROR([could not find XML catalog])],[$2]) - fi -]) - -# Checks if a particular URI appears in the XML catalog -# Usage: -# JH_CHECK_XML_CATALOG(URI, [FRIENDLY-NAME], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -AC_DEFUN([JH_CHECK_XML_CATALOG], -[ - AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl - AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog]) - if $jh_found_xmlcatalog && \ - AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then - AC_MSG_RESULT([found]) - ifelse([$3],,,[$3 -])dnl - else - AC_MSG_RESULT([not found]) - ifelse([$4],, - [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])], - [$4]) - fi -]) diff --git a/m4/ld-O1.m4 b/m4/ld-O1.m4 deleted file mode 100644 index 64593280..00000000 --- a/m4/ld-O1.m4 +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/m4 -dnl Check whether ld supports -O1 - -AC_DEFUN([PAM_LD_O1], [dnl - AC_CACHE_CHECK([whether ld supports -O1], - [pam_cv_ld_O1], - [saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,-O1" - AC_LINK_IFELSE([AC_LANG_PROGRAM(,)], - [pam_cv_ld_O1=yes], - [pam_cv_ld_O1=no]) - LDFLAGS="$saved_LDFLAGS"]) - AS_IF([test $pam_cv_ld_O1 = yes], - [LDFLAGS="$LDFLAGS -Wl,-O1"]) -]) diff --git a/m4/ld-as-needed.m4 b/m4/ld-as-needed.m4 deleted file mode 100644 index d6590192..00000000 --- a/m4/ld-as-needed.m4 +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/m4 -dnl Check whether ld supports --as-needed - -AC_DEFUN([PAM_LD_AS_NEEDED], [dnl - AC_CACHE_CHECK([whether ld supports --as-needed], - [pam_cv_ld_as_needed], - [saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,--as-needed" - AC_LINK_IFELSE([AC_LANG_PROGRAM(,)], - [pam_cv_ld_as_needed=yes], - [pam_cv_ld_as_needed=no]) - LDFLAGS="$saved_LDFLAGS"]) - AS_IF([test $pam_cv_ld_as_needed = yes], - [LDFLAGS="$LDFLAGS -Wl,--as-needed"]) -]) diff --git a/m4/ld-no-undefined.m4 b/m4/ld-no-undefined.m4 deleted file mode 100644 index 6f342d00..00000000 --- a/m4/ld-no-undefined.m4 +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/m4 -dnl Check whether ld supports --no-undefined - -AC_DEFUN([PAM_LD_NO_UNDEFINED], [dnl - AC_CACHE_CHECK([whether ld supports --no-undefined], - [pam_cv_ld_no_undefined], - [saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,--no-undefined" - AC_LINK_IFELSE([AC_LANG_PROGRAM(,)], - [pam_cv_ld_no_undefined=yes], - [pam_cv_ld_no_undefined=no]) - LDFLAGS="$saved_LDFLAGS"]) - AS_IF([test $pam_cv_ld_no_undefined = yes], - [LDFLAGS="$LDFLAGS -Wl,--no-undefined"]) -]) diff --git a/m4/ld-z-now.m4 b/m4/ld-z-now.m4 deleted file mode 100644 index 1bc82594..00000000 --- a/m4/ld-z-now.m4 +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/m4 -dnl Check whether ld supports "-z now" - -AC_DEFUN([PAM_LD_Z_NOW], [dnl - AC_CACHE_CHECK([whether ld supports "-z now"], - [pam_cv_ld_z_now], - [saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,-z,now" - AC_LINK_IFELSE([AC_LANG_PROGRAM(,)], - [pam_cv_ld_z_now=yes], - [pam_cv_ld_z_now=no]) - LDFLAGS="$saved_LDFLAGS"]) - AS_IF([test $pam_cv_ld_z_now = yes], - [ZNOW_LDFLAGS="-Wl,-z,now"], - [ZNOW_LDFLAGS=]) -]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 deleted file mode 100644 index c145e478..00000000 --- a/m4/lib-ld.m4 +++ /dev/null @@ -1,119 +0,0 @@ -# lib-ld.m4 serial 6 -dnl Copyright (C) 1996-2003, 2009-2013 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/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid -dnl collision with libtool.m4. - -dnl From libtool-2.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 lds 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-2.4. Sets the variable LD. -AC_DEFUN([AC_LIB_PROG_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl - -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld [default=no]])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -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 $CC]) - 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. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname 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 - acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_save_ifs" - 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 variants of GNU ld 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="$acl_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 -]) diff --git a/m4/lib-link.m4 b/m4/lib-link.m4 deleted file mode 100644 index 073f0405..00000000 --- a/m4/lib-link.m4 +++ /dev/null @@ -1,777 +0,0 @@ -# lib-link.m4 serial 26 (gettext-0.18.2) -dnl Copyright (C) 2001-2013 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.54]) - -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. -dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname -dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - pushdef([Name],[m4_translit([$1],[./+-], [____])]) - pushdef([NAME],[m4_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" - ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" - ]) - LIB[]NAME="$ac_cv_lib[]Name[]_libs" - LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" - INC[]NAME="$ac_cv_lib[]Name[]_cppflags" - LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - AC_SUBST([LIB]NAME[_PREFIX]) - 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 - popdef([NAME]) - popdef([Name]) -]) - -dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) -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. The missing-message -dnl defaults to 'no' and may contain additional hints for the user. -dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} -dnl and 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. -dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname -dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - pushdef([Name],[m4_translit([$1],[./+-], [____])]) - pushdef([NAME],[m4_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" - dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, - dnl because these -l options might require -L options that are present in - dnl LIBS. -l options benefit only from the -L options listed before it. - dnl Otherwise, add it to the front of LIBS, because it may be a static - dnl library that depends on another static library that is present in LIBS. - dnl Static libraries benefit only from the static libraries listed after - dnl it. - case " $LIB[]NAME" in - *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; - *) LIBS="$LIB[]NAME $LIBS" ;; - esac - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[$3]], [[$4]])], - [ac_cv_lib[]Name=yes], - [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) - 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 lib][$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= - LIB[]NAME[]_PREFIX= - fi - AC_SUBST([HAVE_LIB]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - AC_SUBST([LIB]NAME[_PREFIX]) - popdef([NAME]) - popdef([Name]) -]) - -dnl Determine the platform dependent parameters needed to use rpath: -dnl acl_libext, -dnl acl_shlibext, -dnl acl_libname_spec, -dnl acl_library_names_spec, -dnl acl_hardcode_libdir_flag_spec, -dnl acl_hardcode_libdir_separator, -dnl acl_hardcode_direct, -dnl acl_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" - acl_libext="$acl_cv_libext" - acl_shlibext="$acl_cv_shlibext" - acl_libname_spec="$acl_cv_libname_spec" - acl_library_names_spec="$acl_cv_library_names_spec" - acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_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_FROMPACKAGE(name, package) -dnl declares that libname comes from the given package. The configure file -dnl will then not have a --with-libname-prefix option but a -dnl --with-package-prefix option. Several libraries can come from the same -dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar -dnl macro call that searches for libname. -AC_DEFUN([AC_LIB_FROMPACKAGE], -[ - pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - define([acl_frompackage_]NAME, [$2]) - popdef([NAME]) - pushdef([PACK],[$2]) - pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - define([acl_libsinpackage_]PACKUP, - m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) - popdef([PACKUP]) - popdef([PACK]) -]) - -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. -dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found -dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) - pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) - pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl Autoconf >= 2.61 supports dots in --with options. - pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) - 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_ARG_WITH(P_A_C_K[-prefix], -[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib - --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ 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/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi - 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= - LIB[]NAME[]_PREFIX= - dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been - dnl computed. So it has to be reset here. - HAVE_LIB[]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= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - dir="$additional_libdir" - dnl The same code as in the loop below: - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - 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//'` - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - 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/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; 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 "$acl_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 "$acl_hardcode_libdir_flag_spec" && test "$acl_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 "$acl_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 $acl_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 - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - 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/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; 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 "$acl_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:+$acl_hardcode_libdir_separator}$found_dir" - done - dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_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=\"$acl_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 - popdef([P_A_C_K]) - popdef([PACKLIBS]) - popdef([PACKUP]) - popdef([PACK]) - popdef([NAME]) -]) - -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 -]) - -dnl For those cases where a variable contains several -L and -l options -dnl referring to unknown libraries and directories, this macro determines the -dnl necessary additional linker options for the runtime path. -dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) -dnl sets LDADDVAR to linker options needed together with LIBSVALUE. -dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, -dnl otherwise linking without libtool is assumed. -AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], -[ - AC_REQUIRE([AC_LIB_RPATH]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - $1= - if test "$enable_rpath" != no; then - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode directories into the resulting - dnl binary. - rpathdirs= - next= - for opt in $2; do - if test -n "$next"; then - dir="$next" - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2"; then - rpathdirs="$rpathdirs $dir" - fi - next= - else - case $opt in - -L) next=yes ;; - -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2"; then - rpathdirs="$rpathdirs $dir" - fi - next= ;; - *) next= ;; - esac - fi - done - if test "X$rpathdirs" != "X"; then - if test -n ""$3""; then - dnl libtool is used for linking. Use -R options. - for dir in $rpathdirs; do - $1="${$1}${$1:+ }-R$dir" - done - else - dnl The linker is used for linking directly. - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user - dnl must pass all path elements in one option. - alldirs= - for dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="$flag" - else - dnl The -rpath options are cumulative. - for dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="${$1}${$1:+ }$flag" - done - fi - fi - fi - fi - fi - AC_SUBST([$1]) -]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 deleted file mode 100644 index 60908e8f..00000000 --- a/m4/lib-prefix.m4 +++ /dev/null @@ -1,224 +0,0 @@ -# lib-prefix.m4 serial 7 (gettext-0.18) -dnl Copyright (C) 2001-2005, 2008-2013 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_MULTILIB]) - 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/$acl_libdirstem" - 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/$acl_libdirstem"; 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/$acl_libdirstem"; 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" -]) - -dnl AC_LIB_PREPARE_MULTILIB creates -dnl - a variable acl_libdirstem, containing the basename of the libdir, either -dnl "lib" or "lib64" or "lib/64", -dnl - a variable acl_libdirstem2, as a secondary possible value for -dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or -dnl "lib/amd64". -AC_DEFUN([AC_LIB_PREPARE_MULTILIB], -[ - dnl There is no formal standard regarding lib and lib64. - dnl On glibc systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine - dnl the compiler's default mode by looking at the compiler's library search - dnl path. If at least one of its elements ends in /lib64 or points to a - dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. - dnl Otherwise we use the default, namely "lib". - dnl On Solaris systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or - dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. - AC_REQUIRE([AC_CANONICAL_HOST]) - acl_libdirstem=lib - acl_libdirstem2= - case "$host_os" in - solaris*) - dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment - dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>. - dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." - dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the - dnl symlink is missing, so we set acl_libdirstem2 too. - AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], - [AC_EGREP_CPP([sixtyfour bits], [ -#ifdef _LP64 -sixtyfour bits -#endif - ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) - ]) - if test $gl_cv_solaris_64bit = yes; then - acl_libdirstem=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" -]) diff --git a/m4/libprelude.m4 b/m4/libprelude.m4 deleted file mode 100644 index d6a1efd9..00000000 --- a/m4/libprelude.m4 +++ /dev/null @@ -1,181 +0,0 @@ -dnl Autoconf macros for libprelude -dnl $id$ - -# Modified for LIBPRELUDE -- Yoann Vandoorselaere -# Modified for LIBGNUTLS -- nmav -# Configure paths for LIBGCRYPT -# Shamelessly stolen from the one of XDELTA by Owen Taylor -# Werner Koch 99-12-09 - -dnl AM_PATH_LIBPRELUDE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) -dnl Test for libprelude, and define LIBPRELUDE_PREFIX, LIBPRELUDE_CFLAGS, LIBPRELUDE_PTHREAD_CFLAGS, -dnl LIBPRELUDE_LDFLAGS, and LIBPRELUDE_LIBS -dnl -AC_DEFUN([AM_PATH_LIBPRELUDE], -[dnl -dnl Get the cflags and libraries from the libprelude-config script -dnl -AC_ARG_WITH(libprelude-prefix, [AS_HELP_STRING([--with-libprelude-prefix=PFX], - [Prefix where libprelude is installed (optional)])], - libprelude_config_prefix="$withval", libprelude_config_prefix="") - - if test x$libprelude_config_prefix != x ; then - if test x${LIBPRELUDE_CONFIG+set} != xset ; then - LIBPRELUDE_CONFIG=$libprelude_config_prefix/bin/libprelude-config - fi - fi - - AC_PATH_PROG(LIBPRELUDE_CONFIG, libprelude-config, no) - min_libprelude_version=ifelse([$1], ,0.1.0,$1) - AC_MSG_CHECKING(for libprelude - version >= $min_libprelude_version) - no_libprelude="" - if test "$LIBPRELUDE_CONFIG" = "no" ; then - no_libprelude=yes - else - LIBPRELUDE_CFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --cflags` - LIBPRELUDE_PTHREAD_CFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --pthread-cflags` - LIBPRELUDE_LDFLAGS=`$LIBPRELUDE_CONFIG $libprelude_config_args --ldflags` - LIBPRELUDE_LIBS=`$LIBPRELUDE_CONFIG $libprelude_config_args --libs` - LIBPRELUDE_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --prefix` - LIBPRELUDE_CONFIG_PREFIX=`$LIBPRELUDE_CONFIG $libprelude_config_args --config-prefix` - libprelude_config_version=`$LIBPRELUDE_CONFIG $libprelude_config_args --version` - - - ac_save_CFLAGS="$CFLAGS" - ac_save_LDFLAGS="$LDFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS" - LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS" - LIBS="$LIBS $LIBPRELUDE_LIBS" -dnl -dnl Now check if the installed libprelude is sufficiently new. Also sanity -dnl checks the results of libprelude-config to some extent -dnl - rm -f conf.libpreludetest - AC_RUN_IFELSE([ - AC_LANG_SOURCE([[ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <libprelude/prelude.h> - -int -main () -{ - system ("touch conf.libpreludetest"); - - if( strcmp( prelude_check_version(NULL), "$libprelude_config_version" ) ) - { - printf("\n*** 'libprelude-config --version' returned %s, but LIBPRELUDE (%s)\n", - "$libprelude_config_version", prelude_check_version(NULL) ); - printf("*** was found! If libprelude-config was correct, then it is best\n"); - printf("*** to remove the old version of LIBPRELUDE. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH environment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If libprelude-config was wrong, set the environment variable LIBPRELUDE_CONFIG\n"); - printf("*** to point to the correct copy of libprelude-config, and remove the file config.cache\n"); - printf("*** before re-running configure\n"); - } - else if ( strcmp(prelude_check_version(NULL), LIBPRELUDE_VERSION ) ) - { - printf("\n*** LIBPRELUDE header file (version %s) does not match\n", LIBPRELUDE_VERSION); - printf("*** library (version %s)\n", prelude_check_version(NULL) ); - } - else - { - if ( prelude_check_version( "$min_libprelude_version" ) ) - { - return 0; - } - else - { - printf("no\n*** An old version of LIBPRELUDE (%s) was found.\n", - prelude_check_version(NULL) ); - printf("*** You need a version of LIBPRELUDE newer than %s. The latest version of\n", - "$min_libprelude_version" ); - printf("*** LIBPRELUDE is always available from http://www.prelude-ids.org/download/releases.\n"); - printf("*** \n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the libprelude-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of LIBPRELUDE, but you can also set the LIBPRELUDE_CONFIG environment to point to the\n"); - printf("*** correct copy of libprelude-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} -]])],[],[no_libprelude=yes],[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - LDFLAGS="$ac_save_LDFLAGS" - fi - - if test "x$no_libprelude" = x ; then - AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) - else - if test -f conf.libpreludetest ; then - : - else - AC_MSG_RESULT(no) - fi - if test "$LIBPRELUDE_CONFIG" = "no" ; then - if test x$libprelude_config_prefix != x ; then - echo "*** The libprelude-config script installed by LIBPRELUDE could not be found" - echo "*** If LIBPRELUDE was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the LIBPRELUDE_CONFIG environment variable to the" - echo "*** full path to libprelude-config." - fi - else - if test -f conf.libpreludetest ; then - : - else - echo "*** Could not run libprelude test program, checking why..." - CFLAGS="$CFLAGS $LIBPRELUDE_CFLAGS" - LDFLAGS="$LDFLAGS $LIBPRELUDE_LDFLAGS" - LIBS="$LIBS $LIBPRELUDE_LIBS" - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <libprelude/prelude.h> -]], - [[ return !!prelude_check_version(NULL); ]])], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding LIBPRELUDE or finding the wrong" - echo "*** version of LIBPRELUDE. If it is not finding LIBPRELUDE, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" - echo "***" ], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occurred. This usually means LIBPRELUDE was incorrectly installed" - echo "*** or that you have moved LIBPRELUDE since it was installed. In the latter case, you" - echo "*** may want to edit the libprelude-config script: $LIBPRELUDE_CONFIG" ]) - CFLAGS="$ac_save_CFLAGS" - LDFLAGS="$ac_save_LDFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - LIBPRELUDE_CFLAGS="" - LIBPRELUDE_LDFLAGS="" - LIBPRELUDE_LIBS="" - ifelse([$3], , :, [$3]) - fi - rm -f conf.libpreludetest - AC_SUBST(LIBPRELUDE_CFLAGS) - AC_SUBST(LIBPRELUDE_PTHREAD_CFLAGS) - AC_SUBST(LIBPRELUDE_LDFLAGS) - AC_SUBST(LIBPRELUDE_LIBS) - AC_SUBST(LIBPRELUDE_PREFIX) - AC_SUBST(LIBPRELUDE_CONFIG_PREFIX) -]) - -dnl *-*wedit:notab*-* Please keep this as the last line. diff --git a/m4/libtool.m4 b/m4/libtool.m4 deleted file mode 100644 index 4fa026c1..00000000 --- a/m4/libtool.m4 +++ /dev/null @@ -1,8431 +0,0 @@ -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# 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. - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 2014 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool 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 of the License, or -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program or library that is built -# using GNU Libtool, you may include this file under the same -# distribution terms that you use for the rest of that program. -# -# GNU Libtool 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, see <http://www.gnu.org/licenses/>. -]) - -# serial 59 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac -]) - - -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl - -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) - -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS=$ltmain - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -_LT_SETUP - -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT - -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) - - -# _LT_PREPARE_CC_BASENAME -# ----------------------- -m4_defun([_LT_PREPARE_CC_BASENAME], [ -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -func_cc_basename () -{ - for cc_temp in @S|@*""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac - done - func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -} -])# _LT_PREPARE_CC_BASENAME - - -# _LT_CC_BASENAME(CC) -# ------------------- -# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, -# but that macro is also expanded into generated libtool script, which -# arranges for $SED and $ECHO to be set by different means. -m4_defun([_LT_CC_BASENAME], -[m4_require([_LT_PREPARE_CC_BASENAME])dnl -AC_REQUIRE([_LT_DECL_SED])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl -func_cc_basename $1 -cc_basename=$func_cc_basename_result -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - - -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl - -_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl -dnl -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_DECL_FILECMD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl -m4_require([_LT_CMD_TRUNCATE])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options that allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test set != "${COLLECT_NAMES+set}"; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a '.a' archive for static linking (except MSVC and -# ICC, which need '.lib'). -libext=a - -with_gnu_ld=$lt_cv_prog_gnu_ld - -old_CC=$CC -old_CFLAGS=$CFLAGS - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from 'configure', and 'config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# 'config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain=$ac_aux_dir/ltmain.sh -])# _LT_PROG_LTMAIN - - -## ------------------------------------- ## -## Accumulate code for creating libtool. ## -## ------------------------------------- ## - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the 'libtool' -# label. - - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - -## ------------------------ ## -## FIXME: Eliminate VARNAME ## -## ------------------------ ## - - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) - - -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to 'config.status' so that its -# declaration there will have the same value as in 'configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags='_LT_TAGS'dnl -]) - - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into 'config.status', and then the shell code to quote escape them in -# for loops in 'config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS - - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -_LT_OUTPUT_LIBTOOL_INIT -]) - -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# '#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test 0 = "$lt_write_fail" && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT - -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD - -lt_cl_help="\ -'$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $[0] [[OPTIONS]] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to <bug-libtool@gnu.org>." - -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. - -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." - -while test 0 != $[#] -do - case $[1] in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; - - -*) AC_MSG_ERROR([unrecognized option: $[1] -Try '$[0] --help' for more information.]) ;; - - *) AC_MSG_ERROR([unrecognized argument: $[1] -Try '$[0] --help' for more information.]) ;; - esac - shift -done - -if $lt_cl_silent; then - exec AS_MESSAGE_FD>/dev/null -fi -_LTEOF - -cat >>"$CONFIG_LT" <<_LTEOF -_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -_LTEOF - -cat >>"$CONFIG_LT" <<\_LTEOF -AC_MSG_NOTICE([creating $ofile]) -_LT_OUTPUT_LIBTOOL_COMMANDS -AS_EXIT(0) -_LTEOF -chmod +x "$CONFIG_LT" - -# configure is writing to config.log, but config.lt does its own redirection, -# appending to config.log, which fails on DOS, as config.log is still kept -# open by configure. Here we exec the FD to /dev/null, effectively closing -# config.log, so it can be properly (re)opened and appended to by config.lt. -lt_cl_success=: -test yes = "$silent" && - lt_config_lt_args="$lt_config_lt_args --quiet" -exec AS_MESSAGE_LOG_FD>/dev/null -$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -exec AS_MESSAGE_LOG_FD>>config.log -$lt_cl_success || AS_EXIT(1) -])# LT_OUTPUT - - -# _LT_CONFIG(TAG) -# --------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_defun([_LT_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options that allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST - fi - - cfgfile=${ofile}T - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL -# Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured as follows: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. - -# Provide generalized library-building support services. -# Written by Gordon Matzigkeit, 1996 - -_LT_COPYING -_LT_LIBTOOL_TAGS - -# Configured defaults for sys_lib_dlsearch_path munging. -: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} - -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG - -_LT_EOF - - cat <<'_LT_EOF' >> "$cfgfile" - -# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE - -_LT_PREPARE_MUNGE_PATH_LIST -_LT_PREPARE_CC_BASENAME - -# ### END FUNCTIONS SHARED WITH CONFIGURE - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test set != "${COLLECT_NAMES+set}"; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - _LT_PROG_LTMAIN - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - $SED '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" - -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - RM='$RM' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG - - -# LT_SUPPORTED_TAG(TAG) -# --------------------- -# Trace this macro to discover what tags are supported by the libtool -# --tag option, using: -# autoconf --trace 'LT_SUPPORTED_TAG:$1' -AC_DEFUN([LT_SUPPORTED_TAG], []) - - -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) - - -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[AC_BEFORE([$0], [LT_OUTPUT])dnl -m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [Go], [_LT_LANG(GO)], - [Java], [_LT_LANG(GCJ)], - [Fortran 77], [_LT_LANG(F77)], - [Fortran], [_LT_LANG(FC)], - [Windows Resource], [_LT_LANG(RC)], - [m4_ifdef([_LT_LANG_]$1[_CONFIG], - [_LT_LANG($1)], - [m4_fatal([$0: unsupported language: "$1"])])])dnl -])# LT_LANG - - -# _LT_LANG(LANGNAME) -# ------------------ -m4_defun([_LT_LANG], -[m4_ifdef([_LT_LANG_]$1[_enabled], [], - [LT_SUPPORTED_TAG([$1])dnl - m4_append([_LT_TAGS], [$1 ])dnl - m4_define([_LT_LANG_]$1[_enabled], [])dnl - _LT_LANG_$1_CONFIG($1)])dnl -])# _LT_LANG - - -m4_ifndef([AC_PROG_GO], [ -############################################################ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_GO. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -############################################################ -m4_defun([AC_PROG_GO], -[AC_LANG_PUSH(Go)dnl -AC_ARG_VAR([GOC], [Go compiler command])dnl -AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl -_AC_ARG_VAR_LDFLAGS()dnl -AC_CHECK_TOOL(GOC, gccgo) -if test -z "$GOC"; then - if test -n "$ac_tool_prefix"; then - AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) - fi -fi -if test -z "$GOC"; then - AC_CHECK_PROG(GOC, gccgo, gccgo, false) -fi -])#m4_defun -])#m4_ifndef - - -# _LT_LANG_DEFAULT_CONFIG -# ----------------------- -m4_defun([_LT_LANG_DEFAULT_CONFIG], -[AC_PROVIDE_IFELSE([AC_PROG_CXX], - [LT_LANG(CXX)], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) - -AC_PROVIDE_IFELSE([AC_PROG_F77], - [LT_LANG(F77)], - [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) - -AC_PROVIDE_IFELSE([AC_PROG_FC], - [LT_LANG(FC)], - [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) - -dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -dnl pulling things in needlessly. -AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([LT_PROG_GCJ], - [LT_LANG(GCJ)], - [m4_ifdef([AC_PROG_GCJ], - [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([A][M_PROG_GCJ], - [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([LT_PROG_GCJ], - [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) - -AC_PROVIDE_IFELSE([AC_PROG_GO], - [LT_LANG(GO)], - [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) - -AC_PROVIDE_IFELSE([LT_PROG_RC], - [LT_LANG(RC)], - [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -])# _LT_LANG_DEFAULT_CONFIG - -# Obsolete macros: -AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) -AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) -AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_CXX], []) -dnl AC_DEFUN([AC_LIBTOOL_F77], []) -dnl AC_DEFUN([AC_LIBTOOL_FC], []) -dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) -dnl AC_DEFUN([AC_LIBTOOL_RC], []) - - -# _LT_TAG_COMPILER -# ---------------- -m4_defun([_LT_TAG_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl -_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl -_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_TAG_COMPILER - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -m4_defun([_LT_COMPILER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/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. -m4_defun([_LT_LINKER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* -])# _LT_LINKER_BOILERPLATE - -# _LT_REQUIRED_DARWIN_CHECKS -# ------------------------- -m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ - case $host_os in - rhapsody* | darwin*) - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) - AC_CHECK_TOOL([LIPO], [lipo], [:]) - AC_CHECK_TOOL([OTOOL], [otool], [:]) - AC_CHECK_TOOL([OTOOL64], [otool64], [:]) - _LT_DECL([], [DSYMUTIL], [1], - [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) - _LT_DECL([], [NMEDIT], [1], - [Tool to change global to local symbols on Mac OS X]) - _LT_DECL([], [LIPO], [1], - [Tool to manipulate fat objects and archives on Mac OS X]) - _LT_DECL([], [OTOOL], [1], - [ldd/readelf like tool for Mach-O binaries on Mac OS X]) - _LT_DECL([], [OTOOL64], [1], - [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) - - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], - [lt_cv_apple_cc_single_mod=no - if test -z "$LT_MULTI_MODULE"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test 0 = "$_lt_result"; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi]) - - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS=$save_LDFLAGS - ]) - - AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], - [lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD - echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD - $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) - case $MACOSX_DEPLOYMENT_TARGET,$host in - 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - *) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test yes = "$lt_cv_apple_cc_single_mod"; then - _lt_dar_single_mod='$single_module' - fi - if test yes = "$lt_cv_ld_exported_symbols_list"; then - _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' - fi - if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac -]) - - -# _LT_DARWIN_LINKER_FEATURES([TAG]) -# --------------------------------- -# Checks for linker and compiler features on darwin -m4_defun([_LT_DARWIN_LINKER_FEATURES], -[ - m4_require([_LT_REQUIRED_DARWIN_CHECKS]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_automatic, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test yes = "$lt_cv_ld_force_load"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], - [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='' - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined - case $cc_basename in - ifort*|nagfor*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test yes = "$_lt_dar_can_shared"; then - output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" - m4_if([$1], [CXX], -[ if test yes != "$lt_cv_apple_cc_single_mod"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" - _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" - fi -],[]) - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -]) - -# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -# ---------------------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -# Store the results from the different compilers for each TAGNAME. -# Allow to override them for all tags through lt_cv_aix_libpath. -m4_defun([_LT_SYS_MODULE_PATH_AIX], -[m4_require([_LT_DECL_SED])dnl -if test set = "${lt_cv_aix_libpath+set}"; then - aix_libpath=$lt_cv_aix_libpath -else - AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], - [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ - lt_aix_libpath_sed='[ - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }]' - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi],[]) - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib - fi - ]) - aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -fi -])# _LT_SYS_MODULE_PATH_AIX - - -# _LT_SHELL_INIT(ARG) -# ------------------- -m4_define([_LT_SHELL_INIT], -[m4_divert_text([M4SH-INIT], [$1 -])])# _LT_SHELL_INIT - - - -# _LT_PROG_ECHO_BACKSLASH -# ----------------------- -# Find how we can fake an echo command that does not interpret backslash. -# In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script that will find a shell with a builtin -# printf (that we can use as an echo command). -m4_defun([_LT_PROG_ECHO_BACKSLASH], -[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -AC_MSG_CHECKING([how to print strings]) -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$[]1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -case $ECHO in - printf*) AC_MSG_RESULT([printf]) ;; - print*) AC_MSG_RESULT([print -r]) ;; - *) AC_MSG_RESULT([cat]) ;; -esac - -m4_ifdef([_AS_DETECT_SUGGESTED], -[_AS_DETECT_SUGGESTED([ - test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test "X`printf %s $ECHO`" = "X$ECHO" \ - || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) - -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) -])# _LT_PROG_ECHO_BACKSLASH - - -# _LT_WITH_SYSROOT -# ---------------- -AC_DEFUN([_LT_WITH_SYSROOT], -[m4_require([_LT_DECL_SED])dnl -AC_MSG_CHECKING([for sysroot]) -AC_ARG_WITH([sysroot], -[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], - [Search for dependent libraries within DIR (or the compiler's sysroot - if not specified).])], -[], [with_sysroot=no]) - -dnl lt_sysroot will always be passed unquoted. We quote it here -dnl in case the user passed a directory name. -lt_sysroot= -case $with_sysroot in #( - yes) - if test yes = "$GCC"; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - AC_MSG_RESULT([$with_sysroot]) - AC_MSG_ERROR([The sysroot must be an absolute path.]) - ;; -esac - - AC_MSG_RESULT([${lt_sysroot:-no}]) -_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and where our libraries should be installed.])]) - -# _LT_ENABLE_LOCK -# --------------- -m4_defun([_LT_ENABLE_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AS_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test no = "$enable_libtool_lock" || enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out what ABI is being produced by ac_compile, and set mode - # options accordingly. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `$FILECMD conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE=32 - ;; - *ELF-64*) - HPUX_IA64_MODE=64 - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test yes = "$lt_cv_prog_gnu_ld"; then - case `$FILECMD conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `$FILECMD conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -mips64*-*linux*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - emul=elf - case `$FILECMD conftest.$ac_objext` in - *32-bit*) - emul="${emul}32" - ;; - *64-bit*) - libsuff=64 - emul="${emul}64" - ;; - esac - case `$FILECMD conftest.$ac_objext` in - *MSB*) - emul="${emul}btsmip" - ;; - *LSB*) - emul="${emul}ltsmip" - ;; - esac - case `$FILECMD conftest.$ac_objext` in - *N32*) - libsuff=n32 - emul="${emul}n32" - ;; - esac - LD="${LD-ld} -m $emul" - fi - rm -rf conftest* - ;; - -aarch64*-*linux*|x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ -loongarch64*-*linux*| \ -riscv64*-*linux*|s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. Note that the listed cases only cover the - # situations where additional linker options are needed (such as when - # doing 32-bit compilation for a host where ld defaults to 64-bit, or - # vice versa); the common cases where no linker options are needed do - # not appear in the list. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `$FILECMD conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*-gnux32) - libsuff=x32 - LD="${LD-ld} -m elf32_x86_64" - ;; - x86_64-*linux*) - case `$FILECMD conftest.o` in - *x86-64*) - LD="${LD-ld} -m elf32_x86_64" - ;; - *) - LD="${LD-ld} -m elf_i386" - ;; - esac - ;; - powerpc64le-*linux*) - LD="${LD-ld} -m elf32lppclinux" - ;; - powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - libsuff=64 - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - powerpcle-*linux*) - LD="${LD-ld} -m elf64lppc" - ;; - powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test yes != "$lt_cv_cc_needs_belf"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS=$SAVE_CFLAGS - fi - ;; -*-*solaris*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `$FILECMD conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*|x86_64-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD=${LD-ld}_sol2 - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks=$enable_libtool_lock -])# _LT_ENABLE_LOCK - - -# _LT_PROG_AR -# ----------- -m4_defun([_LT_PROG_AR], -[AC_CHECK_TOOLS(AR, [ar], false) -: ${AR=ar} -_LT_DECL([], [AR], [1], [The archiver]) - -# Use ARFLAGS variable as AR's operation code to sync the variable naming with -# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have -# higher priority because thats what people were doing historically (setting -# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS -# variable obsoleted/removed. - -test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} -lt_ar_flags=$AR_FLAGS -_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) - -# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override -# by AR_FLAGS because that was never working and AR_FLAGS is about to die. -_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], - [Flags to create an archive]) - -AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], - [lt_cv_ar_at_file=no - AC_COMPILE_IFELSE([AC_LANG_PROGRAM], - [echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' - AC_TRY_EVAL([lt_ar_try]) - if test 0 -eq "$ac_status"; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - AC_TRY_EVAL([lt_ar_try]) - if test 0 -ne "$ac_status"; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - ]) - ]) - -if test no = "$lt_cv_ar_at_file"; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi -_LT_DECL([], [archiver_list_spec], [1], - [How to feed a file listing to the archiver]) -])# _LT_PROG_AR - - -# _LT_CMD_OLD_ARCHIVE -# ------------------- -m4_defun([_LT_CMD_OLD_ARCHIVE], -[_LT_PROG_AR - -AC_CHECK_TOOL(STRIP, strip, :) -test -z "$STRIP" && STRIP=: -_LT_DECL([], [STRIP], [1], [A symbol stripping program]) - -AC_CHECK_TOOL(RANLIB, ranlib, :) -test -z "$RANLIB" && RANLIB=: -_LT_DECL([], [RANLIB], [1], - [Commands used to install an old-style archive]) - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - bitrig* | openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac -_LT_DECL([], [old_postinstall_cmds], [2]) -_LT_DECL([], [old_postuninstall_cmds], [2]) -_LT_TAGDECL([], [old_archive_cmds], [2], - [Commands used to build an old-style archive]) -_LT_DECL([], [lock_old_archive_extraction], [0], - [Whether to use a lock for old archive extraction]) -])# _LT_CMD_OLD_ARCHIVE - - -# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([_LT_COMPILER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $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 other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $RM conftest* -]) - -if test yes = "[$]$2"; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# _LT_COMPILER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) - - -# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------- -# Check whether the given linker option works -AC_DEFUN([_LT_LINKER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $RM -r conftest* - LDFLAGS=$save_LDFLAGS -]) - -if test yes = "[$]$2"; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# _LT_LINKER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) - - -# LT_CMD_MAX_LEN -#--------------- -AC_DEFUN([LT_CMD_MAX_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring=ABCD - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - 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` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then - 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` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test X`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test 17 != "$i" # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n "$lt_cv_sys_max_cmd_len"; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -max_cmd_len=$lt_cv_sys_max_cmd_len -_LT_DECL([], [max_cmd_len], [0], - [What is the maximum length of a command?]) -])# LT_CMD_MAX_LEN - -# Old name: -AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) - - -# _LT_HEADER_DLFCN -# ---------------- -m4_defun([_LT_HEADER_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_HEADER_DLFCN - - -# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ---------------------------------------------------------------- -m4_defun([_LT_TRY_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test yes = "$cross_compiling"; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include <dlfcn.h> -#endif - -#include <stdio.h> - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisibility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -}] -_LT_EOF - if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_TRY_DLOPEN_SELF - - -# LT_SYS_DLOPEN_SELF -# ------------------ -AC_DEFUN([LT_SYS_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test yes != "$enable_dlopen"; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen=load_add_on - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen=LoadLibrary - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ - lt_cv_dlopen=dyld - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - tpf*) - # Don't try to run any link tests for TPF. We know it's impossible - # because TPF is a cross-compiler, and we know how we open DSOs. - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - lt_cv_dlopen_self=no - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen=shl_load], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen=dlopen], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test no = "$lt_cv_dlopen"; then - enable_dlopen=no - else - enable_dlopen=yes - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS=$CPPFLAGS - test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS=$LDFLAGS - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS=$LIBS - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test yes = "$lt_cv_dlopen_self"; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS=$save_CPPFLAGS - LDFLAGS=$save_LDFLAGS - LIBS=$save_LIBS - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# LT_SYS_DLOPEN_SELF - -# Old name: -AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) - - -# _LT_COMPILER_C_O([TAGNAME]) -# --------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler. -# This macro does not hard code the compiler like AC_PROG_CC_C_O. -m4_defun([_LT_COMPILER_C_O], -[m4_require([_LT_DECL_SED])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - 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 - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* -]) -_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) -])# _LT_COMPILER_C_O - - -# _LT_COMPILER_FILE_LOCKS([TAGNAME]) -# ---------------------------------- -# Check to see if we can do hard links to lock some files if needed -m4_defun([_LT_COMPILER_FILE_LOCKS], -[m4_require([_LT_ENABLE_LOCK])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_COMPILER_C_O([$1]) - -hard_links=nottested -if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test no = "$hard_links"; then - AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# _LT_COMPILER_FILE_LOCKS - - -# _LT_CHECK_OBJDIR -# ---------------- -m4_defun([_LT_CHECK_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", - [Define to the sub-directory where libtool stores uninstalled libraries.]) -])# _LT_CHECK_OBJDIR - - -# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -# -------------------------------------- -# Check hardcoding attributes. -m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_TAGVAR(runpath_var, $1)" || - test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then - - # We can hardcode non-existent directories. - if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && - test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then - # Linking always hardcodes the temporary library directory. - _LT_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) - -if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || - test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then - # Fast installation is not supported - enable_fast_install=no -elif test yes = "$shlibpath_overrides_runpath" || - test no = "$enable_shared"; then - # Fast installation is not necessary - enable_fast_install=needless -fi -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# _LT_LINKER_HARDCODE_LIBPATH - - -# _LT_CMD_STRIPLIB -# ---------------- -m4_defun([_LT_CMD_STRIPLIB], -[m4_require([_LT_DECL_EGREP]) -striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -z "$STRIP"; then - AC_MSG_RESULT([no]) -else - if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - old_striplib="$STRIP --strip-debug" - striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) - else - case $host_os in - darwin*) - # FIXME - insert some real tests, host_os isn't really good enough - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - ;; - freebsd*) - if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then - old_striplib="$STRIP --strip-debug" - striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac - fi -fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# _LT_CMD_STRIPLIB - - -# _LT_PREPARE_MUNGE_PATH_LIST -# --------------------------- -# Make sure func_munge_path_list() is defined correctly. -m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], -[[# func_munge_path_list VARIABLE PATH -# ----------------------------------- -# VARIABLE is name of variable containing _space_ separated list of -# directories to be munged by the contents of PATH, which is string -# having a format: -# "DIR[:DIR]:" -# string "DIR[ DIR]" will be prepended to VARIABLE -# ":DIR[:DIR]" -# string "DIR[ DIR]" will be appended to VARIABLE -# "DIRP[:DIRP]::[DIRA:]DIRA" -# string "DIRP[ DIRP]" will be prepended to VARIABLE and string -# "DIRA[ DIRA]" will be appended to VARIABLE -# "DIR[:DIR]" -# VARIABLE will be replaced by "DIR[ DIR]" -func_munge_path_list () -{ - case x@S|@2 in - x) - ;; - *:) - eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" - ;; - x:*) - eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" - ;; - *::*) - eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" - eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" - ;; - *) - eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" - ;; - esac -} -]])# _LT_PREPARE_PATH_LIST - - -# _LT_SYS_DYNAMIC_LINKER([TAG]) -# ----------------------------- -# PORTME Fill in your ld.so characteristics -m4_defun([_LT_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_OBJDUMP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test yes = "$GCC"; then - case $host_os in - darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; - *) lt_awk_arg='/^libraries:/' ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; - *) lt_sed_strip_eq='s|=/|/|g' ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary... - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - # ...but if some path component already ends with the multilib dir we assume - # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). - case "$lt_multi_os_dir; $lt_search_path_spec " in - "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) - lt_multi_os_dir= - ;; - esac - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" - elif test -n "$lt_multi_os_dir"; then - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS = " "; FS = "/|\n";} { - lt_foo = ""; - lt_count = 0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo = "/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib$libsuff /usr/lib$libsuff /usr/local/lib$libsuff" -fi]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=.so -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib$libsuff /usr/lib$libsuff" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -AC_ARG_VAR([LT_SYS_LIBRARY_PATH], -[User-defined run-time library search path.]) - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='$libname$release$shared_ext$major' - ;; - -aix[[4-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test ia64 = "$host_cpu"; then - # AIX 5 supports IA64 - library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line '#! .'. This would cause the generated library to - # depend on '.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # Using Import Files as archive members, it is possible to support - # filename-based versioning of shared library archives on AIX. While - # this would work for both with and without runtime linking, it will - # prevent static linking of such archives. So we do filename-based - # shared library versioning with .so extension only, which is used - # when both runtime linking and shared linking is enabled. - # Unfortunately, runtime linking may impact performance, so we do - # not want this to be the default eventually. Also, we use the - # versioned .so libs for executables only if there is the -brtl - # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. - # To allow for filename-based versioning support, we need to create - # libNAME.so.V as an archive file, containing: - # *) an Import File, referring to the versioned filename of the - # archive as well as the shared archive member, telling the - # bitwidth (32 or 64) of that shared object, and providing the - # list of exported symbols of that shared object, eventually - # decorated with the 'weak' keyword - # *) the shared object with the F_LOADONLY flag set, to really avoid - # it being seen by the linker. - # At run time we better use the real file rather than another symlink, - # but for link time we create the symlink libNAME.so -> libNAME.so.V - - case $with_aix_soname,$aix_use_runtimelinking in - # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - aix,yes) # traditional libtool - dynamic_linker='AIX unversionable lib.so' - # If using run time linking (on AIX 4.2 or later) use lib<name>.so - # instead of lib<name>.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - ;; - aix,no) # traditional AIX only - dynamic_linker='AIX lib.a[(]lib.so.V[)]' - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' - ;; - svr4,*) # full svr4 only - dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" - library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' - # We do not specify a path in Import Files, so LIBPATH fires. - shlibpath_overrides_runpath=yes - ;; - *,yes) # both, prefer svr4 - dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" - library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' - # unpreferred sharedlib libNAME.a needs extra handling - postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' - postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' - # We do not specify a path in Import Files, so LIBPATH fires. - shlibpath_overrides_runpath=yes - ;; - *,no) # both, prefer aix - dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" - library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' - # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling - postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' - postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' - ;; - esac - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='$libname$shared_ext' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=.dll - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl* | *,icl*) - # Native MSVC or ICC - libname_spec='$name' - soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' - library_names_spec='$libname.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec=$LIB - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC and ICC wrapper - library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' - soname_spec='$libname$release$major$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly* | midnightbsd*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[23]].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=no - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - if test 32 = "$HPUX_IA64_MODE"; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - sys_lib_dlsearch_path_spec=/usr/lib/hpux32 - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - sys_lib_dlsearch_path_spec=/usr/lib/hpux64 - fi - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[[3-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test yes = "$lt_cv_prog_gnu_ld"; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='$libname$release$shared_ext$major' - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" - sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -linux*android*) - version_type=none # Android doesn't support versioned libraries. - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext' - soname_spec='$libname$release$shared_ext' - finish_cmds= - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - dynamic_linker='Android linker' - # Don't embed -rpath directories since the linker doesn't support them. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], - [lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [lt_cv_shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - ]) - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Ideally, we could use ldconfig to report *all* directores which are - # searched for libraries, however this is still not possible. Aside from not - # being certain /sbin/ldconfig is available, command - # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, - # even though it is searched at run-time. Try to do the best guess by - # appending ld.so.conf contents (and includes) to the search path. - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd* | bitrig*) - version_type=sunos - sys_lib_dlsearch_path_spec=/usr/lib - need_lib_prefix=no - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - need_version=no - else - need_version=yes - fi - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -os2*) - libname_spec='$name' - version_type=windows - shrext_cmds=.dll - need_version=no - need_lib_prefix=no - # OS/2 can only load a DLL with a base name of 8 characters or less. - soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; - v=$($ECHO $release$versuffix | tr -d .-); - n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); - $ECHO $n$v`$shared_ext' - library_names_spec='${libname}_dll.$libext' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=BEGINLIBPATH - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='$libname$release$shared_ext$major' - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test yes = "$with_gnu_ld"; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec; then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' - soname_spec='$libname$shared_ext.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=sco - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test yes = "$with_gnu_ld"; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test no = "$dynamic_linker" && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test yes = "$GCC"; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then - sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec -fi - -if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then - sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec -fi - -# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... -configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec - -# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code -func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" - -# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool -configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH - -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shlibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [[List of archive names. First name is the real one, the rest are links. - The last name is the one that the linker finds with -lNAME]]) -_LT_DECL([], [soname_spec], [1], - [[The coded name of the library, if different from the real name]]) -_LT_DECL([], [install_override_mode], [1], - [Permission mode override for installation of shared libraries]) -_LT_DECL([], [postinstall_cmds], [2], - [Command to use after installation of a shared archive]) -_LT_DECL([], [postuninstall_cmds], [2], - [Command to use after uninstallation of a shared archive]) -_LT_DECL([], [finish_cmds], [2], - [Commands used to finish a libtool library installation in a directory]) -_LT_DECL([], [finish_eval], [1], - [[As "finish_cmds", except a single script fragment to be evaled but - not shown]]) -_LT_DECL([], [hardcode_into_libs], [0], - [Whether we should hardcode library paths into libraries]) -_LT_DECL([], [sys_lib_search_path_spec], [2], - [Compile-time system search path for libraries]) -_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], - [Detected run-time system search path for libraries]) -_LT_DECL([], [configure_time_lt_sys_library_path], [2], - [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) -])# _LT_SYS_DYNAMIC_LINKER - - -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program that can recognize shared library -AC_DEFUN([_LT_PATH_TOOL_PREFIX], -[m4_require([_LT_DECL_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD=$MAGIC_CMD - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$1"; then - lt_cv_path_MAGIC_CMD=$ac_dir/"$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD=$lt_cv_path_MAGIC_CMD - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS=$lt_save_ifs - MAGIC_CMD=$lt_save_MAGIC_CMD - ;; -esac]) -MAGIC_CMD=$lt_cv_path_MAGIC_CMD -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins with "file"])dnl -])# _LT_PATH_TOOL_PREFIX - -# Old name: -AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) - - -# _LT_PATH_MAGIC -# -------------- -# find a file program that can recognize a shared library -m4_defun([_LT_PATH_MAGIC], -[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# _LT_PATH_MAGIC - - -# LT_PATH_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([LT_PATH_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PROG_ECHO_BACKSLASH])dnl - -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test no = "$withval" || with_gnu_ld=yes], - [with_gnu_ld=no])dnl - -ac_prog=ld -if test yes = "$GCC"; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - 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. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname 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 yes = "$with_gnu_ld"; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD=$ac_dir/$ac_prog - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in - *GNU* | *'with BFD'*) - test no != "$with_gnu_ld" && break - ;; - *) - test yes != "$with_gnu_ld" && break - ;; - esac - fi - done - IFS=$lt_save_ifs -else - lt_cv_path_LD=$LD # Let the user override the test with a path. -fi]) -LD=$lt_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]) -_LT_PATH_LD_GNU -AC_SUBST([LD]) - -_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) -])# LT_PATH_LD - -# Old names: -AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) -AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_PROG_LD], []) -dnl AC_DEFUN([AC_PROG_LD], []) - - -# _LT_PATH_LD_GNU -#- -------------- -m4_defun([_LT_PATH_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 </dev/null` in -*GNU* | *'with BFD'*) - lt_cv_prog_gnu_ld=yes - ;; -*) - lt_cv_prog_gnu_ld=no - ;; -esac]) -with_gnu_ld=$lt_cv_prog_gnu_ld -])# _LT_PATH_LD_GNU - - -# _LT_CMD_RELOAD -# -------------- -# find reload flag for linker -# -- PORTME Some linkers may need a different reload flag. -m4_defun([_LT_CMD_RELOAD], -[AC_CACHE_CHECK([for $LD option to reload object files], - lt_cv_ld_reload_flag, - [lt_cv_ld_reload_flag='-r']) -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test yes != "$GCC"; then - reload_cmds=false - fi - ;; - darwin*) - if test yes = "$GCC"; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac -_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl -_LT_TAGDECL([], [reload_cmds], [2])dnl -])# _LT_CMD_RELOAD - - -# _LT_PATH_DD -# ----------- -# find a working dd -m4_defun([_LT_PATH_DD], -[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD], -[printf 0123456789abcdef0123456789abcdef >conftest.i -cat conftest.i conftest.i >conftest2.i -: ${lt_DD:=$DD} -AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], -[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then - cmp -s conftest.i conftest.out \ - && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: -fi]) -rm -f conftest.i conftest2.i conftest.out]) -])# _LT_PATH_DD - - -# _LT_CMD_TRUNCATE -# ---------------- -# find command to truncate a binary pipe -m4_defun([_LT_CMD_TRUNCATE], -[m4_require([_LT_PATH_DD]) -AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], -[printf 0123456789abcdef0123456789abcdef >conftest.i -cat conftest.i conftest.i >conftest2.i -lt_cv_truncate_bin= -if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then - cmp -s conftest.i conftest.out \ - && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" -fi -rm -f conftest.i conftest2.i conftest.out -test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) -_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], - [Command to truncate a binary pipe]) -])# _LT_CMD_TRUNCATE - - -# _LT_CHECK_MAGIC_METHOD -# ---------------------- -# how to check for library dependencies -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_MAGIC_METHOD], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -AC_CACHE_CHECK([how to recognize dependent libraries], -lt_cv_deplibs_check_method, -[lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# 'unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# that responds to the $file_magic_cmd with a given extended regex. -# If you have 'file' or equivalent on your system and you're not sure -# whether 'pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[[4-9]]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[[45]]*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='$FILECMD -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly* | midnightbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=$FILECMD - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=$FILECMD - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=$FILECMD - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd* | bitrig*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -os2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -_LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) -_LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method = "file_magic"]) -_LT_DECL([], [file_magic_glob], [1], - [How to find potential files when deplibs_check_method = "file_magic"]) -_LT_DECL([], [want_nocaseglob], [1], - [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) -])# _LT_CHECK_MAGIC_METHOD - - -# LT_PATH_NM -# ---------- -# find the pathname to a BSD- or MS-compatible name lister -AC_DEFUN([LT_PATH_NM], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM=$NM -else - lt_nm_to_check=${ac_tool_prefix}nm - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - tmp_nm=$ac_dir/$lt_tmp_nm - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the 'sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty - case $build_os in - mingw*) lt_bad_file=conftest.nm/nofile ;; - *) lt_bad_file=/dev/null ;; - esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in - *$lt_bad_file* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break 2 - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break 2 - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS=$lt_save_ifs - done - : ${lt_cv_path_NM=no} -fi]) -if test no != "$lt_cv_path_NM"; then - NM=$lt_cv_path_NM -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols -headers" - ;; - *) - DUMPBIN=: - ;; - esac - fi - AC_SUBST([DUMPBIN]) - if test : != "$DUMPBIN"; then - NM=$DUMPBIN - fi -fi -test -z "$NM" && NM=nm -AC_SUBST([NM]) -_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl - -AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], - [lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) - cat conftest.out >&AS_MESSAGE_LOG_FD - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest*]) -])# LT_PATH_NM - -# Old names: -AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) -AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_PROG_NM], []) -dnl AC_DEFUN([AC_PROG_NM], []) - -# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -# -------------------------------- -# how to determine the name of the shared library -# associated with a specific link library. -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -m4_require([_LT_DECL_DLLTOOL]) -AC_CACHE_CHECK([how to associate runtime and link libraries], -lt_cv_sharedlib_from_linklib_cmd, -[lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh; - # decide which one to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd=$ECHO - ;; -esac -]) -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - -_LT_DECL([], [sharedlib_from_linklib_cmd], [1], - [Command to associate shared and link libraries]) -])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB - - -# _LT_PATH_MANIFEST_TOOL -# ---------------------- -# locate the manifest tool -m4_defun([_LT_PATH_MANIFEST_TOOL], -[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], - [lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&AS_MESSAGE_LOG_FD - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest*]) -if test yes != "$lt_cv_path_mainfest_tool"; then - MANIFEST_TOOL=: -fi -_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -])# _LT_PATH_MANIFEST_TOOL - - -# _LT_DLL_DEF_P([FILE]) -# --------------------- -# True iff FILE is a Windows DLL '.def' file. -# Keep in sync with func_dll_def_p in the libtool script -AC_DEFUN([_LT_DLL_DEF_P], -[dnl - test DEF = "`$SED -n dnl - -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace - -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments - -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl - -e q dnl Only consider the first "real" line - $1`" dnl -])# _LT_DLL_DEF_P - - -# LT_LIB_M -# -------- -# check for math library -AC_DEFUN([LT_LIB_M], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM=-lm) - ;; -esac -AC_SUBST([LIBM]) -])# LT_LIB_M - -# Old name: -AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_CHECK_LIBM], []) - - -# _LT_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------- -m4_defun([_LT_COMPILER_NO_RTTI], -[m4_require([_LT_TAG_COMPILER])dnl - -_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test yes = "$GCC"; then - case $cc_basename in - nvcc*) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; - *) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; - esac - - _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], - [Compiler flag to turn off builtin functions]) -])# _LT_COMPILER_NO_RTTI - - -# _LT_CMD_GLOBAL_SYMBOLS -# ---------------------- -m4_defun([_LT_CMD_GLOBAL_SYMBOLS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([LT_PATH_NM])dnl -AC_REQUIRE([LT_PATH_LD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_TAG_COMPILER])dnl - -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) - if test ia64 = "$host_cpu"; then - symcode='[[ABCDEGRST]]' - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" - # Adjust the below global symbol transforms to fixup imported variables. - lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" - lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" - lt_c_name_lib_hook="\ - -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ - -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" -else - # Disable hooks by default. - lt_cv_sys_global_symbol_to_import= - lt_cdecl_hook= - lt_c_name_hook= - lt_c_name_lib_hook= -fi - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ -$lt_cdecl_hook\ -" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ -$lt_c_name_hook\ -" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" - -# Transform an extracted symbol line into symbol name with lib prefix and -# symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ -$lt_c_name_lib_hook\ -" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function, - # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++ or ICC, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK ['"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ -" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ -" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ -" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ -" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx]" - else - lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE -/* DATA imports from DLLs on WIN32 can't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT@&t@_DLSYM_CONST -#elif defined __osf__ -/* This system does not cope well with relocations in const data. */ -# define LT@&t@_DLSYM_CONST -#else -# define LT@&t@_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[[]] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS=conftstm.$ac_objext - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test yes = "$pipe_works"; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - -_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) -_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], - [Transform the output of nm in a proper C declaration]) -_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], - [Transform the output of nm into a list of symbols to manually relocate]) -_LT_DECL([global_symbol_to_c_name_address], - [lt_cv_sys_global_symbol_to_c_name_address], [1], - [Transform the output of nm in a C name address pair]) -_LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], - [The name lister interface]) -_LT_DECL([], [nm_file_list_spec], [1], - [Specify filename containing input files for $NM]) -]) # _LT_CMD_GLOBAL_SYMBOLS - - -# _LT_COMPILER_PIC([TAGNAME]) -# --------------------------- -m4_defun([_LT_COMPILER_PIC], -[m4_require([_LT_TAG_COMPILER])dnl -_LT_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_TAGVAR(lt_prog_compiler_static, $1)= - -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test yes = "$GXX"; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the '-m68020' flag to GCC prevents building anything better, - # like '-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - case $host_os in - os2*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' - ;; - esac - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix[[4-9]]*) - # All AIX code is PIC. - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_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" - ;; - esac - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly* | midnightbsd*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' - if test ia64 != "$host_cpu"; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - ecpc* ) - # old Intel C++ for x86_64, which still supported -KPIC. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - icpc* ) - # Intel C++, used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) - # IBM XL 8.0, 9.0 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | $SED 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd*) - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test yes = "$GCC"; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the '-m68020' flag to GCC prevents building anything better, - # like '-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - case $host_os in - os2*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' - ;; - esac - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - case $cc_basename in - nagfor*) - # NAG Fortran compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - case $host_os in - os2*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' - ;; - esac - ;; - - hpux9* | hpux10* | hpux11*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64, which still supported -KPIC. - ecc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; - nagfor*) - # NAG Fortran compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - tcc*) - # Fabrice Bellard et al's Tiny C Compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | $SED 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - *Sun\ F* | *Sun*Fortran*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - *Intel*\ [[CF]]*Compiler*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - *Portland\ Group*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - rdos*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - solaris*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; - - sunos4*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - unicos*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - - uts4*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -case $host_os in - # For platforms that do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac - -AC_CACHE_CHECK([for $compiler option to produce PIC], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], - [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], - [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) -# -# Check to make sure the static flag actually works. -# -wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" -_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) -_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - [Compiler flag to prevent dynamic linking]) -])# _LT_COMPILER_PIC - - -# _LT_LINKER_SHLIBS([TAGNAME]) -# ---------------------------- -# See if the linker supports building shared libraries. -m4_defun([_LT_LINKER_SHLIBS], -[AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to GNU nm, but means don't demangle to AIX nm. - # Without the "-l" option, or with the "-B" option, AIX nm treats - # weak defined symbols like other global defined symbols, whereas - # GNU nm marks them as "W". - # While the 'weak' keyword is ignored in the Export File, we need - # it in the Import File for the 'aix-soname' feature, so we have - # to replace the "-B" option with "-P" for AIX nm. - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds - ;; - cygwin* | mingw* | cegcc*) - case $cc_basename in - cl* | icl*) - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - ;; - esac - ;; - linux* | k*bsd*-gnu) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(archive_cmds, $1)= - _LT_TAGVAR(archive_expsym_cmds, $1)= - _LT_TAGVAR(compiler_needs_object, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(hardcode_automatic, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_separator, $1)= - _LT_TAGVAR(hardcode_minus_L, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(inherit_rpath, $1)=no - _LT_TAGVAR(link_all_deplibs, $1)=unknown - _LT_TAGVAR(module_cmds, $1)= - _LT_TAGVAR(module_expsym_cmds, $1)= - _LT_TAGVAR(old_archive_from_new_cmds, $1)= - _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_TAGVAR(thread_safe_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ' (' and ')$', so one must not match beginning or - # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', - # as well as any symbol that contains 'd'. - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. -dnl Note also adjust exclude_expsyms for C++ above. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++ or Intel C++ Compiler. - if test yes != "$GCC"; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) - with_gnu_ld=yes - ;; - openbsd* | bitrig*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; - esac - - _LT_TAGVAR(ld_shlibs, $1)=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test yes = "$with_gnu_ld"; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; - *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test yes = "$lt_use_gnu_ld_interface"; 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_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_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_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [[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 - aix[[3-9]]*) - # On AIX/PPC, the GNU linker is very broken - if test ia64 != "$host_cpu"; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file, use it as - # is; otherwise, prepend EXPORTS... - _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - shrext_cmds=.dll - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test linux-dietlibc = "$host_os"; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test no = "$tmp_diet" - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - tmp_addflag=' $pic_flag -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' ;; - lf95*) # Lahey Fortran 8.1 - _LT_TAGVAR(whole_archive_flag_spec, $1)= - tmp_sharedflag='--shared' ;; - nagfor*) # NAGFOR 5.3 - tmp_sharedflag='-Wl,-shared' ;; - xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - ;; - esac - case `$CC -V 2>&1 | $SED 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - - if test yes = "$supports_anon_versioning"; then - _LT_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~ - if test -r $libname-altlinux.ver; then cp $libname-altlinux.ver $output_objdir/$libname.ver; fi~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - tcc*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' - ;; - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test yes = "$supports_anon_versioning"; then - _LT_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~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - sunos4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then - runpath_var= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix[[4-9]]*) - if test ia64 = "$host_cpu"; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag= - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to GNU nm, but means don't demangle to AIX nm. - # Without the "-l" option, or with the "-B" option, AIX nm treats - # weak defined symbols like other global defined symbols, whereas - # GNU nm marks them as "W". - # While the 'weak' keyword is ignored in the Export File, we need - # it in the Import File for the 'aix-soname' feature, so we have - # to replace the "-B" option with "-P" for AIX nm. - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # have runtime linking enabled, and use it for executables. - # For shared libraries, we enable/disable runtime linking - # depending on the kind of the shared library created - - # when "with_aix_soname,aix_use_runtimelinking" is: - # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables - # "aix,yes" lib.so shared, rtl:yes, for executables - # lib.a static archive - # "both,no" lib.so.V(shr.o) shared, rtl:yes - # lib.a(lib.so.V) shared, rtl:no, for executables - # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a(lib.so.V) shared, rtl:no - # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a static archive - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then - aix_use_runtimelinking=yes - break - fi - done - if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then - # With aix-soname=svr4, we create the lib.so.V shared archives only, - # so we don't have lib.a shared libs to link our executables. - # We have to force runtime linking in this case. - aix_use_runtimelinking=yes - LDFLAGS="$LDFLAGS -Wl,-brtl" - fi - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='$wl-f,' - case $with_aix_soname,$aix_use_runtimelinking in - aix,*) ;; # traditional, no import file - svr4,* | *,yes) # use import file - # The Import File defines what to hardcode. - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - ;; - esac - - if test yes = "$GCC"; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`$CC -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test yes = "$aix_use_runtimelinking"; then - shared_flag="$shared_flag "'$wl-G' - fi - # Need to ensure runtime linking is disabled for the traditional - # shared library, or the linker may eventually find shared libraries - # /with/ Import File - we do not want to mix them. - shared_flag_aix='-shared' - shared_flag_svr4='-shared $wl-G' - else - # not using gcc - if test ia64 = "$host_cpu"; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test yes = "$aix_use_runtimelinking"; then - shared_flag='$wl-G' - else - shared_flag='$wl-bM:SRE' - fi - shared_flag_aix='$wl-bM:SRE' - shared_flag_svr4='$wl-G' - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag - else - if test ia64 = "$host_cpu"; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' - if test yes = "$with_gnu_ld"; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' - # -brtl affects multiple linker settings, -berok does not and is overridden later - compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' - if test svr4 != "$with_aix_soname"; then - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' - fi - if test aix != "$with_aix_soname"; then - _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' - else - # used by -dlpreopen to get the symbols - _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' - fi - _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - bsdi[[45]]*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++ or Intel C++ Compiler. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl* | icl*) - # Native MSVC or ICC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then - cp "$export_symbols" "$output_objdir/$soname.def"; - echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; - else - $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile=$lt_outputfile.exe - lt_tool_outputfile=$lt_tool_outputfile.exe - ;; - esac~ - if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC and ICC wrapper - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - esac - ;; - - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly* | midnightbsd*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test yes = "$GCC"; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - ;; - - hpux10*) - if test yes,no = "$GCC,$with_gnu_ld"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test no = "$with_gnu_ld"; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; - - hpux11*) - if test yes,no = "$GCC,$with_gnu_ld"; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - m4_if($1, [], [ - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - _LT_LINKER_OPTION([if $CC understands -b], - _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], - [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) - ;; - esac - fi - if test no = "$with_gnu_ld"; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test yes = "$GCC"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], - [lt_cv_irix_exported_symbol], - [save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" - AC_LINK_IFELSE( - [AC_LANG_SOURCE( - [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], - [C++], [[int foo (void) { return 0; }]], - [Fortran 77], [[ - subroutine foo - end]], - [Fortran], [[ - subroutine foo - end]])])], - [lt_cv_irix_exported_symbol=yes], - [lt_cv_irix_exported_symbol=no]) - LDFLAGS=$save_LDFLAGS]) - if test yes = "$lt_cv_irix_exported_symbol"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' - fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - linux*) - case $cc_basename in - tcc*) - # Fabrice Bellard et al's Tiny C Compiler - _LT_TAGVAR(ld_shlibs, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *nto* | *qnx*) - ;; - - openbsd* | bitrig*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' - fi - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - shrext_cmds=.dll - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - ;; - - osf3*) - if test yes = "$GCC"; then - _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test yes = "$GCC"; then - _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - solaris*) - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test yes = "$GCC"; then - wlarc='$wl' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_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' - ;; - *) - wlarc='$wl' - _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands '-z linker_flag'. GCC discards it without '$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test yes = "$GCC"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test sequent = "$host_vendor"; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test yes = "$GCC"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We CANNOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' - runpath_var='LD_RUN_PATH' - - if test yes = "$GCC"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - if test sni = "$host_vendor"; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' - ;; - esac - fi - fi -]) -AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no - -_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld - -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) - -# -# Do we need to explicitly link libc? -# -case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test yes,yes = "$GCC,$enable_shared"; then - case $_LT_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_CACHE_CHECK([whether -lc should be explicitly linked in], - [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), - [$RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - ]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) - ;; - esac - fi - ;; -esac - -_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], - [Whether or not to add -lc for building shared libraries]) -_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], - [enable_shared_with_static_runtimes], [0], - [Whether or not to disallow shared libs when runtime libs are static]) -_LT_TAGDECL([], [export_dynamic_flag_spec], [1], - [Compiler flag to allow reflexive dlopens]) -_LT_TAGDECL([], [whole_archive_flag_spec], [1], - [Compiler flag to generate shared objects directly from archives]) -_LT_TAGDECL([], [compiler_needs_object], [1], - [Whether the compiler copes with passing no objects directly]) -_LT_TAGDECL([], [old_archive_from_new_cmds], [2], - [Create an old-style archive from a shared archive]) -_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], - [Create a temporary old-style archive to link instead of a shared archive]) -_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -_LT_TAGDECL([], [archive_expsym_cmds], [2]) -_LT_TAGDECL([], [module_cmds], [2], - [Commands used to build a loadable module if different from building - a shared archive.]) -_LT_TAGDECL([], [module_expsym_cmds], [2]) -_LT_TAGDECL([], [with_gnu_ld], [1], - [Whether we are building with GNU ld or not]) -_LT_TAGDECL([], [allow_undefined_flag], [1], - [Flag that allows shared libraries with undefined symbols to be built]) -_LT_TAGDECL([], [no_undefined_flag], [1], - [Flag that enforces no undefined symbols]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], - [Flag to hardcode $libdir into a binary during linking. - This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_separator], [1], - [Whether we need a single "-rpath" flag with a separated argument]) -_LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes - DIR into the resulting binary]) -_LT_TAGDECL([], [hardcode_direct_absolute], [0], - [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes - DIR into the resulting binary and the resulting library dependency is - "absolute", i.e impossible to change by setting $shlibpath_var if the - library is relocated]) -_LT_TAGDECL([], [hardcode_minus_L], [0], - [Set to "yes" if using the -LDIR flag during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_shlibpath_var], [0], - [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_automatic], [0], - [Set to "yes" if building a shared library automatically hardcodes DIR - into the library and all subsequent libraries and executables linked - against it]) -_LT_TAGDECL([], [inherit_rpath], [0], - [Set to yes if linker adds runtime paths of dependent libraries - to runtime path list]) -_LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) -_LT_TAGDECL([], [export_symbols_cmds], [2], - [The commands to list exported symbols]) -_LT_TAGDECL([], [exclude_expsyms], [1], - [Symbols that should not be listed in the preloaded symbols]) -_LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) -_LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -_LT_TAGDECL([], [postlink_cmds], [2], - [Commands necessary for finishing linking programs]) -_LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) -dnl FIXME: Not yet implemented -dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -dnl [Compiler flag to generate thread safe objects]) -])# _LT_LINKER_SHLIBS - - -# _LT_LANG_C_CONFIG([TAG]) -# ------------------------ -# Ensure that the configuration variables for a C compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to 'libtool'. -m4_defun([_LT_LANG_C_CONFIG], -[m4_require([_LT_DECL_EGREP])dnl -lt_save_CC=$CC -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - -_LT_TAG_COMPILER -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - LT_SYS_DLOPEN_SELF - _LT_CMD_STRIPLIB - - # Report what library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test no = "$can_build_shared" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test yes = "$enable_shared" && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[[4-9]]*) - if test ia64 != "$host_cpu"; then - case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in - yes,aix,yes) ;; # shared object as lib.so file only - yes,svr4,*) ;; # shared object as lib.so archive member only - yes,*) enable_static=no ;; # shared object in lib.a archive as well - esac - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test yes = "$enable_shared" || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_CONFIG($1) -fi -AC_LANG_POP -CC=$lt_save_CC -])# _LT_LANG_C_CONFIG - - -# _LT_LANG_CXX_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a C++ compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to 'libtool'. -m4_defun([_LT_LANG_CXX_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -case "$CXX" in - "" | no) - _lt_caught_CXX_error=yes - ;; - g++* | *-g++*) - if $CXX -v >/dev/null 2>&1; then - AC_PROG_CXXCPP - else - _lt_caught_CXX_error=yes - fi - ;; - *) - AC_PROG_CXXCPP - ;; -esac - -AC_LANG_PUSH(C++) -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(compiler_needs_object, $1)=no -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the CXX compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test yes != "$_lt_caught_CXX_error"; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="int some_variable = 0;" - - # Code to be used in simple link tests - lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_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_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX - lt_save_with_gnu_ld=$with_gnu_ld - lt_save_path_LD=$lt_cv_path_LD - if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx - else - $as_unset lt_cv_prog_gnu_ld - fi - if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX - else - $as_unset lt_cv_path_LD - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} - CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - # We don't want -fno-exception when compiling C++ code, so set the - # no_builtin_flag separately - if test yes = "$GXX"; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi - - if test yes = "$GXX"; then - # Set up default GNU C++ configuration - - LT_PATH_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test yes = "$with_gnu_ld"; then - _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='$wl' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | - $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - GXX=no - with_gnu_ld=no - wlarc= - fi - - # PORTME: fill in a description of your system's C++ link characteristics - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - _LT_TAGVAR(ld_shlibs, $1)=yes - case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aix[[4-9]]*) - if test ia64 = "$host_cpu"; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag= - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # have runtime linking enabled, and use it for executables. - # For shared libraries, we enable/disable runtime linking - # depending on the kind of the shared library created - - # when "with_aix_soname,aix_use_runtimelinking" is: - # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables - # "aix,yes" lib.so shared, rtl:yes, for executables - # lib.a static archive - # "both,no" lib.so.V(shr.o) shared, rtl:yes - # lib.a(lib.so.V) shared, rtl:no, for executables - # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a(lib.so.V) shared, rtl:no - # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a static archive - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then - # With aix-soname=svr4, we create the lib.so.V shared archives only, - # so we don't have lib.a shared libs to link our executables. - # We have to force runtime linking in this case. - aix_use_runtimelinking=yes - LDFLAGS="$LDFLAGS -Wl,-brtl" - fi - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='$wl-f,' - case $with_aix_soname,$aix_use_runtimelinking in - aix,*) ;; # no import file - svr4,* | *,yes) # use import file - # The Import File defines what to hardcode. - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - ;; - esac - - if test yes = "$GXX"; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`$CC -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - if test yes = "$aix_use_runtimelinking"; then - shared_flag=$shared_flag' $wl-G' - fi - # Need to ensure runtime linking is disabled for the traditional - # shared library, or the linker may eventually find shared libraries - # /with/ Import File - we do not want to mix them. - shared_flag_aix='-shared' - shared_flag_svr4='-shared $wl-G' - else - # not using gcc - if test ia64 = "$host_cpu"; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test yes = "$aix_use_runtimelinking"; then - shared_flag='$wl-G' - else - shared_flag='$wl-bM:SRE' - fi - shared_flag_aix='$wl-bM:SRE' - shared_flag_svr4='$wl-G' - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to - # export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - # The "-G" linker flag allows undefined symbols. - _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" - - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag - else - if test ia64 = "$host_cpu"; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' - if test yes = "$with_gnu_ld"; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' - # -brtl affects multiple linker settings, -berok does not and is overridden later - compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' - if test svr4 != "$with_aix_soname"; then - # This is similar to how AIX traditionally builds its shared - # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. - _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' - fi - if test aix != "$with_aix_soname"; then - _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' - else - # used by -dlpreopen to get the symbols - _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' - fi - _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32* | cegcc*) - case $GXX,$cc_basename in - ,cl* | no,cl* | ,icl* | no,icl*) - # Native MSVC or ICC - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then - cp "$export_symbols" "$output_objdir/$soname.def"; - echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; - else - $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile=$lt_outputfile.exe - lt_tool_outputfile=$lt_tool_outputfile.exe - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # g++ - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file, use it as - # is; otherwise, prepend EXPORTS... - _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - shrext_cmds=.dll - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - freebsd2.*) - # C++ shared libraries reported to be fairly broken before - # switch to ELF - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - freebsd-elf*) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - - freebsd* | dragonfly* | midnightbsd*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - hpux9*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_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 "x$output_objdir/$soname" = "x$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 - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test yes = "$GXX"; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - hpux10*|hpux11*) - if test no = "$with_gnu_ld"; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test yes = "$GXX"; then - if test no = "$with_gnu_ld"; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-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 - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test yes = "$GXX"; then - if test no = "$with_gnu_ld"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc* | ecpc* ) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_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' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - case `$CC -V` in - *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' - _LT_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' - - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' - ;; - xl* | mpixl* | bgxl*) - # IBM XL 8.0 on PPC, with GNU ld - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' - _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - if test yes = "$supports_anon_versioning"; then - _LT_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 -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' - fi - ;; - *) - if test "x$supports_anon_versioning" = xyes; then - _LT_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~ - if test -r $libname-altlinux.ver; then cp $libname-altlinux.ver $output_objdir/$libname.ver; fi~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case `$CC -V 2>&1 | $SED 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - - lynxos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - m88k*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - - *nto* | *qnx*) - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - openbsd* | bitrig*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' - fi - output_verbose_link_cmd=func_echo_all - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - case $host in - osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; - *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; - esac - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - case $host in - osf3*) - _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - ;; - *) - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - _LT_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 $output_objdir/so_locations -o $lib~ - $RM $lib.exp' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test yes,no = "$GXX,$with_gnu_ld"; then - _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' - case $host in - osf3*) - _LT_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" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - psos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands '-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test yes,no = "$GXX,$with_gnu_ld"; then - _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - else - # g++ 2.7 appears to require '-G' NOT '-shared' on this - # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - fi - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We CANNOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ - '"$_LT_TAGVAR(old_archive_cmds, $1)" - _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ - '"$_LT_TAGVAR(reload_cmds, $1)" - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - vxworks*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) - test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no - - _LT_TAGVAR(GCC, $1)=$GXX - _LT_TAGVAR(LD, $1)=$LD - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC - with_gnu_ld=$lt_save_with_gnu_ld - lt_cv_path_LDCXX=$lt_cv_path_LD - lt_cv_path_LD=$lt_save_path_LD - lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld - lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test yes != "$_lt_caught_CXX_error" - -AC_LANG_POP -])# _LT_LANG_CXX_CONFIG - - -# _LT_FUNC_STRIPNAME_CNF -# ---------------------- -# func_stripname_cnf prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# -# This function is identical to the (non-XSI) version of func_stripname, -# except this one can be used by m4 code that may be executed by configure, -# rather than the libtool script. -m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -AC_REQUIRE([_LT_DECL_SED]) -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -func_stripname_cnf () -{ - case @S|@2 in - .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; - *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; - esac -} # func_stripname_cnf -])# _LT_FUNC_STRIPNAME_CNF - - -# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) -# --------------------------------- -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -m4_defun([_LT_SYS_HIDDEN_LIBDEPS], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl -# Dependencies to place before and after the object being linked: -_LT_TAGVAR(predep_objects, $1)= -_LT_TAGVAR(postdep_objects, $1)= -_LT_TAGVAR(predeps, $1)= -_LT_TAGVAR(postdeps, $1)= -_LT_TAGVAR(compiler_lib_search_path, $1)= - -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -int a; -void foo (void) { a = 0; } -_LT_EOF -], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -_LT_EOF -], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer*4 a - a=0 - return - end -_LT_EOF -], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer a - a=0 - return - end -_LT_EOF -], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -_LT_EOF -], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF -package foo -func foo() { -} -_LT_EOF -]) - -_lt_libdeps_save_CFLAGS=$CFLAGS -case "$CC $CFLAGS " in #( -*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; -esac - -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do - case $prev$p in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test x-L = "$p" || - test x-R = "$p"; then - prev=$p - continue - fi - - # Expand the sysroot to ease extracting the directories later. - if test -z "$prev"; then - case $p in - -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; - -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; - -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; - esac - fi - case $p in - =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; - esac - if test no = "$pre_test_object_deps_done"; then - case $prev in - -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p - else - _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_TAGVAR(postdeps, $1)"; then - _LT_TAGVAR(postdeps, $1)=$prev$p - else - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" - fi - fi - prev= - ;; - - *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test no = "$pre_test_object_deps_done"; then - if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)=$p - else - _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)=$p - else - _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi - -$RM -f confest.$objext -CFLAGS=$_lt_libdeps_save_CFLAGS - -# PORTME: override above test on systems where it is broken -m4_if([$1], [CXX], -[case $host_os in -interix[[3-9]]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - _LT_TAGVAR(predep_objects,$1)= - _LT_TAGVAR(postdep_objects,$1)= - _LT_TAGVAR(postdeps,$1)= - ;; -esac -]) - -case " $_LT_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac - _LT_TAGVAR(compiler_lib_search_dirs, $1)= -if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` -fi -_LT_TAGDECL([], [compiler_lib_search_dirs], [1], - [The directories searched by this compiler when creating a shared library]) -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# _LT_SYS_HIDDEN_LIBDEPS - - -# _LT_LANG_F77_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a Fortran 77 compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to 'libtool'. -m4_defun([_LT_LANG_F77_CONFIG], -[AC_LANG_PUSH(Fortran 77) -if test -z "$F77" || test no = "$F77"; then - _lt_disable_F77=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the F77 compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test yes != "$_lt_disable_F77"; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_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_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} - CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - GCC=$G77 - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test no = "$can_build_shared" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test yes = "$enable_shared" && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test ia64 != "$host_cpu"; then - case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in - yes,aix,yes) ;; # shared object as lib.so file only - yes,svr4,*) ;; # shared object as lib.so archive member only - yes,*) enable_static=no ;; # shared object in lib.a archive as well - esac - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test yes = "$enable_shared" || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)=$G77 - _LT_TAGVAR(LD, $1)=$LD - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test yes != "$_lt_disable_F77" - -AC_LANG_POP -])# _LT_LANG_F77_CONFIG - - -# _LT_LANG_FC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for a Fortran compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to 'libtool'. -m4_defun([_LT_LANG_FC_CONFIG], -[AC_LANG_PUSH(Fortran) - -if test -z "$FC" || test no = "$FC"; then - _lt_disable_FC=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for fc test sources. -ac_ext=${ac_fc_srcext-f} - -# Object file extension for compiled fc test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the FC compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test yes != "$_lt_disable_FC"; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_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_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} - CFLAGS=$FCFLAGS - compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test no = "$can_build_shared" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test yes = "$enable_shared" && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test ia64 != "$host_cpu"; then - case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in - yes,aix,yes) ;; # shared object as lib.so file only - yes,svr4,*) ;; # shared object as lib.so archive member only - yes,*) enable_static=no ;; # shared object in lib.a archive as well - esac - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test yes = "$enable_shared" || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu - _LT_TAGVAR(LD, $1)=$LD - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test yes != "$_lt_disable_FC" - -AC_LANG_POP -])# _LT_LANG_FC_CONFIG - - -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to 'libtool'. -m4_defun([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ])dnl -AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_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_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GCJ-"gcj"} -CFLAGS=$GCJFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)=$LD -_LT_CC_BASENAME([$compiler]) - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GCJ_CONFIG - - -# _LT_LANG_GO_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Go compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to 'libtool'. -m4_defun([_LT_LANG_GO_CONFIG], -[AC_REQUIRE([LT_PROG_GO])dnl -AC_LANG_SAVE - -# Source file extension for Go test sources. -ac_ext=go - -# Object file extension for compiled Go test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="package main; func main() { }" - -# Code to be used in simple link tests -lt_simple_link_test_code='package main; func main() { }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_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_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GOC-"gccgo"} -CFLAGS=$GOFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)=$LD -_LT_CC_BASENAME([$compiler]) - -# Go did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GO_CONFIG - - -# _LT_LANG_RC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for the Windows resource compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to 'libtool'. -m4_defun([_LT_LANG_RC_CONFIG], -[AC_REQUIRE([LT_PROG_RC])dnl -AC_LANG_SAVE - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code=$lt_simple_compile_test_code - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_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_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC= -CC=${RC-"windres"} -CFLAGS= -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - -if test -n "$compiler"; then - : - _LT_CONFIG($1) -fi - -GCC=$lt_save_GCC -AC_LANG_RESTORE -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_RC_CONFIG - - -# LT_PROG_GCJ -# ----------- -AC_DEFUN([LT_PROG_GCJ], -[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], - [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], - [AC_CHECK_TOOL(GCJ, gcj,) - test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])[]dnl -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_GCJ], []) - - -# LT_PROG_GO -# ---------- -AC_DEFUN([LT_PROG_GO], -[AC_CHECK_TOOL(GOC, gccgo,) -]) - - -# LT_PROG_RC -# ---------- -AC_DEFUN([LT_PROG_RC], -[AC_CHECK_TOOL(RC, windres,) -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_RC], []) - - -# _LT_DECL_EGREP -# -------------- -# If we don't have a new enough Autoconf to choose the best grep -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_EGREP], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_FGREP])dnl -test -z "$GREP" && GREP=grep -_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) -_LT_DECL([], [EGREP], [1], [An ERE matcher]) -_LT_DECL([], [FGREP], [1], [A literal string matcher]) -dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too -AC_SUBST([GREP]) -]) - - -# _LT_DECL_OBJDUMP -# -------------- -# If we don't have a new enough Autoconf to choose the best objdump -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_OBJDUMP], -[AC_CHECK_TOOL(OBJDUMP, objdump, false) -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) -AC_SUBST([OBJDUMP]) -]) - -# _LT_DECL_DLLTOOL -# ---------------- -# Ensure DLLTOOL variable is set. -m4_defun([_LT_DECL_DLLTOOL], -[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -AC_SUBST([DLLTOOL]) -]) - -# _LT_DECL_FILECMD -# ---------------- -# Check for a file(cmd) program that can be used to detect file type and magic -m4_defun([_LT_DECL_FILECMD], -[AC_CHECK_TOOL([FILECMD], [file], [:]) -_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types]) -])# _LD_DECL_FILECMD - -# _LT_DECL_SED -# ------------ -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -m4_defun([_LT_DECL_SED], -[AC_PROG_SED -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" -_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], - [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -])# _LT_DECL_SED - -m4_ifndef([AC_PROG_SED], [ -############################################################ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -############################################################ - -m4_defun([AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f "$lt_ac_sed" && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test 10 -lt "$lt_ac_count" && break - lt_ac_count=`expr $lt_ac_count + 1` - if test "$lt_ac_count" -gt "$lt_ac_max"; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef - -# Old name: -AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_SED], []) - - -# _LT_CHECK_SHELL_FEATURES -# ------------------------ -# Find out whether the shell is Bourne or XSI compatible, -# or has some other useful features. -m4_defun([_LT_CHECK_SHELL_FEATURES], -[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi -_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac -_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -])# _LT_CHECK_SHELL_FEATURES - - -# _LT_PATH_CONVERSION_FUNCTIONS -# ----------------------------- -# Determine what file name conversion functions should be used by -# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -# for certain cross-compile configurations and native mingw. -m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_MSG_CHECKING([how to convert $build file names to $host format]) -AC_CACHE_VAL(lt_cv_to_host_file_cmd, -[case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac -]) -to_host_file_cmd=$lt_cv_to_host_file_cmd -AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], - [0], [convert $build file names to $host format])dnl - -AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -[#assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac -]) -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], - [0], [convert $build files to toolchain format])dnl -])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 deleted file mode 100644 index b0b5e9c2..00000000 --- a/m4/ltoptions.m4 +++ /dev/null @@ -1,437 +0,0 @@ -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free -# Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# 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. - -# serial 8 ltoptions.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) - - -# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -# ------------------------------------------ -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) - - -# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -# --------------------------------------- -# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -# matching handler defined, dispatch to it. Other OPTION-NAMEs are -# saved as a flag. -m4_define([_LT_SET_OPTION], -[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), - _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option '$2'])])[]dnl -]) - - -# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -# ------------------------------------------------------------ -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -m4_define([_LT_IF_OPTION], -[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) - - -# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -# ------------------------------------------------------- -# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -# are set. -m4_define([_LT_UNLESS_OPTIONS], -[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -])[]dnl -]) - - -# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -# ---------------------------------------- -# OPTION-LIST is a space-separated list of Libtool options associated -# with MACRO-NAME. If any OPTION has a matching handler declared with -# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -# the unknown option and exit. -m4_defun([_LT_SET_OPTIONS], -[# Set options -m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [_LT_SET_OPTION([$1], _LT_Option)]) - -m4_if([$1],[LT_INIT],[ - dnl - dnl Simply set some default values (i.e off) if boolean options were not - dnl specified: - _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no - ]) - _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no - ]) - dnl - dnl If no reference was made to various pairs of opposing options, then - dnl we run the default mode handler for the pair. For example, if neither - dnl 'shared' nor 'disable-shared' was passed, we enable building of shared - dnl archives by default: - _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) - _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) - _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], - [_LT_WITH_AIX_SONAME([aix])]) - ]) -])# _LT_SET_OPTIONS - - -## --------------------------------- ## -## Macros to handle LT_INIT options. ## -## --------------------------------- ## - -# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -# ----------------------------------------- -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) - - -# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -# ----------------------------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -])# LT_OPTION_DEFINE - - -# dlopen -# ------ -LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -]) - -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([LT_INIT], [dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the 'dlopen' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) - - -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([LT_INIT], [win32-dll], -[enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -esac - -test -z "$AS" && AS=as -_LT_DECL([], [AS], [1], [Assembler program])dnl - -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl - -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl -])# win32-dll - -AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -_LT_SET_OPTION([LT_INIT], [win32-dll]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the 'win32-dll' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) - - -# _LT_ENABLE_SHARED([DEFAULT]) -# ---------------------------- -# implement the --enable-shared flag, and supports the 'shared' and -# 'disable-shared' LT_INIT options. -# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. -m4_define([_LT_ENABLE_SHARED], -[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([shared], - [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS=$lt_save_ifs - ;; - esac], - [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) - - _LT_DECL([build_libtool_libs], [enable_shared], [0], - [Whether or not to build shared libraries]) -])# _LT_ENABLE_SHARED - -LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) -]) - -AC_DEFUN([AC_DISABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], [disable-shared]) -]) - -AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_SHARED], []) -dnl AC_DEFUN([AM_DISABLE_SHARED], []) - - - -# _LT_ENABLE_STATIC([DEFAULT]) -# ---------------------------- -# implement the --enable-static flag, and support the 'static' and -# 'disable-static' LT_INIT options. -# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. -m4_define([_LT_ENABLE_STATIC], -[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([static], - [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS=$lt_save_ifs - ;; - esac], - [enable_static=]_LT_ENABLE_STATIC_DEFAULT) - - _LT_DECL([build_old_libs], [enable_static], [0], - [Whether or not to build static libraries]) -])# _LT_ENABLE_STATIC - -LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) -]) - -AC_DEFUN([AC_DISABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], [disable-static]) -]) - -AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_STATIC], []) -dnl AC_DEFUN([AM_DISABLE_STATIC], []) - - - -# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -# ---------------------------------- -# implement the --enable-fast-install flag, and support the 'fast-install' -# and 'disable-fast-install' LT_INIT options. -# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. -m4_define([_LT_ENABLE_FAST_INSTALL], -[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([fast-install], - [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS=$lt_save_ifs - ;; - esac], - [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) - -_LT_DECL([fast_install], [enable_fast_install], [0], - [Whether or not to optimize for fast installation])dnl -])# _LT_ENABLE_FAST_INSTALL - -LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) - -# Old names: -AU_DEFUN([AC_ENABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the 'fast-install' option into LT_INIT's first parameter.]) -]) - -AU_DEFUN([AC_DISABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the 'disable-fast-install' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) -dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) - - -# _LT_WITH_AIX_SONAME([DEFAULT]) -# ---------------------------------- -# implement the --with-aix-soname flag, and support the `aix-soname=aix' -# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT -# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. -m4_define([_LT_WITH_AIX_SONAME], -[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl -shared_archive_member_spec= -case $host,$enable_shared in -power*-*-aix[[5-9]]*,yes) - AC_MSG_CHECKING([which variant of shared library versioning to provide]) - AC_ARG_WITH([aix-soname], - [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], - [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], - [case $withval in - aix|svr4|both) - ;; - *) - AC_MSG_ERROR([Unknown argument to --with-aix-soname]) - ;; - esac - lt_cv_with_aix_soname=$with_aix_soname], - [AC_CACHE_VAL([lt_cv_with_aix_soname], - [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) - with_aix_soname=$lt_cv_with_aix_soname]) - AC_MSG_RESULT([$with_aix_soname]) - if test aix != "$with_aix_soname"; then - # For the AIX way of multilib, we name the shared archive member - # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', - # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. - # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, - # the AIX toolchain works better with OBJECT_MODE set (default 32). - if test 64 = "${OBJECT_MODE-32}"; then - shared_archive_member_spec=shr_64 - else - shared_archive_member_spec=shr - fi - fi - ;; -*) - with_aix_soname=aix - ;; -esac - -_LT_DECL([], [shared_archive_member_spec], [0], - [Shared archive member basename, for filename based shared library versioning on AIX])dnl -])# _LT_WITH_AIX_SONAME - -LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) -LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) -LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) - - -# _LT_WITH_PIC([MODE]) -# -------------------- -# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' -# LT_INIT options. -# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. -m4_define([_LT_WITH_PIC], -[AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for lt_pkg in $withval; do - IFS=$lt_save_ifs - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS=$lt_save_ifs - ;; - esac], - [pic_mode=m4_default([$1], [default])]) - -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC - -LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) - -# Old name: -AU_DEFUN([AC_LIBTOOL_PICMODE], -[_LT_SET_OPTION([LT_INIT], [pic-only]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the 'pic-only' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) - -## ----------------- ## -## LTDL_INIT Options ## -## ----------------- ## - -m4_define([_LTDL_MODE], []) -LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], - [m4_define([_LTDL_MODE], [nonrecursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [recursive], - [m4_define([_LTDL_MODE], [recursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [subproject], - [m4_define([_LTDL_MODE], [subproject])]) - -m4_define([_LTDL_TYPE], []) -LT_OPTION_DEFINE([LTDL_INIT], [installable], - [m4_define([_LTDL_TYPE], [installable])]) -LT_OPTION_DEFINE([LTDL_INIT], [convenience], - [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 deleted file mode 100644 index 902508bd..00000000 --- a/m4/ltsugar.m4 +++ /dev/null @@ -1,124 +0,0 @@ -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software -# Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# 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. - -# serial 6 ltsugar.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) - - -# lt_join(SEP, ARG1, [ARG2...]) -# ----------------------------- -# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -# associated separator. -# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -# versions in m4sugar had bugs. -m4_define([lt_join], -[m4_if([$#], [1], [], - [$#], [2], [[$2]], - [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -m4_define([_lt_join], -[m4_if([$#$2], [2], [], - [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) - - -# lt_car(LIST) -# lt_cdr(LIST) -# ------------ -# Manipulate m4 lists. -# These macros are necessary as long as will still need to support -# Autoconf-2.59, which quotes differently. -m4_define([lt_car], [[$1]]) -m4_define([lt_cdr], -[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], - [$#], 1, [], - [m4_dquote(m4_shift($@))])]) -m4_define([lt_unquote], $1) - - -# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -# ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. -# Note that neither SEPARATOR nor STRING are expanded; they are appended -# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -# No SEPARATOR is output if MACRO-NAME was previously undefined (different -# than defined and empty). -# -# This macro is needed until we can rely on Autoconf 2.62, since earlier -# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -m4_define([lt_append], -[m4_define([$1], - m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) - - - -# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -# ---------------------------------------------------------- -# Produce a SEP delimited list of all paired combinations of elements of -# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -# has the form PREFIXmINFIXSUFFIXn. -# Needed until we can rely on m4_combine added in Autoconf 2.62. -m4_define([lt_combine], -[m4_if(m4_eval([$# > 3]), [1], - [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -[[m4_foreach([_Lt_prefix], [$2], - [m4_foreach([_Lt_suffix], - ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, - [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) - - -# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -# ----------------------------------------------------------------------- -# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -m4_define([lt_if_append_uniq], -[m4_ifdef([$1], - [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], - [lt_append([$1], [$2], [$3])$4], - [$5])], - [lt_append([$1], [$2], [$3])$4])]) - - -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$3])]) - - -# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -# -------------------------------------------- -m4_define([lt_dict_add_subkey], -[m4_define([$1($2:$3)], [$4])]) - - -# lt_dict_fetch(DICT, KEY, [SUBKEY]) -# ---------------------------------- -m4_define([lt_dict_fetch], -[m4_ifval([$3], - m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), - m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) - - -# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -# ----------------------------------------------------------------- -m4_define([lt_if_dict_fetch], -[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], - [$5], - [$6])]) - - -# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# -------------------------------------------------------------- -m4_define([lt_dict_filter], -[m4_if([$5], [], [], - [lt_join(m4_quote(m4_default([$4], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), - [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl -]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 deleted file mode 100644 index 7b77de25..00000000 --- a/m4/ltversion.m4 +++ /dev/null @@ -1,24 +0,0 @@ -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation, -# Inc. -# Written by Scott James Remnant, 2004 -# -# 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. - -# @configure_input@ - -# serial 4223 ltversion.m4 -# This file is part of GNU Libtool - -m4_define([LT_PACKAGE_VERSION], [2.4.7]) -m4_define([LT_PACKAGE_REVISION], [2.4.7]) - -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.7' -macro_revision='2.4.7' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 deleted file mode 100644 index 0f7a8759..00000000 --- a/m4/lt~obsolete.m4 +++ /dev/null @@ -1,99 +0,0 @@ -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free -# Software Foundation, Inc. -# Written by Scott James Remnant, 2004. -# -# 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. - -# serial 5 lt~obsolete.m4 - -# These exist entirely to fool aclocal when bootstrapping libtool. -# -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), -# which have later been changed to m4_define as they aren't part of the -# exported API, or moved to Autoconf or Automake where they belong. -# -# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -# using a macro with the same name in our local m4/libtool.m4 it'll -# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -# and doesn't know about Autoconf macros at all.) -# -# So we provide this file, which has a silly filename so it's always -# included after everything else. This provides aclocal with the -# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -# because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -# -# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -# Yes, that means every name once taken will need to remain here until -# we give up compatibility with versions before 1.7, at which point -# we need to keep only those names which we still refer to. - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) - -m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) -m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) -m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) -m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) -m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) -m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/nls.m4 b/m4/nls.m4 deleted file mode 100644 index 8f8a147b..00000000 --- a/m4/nls.m4 +++ /dev/null @@ -1,32 +0,0 @@ -# nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, -dnl 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]) -]) diff --git a/m4/po.m4 b/m4/po.m4 deleted file mode 100644 index 1c70b6c1..00000000 --- a/m4/po.m4 +++ /dev/null @@ -1,453 +0,0 @@ -# po.m4 serial 21 (gettext-0.18.3) -dnl Copyright (C) 1995-2013 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.60]) - -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([AC_PROG_MKDIR_P])dnl - AC_REQUIRE([AC_PROG_SED])dnl - AC_REQUIRE([AM_NLS])dnl - - dnl Release version of the gettext macros. This is used to ensure that - dnl the gettext macros and po/Makefile.in.in are in sync. - AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) - - 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 Test whether it is GNU msgfmt >= 0.15. -changequote(,)dnl - case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; - *) MSGFMT_015=$MSGFMT ;; - esac -changequote([,])dnl - AC_SUBST([MSGFMT_015]) -changequote(,)dnl - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; - *) GMSGFMT_015=$GMSGFMT ;; - esac -changequote([,])dnl - AC_SUBST([GMSGFMT_015]) - - 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 Test whether it is GNU xgettext >= 0.15. -changequote(,)dnl - case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; - *) XGETTEXT_015=$XGETTEXT ;; - esac -changequote([,])dnl - AC_SUBST([XGETTEXT_015]) - - 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 Installation directories. - dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we - dnl have to define it here, so that it can be used in po/Makefile. - test -n "$localedir" || localedir='${datadir}/locale' - AC_SUBST([localedir]) - - dnl Support for AM_XGETTEXT_OPTION. - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= - AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) - - AC_CONFIG_COMMANDS([po-directories], [[ - 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" - gt_tab=`printf '\t'` - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/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 assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - # Hide the ALL_LINGUAS assignment from automake < 1.5. - 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 < 1.5. - 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. - tab=`printf '\t'` - 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. -/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{ - # Seen the first line of the variable definition. - s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=// - 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 assignment from automake < 1.5. - 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" - tab=`printf '\t'` - 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 -${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ -${tab}\$(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 -${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ -${tab}\$(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" -]) - -dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. -AC_DEFUN([AM_XGETTEXT_OPTION_INIT], -[ - XGETTEXT_EXTRA_OPTIONS= -]) - -dnl Registers an option to be passed to xgettext in the po subdirectory. -AC_DEFUN([AM_XGETTEXT_OPTION], -[ - AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) - XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" -]) diff --git a/m4/progtest.m4 b/m4/progtest.m4 deleted file mode 100644 index 7b391232..00000000 --- a/m4/progtest.m4 +++ /dev/null @@ -1,91 +0,0 @@ -# progtest.m4 serial 7 (gettext-0.18.2) -dnl Copyright (C) 1996-2003, 2005, 2008-2013 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 - # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which - # contains only /bin. Note that ksh looks also at the FPATH variable, - # so we have to set that as well for the test. - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ - || PATH_SEPARATOR=';' - } -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 -]) diff --git a/m4/warn_lang_flags.m4 b/m4/warn_lang_flags.m4 deleted file mode 100644 index a4d6022f..00000000 --- a/m4/warn_lang_flags.m4 +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/m4 - -AC_DEFUN([pam_WARN_LANG_FLAGS], [dnl -gl_WARN_ADD([-W]) -gl_WARN_ADD([-Wall]) -gl_WARN_ADD([-Wbad-function-cast]) -gl_WARN_ADD([-Wcast-align]) -gl_WARN_ADD([-Wcast-align=strict]) -gl_WARN_ADD([-Wcast-qual]) -gl_WARN_ADD([-Wdeprecated]) -gl_WARN_ADD([-Wformat=2]) -gl_WARN_ADD([-Winit-self]) -gl_WARN_ADD([-Winline]) -gl_WARN_ADD([-Wmain]) -gl_WARN_ADD([-Wmissing-declarations]) -gl_WARN_ADD([-Wmissing-format-attribute]) -gl_WARN_ADD([-Wmissing-prototypes]) -gl_WARN_ADD([-Wnull-dereference]) -gl_WARN_ADD([-Wp64]) -gl_WARN_ADD([-Wpointer-arith]) -gl_WARN_ADD([-Wreturn-type]) -gl_WARN_ADD([-Wshadow]) -gl_WARN_ADD([-Wstrict-prototypes]) -gl_WARN_ADD([-Wundef]) -gl_WARN_ADD([-Wuninitialized]) -gl_WARN_ADD([-Wunused]) -gl_WARN_ADD([-Wwrite-strings]) -AC_ARG_ENABLE([Werror], - [AS_HELP_STRING([--enable-Werror], [turn on -Werror compiler option])], - [case $enableval in - yes) gl_WARN_ADD([-Werror]) ;; - no) ;; - *) AC_MSG_ERROR([bad value $enableval for Werror option]) ;; - esac]) -AS_VAR_PUSHDEF([pam_WARN_FLAGS], [WARN_[]_AC_LANG_PREFIX[]FLAGS])dnl -AC_SUBST(pam_WARN_FLAGS) -AS_VAR_POPDEF([pam_WARN_FLAGS])dnl -]) diff --git a/m4/warnings.m4 b/m4/warnings.m4 deleted file mode 100644 index 628627d0..00000000 --- a/m4/warnings.m4 +++ /dev/null @@ -1,85 +0,0 @@ -# warnings.m4 serial 11 -# modified for strace project -dnl Copyright (C) 2008-2013 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 Simon Josefsson - -# gl_AS_VAR_APPEND(VAR, VALUE) -# ---------------------------- -# Provide the functionality of AS_VAR_APPEND if Autoconf does not have it. -m4_ifdef([AS_VAR_APPEND], -[m4_copy([AS_VAR_APPEND], [gl_AS_VAR_APPEND])], -[m4_define([gl_AS_VAR_APPEND], -[AS_VAR_SET([$1], [AS_VAR_GET([$1])$2])])]) - - -# gl_COMPILER_OPTION_IF(OPTION, [IF-SUPPORTED], [IF-NOT-SUPPORTED], -# [PROGRAM = AC_LANG_PROGRAM()]) -# ----------------------------------------------------------------- -# Check if the compiler supports OPTION when compiling PROGRAM. -# -# FIXME: gl_Warn must be used unquoted until we can assume Autoconf -# 2.64 or newer. -AC_DEFUN([gl_COMPILER_OPTION_IF], -[AS_VAR_PUSHDEF([gl_Flags], _AC_LANG_PREFIX[]FLAGS)dnl -AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]gl_Flags[]_$1])dnl -AS_LITERAL_IF([$1], - [m4_pushdef([gl_Positive], m4_bpatsubst([$1], [^-Wno-], [-W]))], - [gl_positive="$1" -case $gl_positive in - -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;; -esac -m4_pushdef([gl_Positive], [$gl_positive])])dnl -AC_CACHE_CHECK([whether $[]_AC_CC[] handles $1], m4_defn([gl_Warn]), [ - gl_save_compiler_FLAGS="$gl_Flags" - gl_AS_VAR_APPEND(m4_defn([gl_Flags]), - [" $gl_unknown_warnings_are_errors ]m4_defn([gl_Positive])["]) - AC_LINK_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([])])], - [AS_VAR_SET(gl_Warn, [yes])], - [AS_VAR_SET(gl_Warn, [no])]) - gl_Flags="$gl_save_compiler_FLAGS" -]) -AS_VAR_IF(gl_Warn, [yes], [$2], [$3]) -m4_popdef([gl_Positive])dnl -AS_VAR_POPDEF([gl_Flags])dnl -AS_VAR_POPDEF([gl_Warn])dnl -]) - -# gl_UNKNOWN_WARNINGS_ARE_ERRORS -# ------------------------------ -# Clang doesn't complain about unknown warning options unless one also -# specifies -Wunknown-warning-option -Werror. Detect this. -AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS], -[AS_IF([test x${gl_unknown_warnings_are_errors+set} = x], - [gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option], - [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'], - [gl_unknown_warnings_are_errors=]) - ]) -]) - -# gl_WARN_ADD(OPTION, [VARIABLE = WARN_[]_AC_LANG_PREFIX[]FLAGS], -# [PROGRAM = AC_LANG_PROGRAM()]) -# --------------------------------------------- -# Adds parameter to WARN_[]_AC_LANG_PREFIX[]FLAGS if the compiler supports it -# when compiling PROGRAM. For example, gl_WARN_ADD([-Wparentheses]). -# -# If VARIABLE is a variable name, AC_SUBST it. -AC_DEFUN([gl_WARN_ADD], -[AS_VAR_PUSHDEF([gl_WARN_FLAGS], [WARN_[]_AC_LANG_PREFIX[]FLAGS])dnl -gl_UNKNOWN_WARNINGS_ARE_ERRORS -gl_COMPILER_OPTION_IF([$1], - [gl_AS_VAR_APPEND(m4_if([$2], [], [gl_WARN_FLAGS], [[$2]]), [" $1"])], - [], - [$3]) -m4_ifval([$2], - [AS_LITERAL_IF([$2], [AC_SUBST([$2])])], - [AC_SUBST(gl_WARN_FLAGS)])dnl -AS_VAR_POPDEF([gl_WARN_FLAGS])dnl -]) - -# Local Variables: -# mode: autoconf -# End: diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..2be21282 --- /dev/null +++ b/meson.build @@ -0,0 +1,635 @@ +project('Linux-PAM', 'c', + version: '1.7.0', + license: 'BSD-3-Clause OR GPL-2.0-or-later', + default_options: [ + 'b_pie=true', + 'prefix=/usr', + 'warning_level=2', + ], + meson_version: '>= 0.62.0', +) + +fs = import('fs') +pkgconfig = import('pkgconfig') + + +prefixdir = get_option('prefix') +if not fs.is_absolute(prefixdir) + error('Prefix is not absolute: "@0@"'.format(prefixdir)) +endif +datadir = prefixdir / get_option('datadir') +includedir = prefixdir / get_option('includedir') / 'security' +libdir = prefixdir / get_option('libdir') +localedir = prefixdir / get_option('localedir') +localstatedir = '/' / get_option('localstatedir') +mandir = prefixdir / get_option('mandir') +sbindir = prefixdir / get_option('sbindir') +sysconfdir = prefixdir / get_option('sysconfdir') +securedir = get_option('securedir') +if securedir == '' + securedir = libdir / 'security' +endif + + +cc = meson.get_compiler('c') +cdata = configuration_data() + +null_dep = dependency('', required: false) + +cdata.set('_GNU_SOURCE', 1) +cdata.set_quoted('PACKAGE', meson.project_name()) +cdata.set_quoted('PAM_VERSION', meson.project_version()) +cdata.set('UNUSED', '__attribute__((__unused__))') +cdata.set('PAM_NO_HEADER_FUNCTIONS', 1, description: 'Disable function bodies in headers') +cdata.set_quoted('SYSCONFDIR', sysconfdir) +cdata.set_quoted('LTDIR', '') +# used in configure_file() only, so not quoted +cdata.set('sbindir', sbindir) + +cdata.set('PAM_DEBUG', get_option('pam-debug') ? 1 : false) +cdata.set('PAM_LOCKING', get_option('pamlocking') ? 1 : false) +cdata.set('PAM_READ_BOTH_CONFS', get_option('read-both-confs') ? 1 : false) +cdata.set10('DEFAULT_USERGROUPS_SETTING', get_option('usergroups')) +cdata.set('PAM_USERTYPE_UIDMIN', get_option('uidmin')) +cdata.set('PAM_USERTYPE_OVERFLOW_UID', get_option('kernel-overflow-uid')) +cdata.set('PAM_MISC_CONV_BUFSIZE', get_option('misc-conv-bufsize')) + +cdata.set_quoted('_PAM_ISA', + get_option('isadir') != '' ? get_option('isadir') : '../..' / fs.name(libdir) / 'security') + +docdir = get_option('docdir') +if docdir == '' + docdir = datadir / 'doc' / meson.project_name() +endif + +htmldir = get_option('htmldir') +if htmldir == '' + htmldir = docdir +endif + +pdfdir = get_option('pdfdir') +if pdfdir == '' + pdfdir = docdir +endif + +sconfigdir = get_option('sconfigdir') +if sconfigdir == '' + sconfigdir = sysconfdir / 'security' +endif +cdata.set_quoted('SCONFIG_DIR', sconfigdir) +# used in configure_file() only, so not quoted +cdata.set('SCONFIGDIR', sconfigdir) + +vendordir = get_option('vendordir') +if get_option('vendordir') == '' + vendor_sconfigdir = sconfigdir + vendor_sysconfdir = sysconfdir + stringparam_vendordir = [] + stringparam_profileconditions = 'without_vendordir' +else + vendor_sconfigdir = vendordir / 'security' + vendor_sysconfdir = vendordir + cdata.set_quoted('VENDORDIR', vendordir) + cdata.set_quoted('VENDOR_SCONFIG_DIR', vendor_sconfigdir) + stringparam_vendordir = ['--stringparam', 'vendordir', vendordir] + stringparam_profileconditions = 'with_vendordir' +endif + +randomdev_option = get_option('randomdev') +if randomdev_option == '' or randomdev_option == 'yes' + cdata.set_quoted('PAM_PATH_RANDOMDEV', '/dev/urandom') +elif randomdev_option != 'no' + cdata.set_quoted('PAM_PATH_RANDOMDEV', randomdev_option) +endif + +xauth_option = get_option('xauth') +if xauth_option != '' and xauth_option != '/usr/X11R6/bin/xauth' + cdata.set_quoted('PAM_PATH_XAUTH', xauth_option) +endif + + +# meson defines -D_STRIP_FILE_OFFSET_BITS=64 even for 64-bit systems, this +# forces glibc to use function names with the same semantics but with "64" +# suffix, and that leads to discrepancies in the build artefacts produced +# by different build systems. +if cc.sizeof('long') >= 8 + add_project_arguments( + '-U_FILE_OFFSET_BITS', + language: 'c') +endif + + +try_cc_flags = [ + '-Wbad-function-cast', + '-Wcast-align', + '-Wcast-align=strict', + '-Wcast-qual', + '-Wdeprecated', + '-Wformat=2', + '-Winit-self', + '-Wmain', + '-Wmissing-declarations', + '-Wmissing-format-attribute', + '-Wmissing-prototypes', + '-Wnull-dereference', + '-Wpointer-arith', + '-Wreturn-type', + '-Wshadow', + '-Wstrict-prototypes', + '-Wundef', + '-Wuninitialized', + '-Wunused', + '-Wwrite-strings', +] +add_project_arguments( + cc.get_supported_arguments(try_cc_flags), + language: 'c') + +add_project_link_arguments( + # --as-needed and --no-undefined are enabled by default + cc.get_supported_link_arguments([ + '-Wl,--fatal-warnings', + '-Wl,-O1', + ]), + language: 'c') + +exe_link_args = cc.get_supported_link_arguments([ + '-Wl,-z,relro', + '-Wl,-z,now', +]) + + +check_headers = [ + 'crypt.h', + 'paths.h', + 'sys/random.h', +] +foreach h: check_headers + if cc.has_header(h) + cdata.set('HAVE_' + h.underscorify().to_upper(), 1) + endif +endforeach + + +check_functions = [ + ['close_range', '#include <unistd.h>'], + ['explicit_bzero', '#include <string.h>'], + ['getdomainname', '#include <unistd.h>'], + ['getgrgid_r', '#include <grp.h>'], + ['getgrnam_r', '#include <grp.h>'], + ['getgrouplist', '#include <grp.h>'], + ['getmntent_r', '#include <mntent.h>'], + ['getpwnam', '#include <pwd.h>'], + ['getpwnam_r', '#include <pwd.h>'], + ['getpwuid_r', '#include <pwd.h>'], + ['getrandom', '#include <sys/random.h>'], + ['getspnam_r', '#include <shadow.h>'], + ['getutent_r', '#include <utmp.h>'], + ['innetgr', '#include <netdb.h>'], + ['memset_explicit', '#include <string.h>'], + ['quotactl', '#include <sys/quota.h>'], + ['ruserok', '#include <netdb.h>'], + ['ruserok_af', '#include <netdb.h>'], + ['unshare', '#include <sched.h>'], +] +foreach ident: check_functions + if cc.has_function(ident[0], prefix: ident[1], args: '-D_GNU_SOURCE') + cdata.set('HAVE_' + ident[0].to_upper(), 1) + endif +endforeach + +enable_pam_keyinit = cc.sizeof('__NR_keyctl', prefix: '#include <sys/syscall.h>') > 0 + +if get_option('mailspool') != '' + cdata.set_quoted('PAM_PATH_MAILDIR', get_option('mailspool')) +else + have = cc.sizeof('_PATH_MAILDIR', prefix: '#include <paths.h>') > 0 + cdata.set('PAM_PATH_MAILDIR', have ? '_PATH_MAILDIR' : '"/var/spool/mail"') +endif + + +libdl = dependency('dl') + + +if not get_option('i18n').disabled() + libintl = dependency('intl', required: get_option('i18n')) + if libintl.found() + cdata.set('ENABLE_NLS', 1) + cdata.set_quoted('LOCALEDIR', localedir) + foreach f: ['bindtextdomain', + 'dngettext', + ] + if cc.has_function(f, prefix: '#include <libintl.h>', + args: '-D_GNU_SOURCE', + dependencies: libintl) + cdata.set('HAVE_' + f.to_upper(), 1) + endif + endforeach + endif +endif + + +libaudit = dependency('audit', required: get_option('audit')) +if libaudit.found() + cdata.set('HAVE_LIBAUDIT', 1) + foreach ident: ['struct audit_tty_status'] + if cc.sizeof(ident, prefix: '#include <libaudit.h>') > 0 + cdata.set('HAVE_' + ident.underscorify().to_upper(), 1) + endif + endforeach + foreach ident: [['struct audit_tty_status', 'log_passwd']] + if cc.has_member(ident[0], ident[1], + prefix: '#include <libaudit.h>', + args: '-D_GNU_SOURCE') + cdata.set('HAVE_@0@_@1@'.format(ident[0], ident[1]).underscorify().to_upper(), 1) + endif + endforeach +endif + + +libcrypt = dependency('libcrypt', 'libxcrypt', required: false) +if not libcrypt.found() + libcrypt = cc.find_library('crypt') +endif +crypt_h = cdata.get('HAVE_CRYPT_H') == 1 ? '''#include <crypt.h>''' : '''#include <unistd.h>''' +foreach f: ['crypt_r'] + if cc.has_function(f, prefix: crypt_h, + args: '-D_GNU_SOURCE', + dependencies: libcrypt) + cdata.set('HAVE_' + f.to_upper(), 1) + endif +endforeach + + +libeconf = dependency('libeconf', version: '>= 0.5.0', required: get_option('econf')) +if libeconf.found() + cdata.set('USE_ECONF', 1) + have_econf_readconfig = true + if stringparam_vendordir != [] + stringparam_profileconditions += ';with_vendordir_and_with_econf' + endif + + foreach f: ['econf_newKeyFile_with_options', + 'econf_readConfigWithCallback', + ] + if cc.has_function(f, prefix: '#include <libeconf.h>', + args: '-D_GNU_SOURCE', + dependencies: libeconf) + cdata.set('HAVE_' + f.to_upper(), 1) + else + have_econf_readconfig = false + endif + if have_econf_readconfig + cdata.set('HAVE_ECONF_READCONFIG', 1) + endif + endforeach +else + if stringparam_vendordir != [] + stringparam_profileconditions += ';with_vendordir_and_without_econf' + endif +endif + + +libselinux = dependency('libselinux', required: get_option('selinux')) +if libselinux.found() + cdata.set('WITH_SELINUX', 1) + foreach f: ['getseuser', 'setkeycreatecon'] + if cc.has_function(f, prefix: '#include <selinux/selinux.h>', + dependencies: libselinux) + cdata.set('HAVE_' + f.to_upper(), 1) + endif + endforeach +endif + + +if get_option('openssl').disabled() + libcrypto = null_dep +else + libcrypto = dependency('libcrypto', required: false) +endif +if libcrypto.found() and cc.has_function('EVP_MAC_CTX_new', + prefix: '#include <openssl/hmac.h>', + dependencies: libcrypto) + cdata.set('WITH_OPENSSL', 1) + stringparam_profileconditions += ';openssl_hmac' +else + stringparam_profileconditions += ';no_openssl_hmac' +endif + + +libsystemd = dependency('libsystemd', version: '>= 254', required: get_option('logind')) +cdata.set('USE_LOGIND', libsystemd.found() ? 1 : false) + +systemdunitdir = get_option('systemdunitdir') +if systemdunitdir == '' + systemdunitdir = prefixdir / 'lib' / 'systemd' / 'system' + systemd = dependency('systemd', required: false) + if systemd.found() + systemdunitdir = systemd.get_variable( + pkgconfig: 'systemdsystemunitdir', + default_value: systemdunitdir, + ) + endif +endif + + +feature_pam_userdb = get_option('pam_userdb') +if feature_pam_userdb.disabled() + enable_pam_userdb = false +else + use_db = get_option('db') + have = false + if use_db == 'db' or use_db == 'auto' + db_uniquename = get_option('db-uniquename') + name = 'db' + db_uniquename + libdb = cc.find_library(name, required: false) + if libdb.found() + foreach f: ['dbm_open' + db_uniquename, 'dbm_open'] + have = cc.links(''' + #define _GNU_SOURCE + #define DB_DBM_HSEARCH 1 + #define HAVE_DBM 1 + #include <db.h> + int main(void) {return !@0@("", 0, 0);} + '''.format(f), + args: '-l' + name, + name: '@0@ in @1@'.format(f, 'lib' + name)) + if have + break + endif + endforeach + if have + use_db = 'db' + cdata.set('HAVE_DB_H', 1) + endif + endif + endif + if use_db == 'gdbm' or use_db == 'auto' + libdb = cc.find_library('gdbm', required: false) + if libdb.found() + have = cc.has_function('gdbm_store', prefix: '#include <gdbm.h>', + args: '-D_GNU_SOURCE', dependencies: libdb) + if have + use_db = 'gdbm' + cdata.set('HAVE_GDBM_H', 1) + if cc.compiles('''#include <gdbm.h> + int db_close(void *dbm) {return gdbm_close(dbm);}''', + args: '-D_GNU_SOURCE', + name: 'gdbm_close returns int') + cdata.set('GDBM_CLOSE_RETURNS_INT', 1) + endif + endif + endif + endif + if use_db == 'ndbm' or use_db == 'auto' + libdb = cc.find_library('ndbm', required: false) + if libdb.found() + have = cc.has_function('dbm_store', prefix: '#include <ndbm.h>', + args: '-D_GNU_SOURCE', dependencies: libdb) + if have + use_db = 'ndbm' + cdata.set('HAVE_NDBM_H', 1) + endif + endif + endif + if not have and feature_pam_userdb.enabled() + error('pam_userdb module is enabled but the db library is not available') + endif + enable_pam_userdb = have +endif + + +feature_pam_lastlog = get_option('pam_lastlog') +if feature_pam_lastlog.disabled() + enable_pam_lastlog = false +else + libutil = cc.find_library('util', required: false) + have = cc.has_function('logwtmp', prefix: '#include <utmp.h>', + dependencies: libutil) + if not have and feature_pam_lastlog.enabled() + error('pam_lastlog module is enabled but logwtmp() is not available') + endif + enable_pam_lastlog = have +endif + + +enable_pam_unix = not get_option('pam_unix').disabled() +if enable_pam_unix + if get_option('lckpwdf') + cdata.set('USE_LCKPWDF', 1) + foreach f: ['lckpwdf'] + if cc.has_function(f, prefix: '#include <shadow.h>') + cdata.set('HAVE_' + f.to_upper(), 1) + endif + endforeach + endif + + feature_nis = get_option('nis') + if feature_nis.disabled() + enable_nis = false + libtirpc = null_dep + libnsl = null_dep + else + # If libtirpc is available, prefer that over the system implementation. + libtirpc = dependency('libtirpc', required: false) + enable_nis = true + foreach f: ['getrpcport', + 'rpcb_getaddr', + ] + if cc.has_function(f, prefix: '#include <rpc/rpc.h>', + dependencies: libtirpc) + cdata.set('HAVE_' + f.to_upper(), 1) + cdata.set('HAVE_DECL_' + f.to_upper(), 1) + endif + endforeach + + libnsl = dependency('libnsl', required: feature_nis) + enable_nis = libnsl.found() + + if enable_nis + foreach f: ['yp_bind', + 'yp_get_default_domain', + 'yp_match', + 'yp_unbind', + ] + if not cc.has_function(f, prefix: '''#include <rpcsvc/ypclnt.h> + #include <rpcsvc/yp_prot.h>''', + dependencies: [libnsl, libtirpc]) + enable_nis = false + libnsl = null_dep + break + endif + endforeach + endif + + if enable_nis + cdata.set('HAVE_NIS', 1) + elif feature_nis.enabled() + error('NIS is enabled but required interfaces are not available') + endif + endif +endif + + +feature_docs = get_option('docs') +enable_docs = not feature_docs.disabled() +if enable_docs + prog_xsltproc = find_program( + 'xsltproc', + required: feature_docs, + disabler: true, + ) + prog_xmllint = find_program( + 'xmllint', + required: feature_docs, + disabler: true, + ) + prog_w3m = find_program( + 'w3m', + required: false, + ) + if prog_w3m.found() + browser = [prog_w3m, '-T', 'text/html', '-dump'] + else + prog_elinks = find_program( + 'elinks', + required: feature_docs, + disabler: true, + ) + browser = [prog_elinks, '-no-numbering', '-no-references', '-dump'] + endif + prog_fop = find_program( + 'fop', + required: feature_docs, + disabler: true, + ) + + prog_xmlcatalog = find_program( + 'xmlcatalog', + required: feature_docs, + disabler: true, + ) + xml_catalog = get_option('xml-catalog') + if xml_catalog == '' + xml_catalog = '/etc/xml/catalog' + endif + + have = prog_xmlcatalog.found() and run_command( + ['test', '-f', xml_catalog], + check: feature_docs.enabled() + ).returncode() == 0 + if not have + xml_catalog = disabler() + endif + + docbook_rng = get_option('docbook-rng') + have = run_command( + [prog_xmlcatalog, '--noout', xml_catalog, docbook_rng], + check: feature_docs.enabled() + ).returncode() == 0 + if not have + docbook_rng = disabler() + endif + + html_stylesheet = get_option('html-stylesheet') + have = run_command( + [prog_xmlcatalog, '--noout', xml_catalog, html_stylesheet], + check: feature_docs.enabled() + ).returncode() == 0 + if not have + html_stylesheet = disabler() + endif + + txt_stylesheet = get_option('txt-stylesheet') + have = run_command( + [prog_xmlcatalog, '--noout', xml_catalog, txt_stylesheet], + check: feature_docs.enabled() + ).returncode() == 0 + if not have + txt_stylesheet = disabler() + endif + + man_stylesheet = get_option('man-stylesheet') + have = run_command( + [prog_xmlcatalog, '--noout', xml_catalog, man_stylesheet], + check: feature_docs.enabled() + ).returncode() == 0 + if not have + man_stylesheet = disabler() + endif + + pdf_stylesheet = get_option('pdf-stylesheet') + have = run_command( + [prog_xmlcatalog, '--noout', xml_catalog, pdf_stylesheet], + check: feature_docs.enabled() + ).returncode() == 0 + if not have + pdf_stylesheet = disabler() + endif + + stringparam_profileconditions = [ + '--stringparam', + 'profile.condition', + stringparam_profileconditions + ] +else + prog_xsltproc = disabler() + prog_xmllint = disabler() + prog_fop = disabler() + browser = disabler() + custom_man_xsl = disabler() + docbook_rng = disabler() + html_stylesheet = disabler() + man_stylesheet = disabler() + txt_stylesheet = disabler() +endif + + +prog_flex = find_program( + 'flex', + required: false, + disabler: true, +) + +yacc_cmd = [] +prog_yacc = find_program( + 'bison', + required: false, +) +if prog_yacc.found() + yacc_cmd = [prog_yacc, '-o', '@OUTPUT0@', '--defines=@OUTPUT1@', '@INPUT@'] +else + prog_yacc = find_program( + 'byacc', + required: false, + disabler: true, + ) + yacc_cmd = [prog_yacc, '-o', '@OUTPUT0@', '-H', '@OUTPUT1@', '@INPUT@'] +endif + + +redir_exe = files('aux' / 'redir_exe.sh') +chdir_meson_build_subdir = files('aux' / 'chdir_meson_build_subdir.sh') + + +libpam_private_inc = include_directories('libpam') +libpam_inc = include_directories('libpam' / 'include') + + +subdir('po') +subdir('libpam_internal') +subdir('libpam') +subdir('libpamc') +subdir('libpam_misc') +if enable_docs + subdir('doc') +endif +subdir('tests') +subdir('modules') +subdir('conf' / 'pam_conv1') +if get_option('examples') + subdir('examples') +endif +if get_option('xtests') + subdir('xtests') +endif diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 00000000..914ab462 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,99 @@ +# -*- mode: meson -*- + +option('i18n', type: 'feature', value: 'auto', + description: 'i18n support') +option('docs', type: 'feature', value: 'auto', + description: 'Generate and install documentation') +option('audit', type: 'feature', value: 'auto', + description: 'audit support') +option('econf', type: 'feature', value: 'auto', + description: 'libeconf support') +option('logind', type: 'feature', value: 'auto', + description: 'logind support in pam_issue and pam_timestamp') +option('openssl', type: 'feature', value: 'disabled', + description: 'Use OpenSSL crypto libraries in pam_timestamp') +option('selinux', type: 'feature', value: 'auto', + description: 'SELinux support') +option('nis', type: 'feature', value: 'auto', + description: 'NIS/YP support in pam_unix') + +option('examples', type: 'boolean', value: true, + description: 'Build examples') +option('lckpwdf', type: 'boolean', value: true, + description: 'Use lckpwdf function in pam_unix') +option('pam-debug', type: 'boolean', value: false, + description: 'Save debugging information into pam-debug.log') +option('pamlocking', type: 'boolean', value: false, + description: 'Observe a global authentication lock') +option('read-both-confs', type: 'boolean', value: false, + description: 'Read both /etc/pam.d and /etc/pam.conf files') +option('usergroups', type: 'boolean', value: false, + description: 'usergroups option default in pam_umask') +option('xtests', type: 'boolean', value: false, + description: 'Build xtests') + +option('misc-conv-bufsize', type: 'integer', value: 4096, + description: 'Size of input buffer for misc_conv() conversation function') +option('kernel-overflow-uid', type: 'integer', value: 65534, + description: 'Linux kernel overflow uid') +option('uidmin', type: 'integer', value: 1000, + description: 'Default value for regular user min uid') + +option('docbook-rng', + type: 'string', + value: 'http://docbook.org/xml/5.0/rng/docbookxi.rng', + description: 'RNG file for checking XML files') +option('html-stylesheet', + type: 'string', + value: 'http://docbook.sourceforge.net/release/xsl-ns/current/html/chunk.xsl', + description: 'html stylesheet path') +option('man-stylesheet', + type: 'string', + value: 'http://docbook.sourceforge.net/release/xsl-ns/current/manpages/profile-docbook.xsl', + description: 'man stylesheet path') +option('pdf-stylesheet', + type: 'string', + value: 'http://docbook.sourceforge.net/release/xsl-ns/current/fo/docbook.xsl', + description: 'pdf stylesheet path') +option('txt-stylesheet', + type: 'string', + value: 'http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl', + description: 'txt stylesheet path') +option('xml-catalog', type: 'string', + description: 'xml catalog path') + +option('docdir', type: 'string', + description: 'documentation directory') +option('htmldir', type: 'string', + description: 'HTML documentation directory') +option('pdfdir', type: 'string', + description: 'PDF documentation directory') + +option('isadir', type: 'string', + description: 'Arch-specific PAM modules directory, relative to SECUREDIR') +option('securedir', type: 'string', + description: 'PAM modules directory') +option('sconfigdir', type: 'string', + description: 'PAM module configuration files directory') +option('systemdunitdir', type: 'string', + description: 'systemd service directory') +option('mailspool', type: 'string', + description: 'Mail spool directory') +option('xauth', type: 'string', + description: 'Additional path to check for xauth when it is called from pam_xauth') +option('randomdev', type: 'string', + description: 'Random device to use instead of /dev/urandom') +option('vendordir', type: 'string', + description: 'Distribution provided configuration files directory') + +option('pam_userdb', type: 'feature', value: 'auto', + description: 'pam_userdb module') +option('db', type: 'combo', choices: ['db', 'gdbm', 'ndbm', 'auto'], + value: 'auto') +option('db-uniquename', type: 'string', + description: 'Unique name for db libraries and functions') + +option('pam_lastlog', type: 'feature', value: 'disabled', + description: 'pam_lastlog module') +option('pam_unix', type: 'feature', value: 'auto', + description: 'pam_unix module') diff --git a/modules/Makefile.am b/modules/Makefile.am deleted file mode 100644 index 8da46410..00000000 --- a/modules/Makefile.am +++ /dev/null @@ -1,94 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2008 Thorsten Kukuk <kukuk@thkukuk.de> -# - -if COND_BUILD_PAM_KEYINIT - MAYBE_PAM_KEYINIT = pam_keyinit -endif - -if COND_BUILD_PAM_LASTLOG - MAYBE_PAM_LASTLOG = pam_lastlog -endif - -if COND_BUILD_PAM_NAMESPACE - MAYBE_PAM_NAMESPACE = pam_namespace -endif - -if COND_BUILD_PAM_RHOSTS - MAYBE_PAM_RHOSTS = pam_rhosts -endif - -if COND_BUILD_PAM_SELINUX - MAYBE_PAM_SELINUX = pam_selinux -endif - -if COND_BUILD_PAM_SEPERMIT - MAYBE_PAM_SEPERMIT = pam_sepermit -endif - -if COND_BUILD_PAM_SETQUOTA - MAYBE_PAM_SETQUOTA = pam_setquota -endif - -if COND_BUILD_PAM_TTY_AUDIT - MAYBE_PAM_TTY_AUDIT = pam_tty_audit -endif - -if COND_BUILD_PAM_UNIX - MAYBE_PAM_UNIX = pam_unix -endif - -if COND_BUILD_PAM_USERDB - MAYBE_PAM_USERDB = pam_userdb -endif - -SUBDIRS := \ - pam_access \ - pam_debug \ - pam_deny \ - pam_echo \ - pam_env \ - pam_exec \ - pam_faildelay \ - pam_faillock \ - pam_filter \ - pam_ftp \ - pam_group \ - pam_issue \ - $(MAYBE_PAM_KEYINIT) \ - $(MAYBE_PAM_LASTLOG) \ - pam_limits \ - pam_listfile \ - pam_localuser \ - pam_loginuid \ - pam_mail \ - pam_mkhomedir \ - pam_motd \ - $(MAYBE_PAM_NAMESPACE) \ - pam_nologin \ - pam_permit \ - pam_pwhistory \ - $(MAYBE_PAM_RHOSTS) \ - pam_rootok \ - pam_securetty \ - $(MAYBE_PAM_SELINUX) \ - $(MAYBE_PAM_SEPERMIT) \ - $(MAYBE_PAM_SETQUOTA) \ - pam_shells \ - pam_stress \ - pam_succeed_if \ - pam_time \ - pam_timestamp \ - $(MAYBE_PAM_TTY_AUDIT) \ - pam_umask \ - $(MAYBE_PAM_UNIX) \ - $(MAYBE_PAM_USERDB) \ - pam_usertype \ - pam_warn \ - pam_wheel \ - pam_xauth \ - # - -CLEANFILES = *~ - -EXTRA_DIST = modules.map diff --git a/modules/Makefile.in b/modules/Makefile.in deleted file mode 100644 index 9ac4d669..00000000 --- a/modules/Makefile.in +++ /dev/null @@ -1,777 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2008 Thorsten Kukuk <kukuk@thkukuk.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = modules -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir distdir-am -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = pam_access pam_debug pam_deny pam_echo pam_env pam_exec \ - pam_faildelay pam_faillock pam_filter pam_ftp pam_group \ - pam_issue pam_keyinit pam_lastlog pam_limits pam_listfile \ - pam_localuser pam_loginuid pam_mail pam_mkhomedir pam_motd \ - pam_namespace pam_nologin pam_permit pam_pwhistory pam_rhosts \ - pam_rootok pam_securetty pam_selinux pam_sepermit pam_setquota \ - pam_shells pam_stress pam_succeed_if pam_time pam_timestamp \ - pam_tty_audit pam_umask pam_unix pam_userdb pam_usertype \ - pam_warn pam_wheel pam_xauth -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -@COND_BUILD_PAM_KEYINIT_TRUE@MAYBE_PAM_KEYINIT = pam_keyinit -@COND_BUILD_PAM_LASTLOG_TRUE@MAYBE_PAM_LASTLOG = pam_lastlog -@COND_BUILD_PAM_NAMESPACE_TRUE@MAYBE_PAM_NAMESPACE = pam_namespace -@COND_BUILD_PAM_RHOSTS_TRUE@MAYBE_PAM_RHOSTS = pam_rhosts -@COND_BUILD_PAM_SELINUX_TRUE@MAYBE_PAM_SELINUX = pam_selinux -@COND_BUILD_PAM_SEPERMIT_TRUE@MAYBE_PAM_SEPERMIT = pam_sepermit -@COND_BUILD_PAM_SETQUOTA_TRUE@MAYBE_PAM_SETQUOTA = pam_setquota -@COND_BUILD_PAM_TTY_AUDIT_TRUE@MAYBE_PAM_TTY_AUDIT = pam_tty_audit -@COND_BUILD_PAM_UNIX_TRUE@MAYBE_PAM_UNIX = pam_unix -@COND_BUILD_PAM_USERDB_TRUE@MAYBE_PAM_USERDB = pam_userdb -SUBDIRS := \ - pam_access \ - pam_debug \ - pam_deny \ - pam_echo \ - pam_env \ - pam_exec \ - pam_faildelay \ - pam_faillock \ - pam_filter \ - pam_ftp \ - pam_group \ - pam_issue \ - $(MAYBE_PAM_KEYINIT) \ - $(MAYBE_PAM_LASTLOG) \ - pam_limits \ - pam_listfile \ - pam_localuser \ - pam_loginuid \ - pam_mail \ - pam_mkhomedir \ - pam_motd \ - $(MAYBE_PAM_NAMESPACE) \ - pam_nologin \ - pam_permit \ - pam_pwhistory \ - $(MAYBE_PAM_RHOSTS) \ - pam_rootok \ - pam_securetty \ - $(MAYBE_PAM_SELINUX) \ - $(MAYBE_PAM_SEPERMIT) \ - $(MAYBE_PAM_SETQUOTA) \ - pam_shells \ - pam_stress \ - pam_succeed_if \ - pam_time \ - pam_timestamp \ - $(MAYBE_PAM_TTY_AUDIT) \ - pam_umask \ - $(MAYBE_PAM_UNIX) \ - $(MAYBE_PAM_USERDB) \ - pam_usertype \ - pam_warn \ - pam_wheel \ - pam_xauth \ - # - -CLEANFILES = *~ -EXTRA_DIST = modules.map -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic clean-libtool cscopelist-am ctags \ - ctags-am distclean distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# 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: diff --git a/modules/meson.build b/modules/meson.build new file mode 100644 index 00000000..20cebdbb --- /dev/null +++ b/modules/meson.build @@ -0,0 +1,51 @@ +pam_module_map = 'modules.map' +pam_module_map_path = meson.current_source_dir() / pam_module_map + +pam_module_link_deps = ['..' / pam_module_map] +pam_module_link_args = ['-Wl,--version-script=' + pam_module_map_path] + +subdir('pam_access') +subdir('pam_canonicalize_user') +subdir('pam_debug') +subdir('pam_deny') +subdir('pam_echo') +subdir('pam_env') +subdir('pam_exec') +subdir('pam_faildelay') +subdir('pam_faillock') +subdir('pam_filter') +subdir('pam_ftp') +subdir('pam_group') +subdir('pam_issue') +subdir('pam_keyinit') +subdir('pam_lastlog') +subdir('pam_limits') +subdir('pam_listfile') +subdir('pam_localuser') +subdir('pam_loginuid') +subdir('pam_mail') +subdir('pam_mkhomedir') +subdir('pam_motd') +subdir('pam_namespace') +subdir('pam_nologin') +subdir('pam_permit') +subdir('pam_pwhistory') +subdir('pam_rhosts') +subdir('pam_rootok') +subdir('pam_securetty') +subdir('pam_selinux') +subdir('pam_sepermit') +subdir('pam_setquota') +subdir('pam_shells') +subdir('pam_stress') +subdir('pam_succeed_if') +subdir('pam_time') +subdir('pam_timestamp') +subdir('pam_tty_audit') +subdir('pam_umask') +subdir('pam_unix') +subdir('pam_userdb') +subdir('pam_usertype') +subdir('pam_warn') +subdir('pam_wheel') +subdir('pam_xauth') diff --git a/modules/module-meson.build b/modules/module-meson.build new file mode 100644 index 00000000..acb70875 --- /dev/null +++ b/modules/module-meson.build @@ -0,0 +1,510 @@ +# -*- mode: meson -*- + +module = fs.name(meson.current_source_dir()) + +# pam_module.so + +pam_module_src = [module + '.c'] +pam_module_c_args = [] +pam_module_deps = [libpam_internal_dep, libpam_dep] + +if module == 'pam_env' + pam_module_deps += [libeconf] +endif +if module == 'pam_faillock' + pam_module_src += ['faillock.c', 'faillock_config.c'] + pam_module_deps += [libaudit] +endif +if module == 'pam_issue' + pam_module_deps += [libsystemd] +endif +if module == 'pam_keyinit' + if not enable_pam_keyinit + subdir_done() + endif +endif +if module == 'pam_lastlog' + if not enable_pam_lastlog + subdir_done() + endif + pam_module_deps += [libutil] +endif +if module == 'pam_limits' + limits_conf_dir = sconfigdir / 'limits.d' + pam_module_c_args += ['-DLIMITS_FILE_DIR="@0@"'.format(limits_conf_dir)] + pam_module_deps += [libsystemd] +endif +if module == 'pam_loginuid' + pam_module_deps += [libaudit] +endif +if module == 'pam_mkhomedir' + pam_module_c_args += ['-DMKHOMEDIR_HELPER="@0@"'.format(sbindir / 'mkhomedir_helper')] +endif +if module == 'pam_namespace' + if cdata.get('HAVE_UNSHARE', 0) == 0 + subdir_done() + endif + pam_module_src += ['md5.c', 'argv_parse.c'] + pam_module_deps += [libselinux] +endif +if module == 'pam_pwhistory' + pam_module_src += ['opasswd.c', 'pwhistory_config.c'] + if libselinux.found() + pam_module_c_args += ['-DPWHISTORY_HELPER="@0@"'.format(sbindir / 'pwhistory_helper')] + endif + pam_module_deps += [libcrypt, libselinux] +endif +if module == 'pam_rhosts' + if cdata.get('HAVE_RUSEROK', 0) == 0 or cdata.get('HAVE_RUSEROK_AF', 0) == 0 + subdir_done() + endif +endif +if module == 'pam_rootok' + pam_module_deps += [libselinux, libaudit] +endif +if module == 'pam_selinux' + if not libselinux.found() + subdir_done() + endif + pam_module_deps += [libselinux, libaudit] +endif +if module == 'pam_sepermit' + if not libselinux.found() + subdir_done() + endif + pam_module_deps += [libselinux] + sepermit_lockdir = localstatedir / 'run' / 'sepermit' + pam_module_c_args += ['-DSEPERMIT_LOCKDIR="@0@"'.format(sepermit_lockdir)] +endif +if module == 'pam_setquota' + if cdata.get('HAVE_QUOTACTL', 0) == 0 + subdir_done() + endif +endif +if module == 'pam_shells' + pam_module_deps += [libeconf] +endif +if module == 'pam_timestamp' + if cdata.get('WITH_OPENSSL', 0) == 1 + pam_module_src += ['hmac_openssl_wrapper.c'] + else + pam_module_src += ['hmacsha1.c', 'sha1.c'] + endif + pam_module_deps += [libcrypto, libsystemd] +endif +if module == 'pam_tty_audit' + if cdata.get('HAVE_STRUCT_AUDIT_TTY_STATUS', 0) == 0 + subdir_done() + endif +endif +if module == 'pam_unix' + if not enable_pam_unix + subdir_done() + endif + pam_module_src = ['bigcrypt.c', + 'pam_unix_acct.c', + 'pam_unix_auth.c', + 'pam_unix_passwd.c', + 'pam_unix_sess.c', + 'support.c', + 'passverify.c', + 'md5_good.c', + 'md5_broken.c', + ] + if enable_nis + pam_module_src += ['yppasswd_xdr.c'] + endif + pam_module_c_args += ['-DCHKPWD_HELPER="@0@"'.format(sbindir / 'unix_chkpwd'), + '-DUPDATE_HELPER="@0@"'.format(sbindir / 'unix_update')] + pam_module_deps += [libcrypt, libselinux, libtirpc, libnsl] +endif +if module == 'pam_userdb' + if not enable_pam_userdb + subdir_done() + endif + pam_module_deps += [libdb, libcrypt] +endif +if module == 'pam_xauth' + pam_module_deps += [libselinux] +endif + +pam_module = shared_module( + module, + name_prefix: '', + sources: pam_module_src, + dependencies: pam_module_deps, + c_args: pam_module_c_args, + link_depends: pam_module_link_deps, + link_args: pam_module_link_args, + install: true, + install_dir: securedir, +) + + +# pam_module.8 + +pam_module_mans = [[module + '.8', []]] +if module == 'pam_access' + pam_module_mans += [['access.conf.5', []]] +endif +if module == 'pam_env' + pam_module_mans += [['pam_env.conf.5', ['environment.5']]] +endif +if module == 'pam_group' + pam_module_mans += [['group.conf.5', []]] +endif +if module == 'pam_faillock' + pam_module_mans += [['faillock.8', []], + ['faillock.conf.5', []]] +endif +if module == 'pam_limits' + pam_module_mans += [['limits.conf.5', []]] +endif +if module == 'pam_mkhomedir' + pam_module_mans += [['mkhomedir_helper.8', []]] +endif +if module == 'pam_namespace' + pam_module_mans += [['namespace.conf.5', []], + [module + '_helper.8', []]] +endif +if module == 'pam_pwhistory' + pam_module_mans += [['pwhistory.conf.5', []]] + if libselinux.found() + pam_module_mans += [['pwhistory_helper.8', []]] + endif +endif +if module == 'pam_sepermit' + pam_module_mans += [['sepermit.conf.5', []]] +endif +if module == 'pam_time' + pam_module_mans += [['time.conf.5', []]] +endif +if module == 'pam_timestamp' + pam_module_mans += [['pam_timestamp_check.8', []]] +endif +if module == 'pam_unix' + pam_module_mans += [['unix_chkpwd.8', []]] + if libselinux.found() + pam_module_mans += [['unix_update.8', []]] + endif +endif + +foreach man: pam_module_mans + xml = man[0] + '.xml' + + run_command([prog_xmllint, + '--nonet', + '--noout', + '--xinclude', + '--relaxng', docbook_rng, + xml], + check: true) + + custom_target(man[0], + input: xml, + output: man, + depends: [custom_man_xsl, pam_module], + command: [prog_xsltproc, + '-o', '@OUTPUT0@', + '--nonet', + '--xinclude', + '--path', meson.current_source_dir(), + stringparam_vendordir, + stringparam_profileconditions, + custom_man_xsl, + '@INPUT@'], + install: true, + install_dir: mandir / 'man' + man[0].substring(-1), + install_tag: 'man', + ) +endforeach + + +# README + +readme_html = custom_target( + input: 'README.xml', + output: 'README.html', + depends: pam_module, + command: [prog_xsltproc, + '-o', '@OUTPUT@', + '--nonet', + '--xinclude', + '--path', meson.current_source_dir(), + '--stringparam', 'generate.toc', 'none', + stringparam_vendordir, + stringparam_profileconditions, + txt_stylesheet, + '@INPUT@'], +) + +custom_target( + input: readme_html, + output: module + '.txt', + command: [redir_exe, + '@INPUT@', + '@OUTPUT@', + browser], + install: true, + install_dir: docdir / 'modules', + install_tag: 'doc', +) + + +# module-specific configuration files and helpers + +if module == 'pam_access' + install_data( + 'access.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) +endif +if module == 'pam_env' + install_data( + 'pam_env.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) + install_data( + 'environment', + install_dir: vendor_sysconfdir, + install_tag: 'config', + ) +endif +if module == 'pam_group' + install_data( + 'group.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) +endif +if module == 'pam_faillock' + executable( + 'faillock', + sources: ['main.c', 'faillock.c', 'faillock_config.c'], + link_args: exe_link_args, + dependencies: [libpam_internal_dep, libpam_dep, libaudit], + install: true, + install_dir: sbindir, + ) + install_data( + 'faillock.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) +endif +if module == 'pam_filter' + install_data( + 'pam_filter.h', + install_dir: includedir, + install_tag: 'devel', + ) +endif +if module == 'pam_limits' + install_data( + 'limits.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) + install_emptydir( + limits_conf_dir, + install_tag: 'config', + ) +endif +if module == 'pam_mkhomedir' + executable( + 'mkhomedir_helper', + sources: ['mkhomedir_helper.c'], + link_args: exe_link_args, + dependencies: [libpam_internal_dep, libpam_dep], + install: true, + install_dir: sbindir, + ) +endif +if module == 'pam_namespace' + pam_namespace_helper = configure_file( + input: 'pam_namespace_helper.in', + output: 'pam_namespace_helper', + configuration: cdata + ) + install_data( + pam_namespace_helper, + install_mode: 'rwxr-xr-x', + install_dir: sbindir, + install_tag: 'bin', + ) + pam_namespace_service = configure_file( + input: 'pam_namespace.service.in', + output: 'pam_namespace.service', + configuration: cdata + ) + install_data( + pam_namespace_service, + install_dir: systemdunitdir, + install_tag: 'config', + ) + install_data( + 'namespace.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) + install_data( + 'namespace.init', + install_mode: 'rwxr-xr-x', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) + install_emptydir( + sconfigdir / 'namespace.d', + install_tag: 'config', + ) +endif +if module == 'pam_pwhistory' + executable( + 'pwhistory_helper', + sources: ['pwhistory_helper.c', 'opasswd.c'], + c_args: ['-DHELPER_COMPILE="pwhistory_helper"'], + link_args: exe_link_args, + dependencies: [libpam_internal_dep, libpam_dep, libcrypt], + install: true, + install_dir: sbindir, + ) + install_data( + 'pwhistory.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) +endif +if module == 'pam_selinux' + executable( + 'pam_selinux_check', + sources: ['pam_selinux_check.c'], + include_directories: [libpamc_inc], + link_args: exe_link_args, + dependencies: [libpam_internal_dep, libpam_dep, libpam_misc_dep], + ) +endif +if module == 'pam_sepermit' + install_data( + 'sepermit.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) + install_emptydir( + sepermit_lockdir, + install_tag: 'config', + ) +endif +if module == 'pam_time' + install_data( + 'time.conf', + install_dir: vendor_sconfigdir, + install_tag: 'config', + ) +endif +if module == 'pam_timestamp' + executable( + 'pam_timestamp_check', + sources: ['pam_timestamp_check.c'], + link_args: exe_link_args, + dependencies: [libpam_internal_dep, libpam_dep, libsystemd], + install: true, + install_dir: sbindir, + ) +endif +if module == 'pam_unix' + executable( + 'unix_chkpwd', + sources: ['unix_chkpwd.c', + 'audit.c', + 'bigcrypt.c', + 'md5_good.c', + 'md5_broken.c', + 'passverify.c', + ], + c_args: ['-DHELPER_COMPILE="unix_chkpwd"'], + link_args: exe_link_args, + dependencies: [libpam_internal_dep, libpam_dep, libcrypt, libselinux, libaudit], + install: true, + install_dir: sbindir, + ) + if libselinux.found() + executable( + 'unix_update', + sources: ['unix_update.c', + 'audit.c', + 'bigcrypt.c', + 'md5_good.c', + 'md5_broken.c', + 'passverify.c', + ], + c_args: ['-DHELPER_COMPILE="unix_update"'], + link_args: exe_link_args, + dependencies: [libpam_internal_dep, libpam_dep, libcrypt, libselinux, libaudit], + install: true, + install_dir: sbindir, + ) + endif + executable( + 'bigcrypt', + sources: ['bigcrypt.c', 'bigcrypt_main.c'], + dependencies: [libpam_internal_dep, libpam_dep, libcrypt], + ) +endif + + +# tests + +test( + 'dlopen ' + module, + tst_dlopen, + args: [pam_module], +) + +tst_module_retval_name = 'tst-' + module + '-retval' +tst_module_retval_src = tst_module_retval_name + '.c' + +if fs.exists(tst_module_retval_src) + tst_module_retval_link_args = '' + if module == 'pam_canonicalize_user' + tst_module_retval_link_args = '-Wl,--export-dynamic' + endif + + tst_module_retval_deps = [libpam_internal_dep, libpam_dep] + if module == 'pam_rootok' + tst_module_retval_deps += [libselinux, libaudit] + endif + + tst_module_retval = executable( + tst_module_retval_name, + sources: tst_module_retval_src, + dependencies: tst_module_retval_deps, + link_args: tst_module_retval_link_args, + ) + + test( + tst_module_retval_name, + chdir_meson_build_subdir, + args: [tst_module_retval], + env: ['MESON_BUILD_SUBDIR=' + meson.current_build_dir()], + ) +endif + + +if module == 'pam_timestamp' and cdata.get('WITH_OPENSSL', 0) != 1 + hmacfile_exe = executable( + 'hmacfile', + sources: ['hmacfile.c', 'hmacsha1.c', 'sha1.c'], + dependencies: [libpam_internal_dep, libpam_dep], + ) + test( + 'pam_timestamp hmacfile', + hmacfile_exe, + ) +endif + + +if module == 'pam_filter' + subdir('upperLOWER') +endif diff --git a/modules/pam_access/Makefile.am b/modules/pam_access/Makefile.am deleted file mode 100644 index 8af2852a..00000000 --- a/modules/pam_access/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = access.conf.5 pam_access.8 -endif -XMLS = README.xml access.conf.5.xml pam_access.8.xml -dist_check_SCRIPTS = tst-pam_access -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_access.la -pam_access_la_LIBADD = $(top_builddir)/libpam/libpam.la - -dist_secureconf_DATA = access.conf - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_access/Makefile.in b/modules/pam_access/Makefile.in deleted file mode 100644 index 9dadd2d3..00000000 --- a/modules/pam_access/Makefile.in +++ /dev/null @@ -1,1232 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_access -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(dist_secureconf_DATA) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" \ - "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_access_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_access_la_SOURCES = pam_access.c -pam_access_la_OBJECTS = pam_access.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_access.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_access.c -DIST_SOURCES = pam_access.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = access.conf.5 pam_access.8 -XMLS = README.xml access.conf.5.xml pam_access.8.xml -dist_check_SCRIPTS = tst-pam_access -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_access.la -pam_access_la_LIBADD = $(top_builddir)/libpam/libpam.la -dist_secureconf_DATA = access.conf -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_access/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_access/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_access.la: $(pam_access_la_OBJECTS) $(pam_access_la_DEPENDENCIES) $(EXTRA_pam_access_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_access_la_OBJECTS) $(pam_access_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_access.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_access.log: tst-pam_access - @p='tst-pam_access'; \ - b='tst-pam_access'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_access.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-dist_secureconfDATA install-man \ - install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_access.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA uninstall-man \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dist_secureconfDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man5 install-man8 install-pdf install-pdf-am \ - install-ps install-ps-am install-securelibLTLIBRARIES \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am recheck tags tags-am uninstall \ - uninstall-am uninstall-dist_secureconfDATA uninstall-man \ - uninstall-man5 uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_access/README b/modules/pam_access/README deleted file mode 100644 index 891e7688..00000000 --- a/modules/pam_access/README +++ /dev/null @@ -1,145 +0,0 @@ -pam_access — PAM module for logdaemon style login access control - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_access PAM module is mainly for access management. It provides -logdaemon style login access control based on login names, host or domain -names, internet addresses or network numbers, or on terminal line names, X -$DISPLAY values, or PAM service names in case of non-networked logins. - -By default rules for access management are taken from config file /etc/security -/access.conf if you don't specify another file. Then individual *.conf files -from the /etc/security/access.d/ directory are read. The files are parsed one -after another in the order of the system locale. The effect of the individual -files is the same as if all the files were concatenated together in the order -of parsing. This means that once a pattern is matched in some file no further -files are parsed. If a config file is explicitly specified with the accessfile -option the files in the above directory are not parsed. - -By default rules for access management are taken from config file /etc/security -/access.conf or, if that one is not present, the file %vendordir%/security/ -access.conf. These settings can be overruled by setting in a config file -explicitly specified with the accessfile option. Then individual *.conf files -from the /etc/security/access.d/ and %vendordir%/security/access.d directories -are read. If /etc/security/access.d/@filename@.conf exists, then %vendordir%/ -security/access.d/@filename@.conf will not be used. All access.d/*.conf files -are sorted by their @filename@.conf in lexicographic order regardless of which -of the directories they reside in. The effect of the individual files is the -same as if all the files were concatenated together in the order of parsing. -This means that once a pattern is matched in some file no further files are -parsed. If a config file is explicitly specified with the accessfile option the -files in the above directories are not parsed. - -If Linux PAM is compiled with audit support the module will report when it -denies access based on origin (host, tty, etc.). - -OPTIONS - -accessfile=/path/to/access.conf - - Indicate an alternative access.conf style configuration file to override - the default. This can be useful when different services need different - access lists. - -debug - - A lot of debug information is printed with syslog(3). - -noaudit - - Do not report logins from disallowed hosts and ttys to the audit subsystem. - -fieldsep=separators - - This option modifies the field separator character that pam_access will - recognize when parsing the access configuration file. For example: fieldsep - =| will cause the default `:' character to be treated as part of a field - value and `|' becomes the field separator. Doing this may be useful in - conjunction with a system that wants to use pam_access with X based - applications, since the PAM_TTY item is likely to be of the form - "hostname:0" which includes a `:' character in its value. But you should - not need this. - -listsep=separators - - This option modifies the list separator character that pam_access will - recognize when parsing the access configuration file. For example: listsep - =, will cause the default ` ' (space) and `\t' (tab) characters to be - treated as part of a list element value and `,' becomes the only list - element separator. Doing this may be useful on a system with group - information obtained from a Windows domain, where the default built-in - groups "Domain Users", "Domain Admins" contain a space. - -nodefgroup - - User tokens which are not enclosed in parentheses will not be matched - against the group database. The backwards compatible default is to try the - group database match even for tokens not enclosed in parentheses. - -EXAMPLES - -These are some example lines which might be specified in /etc/security/ -access.conf. - -User root should be allowed to get access via cron, X11 terminal :0, tty1, ..., -tty5, tty6. - -+:root:crond :0 tty1 tty2 tty3 tty4 tty5 tty6 - -User root should be allowed to get access from hosts which own the IPv4 -addresses. This does not mean that the connection have to be a IPv4 one, a IPv6 -connection from a host with one of this IPv4 addresses does work, too. - -+:root:192.168.200.1 192.168.200.4 192.168.200.9 - -+:root:127.0.0.1 - -User root should get access from network 192.168.201. where the term will be -evaluated by string matching. But it might be better to use network/netmask -instead. The same meaning of 192.168.201. is 192.168.201.0/24 or 192.168.201.0/ -255.255.255.0. - -+:root:192.168.201. - -User root should be able to have access from hosts foo1.bar.org and -foo2.bar.org (uses string matching also). - -+:root:foo1.bar.org foo2.bar.org - -User root should be able to have access from domain foo.bar.org (uses string -matching also). - -+:root:.foo.bar.org - -User root should be denied to get access from all other sources. - --:root:ALL - -User foo and members of netgroup admins should be allowed to get access from -all sources. This will only work if netgroup service is available. - -+:@admins foo:ALL - -User john and foo should get access from IPv6 host address. - -+:john foo:2001:db8:0:101::1 - -User john should get access from IPv6 net/mask. - -+:john:2001:db8:0:101::/64 - -Members of group wheel should be allowed to get access from all sources. - -+:(wheel):ALL - -Disallow console logins to all but the shutdown, sync and all other accounts, -which are a member of the wheel group. - --:ALL EXCEPT (wheel) shutdown sync:LOCAL - -All other users should be denied to get access from all sources. - --:ALL:ALL - diff --git a/modules/pam_access/access.conf b/modules/pam_access/access.conf index 47b6b84c..9c8e2171 100644 --- a/modules/pam_access/access.conf +++ b/modules/pam_access/access.conf @@ -115,6 +115,9 @@ # User "john" should get access from ipv6 host address (same as above) #+:john:2001:4ca0:0:101:0:0:0:1 # +# User "john" should get access from ipv6 local link host address +#+:john:fe80::de95:818c:1b55:7e42%eth0 +# # User "john" should get access from ipv6 net/mask #+:john:2001:4ca0:0:101::/64 # diff --git a/modules/pam_access/access.conf.5 b/modules/pam_access/access.conf.5 deleted file mode 100644 index b45e914e..00000000 --- a/modules/pam_access/access.conf.5 +++ /dev/null @@ -1,222 +0,0 @@ -'\" t -.\" Title: access.conf -.\" Author: [see the "AUTHORS" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: [FIXME: source] -.\" Language: English -.\" -.TH "ACCESS\&.CONF" "5" "05/07/2023" "[FIXME: source]" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -access.conf \- the login access control table file -.SH "DESCRIPTION" -.PP -The -/etc/security/access\&.conf -file specifies (\fIuser/group\fR, -\fIhost\fR), (\fIuser/group\fR, -\fInetwork/netmask\fR), (\fIuser/group\fR, -\fItty\fR), (\fIuser/group\fR, -\fIX\-$DISPLAY\-value\fR), or (\fIuser/group\fR, -\fIpam\-service\-name\fR) combinations for which a login will be either accepted or refused\&. -.PP -When someone logs in, the file -access\&.conf -is scanned for the first entry that matches the (\fIuser/group\fR, -\fIhost\fR) or (\fIuser/group\fR, -\fInetwork/netmask\fR) combination, or, in case of non\-networked logins, the first entry that matches the (\fIuser/group\fR, -\fItty\fR) combination, or in the case of non\-networked logins without a tty, the first entry that matches the (\fIuser/group\fR, -\fIX\-$DISPLAY\-value\fR) or (\fIuser/group\fR, -\fIpam\-service\-name/\fR) combination\&. The permissions field of that table entry determines whether the login will be accepted or refused\&. -.PP -Each line of the login access control table has three fields separated by a ":" character (colon): -.PP -\fIpermission\fR:\fIusers/groups\fR:\fIorigins\fR -.PP -The first field, the -\fIpermission\fR -field, can be either a "\fI+\fR" character (plus) for access granted or a "\fI\-\fR" character (minus) for access denied\&. -.PP -The second field, the -\fIusers\fR/\fIgroup\fR -field, should be a list of one or more login names, group names, or -\fIALL\fR -(which always matches)\&. To differentiate user entries from group entries, group entries should be written with brackets, e\&.g\&. -\fI(group)\fR\&. -.PP -The third field, the -\fIorigins\fR -field, should be a list of one or more tty names (for non\-networked logins), X -\fI$DISPLAY\fR -values or PAM service names (for non\-networked logins without a tty), host names, domain names (begin with "\&."), host addresses, internet network numbers (end with "\&."), internet network addresses with network mask (where network mask can be a decimal number or an internet address also), -\fIALL\fR -(which always matches) or -\fILOCAL\fR\&. The -\fILOCAL\fR -keyword matches if and only if -\fBpam_get_item\fR(3), when called with an -\fIitem_type\fR -of -\fIPAM_RHOST\fR, returns -NULL -or an empty string (and therefore the -\fIorigins\fR -field is compared against the return value of -\fBpam_get_item\fR(3) -called with an -\fIitem_type\fR -of -\fIPAM_TTY\fR -or, absent that, -\fIPAM_SERVICE\fR)\&. -.PP -If supported by the system you can use -\fI@netgroupname\fR -in host or user patterns\&. The -\fI@@netgroupname\fR -syntax is supported in the user pattern only and it makes the local system hostname to be passed to the netgroup match call in addition to the user name\&. This might not work correctly on some libc implementations causing the match to always fail\&. -.PP -The -\fIEXCEPT\fR -operator makes it possible to write very compact rules\&. -.PP -If the -\fBnodefgroup\fR -is not set, the group file is searched when a name does not match that of the logged\-in user\&. Only groups are matched in which users are explicitly listed\&. However the PAM module does not look at the primary group id of a user\&. -.PP -The "\fI#\fR" character at start of line (no space at front) can be used to mark this line as a comment line\&. -.SH "EXAMPLES" -.PP -These are some example lines which might be specified in -/etc/security/access\&.conf\&. -.PP -User -\fIroot\fR -should be allowed to get access via -\fIcron\fR, X11 terminal -\fI:0\fR, -\fItty1\fR, \&.\&.\&., -\fItty5\fR, -\fItty6\fR\&. -.PP -+:root:crond :0 tty1 tty2 tty3 tty4 tty5 tty6 -.PP -User -\fIroot\fR -should be allowed to get access from hosts which own the IPv4 addresses\&. This does not mean that the connection have to be a IPv4 one, a IPv6 connection from a host with one of this IPv4 addresses does work, too\&. -.PP -+:root:192\&.168\&.200\&.1 192\&.168\&.200\&.4 192\&.168\&.200\&.9 -.PP -+:root:127\&.0\&.0\&.1 -.PP -User -\fIroot\fR -should get access from network -192\&.168\&.201\&. -where the term will be evaluated by string matching\&. But it might be better to use network/netmask instead\&. The same meaning of -192\&.168\&.201\&. -is -\fI192\&.168\&.201\&.0/24\fR -or -\fI192\&.168\&.201\&.0/255\&.255\&.255\&.0\fR\&. -.PP -+:root:192\&.168\&.201\&. -.PP -User -\fIroot\fR -should be able to have access from hosts -\fIfoo1\&.bar\&.org\fR -and -\fIfoo2\&.bar\&.org\fR -(uses string matching also)\&. -.PP -+:root:foo1\&.bar\&.org foo2\&.bar\&.org -.PP -User -\fIroot\fR -should be able to have access from domain -\fIfoo\&.bar\&.org\fR -(uses string matching also)\&. -.PP -+:root:\&.foo\&.bar\&.org -.PP -User -\fIroot\fR -should be denied to get access from all other sources\&. -.PP -\-:root:ALL -.PP -User -\fIfoo\fR -and members of netgroup -\fIadmins\fR -should be allowed to get access from all sources\&. This will only work if netgroup service is available\&. -.PP -+:@admins foo:ALL -.PP -User -\fIjohn\fR -and -\fIfoo\fR -should get access from IPv6 host address\&. -.PP -+:john foo:2001:db8:0:101::1 -.PP -User -\fIjohn\fR -should get access from IPv6 net/mask\&. -.PP -+:john:2001:db8:0:101::/64 -.PP -Members of group -\fIwheel\fR -should be allowed to get access from all sources\&. -.PP -+:(wheel):ALL -.PP -Disallow console logins to all but the shutdown, sync and all other accounts, which are a member of the wheel group\&. -.PP -\-:ALL EXCEPT (wheel) shutdown sync:LOCAL -.PP -All other users should be denied to get access from all sources\&. -.PP -\-:ALL:ALL -.SH "NOTES" -.PP -The default separators of list items in a field are space, \*(Aq,\*(Aq, and tabulator characters\&. Thus conveniently if spaces are put at the beginning and the end of the fields they are ignored\&. However if the list separator is changed with the -\fIlistsep\fR -option, the spaces will become part of the actual item and the line will be most probably ignored\&. For this reason, it is not recommended to put spaces around the \*(Aq:\*(Aq characters\&. -.SH "SEE ALSO" -.PP -\fBpam_access\fR(8), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHORS" -.PP -Original -\fBlogin.access\fR(5) -manual was provided by Guido van Rooij which was renamed to -\fBaccess.conf\fR(5) -to reflect relation to default config file\&. -.PP -Network address / netmask description and example text was introduced by Mike Becher <mike\&.becher@lrz\-muenchen\&.de>\&. diff --git a/modules/pam_access/access.conf.5.xml b/modules/pam_access/access.conf.5.xml index ff1cb223..0b93db00 100644 --- a/modules/pam_access/access.conf.5.xml +++ b/modules/pam_access/access.conf.5.xml @@ -63,10 +63,10 @@ <para> The second field, the <replaceable>users</replaceable>/<replaceable>group</replaceable> - field, should be a list of one or more login names, group names, or + field, should be a list of one or more login names, group names, uid, gid, or <emphasis>ALL</emphasis> (which always matches). To differentiate user entries from group entries, group entries should be written - with brackets, e.g. <emphasis>(group)</emphasis>. + with brackets, e.g. <emphasis>(group)</emphasis> or <emphasis>(gid)</emphasis>. </para> <para> @@ -79,17 +79,12 @@ with network mask (where network mask can be a decimal number or an internet address also), <emphasis>ALL</emphasis> (which always matches) or <emphasis>LOCAL</emphasis>. The <emphasis>LOCAL</emphasis> - keyword matches if and only if - <citerefentry><refentrytitle>pam_get_item</refentrytitle><manvolnum>3</manvolnum></citerefentry>, - when called with an <parameter>item_type</parameter> of - <emphasis>PAM_RHOST</emphasis>, returns <code>NULL</code> or an - empty string (and therefore the - <replaceable>origins</replaceable> field is compared against the - return value of - <citerefentry><refentrytitle>pam_get_item</refentrytitle><manvolnum>3</manvolnum></citerefentry> - called with an <parameter>item_type</parameter> of - <emphasis>PAM_TTY</emphasis> or, absent that, - <emphasis>PAM_SERVICE</emphasis>). + keyword matches when the user connects without a network + connection (e.g., <emphasis>su</emphasis>, + <emphasis>login</emphasis>). A connection through the loopback + device (e.g., <command>ssh user@localhost</command>) is + considered a network connection, and thus, the + <emphasis>LOCAL</emphasis> keyword does not match. </para> <para> @@ -176,6 +171,12 @@ <para>-:root:ALL</para> <para> + A user with uid <emphasis>1003</emphasis> and a group with gid + <emphasis>1000</emphasis> should be allowed to get access + from all other sources. + </para> + <para>+:(1000) 1003:ALL</para> + <para> User <emphasis>foo</emphasis> and members of netgroup <emphasis>admins</emphasis> should be allowed to get access from all sources. This will only work if netgroup service is available. @@ -189,6 +190,12 @@ <para>+:john foo:2001:db8:0:101::1</para> <para> + User <emphasis>john</emphasis> and <emphasis>foo</emphasis> + should get access from IPv6 link local host address. + </para> + <para>+:john foo:fe80::de95:818c:1b55:7e42%eth1</para> + + <para> User <emphasis>john</emphasis> should get access from IPv6 net/mask. </para> <para>+:john:2001:db8:0:101::/64</para> @@ -222,6 +229,10 @@ item and the line will be most probably ignored. For this reason, it is not recommended to put spaces around the ':' characters. </para> + <para> + An IPv6 link local host address must contain the interface + identifier. IPv6 link local network/netmask is not supported. + </para> </refsect1> <refsect1 xml:id="access.conf-see_also"> @@ -246,4 +257,4 @@ introduced by Mike Becher <mike.becher@lrz-muenchen.de>. </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_access/meson.build b/modules/pam_access/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_access/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_access/pam_access.8 b/modules/pam_access/pam_access.8 deleted file mode 100644 index c9f9d402..00000000 --- a/modules/pam_access/pam_access.8 +++ /dev/null @@ -1,139 +0,0 @@ -'\" t -.\" Title: pam_access -.\" Author: [see the "AUTHORS" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_ACCESS" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_access \- PAM module for logdaemon style login access control -.SH "SYNOPSIS" -.HP \w'\fBpam_access\&.so\fR\ 'u -\fBpam_access\&.so\fR [debug] [nodefgroup] [noaudit] [accessfile=\fIfile\fR] [fieldsep=\fIsep\fR] [listsep=\fIsep\fR] -.SH "DESCRIPTION" -.PP -The pam_access PAM module is mainly for access management\&. It provides logdaemon style login access control based on login names, host or domain names, internet addresses or network numbers, or on terminal line names, X -\fI$DISPLAY\fR -values, or PAM service names in case of non\-networked logins\&. -.PP -By default rules for access management are taken from config file -/etc/security/access\&.conf -if you don\*(Aqt specify another file\&. Then individual -*\&.conf -files from the -/etc/security/access\&.d/ -directory are read\&. The files are parsed one after another in the order of the system locale\&. The effect of the individual files is the same as if all the files were concatenated together in the order of parsing\&. This means that once a pattern is matched in some file no further files are parsed\&. If a config file is explicitly specified with the -\fBaccessfile\fR -option the files in the above directory are not parsed\&. -.PP -If Linux PAM is compiled with audit support the module will report when it denies access based on origin (host, tty, etc\&.)\&. -.SH "OPTIONS" -.PP -accessfile=/path/to/access\&.conf -.RS 4 -Indicate an alternative -access\&.conf -style configuration file to override the default\&. This can be useful when different services need different access lists\&. -.RE -.PP -debug -.RS 4 -A lot of debug information is printed with -\fBsyslog\fR(3)\&. -.RE -.PP -noaudit -.RS 4 -Do not report logins from disallowed hosts and ttys to the audit subsystem\&. -.RE -.PP -fieldsep=separators -.RS 4 -This option modifies the field separator character that pam_access will recognize when parsing the access configuration file\&. For example: -\fBfieldsep=|\fR -will cause the default `:\*(Aq character to be treated as part of a field value and `|\*(Aq becomes the field separator\&. Doing this may be useful in conjunction with a system that wants to use pam_access with X based applications, since the -\fBPAM_TTY\fR -item is likely to be of the form "hostname:0" which includes a `:\*(Aq character in its value\&. But you should not need this\&. -.RE -.PP -listsep=separators -.RS 4 -This option modifies the list separator character that pam_access will recognize when parsing the access configuration file\&. For example: -\fBlistsep=,\fR -will cause the default ` \*(Aq (space) and `\et\*(Aq (tab) characters to be treated as part of a list element value and `,\*(Aq becomes the only list element separator\&. Doing this may be useful on a system with group information obtained from a Windows domain, where the default built\-in groups "Domain Users", "Domain Admins" contain a space\&. -.RE -.PP -nodefgroup -.RS 4 -User tokens which are not enclosed in parentheses will not be matched against the group database\&. The backwards compatible default is to try the group database match even for tokens not enclosed in parentheses\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -Access was granted\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Access was not granted\&. -.RE -.PP -PAM_IGNORE -.RS 4 -\fBpam_setcred\fR -was called which does nothing\&. -.RE -.PP -PAM_ABORT -.RS 4 -Not all relevant data or options could be gotten\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The user is not known to the system\&. -.RE -.SH "FILES" -.PP -/etc/security/access\&.conf -.RS 4 -Default configuration file -.RE -.SH "SEE ALSO" -.PP -\fBaccess.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8)\&. -.SH "AUTHORS" -.PP -The logdaemon style login access control scheme was designed and implemented by Wietse Venema\&. The pam_access PAM module was developed by Alexei Nogin <alexei@nogin\&.dnttm\&.ru>\&. The IPv6 support and the network(address) / netmask feature was developed and provided by Mike Becher <mike\&.becher@lrz\-muenchen\&.de>\&. diff --git a/modules/pam_access/pam_access.8.xml b/modules/pam_access/pam_access.8.xml index 010e749e..c991d7a0 100644 --- a/modules/pam_access/pam_access.8.xml +++ b/modules/pam_access/pam_access.8.xml @@ -29,6 +29,9 @@ noaudit </arg> <arg choice="opt" rep="norepeat"> + quiet_log + </arg> + <arg choice="opt" rep="norepeat"> accessfile=<replaceable>file</replaceable> </arg> <arg choice="opt" rep="norepeat"> @@ -131,6 +134,18 @@ <varlistentry> <term> + quiet_log + </term> + <listitem> + <para> + Do not log denials with + <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> fieldsep=separators </term> <listitem> @@ -286,4 +301,4 @@ was developed and provided by Mike Becher <mike.becher@lrz-muenchen.de>. </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_access/pam_access.c b/modules/pam_access/pam_access.c index f70b7e49..48e7c7e9 100644 --- a/modules/pam_access/pam_access.c +++ b/modules/pam_access/pam_access.c @@ -56,11 +56,11 @@ #include "pam_cc_compat.h" #include "pam_inline.h" -#define PAM_ACCESS_CONFIG (SCONFIGDIR "/access.conf") -#define ACCESS_CONF_GLOB (SCONFIGDIR "/access.d/*.conf") -#ifdef VENDOR_SCONFIGDIR -#define VENDOR_PAM_ACCESS_CONFIG (VENDOR_SCONFIGDIR "/access.conf") -#define VENDOR_ACCESS_CONF_GLOB (VENDOR_SCONFIGDIR "/access.d/*.conf") +#define PAM_ACCESS_CONFIG (SCONFIG_DIR "/access.conf") +#define ACCESS_CONF_GLOB (SCONFIG_DIR "/access.d/*.conf") +#ifdef VENDOR_SCONFIG_DIR +#define VENDOR_PAM_ACCESS_CONFIG (VENDOR_SCONFIG_DIR "/access.conf") +#define VENDOR_ACCESS_CONF_GLOB (VENDOR_SCONFIG_DIR "/access.d/*.conf") #endif /* login_access.c from logdaemon-5.6 with several changes by A.Nogin: */ @@ -85,7 +85,7 @@ #define ALL 2 #define YES 1 #define NO 0 -#define NOMATCH -1 +#define NOMATCH (-1) /* * A structure to bundle up all login-related information to keep the @@ -99,6 +99,7 @@ struct login_info { int debug; /* Print debugging messages. */ int only_new_group_syntax; /* Only allow group entries of the form "(xyz)" */ int noaudit; /* Do not audit denials */ + int quiet_log; /* Do not log denials */ const char *fs; /* field separator */ const char *sep; /* list-element separator */ int from_remote_host; /* If PAM_RHOST was used for from */ @@ -115,6 +116,7 @@ parse_args(pam_handle_t *pamh, struct login_info *loginfo, int i; loginfo->noaudit = NO; + loginfo->quiet_log = NO; loginfo->debug = NO; loginfo->only_new_group_syntax = NO; loginfo->fs = ":"; @@ -150,6 +152,8 @@ parse_args(pam_handle_t *pamh, struct login_info *loginfo, loginfo->only_new_group_syntax = YES; } else if (strcmp (argv[i], "noaudit") == 0) { loginfo->noaudit = YES; + } else if (strcmp (argv[i], "quiet_log") == 0) { + loginfo->quiet_log = YES; } else { pam_syslog(pamh, LOG_ERR, "unrecognized option [%s]", argv[i]); } @@ -158,7 +162,7 @@ parse_args(pam_handle_t *pamh, struct login_info *loginfo, return 1; /* OK */ } -/* --- evaluting all files in VENDORDIR/security/access.d and /etc/security/access.d --- */ +/* --- evaluating all files in VENDORDIR/security/access.d and /etc/security/access.d --- */ static const char *base_name(const char *path) { const char *base = strrchr(path, '/'); @@ -254,7 +258,7 @@ typedef int match_func (pam_handle_t *, char *, struct login_info *); static int list_match (pam_handle_t *, char *, char *, struct login_info *, match_func *); static int user_match (pam_handle_t *, char *, struct login_info *); -static int group_match (pam_handle_t *, const char *, const char *, int); +static int group_match (pam_handle_t *, char *, const char *, int); static int from_match (pam_handle_t *, char *, struct login_info *); static int remote_match (pam_handle_t *, char *, struct login_info *); static int string_match (pam_handle_t *, const char *, const char *, int); @@ -302,6 +306,23 @@ isipaddr (const char *string, int *addr_type, return is_ip; } +/* is_local_addr - checks if the IP address is local */ +static int +is_local_addr (const char *string, int addr_type) +{ + if (addr_type == AF_INET) { + if (strcmp(string, "127.0.0.1") == 0) { + return YES; + } + } else if (addr_type == AF_INET6) { + if (strcmp(string, "::1") == 0) { + return YES; + } + } + + return NO; +} + /* are_addresses_equal - translate IP address strings to real IP * addresses and compare them to find out if they are equal. @@ -323,9 +344,18 @@ are_addresses_equal (const char *ipaddr0, const char *ipaddr1, if (isipaddr (ipaddr1, &addr_type1, &addr1) == NO) return NO; - if (addr_type0 != addr_type1) - /* different address types */ + if (addr_type0 != addr_type1) { + /* different address types, but there is still a possibility that they are + * both local addresses + */ + int local1 = is_local_addr(ipaddr0, addr_type0); + int local2 = is_local_addr(ipaddr1, addr_type1); + + if (local1 == YES && local2 == YES) + return YES; + return NO; + } if (netmask != NULL) { /* Got a netmask, so normalize addresses? */ @@ -419,7 +449,7 @@ static int login_access (pam_handle_t *pamh, struct login_info *item) { FILE *fp; - char line[BUFSIZ]; + char *line = NULL; char *perm; /* becomes permission field */ char *users; /* becomes list of login names */ char *froms; /* becomes list of terminals or hosts */ @@ -427,8 +457,10 @@ login_access (pam_handle_t *pamh, struct login_info *item) #ifdef HAVE_LIBAUDIT int nonall_match = NO; #endif - int end; - int lineno = 0; /* for diagnostics */ + int result; + size_t end; + size_t lineno = 0; /* for diagnostics */ + size_t n = 0; char *sptr; if (item->debug) @@ -446,17 +478,19 @@ login_access (pam_handle_t *pamh, struct login_info *item) */ if ((fp = fopen(item->config_file, "r"))!=NULL) { - while (!match && fgets(line, sizeof(line), fp)) { + while (!match && getline(&line, &n, fp) != -1) { lineno++; + if (line[0] == 0) + continue; if (line[end = strlen(line) - 1] != '\n') { pam_syslog(pamh, LOG_ERR, - "%s: line %d: missing newline or line too long", + "%s: line %zu: missing newline or line too long", item->config_file, lineno); continue; } if (line[0] == '#') continue; /* comment line */ - while (end > 0 && isspace(line[end - 1])) + while (end > 0 && isspace((unsigned char)line[end - 1])) end--; line[end] = 0; /* strip trailing whitespace */ if (line[0] == 0) /* skip blank lines */ @@ -466,18 +500,18 @@ login_access (pam_handle_t *pamh, struct login_info *item) if (!(perm = strtok_r(line, item->fs, &sptr)) || !(users = strtok_r(NULL, item->fs, &sptr)) || !(froms = strtok_r(NULL, "\n", &sptr))) { - pam_syslog(pamh, LOG_ERR, "%s: line %d: bad field count", + pam_syslog(pamh, LOG_ERR, "%s: line %zu: bad field count", item->config_file, lineno); continue; } if (perm[0] != '+' && perm[0] != '-') { - pam_syslog(pamh, LOG_ERR, "%s: line %d: bad first field", + pam_syslog(pamh, LOG_ERR, "%s: line %zu: bad first field", item->config_file, lineno); continue; } if (item->debug) pam_syslog (pamh, LOG_DEBUG, - "line %d: %s : %s : %s", lineno, perm, users, froms); + "line %zu: %s : %s : %s", lineno, perm, users, froms); match = list_match(pamh, users, NULL, item, user_match); if (item->debug) pam_syslog (pamh, LOG_DEBUG, "user_match=%d, \"%s\"", @@ -505,16 +539,19 @@ login_access (pam_handle_t *pamh, struct login_info *item) } #ifdef HAVE_LIBAUDIT if (!item->noaudit && (match == YES || (match == ALL && - nonall_match == YES)) && line[0] == '-') { + nonall_match == YES)) && line != NULL && line[0] == '-') { pam_modutil_audit_write(pamh, AUDIT_ANOM_LOGIN_LOCATION, "pam_access", 0); } #endif if (match == NO) - return NOMATCH; - if (line[0] == '+') - return YES; - return NO; + result = NOMATCH; + else if (line != NULL && line[0] == '+') + result = YES; + else + result = NO; + free(line); + return result; } @@ -594,7 +631,30 @@ netgroup_match (pam_handle_t *pamh, const char *netgroup, return retval; } -/* user_match - match a username against one token */ +/* user_name_or_uid_match - match a username or user uid against one token */ +static int +user_name_or_uid_match(pam_handle_t *pamh, const char *tok, + const struct login_info *item) +{ + /* ALL or exact match of username */ + int rv = string_match(pamh, tok, item->user->pw_name, item->debug); + if (rv != NO) + return rv; + + if (tok[strspn(tok, "0123456789")] != '\0') + return NO; + + char buf[sizeof(long long) * 3 + 1]; + snprintf(buf, sizeof(buf), "%llu", + zero_extend_signed_to_ull(item->user->pw_uid)); + if (item->debug) + pam_syslog(pamh, LOG_DEBUG, "user_match: tok=%s, uid=%s", tok, buf); + + /* check for exact match of uid */ + return string_match (pamh, tok, buf, item->debug); +} + +/* user_match - match a user against one token */ static int user_match (pam_handle_t *pamh, char *tok, struct login_info *item) @@ -645,7 +705,7 @@ user_match (pam_handle_t *pamh, char *tok, struct login_info *item) hostname = item->hostname; } return (netgroup_match (pamh, tok + 1, hostname, string, item->debug)); - } else if ((rv=string_match (pamh, tok, string, item->debug)) != NO) /* ALL or exact match */ + } else if ((rv=user_name_or_uid_match(pamh, tok, item)) != NO) /* ALL or exact match */ return rv; else if (item->only_new_group_syntax == NO && pam_modutil_user_in_group_nam_nam (pamh, @@ -657,14 +717,41 @@ user_match (pam_handle_t *pamh, char *tok, struct login_info *item) } +/* group_name_or_gid_match - match a group name or group gid against one token */ +static int +group_name_or_gid_match(pam_handle_t *pamh, const char *tok, + const char *usr, int debug) +{ + /* check for exact match of group name */ + if (pam_modutil_user_in_group_nam_nam(pamh, usr, tok) != NO) + return YES; + + if (tok[strspn(tok, "0123456789")] != '\0') + return NO; + + char *endptr = NULL; + errno = 0; + unsigned long int ul = strtoul(tok, &endptr, 10); + gid_t gid = (gid_t) ul; + if (errno != 0 + || tok == endptr + || *endptr != '\0' + || (unsigned long) zero_extend_signed_to_ull(gid) != ul) { + return NO; + } + + if (debug) + pam_syslog(pamh, LOG_DEBUG, "group_match: user=%s, gid=%s", usr, tok); + + /* check for exact match of gid */ + return pam_modutil_user_in_group_nam_gid(pamh, usr, gid); +} + /* group_match - match a username against token named group */ static int -group_match (pam_handle_t *pamh, const char *tok, const char* usr, - int debug) +group_match (pam_handle_t *pamh, char *tok, const char* usr, int debug) { - char grptok[BUFSIZ] = {}; - if (debug) pam_syslog (pamh, LOG_DEBUG, "group_match: grp=%s, user=%s", tok, usr); @@ -673,12 +760,13 @@ group_match (pam_handle_t *pamh, const char *tok, const char* usr, return NO; /* token is received under the format '(...)' */ - strncpy(grptok, tok + 1, strlen(tok) - 2); + tok++; + tok[strlen(tok) - 1] = '\0'; - if (pam_modutil_user_in_group_nam_nam(pamh, usr, grptok)) + if (group_name_or_gid_match (pamh, usr, tok, debug)) return YES; - return NO; + return NO; } @@ -757,7 +845,7 @@ remote_match (pam_handle_t *pamh, char *tok, struct login_info *item) DIAG_PUSH_IGNORE_CAST_ALIGN; inet_ntop (runp->ai_family, &((struct sockaddr_in *) runp->ai_addr)->sin_addr, - buf, sizeof (buf)); + buf, sizeof (buf) - 1); DIAG_POP_IGNORE_CAST_ALIGN; strcat (buf, "."); @@ -876,7 +964,8 @@ network_netmask_match (pam_handle_t *pamh, */ if (getaddrinfo (tok, NULL, NULL, &ai) != 0) { - pam_syslog(pamh, LOG_ERR, "cannot resolve hostname \"%s\"", tok); + if (item->debug) + pam_syslog(pamh, LOG_DEBUG, "cannot resolve hostname \"%s\"", tok); return NO; } @@ -967,9 +1056,8 @@ network_netmask_match (pam_handle_t *pamh, /* --- public PAM management functions --- */ -int -pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, - int argc, const char **argv) +static int +pam_access(pam_handle_t *pamh, int argc, const char **argv) { struct login_info loginfo; const char *user=NULL; @@ -1099,8 +1187,10 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, if (rv) { return (PAM_SUCCESS); } else { - pam_syslog(pamh, LOG_ERR, - "access denied for user `%s' from `%s'",user,from); + if (!loginfo.quiet_log) { + pam_syslog(pamh, LOG_ERR, + "access denied for user `%s' from `%s'",user,from); + } return (PAM_PERM_DENIED); } } @@ -1113,31 +1203,38 @@ pam_sm_setcred (pam_handle_t *pamh UNUSED, int flags UNUSED, } int -pam_sm_acct_mgmt (pam_handle_t *pamh, int flags, - int argc, const char **argv) +pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) +{ + return pam_access(pamh, argc, argv); +} + +int +pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate (pamh, flags, argc, argv); + return pam_access(pamh, argc, argv); } int -pam_sm_open_session(pam_handle_t *pamh, int flags, +pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_access(pamh, argc, argv); } int -pam_sm_close_session(pam_handle_t *pamh, int flags, +pam_sm_close_session(pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_access(pamh, argc, argv); } int -pam_sm_chauthtok(pam_handle_t *pamh, int flags, +pam_sm_chauthtok(pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_access(pamh, argc, argv); } /* end of module definition */ diff --git a/modules/pam_canonicalize_user/README.xml b/modules/pam_canonicalize_user/README.xml new file mode 100644 index 00000000..293b218b --- /dev/null +++ b/modules/pam_canonicalize_user/README.xml @@ -0,0 +1,27 @@ +<article xmlns="http://docbook.org/ns/docbook" version="5.0"> + + <info> + + <title> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-name")/*)'/> + </title> + + </info> + + <section> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-description")/*)'/> + </section> + + <section> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-options")/*)'/> + </section> + + <section> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-examples")/*)'/> + </section> + + <section> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="pam_canonicalize_user.8.xml" xpointer='xpointer(id("pam_canonicalize_user-author")/*)'/> + </section> + +</article> diff --git a/modules/pam_canonicalize_user/meson.build b/modules/pam_canonicalize_user/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_canonicalize_user/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_canonicalize_user/pam_canonicalize_user.8.xml b/modules/pam_canonicalize_user/pam_canonicalize_user.8.xml new file mode 100644 index 00000000..832f7ece --- /dev/null +++ b/modules/pam_canonicalize_user/pam_canonicalize_user.8.xml @@ -0,0 +1,137 @@ +<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="pam_canonicalize_user"> + + <refmeta> + <refentrytitle>pam_canonicalize_user</refentrytitle> + <manvolnum>8</manvolnum> + <refmiscinfo class="source">Linux-PAM</refmiscinfo> + <refmiscinfo class="manual">Linux-PAM Manual</refmiscinfo> + </refmeta> + + <refnamediv xml:id="pam_canonicalize_user-name"> + <refname>pam_canonicalize_user</refname> + <refpurpose>Get user name and canonicalize it</refpurpose> + </refnamediv> + + <refsynopsisdiv> + <cmdsynopsis xml:id="pam_canonicalize_user-cmdsynopsis" sepchar=" "> + <command>pam_canonicalize_user.so</command> + </cmdsynopsis> + </refsynopsisdiv> + + <refsect1 xml:id="pam_canonicalize_user-description"> + <title>DESCRIPTION</title> + <para> + This PAM module uses the name of the user obtained via + <citerefentry> + <refentrytitle>pam_get_user</refentrytitle><manvolnum>3</manvolnum> + </citerefentry> + as a key to query the password database, and replaces + <emphasis>PAM_USER</emphasis> with the <emphasis>pw_name</emphasis> value + that has been returned. + </para> + </refsect1> + + <refsect1 xml:id="pam_canonicalize_user-options"> + <title>OPTIONS</title> + <para>This module does not recognise any options.</para> + </refsect1> + + <refsect1 xml:id="pam_canonicalize_user-types"> + <title>MODULE TYPES PROVIDED</title> + <para>Only the <option>auth</option> module type is provided.</para> + </refsect1> + + <refsect1 xml:id="pam_canonicalize_user-return_values"> + <title>RETURN VALUES</title> + <variablelist> + <varlistentry> + <term>PAM_IGNORE</term> + <listitem> + <para>The user name was set successfully.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>PAM_USER_UNKNOWN</term> + <listitem> + <para>The user was not found.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>PAM_SYSTEM_ERR</term> + <listitem> + <para>The application did not supply neither a user name nor a conversation method.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>PAM_INCOMPLETE</term> + <listitem> + <para>The conversation method supplied by the application is waiting for an event.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>PAM_CONV_ERR</term> + <listitem> + <para>The conversation method supplied by the application failed to obtain the user name.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>PAM_ABORT</term> + <listitem> + <para>Error resuming an old conversation.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>PAM_BUF_ERR</term> + <listitem> + <para>Memory buffer error.</para> + </listitem> + </varlistentry> + </variablelist> + </refsect1> + + <refsect1 xml:id="pam_canonicalize_user-examples"> + <title>EXAMPLES</title> + <para> + Prepend the PAM auth stack with the following line to canonicalize + the user name before the authentication: + <programlisting> + auth required pam_canonicalize_user.so + </programlisting> + </para> + </refsect1> + + <refsect1 xml:id="pam_get_user-see_also"> + <title>SEE ALSO</title> + <para> + <citerefentry> + <refentrytitle>pam_get_user</refentrytitle><manvolnum>3</manvolnum> + </citerefentry>, + <citerefentry> + <refentrytitle>pam_get_item</refentrytitle><manvolnum>3</manvolnum> + </citerefentry>, + <citerefentry> + <refentrytitle>pam_set_item</refentrytitle><manvolnum>3</manvolnum> + </citerefentry>, + <citerefentry> + <refentrytitle>getpwnam</refentrytitle><manvolnum>3</manvolnum> + </citerefentry>, + <citerefentry> + <refentrytitle>pam.conf</refentrytitle><manvolnum>5</manvolnum> + </citerefentry>, + <citerefentry> + <refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum> + </citerefentry>, + <citerefentry> + <refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum> + </citerefentry> + </para> + </refsect1> + + <refsect1 xml:id="pam_canonicalize_user-author"> + <title>AUTHOR</title> + <para> + pam_canonicalize_user was written by Dmitry V. Levin <ldv@strace.io>. + </para> + </refsect1> + +</refentry> diff --git a/modules/pam_canonicalize_user/pam_canonicalize_user.c b/modules/pam_canonicalize_user/pam_canonicalize_user.c new file mode 100644 index 00000000..66f794ce --- /dev/null +++ b/modules/pam_canonicalize_user/pam_canonicalize_user.c @@ -0,0 +1,76 @@ +/* + * pam_canonicalize_user - get user name and canonicalize it + * + * Copyright (c) 2023 Dmitry V. Levin <ldv@strace.io> + * + * 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, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 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. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL + * are required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``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 THE AUTHOR 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. + */ + +#include "config.h" +#include <string.h> +#include <syslog.h> + +#include <security/pam_modules.h> +#include <security/pam_modutil.h> +#include <security/pam_ext.h> + +int +pam_sm_authenticate(pam_handle_t *pamh UNUSED, int flags UNUSED, + int argc UNUSED, const char **argv UNUSED) +{ + const char *user; + int rc = pam_get_user(pamh, &user, 0); + if (rc != PAM_SUCCESS) { + pam_syslog(pamh, LOG_NOTICE, "cannot determine user name: %s", + pam_strerror(pamh, rc)); + return rc == PAM_CONV_AGAIN ? PAM_INCOMPLETE : rc; + } + + struct passwd *pw = pam_modutil_getpwnam(pamh, user); + if (!pw) { + pam_syslog(pamh, LOG_NOTICE, "user unknown"); + return PAM_USER_UNKNOWN; + } + + if (strcmp(user, pw->pw_name) == 0) + return PAM_IGNORE; + + rc = pam_set_item(pamh, PAM_USER, pw->pw_name); + return rc == PAM_SUCCESS ? PAM_IGNORE : rc; +} + +int +pam_sm_setcred(pam_handle_t *pamh UNUSED, int flags UNUSED, + int argc UNUSED, const char **argv UNUSED) +{ + return PAM_IGNORE; +} diff --git a/modules/pam_canonicalize_user/tst-pam_canonicalize_user b/modules/pam_canonicalize_user/tst-pam_canonicalize_user new file mode 100755 index 00000000..2d3cb6f3 --- /dev/null +++ b/modules/pam_canonicalize_user/tst-pam_canonicalize_user @@ -0,0 +1,2 @@ +#!/bin/sh +../../tests/tst-dlopen .libs/pam_canonicalize_user.so diff --git a/modules/pam_canonicalize_user/tst-pam_canonicalize_user-retval.c b/modules/pam_canonicalize_user/tst-pam_canonicalize_user-retval.c new file mode 100644 index 00000000..1c8af396 --- /dev/null +++ b/modules/pam_canonicalize_user/tst-pam_canonicalize_user-retval.c @@ -0,0 +1,197 @@ +/* + * Check pam_canonicalize_user return values. + * + * Copyright (c) 2023 Dmitry V. Levin <ldv@strace.io> + */ + +#include "test_assert.h" + +#include <errno.h> +#include <limits.h> +#include <pwd.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <security/pam_appl.h> + +#define MODULE_NAME "pam_canonicalize_user" +#define TEST_NAME "tst-" MODULE_NAME "-retval" + +static const char service_file[] = TEST_NAME ".service"; +static struct pam_conv null_conv; + +static int +again_conv_func(int num_msg UNUSED, const struct pam_message **msg UNUSED, + struct pam_response **resp UNUSED, void *appdata_ptr UNUSED) +{ + return PAM_CONV_AGAIN; +} + +static struct pam_conv again_conv = { .conv = again_conv_func }; + +#ifdef HAVE_GETPWNAM_R + +int +getpwnam_r(const char *name, struct passwd *pwd, char *buf, size_t buflen, struct passwd **result) +{ + if (strcmp(name, "root") == 0 || + strcmp(name, "ROOT") == 0) + return getpwuid_r(0, pwd, buf, buflen, result); + + *result = NULL; + return 0; +} + +#else /* !HAVE_GETPWNAM_R */ + +struct passwd * +getpwnam(const char *name) +{ + if (strcmp(name, "root") == 0 || + strcmp(name, "ROOT") == 0) + return getpwuid(0); + + errno = 0; + return NULL; +} + +#endif /* !HAVE_GETPWNAM_R */ + +int +main(void) +{ + pam_handle_t *pamh = NULL; + FILE *fp; + + char cwd[PATH_MAX]; + ASSERT_NE(NULL, getcwd(cwd, sizeof(cwd))); + + struct passwd *pw; + ASSERT_NE(NULL, (pw = getpwuid(0))); + ASSERT_EQ(0, strcmp("root", pw->pw_name)); + + /* PAM_USER_UNKNOWN */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, ":", &null_conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_USER_UNKNOWN, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* PAM_IGNORE -> PAM_PERM_DENIED */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "root", &null_conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_PERM_DENIED, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* PAM_IGNORE -> PAM_SUCCESS */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so\n" + "auth required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "account required %s/" LTDIR "%s.so\n" + "account required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "password required %s/" LTDIR "%s.so\n" + "password required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "session required %s/" LTDIR "%s.so\n" + "session required %s/../pam_permit/" LTDIR "pam_permit.so\n", + cwd, MODULE_NAME, cwd, + cwd, MODULE_NAME, cwd, + cwd, MODULE_NAME, cwd, + cwd, MODULE_NAME, cwd)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "root", &null_conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* PAM_INCOMPLETE */ + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, NULL, &again_conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_INCOMPLETE, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_ABORT, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_ABORT, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_ABORT, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_ABORT, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_ABORT, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* PAM_IGNORE -> PAM_SUCCESS, "ROOT" -> "root" */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so\n" + "auth required %s/../pam_succeed_if/" LTDIR "pam_succeed_if.so user = root\n" + "account required %s/" LTDIR "%s.so\n" + "account required %s/../pam_succeed_if/" LTDIR "pam_succeed_if.so user = root\n" + "password required %s/" LTDIR "%s.so\n" + "password required %s/../pam_succeed_if/" LTDIR "pam_succeed_if.so user = root\n" + "session required %s/" LTDIR "%s.so\n" + "session required %s/../pam_succeed_if/" LTDIR "pam_succeed_if.so user = root\n", + cwd, MODULE_NAME, cwd, + cwd, MODULE_NAME, cwd, + cwd, MODULE_NAME, cwd, + cwd, MODULE_NAME, cwd)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "ROOT", &null_conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_MODULE_UNKNOWN, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + ASSERT_EQ(0, unlink(service_file)); + + return 0; +} diff --git a/modules/pam_debug/Makefile.am b/modules/pam_debug/Makefile.am deleted file mode 100644 index 0333d9ba..00000000 --- a/modules/pam_debug/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_debug.8 -endif -XMLS = README.xml pam_debug.8.xml -dist_check_SCRIPTS = tst-pam_debug -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_debug.la -pam_debug_la_LIBADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_debug-retval -tst_pam_debug_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_debug/Makefile.in b/modules/pam_debug/Makefile.in deleted file mode 100644 index 32fa197d..00000000 --- a/modules/pam_debug/Makefile.in +++ /dev/null @@ -1,1191 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_debug-retval$(EXEEXT) -subdir = modules/pam_debug -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_debug_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_debug_la_SOURCES = pam_debug.c -pam_debug_la_OBJECTS = pam_debug.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_debug_retval_SOURCES = tst-pam_debug-retval.c -tst_pam_debug_retval_OBJECTS = tst-pam_debug-retval.$(OBJEXT) -tst_pam_debug_retval_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_debug.Plo \ - ./$(DEPDIR)/tst-pam_debug-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_debug.c tst-pam_debug-retval.c -DIST_SOURCES = pam_debug.c tst-pam_debug-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_debug.8 -XMLS = README.xml pam_debug.8.xml -dist_check_SCRIPTS = tst-pam_debug -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_debug.la -pam_debug_la_LIBADD = $(top_builddir)/libpam/libpam.la -tst_pam_debug_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_debug/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_debug/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_debug.la: $(pam_debug_la_OBJECTS) $(pam_debug_la_DEPENDENCIES) $(EXTRA_pam_debug_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_debug_la_OBJECTS) $(pam_debug_la_LIBADD) $(LIBS) - -tst-pam_debug-retval$(EXEEXT): $(tst_pam_debug_retval_OBJECTS) $(tst_pam_debug_retval_DEPENDENCIES) $(EXTRA_tst_pam_debug_retval_DEPENDENCIES) - @rm -f tst-pam_debug-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_debug_retval_OBJECTS) $(tst_pam_debug_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_debug.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_debug-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_debug.log: tst-pam_debug - @p='tst-pam_debug'; \ - b='tst-pam_debug'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_debug-retval.log: tst-pam_debug-retval$(EXEEXT) - @p='tst-pam_debug-retval$(EXEEXT)'; \ - b='tst-pam_debug-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_debug.Plo - -rm -f ./$(DEPDIR)/tst-pam_debug-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_debug.Plo - -rm -f ./$(DEPDIR)/tst-pam_debug-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_debug/README b/modules/pam_debug/README deleted file mode 100644 index 4afff114..00000000 --- a/modules/pam_debug/README +++ /dev/null @@ -1,64 +0,0 @@ -pam_debug — PAM module to debug the PAM stack - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_debug PAM module is intended as a debugging aide for determining how -the PAM stack is operating. This module returns what its module arguments tell -it to return. - -OPTIONS - -auth=value - - The pam_sm_authenticate(3) function will return value. - -cred=value - - The pam_sm_setcred(3) function will return value. - -acct=value - - The pam_sm_acct_mgmt(3) function will return value. - -prechauthtok=value - - The pam_sm_chauthtok(3) function will return value if the PAM_PRELIM_CHECK - flag is set. - -chauthtok=value - - The pam_sm_chauthtok(3) function will return value if the PAM_PRELIM_CHECK - flag is not set. - -open_session=value - - The pam_sm_open_session(3) function will return value. - -close_session=value - - The pam_sm_close_session(3) function will return value. - -Where value can be one of: success, open_err, symbol_err, service_err, -system_err, buf_err, perm_denied, auth_err, cred_insufficient, -authinfo_unavail, user_unknown, maxtries, new_authtok_reqd, acct_expired, -session_err, cred_unavail, cred_expired, cred_err, no_module_data, conv_err, -authtok_err, authtok_recover_err, authtok_lock_busy, authtok_disable_aging, -try_again, ignore, abort, authtok_expired, module_unknown, bad_item, -conv_again, incomplete. - -EXAMPLES - -auth requisite pam_permit.so -auth [success=2 default=ok] pam_debug.so auth=perm_denied cred=success -auth [default=reset] pam_debug.so auth=success cred=perm_denied -auth [success=done default=die] pam_debug.so -auth optional pam_debug.so auth=perm_denied cred=perm_denied -auth sufficient pam_debug.so auth=success cred=success - - -AUTHOR - -pam_debug was written by Andrew G. Morgan <morgan@kernel.org>. - diff --git a/modules/pam_debug/meson.build b/modules/pam_debug/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_debug/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_debug/pam_debug.8 b/modules/pam_debug/pam_debug.8 deleted file mode 100644 index b1a6de78..00000000 --- a/modules/pam_debug/pam_debug.8 +++ /dev/null @@ -1,144 +0,0 @@ -'\" t -.\" Title: pam_debug -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_DEBUG" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_debug \- PAM module to debug the PAM stack -.SH "SYNOPSIS" -.HP \w'\fBpam_debug\&.so\fR\ 'u -\fBpam_debug\&.so\fR [auth=\fIvalue\fR] [cred=\fIvalue\fR] [acct=\fIvalue\fR] [prechauthtok=\fIvalue\fR] [chauthtok=\fIvalue\fR] [auth=\fIvalue\fR] [open_session=\fIvalue\fR] [close_session=\fIvalue\fR] -.SH "DESCRIPTION" -.PP -The pam_debug PAM module is intended as a debugging aide for determining how the PAM stack is operating\&. This module returns what its module arguments tell it to return\&. -.SH "OPTIONS" -.PP -auth=value -.RS 4 -The -\fBpam_sm_authenticate\fR(3) -function will return -\fIvalue\fR\&. -.RE -.PP -cred=value -.RS 4 -The -\fBpam_sm_setcred\fR(3) -function will return -\fIvalue\fR\&. -.RE -.PP -acct=value -.RS 4 -The -\fBpam_sm_acct_mgmt\fR(3) -function will return -\fIvalue\fR\&. -.RE -.PP -prechauthtok=value -.RS 4 -The -\fBpam_sm_chauthtok\fR(3) -function will return -\fIvalue\fR -if the -\fIPAM_PRELIM_CHECK\fR -flag is set\&. -.RE -.PP -chauthtok=value -.RS 4 -The -\fBpam_sm_chauthtok\fR(3) -function will return -\fIvalue\fR -if the -\fIPAM_PRELIM_CHECK\fR -flag is -\fBnot\fR -set\&. -.RE -.PP -open_session=value -.RS 4 -The -\fBpam_sm_open_session\fR(3) -function will return -\fIvalue\fR\&. -.RE -.PP -close_session=value -.RS 4 -The -\fBpam_sm_close_session\fR(3) -function will return -\fIvalue\fR\&. -.RE -.PP -Where -\fIvalue\fR -can be one of: success, open_err, symbol_err, service_err, system_err, buf_err, perm_denied, auth_err, cred_insufficient, authinfo_unavail, user_unknown, maxtries, new_authtok_reqd, acct_expired, session_err, cred_unavail, cred_expired, cred_err, no_module_data, conv_err, authtok_err, authtok_recover_err, authtok_lock_busy, authtok_disable_aging, try_again, ignore, abort, authtok_expired, module_unknown, bad_item, conv_again, incomplete\&. -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -Default return code if no other value was specified, else specified return value\&. -.RE -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth requisite pam_permit\&.so -auth [success=2 default=ok] pam_debug\&.so auth=perm_denied cred=success -auth [default=reset] pam_debug\&.so auth=success cred=perm_denied -auth [success=done default=die] pam_debug\&.so -auth optional pam_debug\&.so auth=perm_denied cred=perm_denied -auth sufficient pam_debug\&.so auth=success cred=success - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_debug was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_debug/pam_debug.c b/modules/pam_debug/pam_debug.c index 414806b2..0def5160 100644 --- a/modules/pam_debug/pam_debug.c +++ b/modules/pam_debug/pam_debug.c @@ -21,17 +21,11 @@ /* --- authentication management functions --- */ -static int state(pam_handle_t *pamh, const char *text) +static void state(pam_handle_t *pamh, const char *text) { - int retval; - - retval = pam_info (pamh, "%s", text); - - if (retval != PAM_SUCCESS) { + if (pam_info(pamh, "%s", text) != PAM_SUCCESS) { D(("pam_info failed")); } - - return retval; } static int parse_args(int retval, const char *event, @@ -40,7 +34,7 @@ static int parse_args(int retval, const char *event, int i; for (i=0; i<argc; ++i) { - int length = strlen(event); + size_t length = strlen(event); if (!strncmp(event, argv[i], length) && (argv[i][length] == '=')) { int j; const char *return_string = argv[i] + (length+1); diff --git a/modules/pam_debug/tst-pam_debug-retval.c b/modules/pam_debug/tst-pam_debug-retval.c index 6d3edf8f..e83c89d5 100644 --- a/modules/pam_debug/tst-pam_debug-retval.c +++ b/modules/pam_debug/tst-pam_debug-retval.c @@ -37,10 +37,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so %s\n" - "account required %s/.libs/%s.so %s\n" - "password required %s/.libs/%s.so %s\n" - "session required %s/.libs/%s.so %s\n", + "auth required %s/" LTDIR "%s.so %s\n" + "account required %s/" LTDIR "%s.so %s\n" + "password required %s/" LTDIR "%s.so %s\n" + "session required %s/" LTDIR "%s.so %s\n", cwd, MODULE_NAME, args, cwd, MODULE_NAME, args, cwd, MODULE_NAME, args, diff --git a/modules/pam_deny/Makefile.am b/modules/pam_deny/Makefile.am deleted file mode 100644 index 952df4d6..00000000 --- a/modules/pam_deny/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2005, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_deny.8 -endif -XMLS = README.xml pam_deny.8.xml -dist_check_SCRIPTS = tst-pam_deny -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_deny.la -pam_deny_la_LIBADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_deny-retval -tst_pam_deny_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_deny/Makefile.in b/modules/pam_deny/Makefile.in deleted file mode 100644 index 98bc5b1c..00000000 --- a/modules/pam_deny/Makefile.in +++ /dev/null @@ -1,1191 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_deny-retval$(EXEEXT) -subdir = modules/pam_deny -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_deny_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_deny_la_SOURCES = pam_deny.c -pam_deny_la_OBJECTS = pam_deny.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_deny_retval_SOURCES = tst-pam_deny-retval.c -tst_pam_deny_retval_OBJECTS = tst-pam_deny-retval.$(OBJEXT) -tst_pam_deny_retval_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_deny.Plo \ - ./$(DEPDIR)/tst-pam_deny-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_deny.c tst-pam_deny-retval.c -DIST_SOURCES = pam_deny.c tst-pam_deny-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_deny.8 -XMLS = README.xml pam_deny.8.xml -dist_check_SCRIPTS = tst-pam_deny -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_deny.la -pam_deny_la_LIBADD = $(top_builddir)/libpam/libpam.la -tst_pam_deny_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_deny/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_deny/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_deny.la: $(pam_deny_la_OBJECTS) $(pam_deny_la_DEPENDENCIES) $(EXTRA_pam_deny_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_deny_la_OBJECTS) $(pam_deny_la_LIBADD) $(LIBS) - -tst-pam_deny-retval$(EXEEXT): $(tst_pam_deny_retval_OBJECTS) $(tst_pam_deny_retval_DEPENDENCIES) $(EXTRA_tst_pam_deny_retval_DEPENDENCIES) - @rm -f tst-pam_deny-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_deny_retval_OBJECTS) $(tst_pam_deny_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_deny.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_deny-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_deny.log: tst-pam_deny - @p='tst-pam_deny'; \ - b='tst-pam_deny'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_deny-retval.log: tst-pam_deny-retval$(EXEEXT) - @p='tst-pam_deny-retval$(EXEEXT)'; \ - b='tst-pam_deny-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_deny.Plo - -rm -f ./$(DEPDIR)/tst-pam_deny-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_deny.Plo - -rm -f ./$(DEPDIR)/tst-pam_deny-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_deny/README b/modules/pam_deny/README deleted file mode 100644 index 6b3a86f8..00000000 --- a/modules/pam_deny/README +++ /dev/null @@ -1,31 +0,0 @@ -pam_deny — The locking-out PAM module - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -This module can be used to deny access. It always indicates a failure to the -application through the PAM framework. It might be suitable for using for -default (the OTHER) entries. - -EXAMPLES - -#%PAM-1.0 -# -# If we don't have config entries for a service, the -# OTHER entries are used. To be secure, warn and deny -# access to everything. -other auth required pam_warn.so -other auth required pam_deny.so -other account required pam_warn.so -other account required pam_deny.so -other password required pam_warn.so -other password required pam_deny.so -other session required pam_warn.so -other session required pam_deny.so - - -AUTHOR - -pam_deny was written by Andrew G. Morgan <morgan@kernel.org> - diff --git a/modules/pam_deny/meson.build b/modules/pam_deny/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_deny/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_deny/pam_deny.8 b/modules/pam_deny/pam_deny.8 deleted file mode 100644 index 85146f1e..00000000 --- a/modules/pam_deny/pam_deny.8 +++ /dev/null @@ -1,102 +0,0 @@ -'\" t -.\" Title: pam_deny -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_DENY" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_deny \- The locking\-out PAM module -.SH "SYNOPSIS" -.HP \w'\fBpam_deny\&.so\fR\ 'u -\fBpam_deny\&.so\fR -.SH "DESCRIPTION" -.PP -This module can be used to deny access\&. It always indicates a failure to the application through the PAM framework\&. It might be suitable for using for default (the -\fIOTHER\fR) entries\&. -.SH "OPTIONS" -.PP -This module does not recognise any options\&. -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBaccount\fR, -\fBauth\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_AUTH_ERR -.RS 4 -This is returned by the account and auth services\&. -.RE -.PP -PAM_CRED_ERR -.RS 4 -This is returned by the setcred function\&. -.RE -.PP -PAM_AUTHTOK_ERR -.RS 4 -This is returned by the password service\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -This is returned by the session service\&. -.RE -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -# -# If we don\*(Aqt have config entries for a service, the -# OTHER entries are used\&. To be secure, warn and deny -# access to everything\&. -other auth required pam_warn\&.so -other auth required pam_deny\&.so -other account required pam_warn\&.so -other account required pam_deny\&.so -other password required pam_warn\&.so -other password required pam_deny\&.so -other session required pam_warn\&.so -other session required pam_deny\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_deny was written by Andrew G\&. Morgan <morgan@kernel\&.org> diff --git a/modules/pam_deny/tst-pam_deny-retval.c b/modules/pam_deny/tst-pam_deny-retval.c index 356ca1f1..665fcef4 100644 --- a/modules/pam_deny/tst-pam_deny-retval.c +++ b/modules/pam_deny/tst-pam_deny-retval.c @@ -30,10 +30,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, diff --git a/modules/pam_echo/Makefile.am b/modules/pam_echo/Makefile.am deleted file mode 100644 index 7d7ae983..00000000 --- a/modules/pam_echo/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_echo.8 -endif -XMLS = README.xml pam_echo.8.xml -dist_check_SCRIPTS = tst-pam_echo -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_echo.la -pam_echo_la_LIBADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_echo-retval -tst_pam_echo_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_echo/Makefile.in b/modules/pam_echo/Makefile.in deleted file mode 100644 index f1b3f7ef..00000000 --- a/modules/pam_echo/Makefile.in +++ /dev/null @@ -1,1191 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_echo-retval$(EXEEXT) -subdir = modules/pam_echo -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_echo_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_echo_la_SOURCES = pam_echo.c -pam_echo_la_OBJECTS = pam_echo.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_echo_retval_SOURCES = tst-pam_echo-retval.c -tst_pam_echo_retval_OBJECTS = tst-pam_echo-retval.$(OBJEXT) -tst_pam_echo_retval_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_echo.Plo \ - ./$(DEPDIR)/tst-pam_echo-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_echo.c tst-pam_echo-retval.c -DIST_SOURCES = pam_echo.c tst-pam_echo-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_echo.8 -XMLS = README.xml pam_echo.8.xml -dist_check_SCRIPTS = tst-pam_echo -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_echo.la -pam_echo_la_LIBADD = $(top_builddir)/libpam/libpam.la -tst_pam_echo_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_echo/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_echo/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_echo.la: $(pam_echo_la_OBJECTS) $(pam_echo_la_DEPENDENCIES) $(EXTRA_pam_echo_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_echo_la_OBJECTS) $(pam_echo_la_LIBADD) $(LIBS) - -tst-pam_echo-retval$(EXEEXT): $(tst_pam_echo_retval_OBJECTS) $(tst_pam_echo_retval_DEPENDENCIES) $(EXTRA_tst_pam_echo_retval_DEPENDENCIES) - @rm -f tst-pam_echo-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_echo_retval_OBJECTS) $(tst_pam_echo_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_echo.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_echo-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_echo.log: tst-pam_echo - @p='tst-pam_echo'; \ - b='tst-pam_echo'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_echo-retval.log: tst-pam_echo-retval$(EXEEXT) - @p='tst-pam_echo-retval$(EXEEXT)'; \ - b='tst-pam_echo-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_echo.Plo - -rm -f ./$(DEPDIR)/tst-pam_echo-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_echo.Plo - -rm -f ./$(DEPDIR)/tst-pam_echo-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_echo/README b/modules/pam_echo/README deleted file mode 100644 index 626b34a6..00000000 --- a/modules/pam_echo/README +++ /dev/null @@ -1,50 +0,0 @@ -pam_echo — PAM module for printing text messages - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_echo PAM module is for printing text messages to inform user about -special things. Sequences starting with the % character are interpreted in the -following way: - -%H - - The name of the remote host (PAM_RHOST). - -%h - - The name of the local host. - -%s - - The service name (PAM_SERVICE). - -%t - - The name of the controlling terminal (PAM_TTY). - -%U - - The remote user name (PAM_RUSER). - -%u - - The local user name (PAM_USER). - -All other sequences beginning with % expands to the characters following the % -character. - -EXAMPLES - -For an example of the use of this module, we show how it may be used to print -information about good passwords: - -password optional pam_echo.so file=/usr/share/doc/good-password.txt -password required pam_unix.so - - -AUTHOR - -Thorsten Kukuk <kukuk@thkukuk.de> - diff --git a/modules/pam_echo/meson.build b/modules/pam_echo/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_echo/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_echo/pam_echo.8 b/modules/pam_echo/pam_echo.8 deleted file mode 100644 index c9274889..00000000 --- a/modules/pam_echo/pam_echo.8 +++ /dev/null @@ -1,132 +0,0 @@ -'\" t -.\" Title: pam_echo -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_ECHO" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_echo \- PAM module for printing text messages -.SH "SYNOPSIS" -.HP \w'\fBpam_echo\&.so\fR\ 'u -\fBpam_echo\&.so\fR [file=\fI/path/message\fR] -.SH "DESCRIPTION" -.PP -The -\fIpam_echo\fR -PAM module is for printing text messages to inform user about special things\&. Sequences starting with the -\fI%\fR -character are interpreted in the following way: -.PP -%H -.RS 4 -The name of the remote host (PAM_RHOST)\&. -.RE -.PP -%h -.RS 4 -The name of the local host\&. -.RE -.PP -%s -.RS 4 -The service name (PAM_SERVICE)\&. -.RE -.PP -%t -.RS 4 -The name of the controlling terminal (PAM_TTY)\&. -.RE -.PP -%U -.RS 4 -The remote user name (PAM_RUSER)\&. -.RE -.PP -%u -.RS 4 -The local user name (PAM_USER)\&. -.RE -.PP -All other sequences beginning with -\fI%\fR -expands to the characters following the -\fI%\fR -character\&. -.SH "OPTIONS" -.PP -file=/path/message -.RS 4 -The content of the file -/path/message -will be printed with the PAM conversion function as PAM_TEXT_INFO\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Message was successful printed\&. -.RE -.PP -PAM_IGNORE -.RS 4 -PAM_SILENT flag was given or message file does not exist, no message printed\&. -.RE -.SH "EXAMPLES" -.PP -For an example of the use of this module, we show how it may be used to print information about good passwords: -.sp -.if n \{\ -.RS 4 -.\} -.nf -password optional pam_echo\&.so file=/usr/share/doc/good\-password\&.txt -password required pam_unix\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(8), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -Thorsten Kukuk <kukuk@thkukuk\&.de> diff --git a/modules/pam_echo/pam_echo.c b/modules/pam_echo/pam_echo.c index 181aeb4c..5a882028 100644 --- a/modules/pam_echo/pam_echo.c +++ b/modules/pam_echo/pam_echo.c @@ -33,14 +33,13 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if defined(HAVE_CONFIG_H) #include "config.h" -#endif #include <errno.h> #include <stdio.h> #include <fcntl.h> #include <string.h> +#include <stdint.h> #include <stdlib.h> #include <unistd.h> #include <limits.h> @@ -182,6 +181,12 @@ pam_echo (pam_handle_t *pamh, int flags, int argc, const char **argv) return PAM_IGNORE; } + if ((uintmax_t) st.st_size > (uintmax_t) INT_MAX) + { + close (fd); + return PAM_BUF_ERR; + } + mtmp = malloc (st.st_size + 1); if (!mtmp) { @@ -189,7 +194,7 @@ pam_echo (pam_handle_t *pamh, int flags, int argc, const char **argv) return PAM_BUF_ERR; } - if (pam_modutil_read (fd, mtmp, st.st_size) == -1) + if (pam_modutil_read (fd, mtmp, st.st_size) != st.st_size) { pam_syslog (pamh, LOG_ERR, "Error while reading %s: %m", file); free (mtmp); diff --git a/modules/pam_echo/tst-pam_echo-retval.c b/modules/pam_echo/tst-pam_echo-retval.c index 2374b71a..8264cb0e 100644 --- a/modules/pam_echo/tst-pam_echo-retval.c +++ b/modules/pam_echo/tst-pam_echo-retval.c @@ -31,10 +31,10 @@ main(void) /* PAM_SUCCESS -> PAM_SUCCESS, PAM_IGNORE -> PAM_PERM_DENIED */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, @@ -69,14 +69,14 @@ main(void) /* PAM_IGNORE -> PAM_SUCCESS */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "auth required %s/../pam_permit/.libs/pam_permit.so\n" - "account required %s/.libs/%s.so\n" - "account required %s/../pam_permit/.libs/pam_permit.so\n" - "password required %s/.libs/%s.so\n" - "password required %s/../pam_permit/.libs/pam_permit.so\n" - "session required %s/.libs/%s.so\n" - "session required %s/../pam_permit/.libs/pam_permit.so\n", + "auth required %s/" LTDIR "%s.so\n" + "auth required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "account required %s/" LTDIR "%s.so\n" + "account required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "password required %s/" LTDIR "%s.so\n" + "password required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "session required %s/" LTDIR "%s.so\n" + "session required %s/../pam_permit/" LTDIR "pam_permit.so\n", cwd, MODULE_NAME, cwd, cwd, MODULE_NAME, cwd, cwd, MODULE_NAME, cwd, diff --git a/modules/pam_env/Makefile.am b/modules/pam_env/Makefile.am deleted file mode 100644 index f988f109..00000000 --- a/modules/pam_env/Makefile.am +++ /dev/null @@ -1,44 +0,0 @@ -# -# Copyright (c) 2005, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_env.conf.5 pam_env.8 environment.5 -endif -XMLS = README.xml pam_env.conf.5.xml pam_env.8.xml -dist_check_SCRIPTS = tst-pam_env -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -DSYSCONFDIR=\"$(sysconfdir)\" $(ECONF_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_env.la -pam_env_la_LIBADD = $(top_builddir)/libpam/libpam.la $(ECONF_LIBS) - -check_PROGRAMS = tst-pam_env-retval -tst_pam_env_retval_LDADD = $(top_builddir)/libpam/libpam.la - -dist_secureconf_DATA = pam_env.conf -dist_sysconf_DATA = environment - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README -environment.5: pam_env.conf.5.xml --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_env/Makefile.in b/modules/pam_env/Makefile.in deleted file mode 100644 index dd3fd05f..00000000 --- a/modules/pam_env/Makefile.in +++ /dev/null @@ -1,1291 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_env-retval$(EXEEXT) -subdir = modules/pam_env -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(dist_secureconf_DATA) \ - $(dist_sysconf_DATA) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" \ - "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" \ - "$(DESTDIR)$(sysconfdir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -am__DEPENDENCIES_1 = -pam_env_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(am__DEPENDENCIES_1) -pam_env_la_SOURCES = pam_env.c -pam_env_la_OBJECTS = pam_env.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_env_retval_SOURCES = tst-pam_env-retval.c -tst_pam_env_retval_OBJECTS = tst-pam_env-retval.$(OBJEXT) -tst_pam_env_retval_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_env.Plo \ - ./$(DEPDIR)/tst-pam_env-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_env.c tst-pam_env-retval.c -DIST_SOURCES = pam_env.c tst-pam_env-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) \ - $(dist_sysconf_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_env.conf.5 pam_env.8 environment.5 -XMLS = README.xml pam_env.conf.5.xml pam_env.8.xml -dist_check_SCRIPTS = tst-pam_env -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -DSYSCONFDIR=\"$(sysconfdir)\" $(ECONF_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_env.la -pam_env_la_LIBADD = $(top_builddir)/libpam/libpam.la $(ECONF_LIBS) -tst_pam_env_retval_LDADD = $(top_builddir)/libpam/libpam.la -dist_secureconf_DATA = pam_env.conf -dist_sysconf_DATA = environment -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_env/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_env/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_env.la: $(pam_env_la_OBJECTS) $(pam_env_la_DEPENDENCIES) $(EXTRA_pam_env_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_env_la_OBJECTS) $(pam_env_la_LIBADD) $(LIBS) - -tst-pam_env-retval$(EXEEXT): $(tst_pam_env_retval_OBJECTS) $(tst_pam_env_retval_DEPENDENCIES) $(EXTRA_tst_pam_env_retval_DEPENDENCIES) - @rm -f tst-pam_env-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_env_retval_OBJECTS) $(tst_pam_env_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_env.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_env-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) -install-dist_sysconfDATA: $(dist_sysconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \ - done - -uninstall-dist_sysconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_env.log: tst-pam_env - @p='tst-pam_env'; \ - b='tst-pam_env'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_env-retval.log: tst-pam_env-retval$(EXEEXT) - @p='tst-pam_env-retval$(EXEEXT)'; \ - b='tst-pam_env-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" "$(DESTDIR)$(sysconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_env.Plo - -rm -f ./$(DEPDIR)/tst-pam_env-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-dist_secureconfDATA install-man \ - install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-dist_sysconfDATA - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_env.Plo - -rm -f ./$(DEPDIR)/tst-pam_env-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA uninstall-dist_sysconfDATA \ - uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dist_secureconfDATA \ - install-dist_sysconfDATA install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-man5 \ - install-man8 install-pdf install-pdf-am install-ps \ - install-ps-am install-securelibLTLIBRARIES install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am \ - uninstall-dist_secureconfDATA uninstall-dist_sysconfDATA \ - uninstall-man uninstall-man5 uninstall-man8 \ - uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@environment.5: pam_env.conf.5.xml -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_env/README b/modules/pam_env/README deleted file mode 100644 index f10a02b4..00000000 --- a/modules/pam_env/README +++ /dev/null @@ -1,129 +0,0 @@ -pam_env — PAM module to set/unset environment variables - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_env PAM module allows the (un)setting of environment variables. -Supported is the use of previously set environment variables as well as -PAM_ITEMs such as PAM_RHOST. - -Rules for (un)setting of variables can be defined in an own config file. The -path to this file can be specified with the conffile option. If this file does -not exist, the default rules are taken from the config files /etc/security/ -pam_env.conf and /etc/security/pam_env.conf.d/*.conf. If the file /etc/security -/pam_env.conf does not exist, the rules are taken from the files %vendordir%/ -security/pam_env.conf, %vendordir%/security/pam_env.conf.d/*.conf and /etc/ -security/pam_env.conf.d/*.conf in that order. - -By default rules for (un)setting of variables are taken from the config file / -etc/security/pam_env.conf. If this file does not exist %vendordir%/security/ -pam_env.conf is used. An alternate file can be specified with the conffile -option, which overrules all other files. - -By default rules for (un)setting of variables are taken from the config file / -etc/security/pam_env.conf. An alternate file can be specified with the conffile -option. - -Environment variables can be defined in a file with simple KEY=VAL pairs on -separate lines. The path to this file can be specified with the envfile option. -If this file has not been defined, the settings are read from the files /etc/ -security/environment and /etc/security/environment.d/*. If the file /etc/ -environment does not exist, the settings are read from the files %vendordir%/ -environment, %vendordir%/environment.d/* and /etc/environment.d/* in that -order. And last but not least, with the readenv option this mechanism can be -completely disabled. - -Second a file (/etc/environment by default) with simple KEY=VAL pairs on -separate lines will be read. If this file does not exist, %vendordir%/etc/ -environment is used. With the envfile option an alternate file can be -specified, which overrules all other files. And with the readenv option this -can be completely disabled. - -Second a file (/etc/environment by default) with simple KEY=VAL pairs on -separate lines will be read. With the envfile option an alternate file can be -specified. And with the readenv option this can be completely disabled. - -Third it will read a user configuration file ($HOME/.pam_environment by -default). The default file can be changed with the user_envfile option and it -can be turned on and off with the user_readenv option. - -Since setting of PAM environment variables can have side effects to other -modules, this module should be the last one on the stack. - -OPTIONS - -conffile=/path/to/pam_env.conf - - Indicate an alternative pam_env.conf style configuration file to override - the default. This can be useful when different services need different - environments. - -debug - - A lot of debug information is printed with syslog(3). - -envfile=/path/to/environment - - Indicate an alternative environment file to override the default. The - syntax are simple KEY=VAL pairs on separate lines. The export instruction - can be specified for bash compatibility, but will be ignored. This can be - useful when different services need different environments. - -readenv=0|1 - - Turns on or off the reading of the file specified by envfile (0 is off, 1 - is on). By default this option is on. - -user_envfile=filename - - Indicate an alternative .pam_environment file to override the default.The - syntax is the same as for /etc/security/pam_env.conf. The filename is - relative to the user home directory. This can be useful when different - services need different environments. - -user_readenv=0|1 - - Turns on or off the reading of the user specific environment file. 0 is - off, 1 is on. By default this option is off as user supplied environment - variables in the PAM environment could affect behavior of subsequent - modules in the stack without the consent of the system administrator. - - Due to problematic security this functionality is deprecated since the - 1.5.0 version and will be removed completely at some point in the future. - -EXAMPLES - -These are some example lines which might be specified in /etc/security/ -pam_env.conf. - -Set the REMOTEHOST variable for any hosts that are remote, default to -"localhost" rather than not being set at all - - REMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST} - - -Set the DISPLAY variable if it seems reasonable - - DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY} - - -Now some simple variables - - PAGER DEFAULT=less - MANPAGER DEFAULT=less - LESS DEFAULT="M q e h15 z23 b80" - NNTPSERVER DEFAULT=localhost - PATH DEFAULT=${HOME}/bin:/usr/local/bin:/bin\ - :/usr/bin:/usr/local/bin/X11:/usr/bin/X11 - XDG_DATA_HOME DEFAULT=@{HOME}/share/ - - -Silly examples of escaped variables, just to show how they work. - - DOLLAR DEFAULT=\$ - DOLLARDOLLAR DEFAULT= OVERRIDE=\$${DOLLAR} - DOLLARPLUS DEFAULT=\${REMOTEHOST}${REMOTEHOST} - ATSIGN DEFAULT="" OVERRIDE=\@ - - diff --git a/modules/pam_env/environment.5 b/modules/pam_env/environment.5 deleted file mode 100644 index 415dfc1c..00000000 --- a/modules/pam_env/environment.5 +++ /dev/null @@ -1 +0,0 @@ -.so pam_env.conf.5 diff --git a/modules/pam_env/meson.build b/modules/pam_env/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_env/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_env/pam_env.8 b/modules/pam_env/pam_env.8 deleted file mode 100644 index f4e15f30..00000000 --- a/modules/pam_env/pam_env.8 +++ /dev/null @@ -1,160 +0,0 @@ -'\" t -.\" Title: pam_env -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_ENV" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_env \- PAM module to set/unset environment variables -.SH "SYNOPSIS" -.HP \w'\fBpam_env\&.so\fR\ 'u -\fBpam_env\&.so\fR [debug] [conffile=\fIconf\-file\fR] [envfile=\fIenv\-file\fR] [readenv=\fI0|1\fR] [user_envfile=\fIenv\-file\fR] [user_readenv=\fI0|1\fR] -.SH "DESCRIPTION" -.PP -The pam_env PAM module allows the (un)setting of environment variables\&. Supported is the use of previously set environment variables as well as -\fIPAM_ITEM\fRs such as -\fIPAM_RHOST\fR\&. -.PP -By default rules for (un)setting of variables are taken from the config file -/etc/security/pam_env\&.conf\&. An alternate file can be specified with the -\fIconffile\fR -option\&. -.PP -Second a file (/etc/environment -by default) with simple -\fIKEY=VAL\fR -pairs on separate lines will be read\&. With the -\fIenvfile\fR -option an alternate file can be specified\&. And with the -\fIreadenv\fR -option this can be completely disabled\&. -.PP -Third it will read a user configuration file ($HOME/\&.pam_environment -by default)\&. The default file can be changed with the -\fIuser_envfile\fR -option and it can be turned on and off with the -\fIuser_readenv\fR -option\&. -.PP -Since setting of PAM environment variables can have side effects to other modules, this module should be the last one on the stack\&. -.SH "OPTIONS" -.PP -conffile=/path/to/pam_env\&.conf -.RS 4 -Indicate an alternative -pam_env\&.conf -style configuration file to override the default\&. This can be useful when different services need different environments\&. -.RE -.PP -debug -.RS 4 -A lot of debug information is printed with -\fBsyslog\fR(3)\&. -.RE -.PP -envfile=/path/to/environment -.RS 4 -Indicate an alternative -environment -file to override the default\&. The syntax are simple -\fIKEY=VAL\fR -pairs on separate lines\&. The -\fIexport\fR -instruction can be specified for bash compatibility, but will be ignored\&. This can be useful when different services need different environments\&. -.RE -.PP -readenv=0|1 -.RS 4 -Turns on or off the reading of the file specified by envfile (0 is off, 1 is on)\&. By default this option is on\&. -.RE -.PP -user_envfile=filename -.RS 4 -Indicate an alternative -\&.pam_environment -file to override the default\&.The syntax is the same as for -\fI/etc/security/pam_env\&.conf\fR\&. The filename is relative to the user home directory\&. This can be useful when different services need different environments\&. -.RE -.PP -user_readenv=0|1 -.RS 4 -Turns on or off the reading of the user specific environment file\&. 0 is off, 1 is on\&. By default this option is off as user supplied environment variables in the PAM environment could affect behavior of subsequent modules in the stack without the consent of the system administrator\&. -.sp -Due to problematic security this functionality is deprecated since the 1\&.5\&.0 version and will be removed completely at some point in the future\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBsession\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_ABORT -.RS 4 -Not all relevant data or options could be gotten\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_IGNORE -.RS 4 -No pam_env\&.conf and environment file was found\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Environment variables were set\&. -.RE -.SH "FILES" -.PP -/etc/security/pam_env\&.conf -.RS 4 -Default configuration file -.RE -.PP -/etc/environment -.RS 4 -Default environment file -.RE -.PP -$HOME/\&.pam_environment -.RS 4 -User specific environment file -.RE -.SH "SEE ALSO" -.PP -\fBpam_env.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8), -\fBenviron\fR(7)\&. -.SH "AUTHOR" -.PP -pam_env was written by Dave Kinchlea <kinch@kinch\&.ark\&.com>\&. diff --git a/modules/pam_env/pam_env.8.xml b/modules/pam_env/pam_env.8.xml index fb172e17..c7889e0f 100644 --- a/modules/pam_env/pam_env.8.xml +++ b/modules/pam_env/pam_env.8.xml @@ -114,6 +114,19 @@ Since setting of PAM environment variables can have side effects to other modules, this module should be the last one on the stack. </para> + <para> + This module is only executed if the main application calls + <citerefentry> + <refentrytitle>pam_setcred</refentrytitle><manvolnum>3</manvolnum> + </citerefentry> or + <citerefentry> + <refentrytitle>pam_open_session</refentrytitle><manvolnum>3</manvolnum> + </citerefentry>. + The module does nothing and returns <emphasis>PAM_IGNORE</emphasis> if called by + <citerefentry> + <refentrytitle>pam_authenticate</refentrytitle><manvolnum>3</manvolnum> + </citerefentry>. + </para> </refsect1> <refsect1 xml:id="pam_env-options"> @@ -181,7 +194,7 @@ <listitem> <para> Indicate an alternative <filename>.pam_environment</filename> - file to override the default.The syntax is the same as + file to override the default. The syntax is the same as for <emphasis>/etc/security/pam_env.conf</emphasis>. The filename is relative to the user home directory. This can be useful when different services need different @@ -244,7 +257,11 @@ <term>PAM_IGNORE</term> <listitem> <para> - No pam_env.conf and environment file was found. + No pam_env.conf and environment file was found or the module got + called by + <citerefentry> + <refentrytitle>pam_authenticate</refentrytitle><manvolnum>3</manvolnum> + </citerefentry>. </para> </listitem> </varlistentry> @@ -309,4 +326,4 @@ pam_env was written by Dave Kinchlea <kinch@kinch.ark.com>. </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_env/pam_env.c b/modules/pam_env/pam_env.c index d2b4cb10..5947b861 100644 --- a/modules/pam_env/pam_env.c +++ b/modules/pam_env/pam_env.c @@ -6,21 +6,13 @@ * template for this file (via pam_mail) */ -#define DEFAULT_ETC_ENVFILE "/etc/environment" -#ifdef VENDORDIR -#define VENDOR_DEFAULT_ETC_ENVFILE (VENDORDIR "/environment") -#endif -#define DEFAULT_READ_ENVFILE 1 - -#define DEFAULT_USER_ENVFILE ".pam_environment" -#define DEFAULT_USER_READ_ENVFILE 0 - #include "config.h" #include <ctype.h> #include <errno.h> #include <pwd.h> #include <stdarg.h> +#include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -29,7 +21,7 @@ #include <sys/types.h> #include <unistd.h> #ifdef USE_ECONF -#include <libeconf.h> +#include "pam_econf.h" #endif #include <security/pam_modules.h> @@ -38,6 +30,10 @@ #include <security/pam_ext.h> #include "pam_inline.h" +#ifndef USE_ECONF +#include "pam_line.h" +#endif + /* This little structure makes it easier to keep variables together */ typedef struct var { @@ -47,13 +43,19 @@ typedef struct var { char *override; } VAR; -#define DEFAULT_CONF_FILE (SCONFIGDIR "/pam_env.conf") -#ifdef VENDOR_SCONFIGDIR -#define VENDOR_DEFAULT_CONF_FILE (VENDOR_SCONFIGDIR "/pam_env.conf") +#define DEFAULT_ETC_ENVFILE "/etc/environment" +#ifdef VENDORDIR +#define VENDOR_DEFAULT_ETC_ENVFILE (VENDORDIR "/environment") #endif +#define DEFAULT_READ_ENVFILE 1 + +#define DEFAULT_USER_ENVFILE ".pam_environment" +#define DEFAULT_USER_READ_ENVFILE 0 -#define BUF_SIZE 8192 -#define MAX_ENV 8192 +#define DEFAULT_CONF_FILE (SCONFIG_DIR "/pam_env.conf") +#ifdef VENDOR_SCONFIG_DIR +#define VENDOR_DEFAULT_CONF_FILE (VENDOR_SCONFIG_DIR "/pam_env.conf") +#endif #define GOOD_LINE 0 #define BAD_LINE 100 /* This must be > the largest PAM_* error code */ @@ -62,6 +64,12 @@ typedef struct var { #define UNDEFINE_VAR 102 #define ILLEGAL_VAR 103 +struct string_buffer { + char *str; + size_t len; + size_t size; +}; + /* This is a special value used to designate an empty string */ static char quote='\0'; @@ -152,6 +160,28 @@ isDirectory(const char *path) { return S_ISDIR(statbuf.st_mode); } +/* + * Remove escaped newline from string. + * + * All occurrences of "\\n" will be removed from string. + */ +static void +econf_unescnl(char *val) +{ + char *dest, *p; + + dest = p = val; + + while (*p != '\0') { + if (p[0] == '\\' && p[1] == '\n') { + p += 2; + } else { + *dest++ = *p++; + } + } + *dest = '\0'; +} + static int econf_read_file(const pam_handle_t *pamh, const char *filename, const char *delim, const char *name, const char *suffix, const char *subpath, @@ -211,9 +241,8 @@ econf_read_file(const pam_handle_t *pamh, const char *filename, const char *deli } } - D(("Read configuration from directory %s and %s", vendor_dir, sysconf_dir)); - error = econf_readDirs (&key_file, vendor_dir, sysconf_dir, name, suffix, - delim, "#"); + error = pam_econf_readconfig (&key_file, vendor_dir, sysconf_dir, name, suffix, + delim, "#", NULL, NULL); free(vendor_dir); free(sysconf_dir); if (error != ECONF_SUCCESS) { @@ -243,7 +272,7 @@ econf_read_file(const pam_handle_t *pamh, const char *filename, const char *deli return PAM_ABORT; } - *lines = malloc((key_number +1)* sizeof(char**)); + *lines = calloc((key_number + 1), sizeof(char**)); if (*lines == NULL) { pam_syslog(pamh, LOG_ERR, "Cannot allocate memory."); econf_free(keys); @@ -251,18 +280,18 @@ econf_read_file(const pam_handle_t *pamh, const char *filename, const char *deli return PAM_BUF_ERR; } - (*lines)[key_number] = 0; - + size_t n = 0; for (size_t i = 0; i < key_number; i++) { char *val; error = econf_getStringValue (key_file, NULL, keys[i], &val); - if (error != ECONF_SUCCESS) { + if (error != ECONF_SUCCESS || val == NULL) { pam_syslog(pamh, LOG_ERR, "Unable to get string from key %s: %s", keys[i], econf_errString(error)); } else { - if (asprintf(&(*lines)[i],"%s%c%s", keys[i], delim[0], val) < 0) { + econf_unescnl(val); + if (asprintf(&(*lines)[n],"%s%c%s", keys[i], delim[0], val) < 0) { pam_syslog(pamh, LOG_ERR, "Cannot allocate memory."); econf_free(keys); econf_freeFile(key_file); @@ -272,6 +301,7 @@ econf_read_file(const pam_handle_t *pamh, const char *filename, const char *deli return PAM_BUF_ERR; } free (val); + n++; } } @@ -282,103 +312,12 @@ econf_read_file(const pam_handle_t *pamh, const char *filename, const char *deli #else -/* - * This is where we read a line of the PAM config file. The line may be - * preceded by lines of comments and also extended with "\\\n" - */ -static int -_assemble_line(FILE *f, char *buffer, int buf_len) -{ - char *p = buffer; - char *s, *os; - int used = 0; - int whitespace; - - /* loop broken with a 'break' when a non-'\\n' ended line is read */ - - D(("called.")); - for (;;) { - if (used >= buf_len) { - /* Overflow */ - D(("_assemble_line: overflow")); - return -1; - } - if (fgets(p, buf_len - used, f) == NULL) { - if (used) { - /* Incomplete read */ - return -1; - } else { - /* EOF */ - return 0; - } - } - if (p[0] == '\0') { - D(("_assemble_line: corrupted or binary file")); - return -1; - } - if (p[strlen(p)-1] != '\n' && !feof(f)) { - D(("_assemble_line: line too long")); - return -1; - } - - /* skip leading spaces --- line may be blank */ - - whitespace = strspn(p, " \n\t"); - s = p + whitespace; - if (*s && (*s != '#')) { - used += whitespace; - os = s; - - /* - * we are only interested in characters before the first '#' - * character - */ - - while (*s && *s != '#') - ++s; - if (*s == '#') { - *s = '\0'; - used += strlen(os); - break; /* the line has been read */ - } - - s = os; - - /* - * Check for backslash by scanning back from the end of - * the entered line, the '\n' has been included since - * normally a line is terminated with this - * character. fgets() should only return one though! - */ - - s += strlen(s); - while (s > os && ((*--s == ' ') || (*s == '\t') - || (*s == '\n'))); - - /* check if it ends with a backslash */ - if (*s == '\\') { - *s = '\0'; /* truncate the line here */ - used += strlen(os); - p = s; /* there is more ... */ - } else { - /* End of the line! */ - used += strlen(os); - break; /* this is the complete line */ - } - - } else { - /* Nothing in this line */ - /* Don't move p */ - } - } - - return used; -} - static int read_file(const pam_handle_t *pamh, const char*filename, char ***lines) { FILE *conf; - char buffer[BUF_SIZE]; + struct pam_line_buffer buffer; + + _pam_line_buffer_init(&buffer); D(("Parsed file name is: %s", filename)); @@ -388,38 +327,39 @@ static int read_file(const pam_handle_t *pamh, const char*filename, char ***line } size_t i = 0; - *lines = malloc((i + 1)* sizeof(char**)); + *lines = malloc((i + 1)* sizeof(char*)); if (*lines == NULL) { pam_syslog(pamh, LOG_ERR, "Cannot allocate memory."); (void) fclose(conf); return PAM_BUF_ERR; } (*lines)[i] = 0; - while (_assemble_line(conf, buffer, BUF_SIZE) > 0) { + while (_pam_line_assemble(conf, &buffer, '\0') > 0) { + char *p = buffer.assembled; char **tmp = NULL; - D(("Read line: %s", buffer)); - tmp = realloc(*lines, (++i + 1) * sizeof(char**)); + D(("Read line: %s", p)); + tmp = realloc(*lines, (++i + 1) * sizeof(char*)); if (tmp == NULL) { pam_syslog(pamh, LOG_ERR, "Cannot allocate memory."); (void) fclose(conf); free_string_array(*lines); - pam_overwrite_array(buffer); + _pam_line_buffer_clear(&buffer); return PAM_BUF_ERR; } *lines = tmp; - (*lines)[i-1] = strdup(buffer); + (*lines)[i-1] = strdup(p); if ((*lines)[i-1] == NULL) { pam_syslog(pamh, LOG_ERR, "Cannot allocate memory."); (void) fclose(conf); free_string_array(*lines); - pam_overwrite_array(buffer); + _pam_line_buffer_clear(&buffer); return PAM_BUF_ERR; } (*lines)[i] = 0; } (void) fclose(conf); - pam_overwrite_array(buffer); + _pam_line_buffer_clear(&buffer); return PAM_SUCCESS; } #endif @@ -443,17 +383,15 @@ _parse_line(const pam_handle_t *pamh, const char *buffer, VAR *var) length = strcspn(buffer," \t\n"); - if ((var->name = malloc(length + 1)) == NULL) { - pam_syslog(pamh, LOG_CRIT, "Couldn't malloc %d bytes", length+1); - return PAM_BUF_ERR; - } - /* * The first thing on the line HAS to be the variable name, * it may be the only thing though. */ - strncpy(var->name, buffer, length); - var->name[length] = '\0'; + if ((var->name = strndup(buffer, length)) == NULL) { + D(("out of memory")); + pam_syslog(pamh, LOG_CRIT, "out of memory"); + return PAM_BUF_ERR; + } D(("var->name = <%s>, length = %d", var->name, length)); /* @@ -464,7 +402,7 @@ _parse_line(const pam_handle_t *pamh, const char *buffer, VAR *var) ptr = buffer+length; while ((length = strspn(ptr, " \t")) > 0) { ptr += length; /* remove leading whitespace */ - D((ptr)); + D(("%s", ptr)); if ((tmpptr = pam_str_skip_prefix(ptr, "DEFAULT=")) != NULL) { ptr = tmpptr; D(("Default arg found: <%s>", ptr)); @@ -498,13 +436,13 @@ _parse_line(const pam_handle_t *pamh, const char *buffer, VAR *var) quoteflg++; } if (length) { - if ((*valptr = malloc(length + 1)) == NULL) { - D(("Couldn't malloc %d bytes", length+1)); - pam_syslog(pamh, LOG_CRIT, "Couldn't malloc %d bytes", length+1); + if (*valptr != "e) + free(*valptr); + if ((*valptr = strndup(ptr, length)) == NULL) { + D(("out of memory")); + pam_syslog(pamh, LOG_CRIT, "out of memory"); return PAM_BUF_ERR; } - (void)strncpy(*valptr,ptr,length); - (*valptr)[length]='\0'; } else if (quoteflg) { quoteflg--; *valptr = "e; /* a quick hack to handle the empty string */ @@ -570,22 +508,112 @@ _pam_get_item_byname(pam_handle_t *pamh, const char *name) return itemval; } +static void +_strbuf_init(struct string_buffer *buffer) +{ + buffer->str = NULL; + buffer->len = 0; + buffer->size = 0; +} + +static void +_strbuf_free(struct string_buffer *buffer) +{ + pam_overwrite_n(buffer->str, buffer->len); + _pam_drop(buffer->str); + buffer->len = 0; + buffer->size = 0; +} + +/* + * Allocates given amount of bytes in buffer for addition. + * Internally adding an extra byte for NUL character. + * + * Returns 0 on success, 1 on error. + */ +static int +_strbuf_reserve(struct string_buffer *buffer, size_t add) +{ + char *p; + size_t s; + + /* Is already enough memory allocated? */ + if (add < buffer->size - buffer->len) { + return 0; + } + + /* Can the requested bytes (plus additional NUL byte) fit at all? */ + if (buffer->len >= SIZE_MAX - add) { + return 1; + } + + if (buffer->size == 0 && add < 64) { + /* Start with 64 bytes if that's enough */ + s = 64; + } else if (buffer->size >= SIZE_MAX / 2 || buffer->size * 2 < add + 1) { + /* If doubling is not enough (or not possible), get as much as needed */ + s = buffer->len + add + 1; + } else { + /* Ideally, double allocated memory */ + s = buffer->size * 2; + } + + if ((p = realloc(buffer->str, s)) == NULL) { + return 1; + } + + buffer->str = p; + buffer->size = s; + + return 0; +} + +static int +_strbuf_add_char(struct string_buffer *buffer, char c) +{ + D(("Called <%s> + <%c>.", buffer->str == NULL ? "" : buffer->str, c)); + + if (_strbuf_reserve(buffer, 1)) { + return 1; + } + + buffer->str[buffer->len++] = c; + buffer->str[buffer->len] = '\0'; + + return 0; +} + +static int +_strbuf_add_string(struct string_buffer *buffer, const char *str) +{ + size_t len = strlen(str); + + D(("Called <%s> + <%s>.", buffer->str == NULL ? "" : buffer->str, str)); + + if (_strbuf_reserve(buffer, len)) { + return 1; + } + + strcpy(buffer->str + buffer->len, str); + buffer->len += len; + + return 0; +} + static int _expand_arg(pam_handle_t *pamh, char **value) { - const char *orig=*value, *tmpptr=NULL; - char *ptr; /* - * Sure would be nice to use tmpptr but it needs to be - * a constant so that the compiler will shut up when I - * call pam_getenv and _pam_get_item_byname -- sigh - */ + const char *orig=*value; + struct string_buffer buf; - /* No unexpanded variable can be bigger than BUF_SIZE */ - char type, tmpval[BUF_SIZE]; + /* + * Return early if there are no special characters present in the value. + */ + if ((*value)[strcspn(*value, "\\$@")] == '\0') { + return PAM_SUCCESS; + } - /* I know this shouldn't be hard-coded but it's so much easier this way */ - char tmp[MAX_ENV] = {}; - size_t idx = 0; + _strbuf_init(&buf); /* * (possibly non-existent) environment variables can be used as values @@ -598,19 +626,16 @@ _expand_arg(pam_handle_t *pamh, char **value) while (*orig) { /* while there is some input to deal with */ if ('\\' == *orig) { ++orig; - if ('$' != *orig && '@' != *orig) { + if ('$' != *orig && '@' != *orig && '\\' != *orig) { D(("Unrecognized escaped character: <%c> - ignoring", *orig)); pam_syslog(pamh, LOG_ERR, "Unrecognized escaped character: <%c> - ignoring", *orig); - } else if (idx + 1 < MAX_ENV) { - tmp[idx++] = *orig++; /* Note the increment */ } else { - /* is it really a good idea to try to log this? */ - D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr)); - pam_syslog (pamh, LOG_ERR, "Variable buffer overflow: <%s> + <%s>", - tmp, tmpptr); - goto buf_err; + /* Note the increment */ + if (_strbuf_add_char(&buf, *orig++)) { + goto buf_err; + } } continue; } @@ -620,11 +645,20 @@ _expand_arg(pam_handle_t *pamh, char **value) " <%s> - ignoring", orig)); pam_syslog(pamh, LOG_ERR, "Expandable variables must be wrapped in {}" " <%s> - ignoring", orig); - if (idx + 1 < MAX_ENV) { - tmp[idx++] = *orig++; /* Note the increment */ + /* Note the increment */ + if (_strbuf_add_char(&buf, *orig++)) { + goto buf_err; } continue; } else { + const char *tmpptr=NULL, *tmpval; + char *ptr; /* + * Sure would be nice to use tmpptr but it needs to be + * a constant so that the compiler will shut up when I + * call pam_getenv and _pam_get_item_byname -- sigh + */ + char type; + D(("Expandable argument: <%s>", orig)); type = *orig; orig+=2; /* skip the ${ or @{ characters */ @@ -637,8 +671,7 @@ _expand_arg(pam_handle_t *pamh, char **value) "Unterminated expandable variable: <%s>", orig-2); goto abort_err; } - strncpy(tmpval, orig, sizeof(tmpval)); - tmpval[sizeof(tmpval)-1] = '\0'; + tmpval = orig; orig=ptr; /* * so, we know we need to expand tmpval, it is either @@ -665,54 +698,37 @@ _expand_arg(pam_handle_t *pamh, char **value) } /* switch */ if (tmpptr) { - size_t len = strlen(tmpptr); - if (idx + len < MAX_ENV) { - strcpy(tmp + idx, tmpptr); - idx += len; - } else { - /* is it really a good idea to try to log this? */ - D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr)); - pam_syslog (pamh, LOG_ERR, - "Variable buffer overflow: <%s> + <%s>", tmp, tmpptr); + if (_strbuf_add_string(&buf, tmpptr)) { goto buf_err; } } } /* if ('{' != *orig++) */ } else { /* if ( '$' == *orig || '@' == *orig) */ - if (idx + 1 < MAX_ENV) { - tmp[idx++] = *orig++; /* Note the increment */ - } else { - /* is it really a good idea to try to log this? */ - D(("Variable buffer overflow: <%s> + <%s>", tmp, tmpptr)); - pam_syslog(pamh, LOG_ERR, - "Variable buffer overflow: <%s> + <%s>", tmp, tmpptr); + /* Note the increment */ + if (_strbuf_add_char(&buf, *orig++)) { goto buf_err; } } } /* for (;*orig;) */ - if (idx > strlen(*value)) { + if (buf.len > strlen(*value)) { free(*value); - if ((*value = malloc(idx + 1)) == NULL) { - D(("Couldn't malloc %d bytes for expanded var", idx + 1)); - pam_syslog (pamh, LOG_CRIT, "Couldn't malloc %lu bytes for expanded var", - (unsigned long)idx+1); + if ((*value = strdup(buf.str)) == NULL) { goto buf_err; } + } else { + const char *tmpptr = buf.str == NULL ? "" : buf.str; + strcpy(*value, tmpptr); } - strcpy(*value, tmp); - pam_overwrite_array(tmp); - pam_overwrite_array(tmpval); + _strbuf_free(&buf); D(("Exit.")); return PAM_SUCCESS; buf_err: - pam_overwrite_array(tmp); - pam_overwrite_array(tmpval); + _strbuf_free(&buf); return PAM_BUF_ERR; abort_err: - pam_overwrite_array(tmp); - pam_overwrite_array(tmpval); + _strbuf_free(&buf); return PAM_ABORT; } @@ -755,7 +771,7 @@ _check_var(pam_handle_t *pamh, VAR *var) return retval; } - /* Now its easy */ + /* Now it's easy */ if (var->override && *(var->override)) { /* if there is a non-empty string in var->override, we use it */ @@ -804,7 +820,6 @@ _clean_var(VAR *var) var->value = NULL; /* never has memory specific to it */ var->defval = NULL; var->override = NULL; - return; } static int @@ -856,20 +871,20 @@ _parse_config_file(pam_handle_t *pamh, int ctrl, const char *file) #ifdef USE_ECONF /* If "file" is not NULL, only this file will be parsed. */ retval = econf_read_file(pamh, file, " \t", PAM_ENV, ".conf", "security", &conf_list); -#else +#else /* !USE_ECONF */ /* Only one file will be parsed. So, file has to be set. */ - if (file == NULL) /* No filename has been set via argv. */ + if (file == NULL) { /* No filename has been set via argv. */ file = DEFAULT_CONF_FILE; -#ifdef VENDOR_DEFAULT_CONF_FILE - /* - * Check whether file is available. - * If it does not exist, fall back to VENDOR_DEFAULT_CONF_FILE file. - */ - struct stat stat_buffer; - if (stat(file, &stat_buffer) != 0 && errno == ENOENT) { - file = VENDOR_DEFAULT_CONF_FILE; +# ifdef VENDOR_DEFAULT_CONF_FILE + /* + * Check whether DEFAULT_CONF_FILE file is available. + * If it does not exist, fall back to VENDOR_DEFAULT_CONF_FILE file. + */ + struct stat stat_buffer; + if (stat(file, &stat_buffer) != 0 && errno == ENOENT) + file = VENDOR_DEFAULT_CONF_FILE; +# endif } -#endif retval = read_file(pamh, file, &conf_list); #endif @@ -965,7 +980,7 @@ _parse_env_file(pam_handle_t *pamh, int ctrl, const char *file) } for ( i = 0 ; key[i] != '=' && key[i] != '\0' ; i++ ) - if (!isalnum(key[i]) && key[i] != '_') { + if (!isalnum((unsigned char)key[i]) && key[i] != '_') { pam_syslog(pamh, LOG_ERR, "non-alphanumeric key '%s' in %s', ignoring", key, file); diff --git a/modules/pam_env/pam_env.conf.5 b/modules/pam_env/pam_env.conf.5 deleted file mode 100644 index 90de5eaf..00000000 --- a/modules/pam_env/pam_env.conf.5 +++ /dev/null @@ -1,132 +0,0 @@ -'\" t -.\" Title: pam_env.conf -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_ENV\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_env.conf, environment \- the environment variables config files -.SH "DESCRIPTION" -.PP -The -/etc/security/pam_env\&.conf -file specifies the environment variables to be set, unset or modified by -\fBpam_env\fR(8)\&. When someone logs in, this file is read and the environment variables are set according\&. -.PP -Each line starts with the variable name, there are then two possible options for each variable DEFAULT and OVERRIDE\&. DEFAULT allows an administrator to set the value of the variable to some default value, if none is supplied then the empty string is assumed\&. The OVERRIDE option tells pam_env that it should enter in its value (overriding the default value) if there is one to use\&. When OVERRIDE is not used, "" is assumed and no override will be done\&. -.PP -\fIVARIABLE\fR -[\fIDEFAULT=[value]\fR] [\fIOVERRIDE=[value]\fR] -.PP -(Possibly non\-existent) environment variables may be used in values using the ${string} syntax and (possibly non\-existent) PAM_ITEMs as well as HOME and SHELL may be used in values using the @{string} syntax\&. Both the $ and @ characters can be backslash escaped to be used as literal values values can be delimited with "", escaped " not supported\&. Note that many environment variables that you would like to use may not be set by the time the module is called\&. For example, ${HOME} is used below several times, but many PAM applications don\*(Aqt make it available by the time you need it\&. The special variables @{HOME} and @{SHELL} are expanded to the values for the user from his -\fIpasswd\fR -entry\&. -.PP -The "\fI#\fR" character at start of line (no space at front) can be used to mark this line as a comment line\&. -.PP -The -/etc/environment -file specifies the environment variables to be set\&. The file must consist of simple -\fINAME=VALUE\fR -pairs on separate lines\&. The -\fBpam_env\fR(8) -module will read the file after the -pam_env\&.conf -file\&. -.SH "EXAMPLES" -.PP -These are some example lines which might be specified in -/etc/security/pam_env\&.conf\&. -.PP -Set the REMOTEHOST variable for any hosts that are remote, default to "localhost" rather than not being set at all -.sp -.if n \{\ -.RS 4 -.\} -.nf - REMOTEHOST DEFAULT=localhost OVERRIDE=@{PAM_RHOST} - -.fi -.if n \{\ -.RE -.\} -.PP -Set the DISPLAY variable if it seems reasonable -.sp -.if n \{\ -.RS 4 -.\} -.nf - DISPLAY DEFAULT=${REMOTEHOST}:0\&.0 OVERRIDE=${DISPLAY} - -.fi -.if n \{\ -.RE -.\} -.PP -Now some simple variables -.sp -.if n \{\ -.RS 4 -.\} -.nf - PAGER DEFAULT=less - MANPAGER DEFAULT=less - LESS DEFAULT="M q e h15 z23 b80" - NNTPSERVER DEFAULT=localhost - PATH DEFAULT=${HOME}/bin:/usr/local/bin:/bin\e - :/usr/bin:/usr/local/bin/X11:/usr/bin/X11 - XDG_DATA_HOME DEFAULT=@{HOME}/share/ - -.fi -.if n \{\ -.RE -.\} -.PP -Silly examples of escaped variables, just to show how they work\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf - DOLLAR DEFAULT=\e$ - DOLLARDOLLAR DEFAULT= OVERRIDE=\e$${DOLLAR} - DOLLARPLUS DEFAULT=\e${REMOTEHOST}${REMOTEHOST} - ATSIGN DEFAULT="" OVERRIDE=\e@ - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam_env\fR(8), -\fBpam.d\fR(5), -\fBpam\fR(8), -\fBenviron\fR(7) -.SH "AUTHOR" -.PP -pam_env was written by Dave Kinchlea <kinch@kinch\&.ark\&.com>\&. diff --git a/modules/pam_env/pam_env.conf.5.xml b/modules/pam_env/pam_env.conf.5.xml index 81fc9613..46df480f 100644 --- a/modules/pam_env/pam_env.conf.5.xml +++ b/modules/pam_env/pam_env.conf.5.xml @@ -58,7 +58,7 @@ For example, ${HOME} is used below several times, but many PAM applications don't make it available by the time you need it. The special variables @{HOME} and @{SHELL} are expanded to the values - for the user from his <emphasis>passwd</emphasis> entry. + for the user from the corresponding <emphasis>passwd</emphasis> entry. </para> <para> diff --git a/modules/pam_env/tst-pam_env-retval.c b/modules/pam_env/tst-pam_env-retval.c index 23ad10b9..c08f44c3 100644 --- a/modules/pam_env/tst-pam_env-retval.c +++ b/modules/pam_env/tst-pam_env-retval.c @@ -26,9 +26,9 @@ static const char missing_file[] = TEST_NAME ".missing"; static const char my_conf[] = TEST_NAME ".conf"; static const char my_env[] = TEST_NAME ".env"; #ifdef VENDORDIR -static const char dir_usr_etc_security[] = TEST_NAME_DIR VENDOR_SCONFIGDIR; +static const char dir_usr_etc_security[] = TEST_NAME_DIR VENDOR_SCONFIG_DIR; static const char usr_env[] = TEST_NAME_DIR VENDORDIR "/environment"; -static const char usr_conf[] = TEST_NAME_DIR VENDOR_SCONFIGDIR "/pam_env.conf"; +static const char usr_conf[] = TEST_NAME_DIR VENDOR_SCONFIG_DIR "/pam_env.conf"; #endif static struct pam_conv conv; @@ -69,8 +69,11 @@ setup(void) ASSERT_NE(NULL, fp = fopen(my_conf, "w")); ASSERT_LT(0, fprintf(fp, - "EDITOR\tDEFAULT=vim\n" - "PAGER\tDEFAULT=more\n")); + "EDITOR\tDEFAULT=vi DEFAULT= DEFAULT=vim\n" + "PAGER\tDEFAULT=more\n" + "# ignore escaped newlines in comments \\\n" + "NAME\tDEFAULT=@{PAM_\\ \t\n" + "USER}\\\\name\n")); ASSERT_EQ(0, fclose(fp)); ASSERT_NE(NULL, fp = fopen(my_env, "w")); @@ -127,7 +130,7 @@ check_env(const char **list) pam_handle_t *pamh = NULL; ASSERT_EQ(PAM_SUCCESS, - pam_start_confdir(service_file, "", &conv, ".", &pamh)); + pam_start_confdir(service_file, "user", &conv, ".", &pamh)); ASSERT_NE(NULL, pamh); ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); @@ -164,10 +167,10 @@ main(void) */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so conffile=%s/%s\n" - "account required %s/.libs/%s.so conffile=%s/%s\n" - "password required %s/.libs/%s.so conffile=%s/%s\n" - "session required %s/.libs/%s.so conffile=%s/%s\n", + "auth required %s/" LTDIR "%s.so conffile=%s/%s\n" + "account required %s/" LTDIR "%s.so conffile=%s/%s\n" + "password required %s/" LTDIR "%s.so conffile=%s/%s\n" + "session required %s/" LTDIR "%s.so conffile=%s/%s\n", cwd, MODULE_NAME, cwd, missing_file, cwd, MODULE_NAME, cwd, missing_file, cwd, MODULE_NAME, cwd, missing_file, @@ -193,14 +196,14 @@ main(void) */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so conffile=%s/%s\n" - "auth required %s/../pam_permit/.libs/pam_permit.so\n" - "account required %s/.libs/%s.so conffile=%s/%s\n" - "account required %s/../pam_permit/.libs/pam_permit.so\n" - "password required %s/.libs/%s.so conffile=%s/%s\n" - "password required %s/../pam_permit/.libs/pam_permit.so\n" - "session required %s/.libs/%s.so conffile=%s/%s\n" - "session required %s/../pam_permit/.libs/pam_permit.so\n", + "auth required %s/" LTDIR "%s.so conffile=%s/%s\n" + "auth required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "account required %s/" LTDIR "%s.so conffile=%s/%s\n" + "account required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "password required %s/" LTDIR "%s.so conffile=%s/%s\n" + "password required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "session required %s/" LTDIR "%s.so conffile=%s/%s\n" + "session required %s/../pam_permit/" LTDIR "pam_permit.so\n", cwd, MODULE_NAME, cwd, missing_file, cwd, cwd, MODULE_NAME, cwd, missing_file, cwd, cwd, MODULE_NAME, cwd, missing_file, cwd, @@ -225,13 +228,13 @@ main(void) */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "session required %s/.libs/%s.so" + "session required %s/" LTDIR "%s.so" " conffile=%s/%s envfile=%s\n", cwd, MODULE_NAME, cwd, my_conf, "/dev/null")); ASSERT_EQ(0, fclose(fp)); - const char *env1[] = { "EDITOR=vim", "PAGER=more", NULL }; + const char *env1[] = { "EDITOR=vim", "PAGER=more", "NAME=user\\name", NULL }; check_env(env1); /* @@ -240,7 +243,7 @@ main(void) */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "session required %s/.libs/%s.so" + "session required %s/" LTDIR "%s.so" " conffile=%s envfile=%s/%s\n", cwd, MODULE_NAME, "/dev/null", cwd, my_env)); @@ -254,7 +257,7 @@ main(void) /* envfile is a directory. So values will be read from {TEST_NAME_DIR}/usr/etc and {TEST_NAME_DIR}/etc */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "session required %s/.libs/%s.so" + "session required %s/" LTDIR "%s.so" " conffile=%s envfile=%s/%s/\n", cwd, MODULE_NAME, "/dev/null", @@ -267,7 +270,7 @@ main(void) /* conffile is a directory. So values will be read from {TEST_NAME_DIR}/usr/etc and {TEST_NAME_DIR}/etc */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "session required %s/.libs/%s.so" + "session required %s/" LTDIR "%s.so" " conffile=%s/%s/ envfile=%s\n", cwd, MODULE_NAME, cwd, TEST_NAME_DIR, diff --git a/modules/pam_exec/Makefile.am b/modules/pam_exec/Makefile.am deleted file mode 100644 index a0582226..00000000 --- a/modules/pam_exec/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_exec.8 -endif -XMLS = README.xml pam_exec.8.xml -dist_check_SCRIPTS = tst-pam_exec -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_exec.la -pam_exec_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_exec/Makefile.in b/modules/pam_exec/Makefile.in deleted file mode 100644 index f738998d..00000000 --- a/modules/pam_exec/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_exec -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_exec_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_exec_la_SOURCES = pam_exec.c -pam_exec_la_OBJECTS = pam_exec.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_exec.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_exec.c -DIST_SOURCES = pam_exec.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_exec.8 -XMLS = README.xml pam_exec.8.xml -dist_check_SCRIPTS = tst-pam_exec -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_exec.la -pam_exec_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_exec/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_exec/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_exec.la: $(pam_exec_la_OBJECTS) $(pam_exec_la_DEPENDENCIES) $(EXTRA_pam_exec_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_exec_la_OBJECTS) $(pam_exec_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_exec.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_exec.log: tst-pam_exec - @p='tst-pam_exec'; \ - b='tst-pam_exec'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_exec.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_exec.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_exec/README b/modules/pam_exec/README deleted file mode 100644 index 39591625..00000000 --- a/modules/pam_exec/README +++ /dev/null @@ -1,79 +0,0 @@ -pam_exec — PAM module which calls an external command - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_exec is a PAM module that can be used to run an external command. - -The child's environment is set to the current PAM environment list, as returned -by pam_getenvlist(3) In addition, the following PAM items are exported as -environment variables: PAM_RHOST, PAM_RUSER, PAM_SERVICE, PAM_TTY, PAM_USER and -PAM_TYPE, which contains one of the module types: account, auth, password, -open_session and close_session. - -Commands called by pam_exec need to be aware of that the user can have control -over the environment. - -OPTIONS - -debug - - Print debug information. - -expose_authtok - - During authentication the calling command can read the password from stdin - (3). Only first PAM_MAX_RESP_SIZE bytes of a password are provided to the - command. - -log=file - - The output of the command is appended to file - -type=type - - Only run the command if the module type matches the given type. - -stdout - - Per default the output of the executed command is written to /dev/null. - With this option, the stdout output of the executed command is redirected - to the calling application. It's in the responsibility of this application - what happens with the output. The log option is ignored. - -quiet - - Per default pam_exec.so will echo the exit status of the external command - if it fails. Specifying this option will suppress the message. - -quiet_log - - Per default pam_exec.so will log the exit status of the external command if - it fails. Specifying this option will suppress the log message. - -seteuid - - Per default pam_exec.so will execute the external command with the real - user ID of the calling process. Specifying this option means the command is - run with the effective user ID. - -EXAMPLES - -Add the following line to /etc/pam.d/passwd to rebuild the NIS database after -each local password change: - - password optional pam_exec.so seteuid /usr/bin/make -C /var/yp - - -This will execute the command - -make -C /var/yp - -with effective user ID. - -AUTHOR - -pam_exec was written by Thorsten Kukuk <kukuk@thkukuk.de> and Josh Triplett -<josh@joshtriplett.org>. - diff --git a/modules/pam_exec/meson.build b/modules/pam_exec/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_exec/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_exec/pam_exec.8 b/modules/pam_exec/pam_exec.8 deleted file mode 100644 index 4c7023d9..00000000 --- a/modules/pam_exec/pam_exec.8 +++ /dev/null @@ -1,188 +0,0 @@ -'\" t -.\" Title: pam_exec -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_EXEC" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_exec \- PAM module which calls an external command -.SH "SYNOPSIS" -.HP \w'\fBpam_exec\&.so\fR\ 'u -\fBpam_exec\&.so\fR [debug] [expose_authtok] [seteuid] [quiet] [quiet_log] [stdout] [log=\fIfile\fR] [type=\fItype\fR] \fIcommand\fR [\fI\&.\&.\&.\fR] -.SH "DESCRIPTION" -.PP -pam_exec is a PAM module that can be used to run an external command\&. -.PP -The child\*(Aqs environment is set to the current PAM environment list, as returned by -\fBpam_getenvlist\fR(3) -In addition, the following PAM items are exported as environment variables: -\fIPAM_RHOST\fR, -\fIPAM_RUSER\fR, -\fIPAM_SERVICE\fR, -\fIPAM_TTY\fR, -\fIPAM_USER\fR -and -\fIPAM_TYPE\fR, which contains one of the module types: -\fBaccount\fR, -\fBauth\fR, -\fBpassword\fR, -\fBopen_session\fR -and -\fBclose_session\fR\&. -.PP -Commands called by pam_exec need to be aware of that the user can have control over the environment\&. -.SH "OPTIONS" -.PP -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -expose_authtok -.RS 4 -During authentication the calling command can read the password from -\fBstdin\fR(3)\&. Only first -\fIPAM_MAX_RESP_SIZE\fR -bytes of a password are provided to the command\&. -.RE -.PP -log=file -.RS 4 -The output of the command is appended to -file -.RE -.PP -type=type -.RS 4 -Only run the command if the module type matches the given type\&. -.RE -.PP -stdout -.RS 4 -Per default the output of the executed command is written to -/dev/null\&. With this option, the stdout output of the executed command is redirected to the calling application\&. It\*(Aqs in the responsibility of this application what happens with the output\&. The -\fBlog\fR -option is ignored\&. -.RE -.PP -quiet -.RS 4 -Per default pam_exec\&.so will echo the exit status of the external command if it fails\&. Specifying this option will suppress the message\&. -.RE -.PP -quiet_log -.RS 4 -Per default pam_exec\&.so will log the exit status of the external command if it fails\&. Specifying this option will suppress the log message\&. -.RE -.PP -seteuid -.RS 4 -Per default pam_exec\&.so will execute the external command with the real user ID of the calling process\&. Specifying this option means the command is run with the effective user ID\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_SUCCESS -.RS 4 -The external command was run successfully\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -The conversation method supplied by the application failed to obtain the username\&. -.RE -.PP -PAM_INCOMPLETE -.RS 4 -The conversation method supplied by the application returned PAM_CONV_AGAIN\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -No argument or a wrong number of arguments were given\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -A system error occurred or the command to execute failed\&. -.RE -.PP -PAM_IGNORE -.RS 4 -\fBpam_setcred\fR -was called, which does not execute the command\&. Or, the value given for the type= parameter did not match the module type\&. -.RE -.SH "EXAMPLES" -.PP -Add the following line to -/etc/pam\&.d/passwd -to rebuild the NIS database after each local password change: -.sp -.if n \{\ -.RS 4 -.\} -.nf - password optional pam_exec\&.so seteuid /usr/bin/make \-C /var/yp - -.fi -.if n \{\ -.RE -.\} -.sp -This will execute the command -.sp -.if n \{\ -.RS 4 -.\} -.nf -make \-C /var/yp -.fi -.if n \{\ -.RE -.\} -.sp -with effective user ID\&. -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_exec was written by Thorsten Kukuk <kukuk@thkukuk\&.de> and Josh Triplett <josh@joshtriplett\&.org>\&. diff --git a/modules/pam_exec/pam_exec.8.xml b/modules/pam_exec/pam_exec.8.xml index 13abe6e6..677d598a 100644 --- a/modules/pam_exec/pam_exec.8.xml +++ b/modules/pam_exec/pam_exec.8.xml @@ -103,7 +103,7 @@ </term> <listitem> <para> - During authentication the calling command can read + During authentication and password change the calling command can read the password from <citerefentry> <refentrytitle>stdin</refentrytitle><manvolnum>3</manvolnum> </citerefentry>. Only first <emphasis>PAM_MAX_RESP_SIZE</emphasis> @@ -313,4 +313,4 @@ </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_exec/pam_exec.c b/modules/pam_exec/pam_exec.c index 9d2145dc..e328be16 100644 --- a/modules/pam_exec/pam_exec.c +++ b/modules/pam_exec/pam_exec.c @@ -33,9 +33,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if defined(HAVE_CONFIG_H) #include "config.h" -#endif #include <time.h> #include <errno.h> @@ -55,6 +53,7 @@ #include <security/pam_ext.h> #include <security/_pam_macros.h> #include "pam_inline.h" +#include "pam_i18n.h" #define ENV_ITEM(n) { (n), #n } static struct { @@ -156,7 +155,7 @@ call_exec (const char *pam_type, pam_handle_t *pamh, if (expose_authtok == 1) { - if (strcmp (pam_type, "auth") != 0) + if (strcmp (pam_type, "auth") != 0 && strcmp (pam_type, "password") != 0) { pam_syslog (pamh, LOG_ERR, "expose_authtok not supported for type %s", pam_type); @@ -268,16 +267,15 @@ call_exec (const char *pam_type, pam_handle_t *pamh, if (use_stdout) { - char buf[4096]; + char *buf = NULL; + size_t n = 0; close(stdout_fds[1]); - while (fgets(buf, sizeof(buf), stdout_file) != NULL) + while (getline(&buf, &n, stdout_file) != -1) { - size_t len; - len = strlen(buf); - if (buf[len-1] == '\n') - buf[len-1] = '\0'; + buf[strcspn(buf, "\n")] = '\0'; pam_info(pamh, "%s", buf); } + free(buf); fclose(stdout_file); } @@ -436,7 +434,7 @@ call_exec (const char *pam_type, pam_handle_t *pamh, _exit (err); } - arggv = calloc (argc + 4, sizeof (char *)); + arggv = calloc ((size_t) argc + 1, sizeof (char *)); if (arggv == NULL) _exit (ENOMEM); diff --git a/modules/pam_faildelay/Makefile.am b/modules/pam_faildelay/Makefile.am deleted file mode 100644 index 0ca59c52..00000000 --- a/modules/pam_faildelay/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_faildelay.8 -endif -XMLS = README.xml pam_faildelay.8.xml -dist_check_SCRIPTS = tst-pam_faildelay -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_faildelay.la -pam_faildelay_la_LIBADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_faildelay-retval -tst_pam_faildelay_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_faildelay/Makefile.in b/modules/pam_faildelay/Makefile.in deleted file mode 100644 index 3f526dfb..00000000 --- a/modules/pam_faildelay/Makefile.in +++ /dev/null @@ -1,1192 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_faildelay-retval$(EXEEXT) -subdir = modules/pam_faildelay -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_faildelay_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_faildelay_la_SOURCES = pam_faildelay.c -pam_faildelay_la_OBJECTS = pam_faildelay.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_faildelay_retval_SOURCES = tst-pam_faildelay-retval.c -tst_pam_faildelay_retval_OBJECTS = tst-pam_faildelay-retval.$(OBJEXT) -tst_pam_faildelay_retval_DEPENDENCIES = \ - $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_faildelay.Plo \ - ./$(DEPDIR)/tst-pam_faildelay-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_faildelay.c tst-pam_faildelay-retval.c -DIST_SOURCES = pam_faildelay.c tst-pam_faildelay-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_faildelay.8 -XMLS = README.xml pam_faildelay.8.xml -dist_check_SCRIPTS = tst-pam_faildelay -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_faildelay.la -pam_faildelay_la_LIBADD = $(top_builddir)/libpam/libpam.la -tst_pam_faildelay_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_faildelay/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_faildelay/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_faildelay.la: $(pam_faildelay_la_OBJECTS) $(pam_faildelay_la_DEPENDENCIES) $(EXTRA_pam_faildelay_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_faildelay_la_OBJECTS) $(pam_faildelay_la_LIBADD) $(LIBS) - -tst-pam_faildelay-retval$(EXEEXT): $(tst_pam_faildelay_retval_OBJECTS) $(tst_pam_faildelay_retval_DEPENDENCIES) $(EXTRA_tst_pam_faildelay_retval_DEPENDENCIES) - @rm -f tst-pam_faildelay-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_faildelay_retval_OBJECTS) $(tst_pam_faildelay_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_faildelay.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_faildelay-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_faildelay.log: tst-pam_faildelay - @p='tst-pam_faildelay'; \ - b='tst-pam_faildelay'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_faildelay-retval.log: tst-pam_faildelay-retval$(EXEEXT) - @p='tst-pam_faildelay-retval$(EXEEXT)'; \ - b='tst-pam_faildelay-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_faildelay.Plo - -rm -f ./$(DEPDIR)/tst-pam_faildelay-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_faildelay.Plo - -rm -f ./$(DEPDIR)/tst-pam_faildelay-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_faildelay/README b/modules/pam_faildelay/README deleted file mode 100644 index a06d7e3f..00000000 --- a/modules/pam_faildelay/README +++ /dev/null @@ -1,33 +0,0 @@ -pam_faildelay — Change the delay on failure per-application - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_faildelay is a PAM module that can be used to set the delay on failure -per-application. - -If no delay is given, pam_faildelay will use the value of FAIL_DELAY from /etc/ -login.defs. - -OPTIONS - -debug - - Turns on debugging messages sent to syslog. - -delay=N - - Set the delay on failure to N microseconds. - -EXAMPLES - -The following example will set the delay on failure to 10 seconds: - -auth optional pam_faildelay.so delay=10000000 - - -AUTHOR - -pam_faildelay was written by Darren Tucker <dtucker@zip.com.au>. - diff --git a/modules/pam_faildelay/meson.build b/modules/pam_faildelay/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_faildelay/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_faildelay/pam_faildelay.8 b/modules/pam_faildelay/pam_faildelay.8 deleted file mode 100644 index 9d1d4759..00000000 --- a/modules/pam_faildelay/pam_faildelay.8 +++ /dev/null @@ -1,93 +0,0 @@ -'\" t -.\" Title: pam_faildelay -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_FAILDELAY" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_faildelay \- Change the delay on failure per\-application -.SH "SYNOPSIS" -.HP \w'\fBpam_faildelay\&.so\fR\ 'u -\fBpam_faildelay\&.so\fR [debug] [delay=\fImicroseconds\fR] -.SH "DESCRIPTION" -.PP -pam_faildelay is a PAM module that can be used to set the delay on failure per\-application\&. -.PP -If no -\fBdelay\fR -is given, pam_faildelay will use the value of FAIL_DELAY from -/etc/login\&.defs\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Turns on debugging messages sent to syslog\&. -.RE -.PP -delay=N -.RS 4 -Set the delay on failure to N microseconds\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBauth\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_IGNORE -.RS 4 -Delay was successful adjusted\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -The specified delay was not valid\&. -.RE -.SH "EXAMPLES" -.PP -The following example will set the delay on failure to 10 seconds: -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth optional pam_faildelay\&.so delay=10000000 - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam_fail_delay\fR(3), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_faildelay was written by Darren Tucker <dtucker@zip\&.com\&.au>\&. diff --git a/modules/pam_faildelay/pam_faildelay.c b/modules/pam_faildelay/pam_faildelay.c index 02c5fafd..0d4d42eb 100644 --- a/modules/pam_faildelay/pam_faildelay.c +++ b/modules/pam_faildelay/pam_faildelay.c @@ -60,8 +60,8 @@ */ #include "config.h" +#include "pam_inline.h" -#include <errno.h> #include <ctype.h> #include <stdio.h> #include <limits.h> @@ -75,19 +75,37 @@ #include <security/pam_modutil.h> #define LOGIN_DEFS "/etc/login.defs" +#define S_TO_MICROS 1000000 /* --- authentication management functions (only) --- */ +static long long parse_delay(const char *val) +{ + long long delay; + char *endptr; + + delay = strtoll (val, &endptr, 10); + if (delay < 0 || val == endptr || *endptr != '\0') + return -1; + return delay; +} + int pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { int i, debug_flag = 0; - long int delay = -1; + long long delay = -1; /* step through arguments */ for (i = 0; i < argc; i++) { - if (sscanf(argv[i], "delay=%ld", &delay) == 1) { - /* sscanf did already everything necessary */ + const char *val = pam_str_skip_prefix (argv[i], "delay="); + if (val != NULL) { + delay = parse_delay (val); + if (delay < 0 || (unsigned long long) delay > UINT_MAX) + { + pam_syslog (pamh, LOG_ERR, "%s (%s) not valid", argv[i], val); + return PAM_IGNORE; + } } else if (strcmp (argv[i], "debug") == 0) debug_flag = 1; else @@ -96,17 +114,13 @@ int pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, if (delay == -1) { - char *endptr; char *val = pam_modutil_search_key (pamh, LOGIN_DEFS, "FAIL_DELAY"); - const char *val_orig = val; if (val == NULL) return PAM_IGNORE; - errno = 0; - delay = strtol (val, &endptr, 10) & 0777; - if (((delay == 0) && (val_orig == endptr)) || - ((delay == LONG_MIN || delay == LONG_MAX) && (errno == ERANGE))) + delay = parse_delay (val); + if (delay < 0 || (unsigned long long) delay > UINT_MAX / S_TO_MICROS) { pam_syslog (pamh, LOG_ERR, "FAIL_DELAY=%s in %s not valid", val, LOGIN_DEFS); @@ -116,13 +130,13 @@ int pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, free (val); /* delay is in seconds, convert to microseconds. */ - delay *= 1000000; + delay *= S_TO_MICROS; } if (debug_flag) - pam_syslog (pamh, LOG_DEBUG, "setting fail delay to %ld", delay); + pam_syslog (pamh, LOG_DEBUG, "setting fail delay to %lld", delay); - i = pam_fail_delay(pamh, delay); + i = pam_fail_delay(pamh, (unsigned int) delay); if (i == PAM_SUCCESS) return PAM_IGNORE; else diff --git a/modules/pam_faildelay/tst-pam_faildelay-retval.c b/modules/pam_faildelay/tst-pam_faildelay-retval.c index cbd8f2a8..72b16ef9 100644 --- a/modules/pam_faildelay/tst-pam_faildelay-retval.c +++ b/modules/pam_faildelay/tst-pam_faildelay-retval.c @@ -31,10 +31,10 @@ main(void) /* PAM_IGNORE -> PAM_PERM_DENIED */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so delay=1\n" - "account required %s/.libs/%s.so delay=1\n" - "password required %s/.libs/%s.so delay=1\n" - "session required %s/.libs/%s.so delay=1\n", + "auth required %s/" LTDIR "%s.so delay=1\n" + "account required %s/" LTDIR "%s.so delay=1\n" + "password required %s/" LTDIR "%s.so delay=1\n" + "session required %s/" LTDIR "%s.so delay=1\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, @@ -56,14 +56,14 @@ main(void) /* PAM_IGNORE -> PAM_SUCCESS */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so delay=1\n" - "auth required %s/../pam_permit/.libs/pam_permit.so\n" - "account required %s/.libs/%s.so delay=1\n" - "account required %s/../pam_permit/.libs/pam_permit.so\n" - "password required %s/.libs/%s.so delay=1\n" - "password required %s/../pam_permit/.libs/pam_permit.so\n" - "session required %s/.libs/%s.so delay=1\n" - "session required %s/../pam_permit/.libs/pam_permit.so\n", + "auth required %s/" LTDIR "%s.so delay=1\n" + "auth required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "account required %s/" LTDIR "%s.so delay=1\n" + "account required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "password required %s/" LTDIR "%s.so delay=1\n" + "password required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "session required %s/" LTDIR "%s.so delay=1\n" + "session required %s/../pam_permit/" LTDIR "pam_permit.so\n", cwd, MODULE_NAME, cwd, cwd, MODULE_NAME, cwd, cwd, MODULE_NAME, cwd, diff --git a/modules/pam_faillock/Makefile.am b/modules/pam_faillock/Makefile.am deleted file mode 100644 index ec61aeb0..00000000 --- a/modules/pam_faillock/Makefile.am +++ /dev/null @@ -1,57 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2007, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# Copyright (c) 2008, 2018, 2020 Red Hat, Inc. -# Copyright (c) 2010 Tomas Mraz <tmraz@redhat.com> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_faillock.8 faillock.8 faillock.conf.5 -endif -XMLS = README.xml pam_faillock.8.xml faillock.8.xml faillock.conf.5.xml - -dist_check_SCRIPTS = tst-pam_faillock -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -noinst_HEADERS = faillock.h faillock_config.h - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -faillock_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ - -pam_faillock_la_LDFLAGS = -no-undefined -avoid-version -module -pam_faillock_la_LIBADD = $(top_builddir)/libpam/libpam.la $(LIBAUDIT) -if HAVE_VERSIONING - pam_faillock_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -check_PROGRAMS = tst-pam_faillock-retval -tst_pam_faillock_retval_LDADD = $(top_builddir)/libpam/libpam.la - -faillock_LDFLAGS = @EXE_LDFLAGS@ -faillock_LDADD = $(top_builddir)/libpam/libpam.la $(LIBAUDIT) - -dist_secureconf_DATA = faillock.conf - -securelib_LTLIBRARIES = pam_faillock.la -sbin_PROGRAMS = faillock - -pam_faillock_la_SOURCES = pam_faillock.c faillock.c faillock_config.c -faillock_SOURCES = main.c faillock.c faillock_config.c - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_faillock/Makefile.in b/modules/pam_faillock/Makefile.in deleted file mode 100644 index e9b62c30..00000000 --- a/modules/pam_faillock/Makefile.in +++ /dev/null @@ -1,1410 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2007, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# Copyright (c) 2008, 2018, 2020 Red Hat, Inc. -# Copyright (c) 2010 Tomas Mraz <tmraz@redhat.com> -# - - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_faillock-retval$(EXEEXT) -sbin_PROGRAMS = faillock$(EXEEXT) -subdir = modules/pam_faillock -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(dist_secureconf_DATA) \ - $(noinst_HEADERS) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" \ - "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" \ - "$(DESTDIR)$(secureconfdir)" -PROGRAMS = $(sbin_PROGRAMS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -LTLIBRARIES = $(securelib_LTLIBRARIES) -am__DEPENDENCIES_1 = -pam_faillock_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(am__DEPENDENCIES_1) -am_pam_faillock_la_OBJECTS = pam_faillock.lo faillock.lo \ - faillock_config.lo -pam_faillock_la_OBJECTS = $(am_pam_faillock_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -pam_faillock_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(pam_faillock_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -am_faillock_OBJECTS = faillock-main.$(OBJEXT) \ - faillock-faillock.$(OBJEXT) faillock-faillock_config.$(OBJEXT) -faillock_OBJECTS = $(am_faillock_OBJECTS) -faillock_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(am__DEPENDENCIES_1) -faillock_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(faillock_CFLAGS) \ - $(CFLAGS) $(faillock_LDFLAGS) $(LDFLAGS) -o $@ -tst_pam_faillock_retval_SOURCES = tst-pam_faillock-retval.c -tst_pam_faillock_retval_OBJECTS = tst-pam_faillock-retval.$(OBJEXT) -tst_pam_faillock_retval_DEPENDENCIES = \ - $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/faillock-faillock.Po \ - ./$(DEPDIR)/faillock-faillock_config.Po \ - ./$(DEPDIR)/faillock-main.Po ./$(DEPDIR)/faillock.Plo \ - ./$(DEPDIR)/faillock_config.Plo ./$(DEPDIR)/pam_faillock.Plo \ - ./$(DEPDIR)/tst-pam_faillock-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(pam_faillock_la_SOURCES) $(faillock_SOURCES) \ - tst-pam_faillock-retval.c -DIST_SOURCES = $(pam_faillock_la_SOURCES) $(faillock_SOURCES) \ - tst-pam_faillock-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_faillock.8 faillock.8 faillock.conf.5 -XMLS = README.xml pam_faillock.8.xml faillock.8.xml faillock.conf.5.xml -dist_check_SCRIPTS = tst-pam_faillock -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -noinst_HEADERS = faillock.h faillock_config.h -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -faillock_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -pam_faillock_la_LDFLAGS = -no-undefined -avoid-version -module \ - $(am__append_1) -pam_faillock_la_LIBADD = $(top_builddir)/libpam/libpam.la $(LIBAUDIT) -tst_pam_faillock_retval_LDADD = $(top_builddir)/libpam/libpam.la -faillock_LDFLAGS = @EXE_LDFLAGS@ -faillock_LDADD = $(top_builddir)/libpam/libpam.la $(LIBAUDIT) -dist_secureconf_DATA = faillock.conf -securelib_LTLIBRARIES = pam_faillock.la -pam_faillock_la_SOURCES = pam_faillock.c faillock.c faillock_config.c -faillock_SOURCES = main.c faillock.c faillock_config.c -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_faillock/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_faillock/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -install-sbinPROGRAMS: $(sbin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-sbinPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(sbindir)" && rm -f $$files - -clean-sbinPROGRAMS: - @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_faillock.la: $(pam_faillock_la_OBJECTS) $(pam_faillock_la_DEPENDENCIES) $(EXTRA_pam_faillock_la_DEPENDENCIES) - $(AM_V_CCLD)$(pam_faillock_la_LINK) -rpath $(securelibdir) $(pam_faillock_la_OBJECTS) $(pam_faillock_la_LIBADD) $(LIBS) - -faillock$(EXEEXT): $(faillock_OBJECTS) $(faillock_DEPENDENCIES) $(EXTRA_faillock_DEPENDENCIES) - @rm -f faillock$(EXEEXT) - $(AM_V_CCLD)$(faillock_LINK) $(faillock_OBJECTS) $(faillock_LDADD) $(LIBS) - -tst-pam_faillock-retval$(EXEEXT): $(tst_pam_faillock_retval_OBJECTS) $(tst_pam_faillock_retval_DEPENDENCIES) $(EXTRA_tst_pam_faillock_retval_DEPENDENCIES) - @rm -f tst-pam_faillock-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_faillock_retval_OBJECTS) $(tst_pam_faillock_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faillock-faillock.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faillock-faillock_config.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faillock-main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faillock.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faillock_config.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_faillock.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_faillock-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -faillock-main.o: main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -MT faillock-main.o -MD -MP -MF $(DEPDIR)/faillock-main.Tpo -c -o faillock-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faillock-main.Tpo $(DEPDIR)/faillock-main.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='faillock-main.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -c -o faillock-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c - -faillock-main.obj: main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -MT faillock-main.obj -MD -MP -MF $(DEPDIR)/faillock-main.Tpo -c -o faillock-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faillock-main.Tpo $(DEPDIR)/faillock-main.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='faillock-main.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -c -o faillock-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` - -faillock-faillock.o: faillock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -MT faillock-faillock.o -MD -MP -MF $(DEPDIR)/faillock-faillock.Tpo -c -o faillock-faillock.o `test -f 'faillock.c' || echo '$(srcdir)/'`faillock.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faillock-faillock.Tpo $(DEPDIR)/faillock-faillock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='faillock.c' object='faillock-faillock.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -c -o faillock-faillock.o `test -f 'faillock.c' || echo '$(srcdir)/'`faillock.c - -faillock-faillock.obj: faillock.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -MT faillock-faillock.obj -MD -MP -MF $(DEPDIR)/faillock-faillock.Tpo -c -o faillock-faillock.obj `if test -f 'faillock.c'; then $(CYGPATH_W) 'faillock.c'; else $(CYGPATH_W) '$(srcdir)/faillock.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faillock-faillock.Tpo $(DEPDIR)/faillock-faillock.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='faillock.c' object='faillock-faillock.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -c -o faillock-faillock.obj `if test -f 'faillock.c'; then $(CYGPATH_W) 'faillock.c'; else $(CYGPATH_W) '$(srcdir)/faillock.c'; fi` - -faillock-faillock_config.o: faillock_config.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -MT faillock-faillock_config.o -MD -MP -MF $(DEPDIR)/faillock-faillock_config.Tpo -c -o faillock-faillock_config.o `test -f 'faillock_config.c' || echo '$(srcdir)/'`faillock_config.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faillock-faillock_config.Tpo $(DEPDIR)/faillock-faillock_config.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='faillock_config.c' object='faillock-faillock_config.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -c -o faillock-faillock_config.o `test -f 'faillock_config.c' || echo '$(srcdir)/'`faillock_config.c - -faillock-faillock_config.obj: faillock_config.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -MT faillock-faillock_config.obj -MD -MP -MF $(DEPDIR)/faillock-faillock_config.Tpo -c -o faillock-faillock_config.obj `if test -f 'faillock_config.c'; then $(CYGPATH_W) 'faillock_config.c'; else $(CYGPATH_W) '$(srcdir)/faillock_config.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/faillock-faillock_config.Tpo $(DEPDIR)/faillock-faillock_config.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='faillock_config.c' object='faillock-faillock_config.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(faillock_CFLAGS) $(CFLAGS) -c -o faillock-faillock_config.obj `if test -f 'faillock_config.c'; then $(CYGPATH_W) 'faillock_config.c'; else $(CYGPATH_W) '$(srcdir)/faillock_config.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_faillock.log: tst-pam_faillock - @p='tst-pam_faillock'; \ - b='tst-pam_faillock'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_faillock-retval.log: tst-pam_faillock-retval$(EXEEXT) - @p='tst-pam_faillock-retval$(EXEEXT)'; \ - b='tst-pam_faillock-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(MANS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/faillock-faillock.Po - -rm -f ./$(DEPDIR)/faillock-faillock_config.Po - -rm -f ./$(DEPDIR)/faillock-main.Po - -rm -f ./$(DEPDIR)/faillock.Plo - -rm -f ./$(DEPDIR)/faillock_config.Plo - -rm -f ./$(DEPDIR)/pam_faillock.Plo - -rm -f ./$(DEPDIR)/tst-pam_faillock-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-dist_secureconfDATA install-man \ - install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-sbinPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/faillock-faillock.Po - -rm -f ./$(DEPDIR)/faillock-faillock_config.Po - -rm -f ./$(DEPDIR)/faillock-main.Po - -rm -f ./$(DEPDIR)/faillock.Plo - -rm -f ./$(DEPDIR)/faillock_config.Plo - -rm -f ./$(DEPDIR)/pam_faillock.Plo - -rm -f ./$(DEPDIR)/tst-pam_faillock-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA uninstall-man \ - uninstall-sbinPROGRAMS uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dist_secureconfDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man5 install-man8 install-pdf install-pdf-am \ - install-ps install-ps-am install-sbinPROGRAMS \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am \ - uninstall-dist_secureconfDATA uninstall-man uninstall-man5 \ - uninstall-man8 uninstall-sbinPROGRAMS \ - uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_faillock/README b/modules/pam_faillock/README deleted file mode 100644 index 574b37bd..00000000 --- a/modules/pam_faillock/README +++ /dev/null @@ -1,144 +0,0 @@ -pam_faillock — Module counting authentication failures during a specified -interval - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -This module maintains a list of failed authentication attempts per user during -a specified interval and locks the account in case there were more than deny -consecutive failed authentications. - -Normally, failed attempts to authenticate root will not cause the root account -to become blocked, to prevent denial-of-service: if your users aren't given -shell accounts and root may only login via su or at the machine console (not -telnet/rsh, etc), this is safe. - -OPTIONS - -{preauth|authfail|authsucc} - - This argument must be set accordingly to the position of this module - instance in the PAM stack. - - The preauth argument must be used when the module is called before the - modules which ask for the user credentials such as the password. The module - just examines whether the user should be blocked from accessing the service - in case there were anomalous number of failed consecutive authentication - attempts recently. This call is optional if authsucc is used. - - The authfail argument must be used when the module is called after the - modules which determine the authentication outcome, failed. Unless the user - is already blocked due to previous authentication failures, the module will - record the failure into the appropriate user tally file. - - The authsucc argument must be used when the module is called after the - modules which determine the authentication outcome, succeeded. Unless the - user is already blocked due to previous authentication failures, the module - will then clear the record of the failures in the respective user tally - file. Otherwise it will return authentication error. If this call is not - done, the pam_faillock will not distinguish between consecutive and - non-consecutive failed authentication attempts. The preauth call must be - used in such case. Due to complications in the way the PAM stack can be - configured it is also possible to call pam_faillock as an account module. - In such configuration the module must be also called in the preauth stage. - -conf=/path/to/config-file - - Use another configuration file instead of the default /etc/security/ - faillock.conf. - - Use another configuration file instead of the default which is to use the - file /etc/security/faillock.conf or, if that one is not present, the file - %vendordir%/security/faillock.conf. - -The options for configuring the module behavior are described in the -faillock.conf(5) manual page. The options specified on the module command line -override the values from the configuration file. - -NOTES - -Configuring options on the module command line is not recommend. The /etc/ -security/faillock.conf should be used instead. - -The setup of pam_faillock in the PAM stack is different from the pam_tally2 -module setup. - -Individual files with the failure records are created as owned by the user. -This allows pam_faillock.so module to work correctly when it is called from a -screensaver. - -Note that using the module in preauth without the silent option specified in / -etc/security/faillock.conf or with requisite control field leaks an information -about existence or non-existence of a user account in the system because the -failures are not recorded for the unknown users. The message about the user -account being locked is never displayed for non-existing user accounts allowing -the adversary to infer that a particular account is not existing on a system. - -EXAMPLES - -Here are two possible configuration examples for /etc/pam.d/login. They make -pam_faillock to lock the account after 4 consecutive failed logins during the -default interval of 15 minutes. Root account will be locked as well. The -accounts will be automatically unlocked after 20 minutes. - -In the first example the module is called only in the auth phase and the module -does not print any information about the account being blocked by pam_faillock. -The preauth call can be added to tell users that their logins are blocked by -the module and also to abort the authentication without even asking for -password in such case. - -/etc/security/faillock.conf file example: - -deny=4 -unlock_time=1200 -silent - - -/etc/pam.d/config file example: - -auth required pam_securetty.so -auth required pam_env.so -auth required pam_nologin.so -# optionally call: auth requisite pam_faillock.so preauth -# to display the message about account being locked -auth [success=1 default=bad] pam_unix.so -auth [default=die] pam_faillock.so authfail -auth sufficient pam_faillock.so authsucc -auth required pam_deny.so -account required pam_unix.so -password required pam_unix.so shadow -session required pam_selinux.so close -session required pam_loginuid.so -session required pam_unix.so -session required pam_selinux.so open - - -In the second example the module is called both in the auth and account phases -and the module informs the authenticating user when the account is locked if -silent option is not specified in the faillock.conf. - -auth required pam_securetty.so -auth required pam_env.so -auth required pam_nologin.so -auth required pam_faillock.so preauth -# optionally use requisite above if you do not want to prompt for the password -# on locked accounts -auth sufficient pam_unix.so -auth [default=die] pam_faillock.so authfail -auth required pam_deny.so -account required pam_faillock.so -# if you drop the above call to pam_faillock.so the lock will be done also -# on non-consecutive authentication failures -account required pam_unix.so -password required pam_unix.so shadow -session required pam_selinux.so close -session required pam_loginuid.so -session required pam_unix.so -session required pam_selinux.so open - - -AUTHOR - -pam_faillock was written by Tomas Mraz. - diff --git a/modules/pam_faillock/faillock.8 b/modules/pam_faillock/faillock.8 deleted file mode 100644 index 5d9c5db8..00000000 --- a/modules/pam_faillock/faillock.8 +++ /dev/null @@ -1,87 +0,0 @@ -'\" t -.\" Title: faillock -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "FAILLOCK" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -faillock \- Tool for displaying and modifying the authentication failure record files -.SH "SYNOPSIS" -.HP \w'\fBfaillock\fR\ 'u -\fBfaillock\fR [\-\-dir\ \fI/path/to/tally\-directory\fR] [\-\-user\ \fIusername\fR] [\-\-reset] -.SH "DESCRIPTION" -.PP -The -\fIpam_faillock\&.so\fR -module maintains a list of failed authentication attempts per user during a specified interval and locks the account in case there were more than -\fIdeny\fR -consecutive failed authentications\&. It stores the failure records into per\-user files in the tally directory\&. -.PP -The -\fBfaillock\fR -command is an application which can be used to examine and modify the contents of the tally files\&. It can display the recent failed authentication attempts of the -\fIusername\fR -or clear the tally files of all or individual -\fIusernames\fR\&. -.SH "OPTIONS" -.PP -\-\-conf /path/to/config\-file -.RS 4 -The file where the configuration is located\&. The default is -/etc/security/faillock\&.conf\&. -.RE -.PP -\-\-dir /path/to/tally\-directory -.RS 4 -The directory where the user files with the failure records are kept\&. -.sp -The priority to set this option is to use the value provided from the command line\&. If this isn\*(Aqt provided, then the value from the configuration file is used\&. Finally, if neither of them has been provided, then -/var/run/faillock -is used\&. -.RE -.PP -\-\-user username -.RS 4 -The user whose failure records should be displayed or cleared\&. -.RE -.PP -\-\-reset -.RS 4 -Instead of displaying the user\*(Aqs failure records, clear them\&. -.RE -.SH "FILES" -.PP -/var/run/faillock/* -.RS 4 -the files logging the authentication failures for users -.RE -.SH "SEE ALSO" -.PP -\fBpam_faillock\fR(8), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -faillock was written by Tomas Mraz\&. diff --git a/modules/pam_faillock/faillock.c b/modules/pam_faillock/faillock.c index 091f253a..92484747 100644 --- a/modules/pam_faillock/faillock.c +++ b/modules/pam_faillock/faillock.c @@ -36,42 +36,39 @@ #include "config.h" #include <string.h> +#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/file.h> -#include <sys/stat.h> #include <fcntl.h> #include <security/pam_modutil.h> #include "faillock.h" -#define ignore_return(x) if (1==((int)x)) {;} +#define ignore_return(x) if (1==((int)(x))) {;} int open_tally (const char *dir, const char *user, uid_t uid, int create) { char *path; int flags = O_RDWR; - int fd; + int fd, r; if (dir == NULL || strstr(user, "../") != NULL) /* just a defensive programming as the user must be a * valid user on the system anyway */ return -1; - path = malloc(strlen(dir) + strlen(user) + 2); - if (path == NULL) + if (*dir && dir[strlen(dir) - 1] != '/') + r = asprintf(&path, "%s/%s", dir, user); + else + r = asprintf(&path, "%s%s", dir, user); + if (r < 0) return -1; - strcpy(path, dir); - if (*dir && dir[strlen(dir) - 1] != '/') { - strcat(path, "/"); - } - strcat(path, user); - if (create) { flags |= O_CREAT; if (access(dir, F_OK) != 0) { diff --git a/modules/pam_faillock/faillock.conf.5 b/modules/pam_faillock/faillock.conf.5 deleted file mode 100644 index fd257b08..00000000 --- a/modules/pam_faillock/faillock.conf.5 +++ /dev/null @@ -1,175 +0,0 @@ -'\" t -.\" Title: faillock.conf -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "FAILLOCK\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -faillock.conf \- pam_faillock configuration file -.SH "DESCRIPTION" -.PP -\fBfaillock\&.conf\fR -provides a way to configure the default settings for locking the user after multiple failed authentication attempts\&. This file is read by the -\fIpam_faillock\fR -module and is the preferred method over configuring -\fIpam_faillock\fR -directly\&. -.PP -The file has a very simple -\fIname = value\fR -format with possible comments starting with -\fI#\fR -character\&. The whitespace at the beginning of line, end of line, and around the -\fI=\fR -sign is ignored\&. -.SH "OPTIONS" -.PP -dir=/path/to/tally\-directory -.RS 4 -The directory where the user files with the failure records are kept\&. The default is -/var/run/faillock\&. -.sp -Note: These files will disappear after reboot on systems configured with directory -/var/run/faillock -mounted on virtual memory\&. -.RE -.PP -audit -.RS 4 -Will log the user name into the system log if the user is not found\&. -.RE -.PP -silent -.RS 4 -Don\*(Aqt print informative messages to the user\&. Please note that when this option is not used there will be difference in the authentication behavior for users which exist on the system and non\-existing users\&. -.RE -.PP -no_log_info -.RS 4 -Don\*(Aqt log informative messages via -\fBsyslog\fR(3)\&. -.RE -.PP -local_users_only -.RS 4 -Only track failed user authentications attempts for local users in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc\&.) users\&. The -\fBfaillock\fR(8) -command will also no longer track user failed authentication attempts\&. Enabling this option will prevent a double\-lockout scenario where a user is locked out locally and in the centralized mechanism\&. -.RE -.PP -nodelay -.RS 4 -Don\*(Aqt enforce a delay after authentication failures\&. -.RE -.PP -deny=n -.RS 4 -Deny access if the number of consecutive authentication failures for this user during the recent interval exceeds -\fIn\fR\&. The default is 3\&. -.RE -.PP -fail_interval=n -.RS 4 -The length of the interval during which the consecutive authentication failures must happen for the user account lock out is -\fIn\fR -seconds\&. The default is 900 (15 minutes)\&. -.RE -.PP -unlock_time=n -.RS 4 -The access will be re\-enabled after -\fIn\fR -seconds after the lock out\&. The value 0 has the same meaning as value -\fInever\fR -\- the access will not be re\-enabled without resetting the faillock entries by the -\fBfaillock\fR(8) -command\&. The default is 600 (10 minutes)\&. -.sp -Note that the default directory that -\fIpam_faillock\fR -uses is usually cleared on system boot so the access will be also re\-enabled after system reboot\&. If that is undesirable a different tally directory must be set with the -\fBdir\fR -option\&. -.sp -Also note that it is usually undesirable to permanently lock out users as they can become easily a target of denial of service attack unless the usernames are random and kept secret to potential attackers\&. -.RE -.PP -even_deny_root -.RS 4 -Root account can become locked as well as regular accounts\&. -.RE -.PP -root_unlock_time=n -.RS 4 -This option implies -\fBeven_deny_root\fR -option\&. Allow access after -\fIn\fR -seconds to root account after the account is locked\&. In case the option is not specified the value is the same as of the -\fBunlock_time\fR -option\&. -.RE -.PP -admin_group=name -.RS 4 -If a group name is specified with this option, members of the group will be handled by this module the same as the root account (the options -\fBeven_deny_root\fR -and -\fBroot_unlock_time\fR -will apply to them\&. By default the option is not set\&. -.RE -.SH "EXAMPLES" -.PP -/etc/security/faillock\&.conf file example: -.sp -.if n \{\ -.RS 4 -.\} -.nf -deny=4 -unlock_time=1200 -silent - -.fi -.if n \{\ -.RE -.\} -.SH "FILES" -.PP -/etc/security/faillock\&.conf -.RS 4 -the config file for custom options -.RE -.SH "SEE ALSO" -.PP -\fBfaillock\fR(8), -\fBpam_faillock\fR(8), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_faillock was written by Tomas Mraz\&. The support for faillock\&.conf was written by Brian Ward\&. diff --git a/modules/pam_faillock/faillock_config.c b/modules/pam_faillock/faillock_config.c index 0d14aad1..d8e7e800 100644 --- a/modules/pam_faillock/faillock_config.c +++ b/modules/pam_faillock/faillock_config.c @@ -48,9 +48,9 @@ #include "faillock_config.h" #include "faillock.h" -#define FAILLOCK_DEFAULT_CONF SCONFIGDIR "/faillock.conf" -#ifdef VENDOR_SCONFIGDIR -#define VENDOR_FAILLOCK_DEFAULT_CONF VENDOR_SCONFIGDIR "/faillock.conf" +#define FAILLOCK_DEFAULT_CONF SCONFIG_DIR "/faillock.conf" +#ifdef VENDOR_SCONFIG_DIR +#define VENDOR_FAILLOCK_DEFAULT_CONF VENDOR_SCONFIG_DIR "/faillock.conf" #endif static void PAM_FORMAT((printf, 3, 4)) PAM_NONNULL((3)) @@ -79,7 +79,8 @@ config_log(const pam_handle_t *pamh, int priority, const char *fmt, ...) int read_config_file(pam_handle_t *pamh, struct options *opts, const char *cfgfile) { - char linebuf[FAILLOCK_CONF_MAX_LINELEN+1]; + char *linebuf = NULL; + size_t n = 0; const char *fname = (cfgfile != NULL) ? cfgfile : FAILLOCK_DEFAULT_CONF; FILE *f = fopen(fname, "r"); @@ -100,15 +101,15 @@ read_config_file(pam_handle_t *pamh, struct options *opts, const char *cfgfile) return PAM_SERVICE_ERR; } - while (fgets(linebuf, sizeof(linebuf), f) != NULL) { + while (getline(&linebuf, &n, f) != -1) { size_t len; char *ptr; char *name; int eq; len = strlen(linebuf); - /* len cannot be 0 unless there is a bug in fgets */ if (len && linebuf[len - 1] != '\n' && !feof(f)) { + free(linebuf); (void) fclose(f); return PAM_SERVICE_ERR; } @@ -121,7 +122,7 @@ read_config_file(pam_handle_t *pamh, struct options *opts, const char *cfgfile) /* drop terminating whitespace including the \n */ while (ptr > linebuf) { - if (!isspace(*(ptr-1))) { + if (!isspace((unsigned char)*(ptr-1))) { *ptr = '\0'; break; } @@ -129,7 +130,7 @@ read_config_file(pam_handle_t *pamh, struct options *opts, const char *cfgfile) } /* skip initial whitespace */ - for (ptr = linebuf; isspace(*ptr); ptr++); + for (ptr = linebuf; isspace((unsigned char)*ptr); ptr++); if (*ptr == '\0') continue; @@ -137,7 +138,7 @@ read_config_file(pam_handle_t *pamh, struct options *opts, const char *cfgfile) eq = 0; name = ptr; while (*ptr != '\0') { - if (isspace(*ptr) || *ptr == '=') { + if (isspace((unsigned char)*ptr) || *ptr == '=') { eq = *ptr == '='; *ptr = '\0'; ++ptr; @@ -149,7 +150,7 @@ read_config_file(pam_handle_t *pamh, struct options *opts, const char *cfgfile) /* grab the key value */ while (*ptr != '\0') { if (*ptr != '=' || eq) { - if (!isspace(*ptr)) { + if (!isspace((unsigned char)*ptr)) { break; } } else { @@ -162,6 +163,7 @@ read_config_file(pam_handle_t *pamh, struct options *opts, const char *cfgfile) set_conf_opt(pamh, opts, name, ptr); } + free(linebuf); (void)fclose(f); return PAM_SUCCESS; } diff --git a/modules/pam_faillock/faillock_config.h b/modules/pam_faillock/faillock_config.h index 04bc699b..da5f3638 100644 --- a/modules/pam_faillock/faillock_config.h +++ b/modules/pam_faillock/faillock_config.h @@ -56,7 +56,6 @@ #define FAILLOCK_FLAG_LOCAL_ONLY 0x20 #define FAILLOCK_FLAG_NO_DELAY 0x40 -#define FAILLOCK_CONF_MAX_LINELEN 1023 #define MAX_TIME_INTERVAL 604800 /* 7 days */ struct options { diff --git a/modules/pam_faillock/main.c b/modules/pam_faillock/main.c index 136be834..c6dd19cb 100644 --- a/modules/pam_faillock/main.c +++ b/modules/pam_faillock/main.c @@ -52,6 +52,7 @@ #endif #include "pam_inline.h" +#include "pam_i18n.h" #include "faillock.h" #include "faillock_config.h" @@ -247,7 +248,8 @@ do_user(struct options *opts, const char *user) #ifdef HAVE_LIBAUDIT } if ((audit_fd=audit_open()) >= 0) { - audit_log_acct_message(audit_fd, AUDIT_USER_MGMT, NULL, + (void) !audit_log_acct_message(audit_fd, + AUDIT_USER_MGMT, NULL, "faillock-reset", user, pwd != NULL ? pwd->pw_uid : AUDIT_NO_ID, NULL, NULL, NULL, rv == 0); diff --git a/modules/pam_faillock/meson.build b/modules/pam_faillock/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_faillock/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_faillock/pam_faillock.8 b/modules/pam_faillock/pam_faillock.8 deleted file mode 100644 index b4854ff5..00000000 --- a/modules/pam_faillock/pam_faillock.8 +++ /dev/null @@ -1,269 +0,0 @@ -'\" t -.\" Title: pam_faillock -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: [FIXME: source] -.\" Language: English -.\" -.TH "PAM_FAILLOCK" "8" "05/07/2023" "[FIXME: source]" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_faillock \- Module counting authentication failures during a specified interval -.SH "SYNOPSIS" -.HP \w'\fBauth\ \&.\&.\&.\ pam_faillock\&.so\fR\ 'u -\fBauth \&.\&.\&. pam_faillock\&.so\fR {preauth|authfail|authsucc} [conf=\fI/path/to/config\-file\fR] [dir=\fI/path/to/tally\-directory\fR] [even_deny_root] [deny=\fIn\fR] [fail_interval=\fIn\fR] [unlock_time=\fIn\fR] [root_unlock_time=\fIn\fR] [admin_group=\fIname\fR] [audit] [silent] [no_log_info] -.HP \w'\fBaccount\ \&.\&.\&.\ pam_faillock\&.so\fR\ 'u -\fBaccount \&.\&.\&. pam_faillock\&.so\fR [dir=\fI/path/to/tally\-directory\fR] [no_log_info] -.SH "DESCRIPTION" -.PP -This module maintains a list of failed authentication attempts per user during a specified interval and locks the account in case there were more than -\fIdeny\fR -consecutive failed authentications\&. -.PP -Normally, failed attempts to authenticate -\fIroot\fR -will -\fBnot\fR -cause the root account to become blocked, to prevent denial\-of\-service: if your users aren\*(Aqt given shell accounts and root may only login via -\fBsu\fR -or at the machine console (not telnet/rsh, etc), this is safe\&. -.SH "OPTIONS" -.PP -{preauth|authfail|authsucc} -.RS 4 -This argument must be set accordingly to the position of this module instance in the PAM stack\&. -.sp -The -\fIpreauth\fR -argument must be used when the module is called before the modules which ask for the user credentials such as the password\&. The module just examines whether the user should be blocked from accessing the service in case there were anomalous number of failed consecutive authentication attempts recently\&. This call is optional if -\fIauthsucc\fR -is used\&. -.sp -The -\fIauthfail\fR -argument must be used when the module is called after the modules which determine the authentication outcome, failed\&. Unless the user is already blocked due to previous authentication failures, the module will record the failure into the appropriate user tally file\&. -.sp -The -\fIauthsucc\fR -argument must be used when the module is called after the modules which determine the authentication outcome, succeeded\&. Unless the user is already blocked due to previous authentication failures, the module will then clear the record of the failures in the respective user tally file\&. Otherwise it will return authentication error\&. If this call is not done, the pam_faillock will not distinguish between consecutive and non\-consecutive failed authentication attempts\&. The -\fIpreauth\fR -call must be used in such case\&. Due to complications in the way the PAM stack can be configured it is also possible to call -\fIpam_faillock\fR -as an account module\&. In such configuration the module must be also called in the -\fIpreauth\fR -stage\&. -.RE -.PP -conf=/path/to/config\-file -.RS 4 -Use another configuration file instead of the default -/etc/security/faillock\&.conf\&. -.RE -.PP -The options for configuring the module behavior are described in the -\fBfaillock.conf\fR(5) -manual page\&. The options specified on the module command line override the values from the configuration file\&. -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBaccount\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -An invalid option was given, the module was not able to retrieve the user name, no valid counter file was found, or too many failed logins\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -The conversation method supplied by the application failed to obtain the username\&. -.RE -.PP -PAM_INCOMPLETE -.RS 4 -The conversation method supplied by the application returned PAM_CONV_AGAIN\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Everything was successful\&. -.RE -.PP -PAM_IGNORE -.RS 4 -User not present in passwd database\&. -.RE -.SH "NOTES" -.PP -Configuring options on the module command line is not recommend\&. The -/etc/security/faillock\&.conf -should be used instead\&. -.PP -The setup of -\fIpam_faillock\fR -in the PAM stack is different from the -\fIpam_tally2\fR -module setup\&. -.PP -Individual files with the failure records are created as owned by the user\&. This allows -\fBpam_faillock\&.so\fR -module to work correctly when it is called from a screensaver\&. -.PP -Note that using the module in -\fBpreauth\fR -without the -\fBsilent\fR -option specified in -/etc/security/faillock\&.conf -or with -\fIrequisite\fR -control field leaks an information about existence or non\-existence of a user account in the system because the failures are not recorded for the unknown users\&. The message about the user account being locked is never displayed for non\-existing user accounts allowing the adversary to infer that a particular account is not existing on a system\&. -.SH "EXAMPLES" -.PP -Here are two possible configuration examples for -/etc/pam\&.d/login\&. They make -\fIpam_faillock\fR -to lock the account after 4 consecutive failed logins during the default interval of 15 minutes\&. Root account will be locked as well\&. The accounts will be automatically unlocked after 20 minutes\&. -.PP -In the first example the module is called only in the -\fIauth\fR -phase and the module does not print any information about the account being blocked by -\fIpam_faillock\fR\&. The -\fIpreauth\fR -call can be added to tell users that their logins are blocked by the module and also to abort the authentication without even asking for password in such case\&. -.PP -/etc/security/faillock\&.conf -file example: -.sp -.if n \{\ -.RS 4 -.\} -.nf -deny=4 -unlock_time=1200 -silent - -.fi -.if n \{\ -.RE -.\} -.PP -/etc/pam\&.d/config file example: -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth required pam_securetty\&.so -auth required pam_env\&.so -auth required pam_nologin\&.so -# optionally call: auth requisite pam_faillock\&.so preauth -# to display the message about account being locked -auth [success=1 default=bad] pam_unix\&.so -auth [default=die] pam_faillock\&.so authfail -auth sufficient pam_faillock\&.so authsucc -auth required pam_deny\&.so -account required pam_unix\&.so -password required pam_unix\&.so shadow -session required pam_selinux\&.so close -session required pam_loginuid\&.so -session required pam_unix\&.so -session required pam_selinux\&.so open - -.fi -.if n \{\ -.RE -.\} -.PP -In the second example the module is called both in the -\fIauth\fR -and -\fIaccount\fR -phases and the module informs the authenticating user when the account is locked if -\fBsilent\fR -option is not specified in the -faillock\&.conf\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth required pam_securetty\&.so -auth required pam_env\&.so -auth required pam_nologin\&.so -auth required pam_faillock\&.so preauth -# optionally use requisite above if you do not want to prompt for the password -# on locked accounts -auth sufficient pam_unix\&.so -auth [default=die] pam_faillock\&.so authfail -auth required pam_deny\&.so -account required pam_faillock\&.so -# if you drop the above call to pam_faillock\&.so the lock will be done also -# on non\-consecutive authentication failures -account required pam_unix\&.so -password required pam_unix\&.so shadow -session required pam_selinux\&.so close -session required pam_loginuid\&.so -session required pam_unix\&.so -session required pam_selinux\&.so open - -.fi -.if n \{\ -.RE -.\} -.SH "FILES" -.PP -/var/run/faillock/* -.RS 4 -the files logging the authentication failures for users -.sp -Note: These files will disappear after reboot on systems configured with directory -/var/run/faillock -mounted on virtual memory\&. For persistent storage use the option -\fIdir=\fR -in file -/etc/security/faillock\&.conf\&. -.RE -.PP -/etc/security/faillock\&.conf -.RS 4 -the config file for pam_faillock options -.RE -.SH "SEE ALSO" -.PP -\fBfaillock\fR(8), -\fBfaillock.conf\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_faillock was written by Tomas Mraz\&. diff --git a/modules/pam_faillock/pam_faillock.c b/modules/pam_faillock/pam_faillock.c index ca1c7035..93850380 100644 --- a/modules/pam_faillock/pam_faillock.c +++ b/modules/pam_faillock/pam_faillock.c @@ -54,6 +54,7 @@ #include <security/pam_ext.h> #include "pam_inline.h" +#include "pam_i18n.h" #include "faillock.h" #include "faillock_config.h" @@ -106,21 +107,25 @@ args_parse(pam_handle_t *pamh, int argc, const char **argv, opts->action = FAILLOCK_ACTION_AUTHSUCC; } else { - char buf[FAILLOCK_CONF_MAX_LINELEN + 1]; - char *val; + char *name, *val; - strncpy(buf, argv[i], sizeof(buf) - 1); - buf[sizeof(buf) - 1] = '\0'; + if ((name = strdup(argv[i])) == NULL) { + pam_syslog(pamh, LOG_CRIT, + "Error allocating memory: %m"); + return PAM_BUF_ERR; + } - val = strchr(buf, '='); + val = strchr(name, '='); if (val != NULL) { *val = '\0'; ++val; } else { - val = buf + sizeof(buf) - 1; + val = name + strlen(name); } - set_conf_opt(pamh, opts, buf, val); + set_conf_opt(pamh, opts, name, val); + + free(name); } } @@ -248,9 +253,12 @@ check_tally(pam_handle_t *pamh, struct options *opts, struct tally_data *tallies (void)pam_get_item(pamh, PAM_TTY, &tty); (void)pam_get_item(pamh, PAM_RHOST, &rhost); - snprintf(buf, sizeof(buf), "pam_faillock uid=%u ", opts->uid); - audit_log_user_message(audit_fd, AUDIT_RESP_ACCT_UNLOCK_TIMED, buf, - rhost, NULL, tty, 1); + snprintf(buf, sizeof(buf), "op=pam_faillock suid=%u ", opts->uid); + if (audit_log_user_message(audit_fd, AUDIT_RESP_ACCT_UNLOCK_TIMED, buf, + rhost, NULL, tty, 1) <= 0) + pam_syslog(pamh, LOG_ERR, + "Error sending audit message: %m"); + audit_close(audit_fd); } #endif opts->flags |= FAILLOCK_FLAG_UNLOCKED; @@ -364,13 +372,17 @@ write_tally(pam_handle_t *pamh, struct options *opts, struct tally_data *tallies errno == EAFNOSUPPORT)) return PAM_SYSTEM_ERR; - snprintf(buf, sizeof(buf), "pam_faillock uid=%u ", opts->uid); - audit_log_user_message(audit_fd, AUDIT_ANOM_LOGIN_FAILURES, buf, - NULL, NULL, NULL, 1); + snprintf(buf, sizeof(buf), "op=pam_faillock suid=%u ", opts->uid); + if (audit_log_user_message(audit_fd, AUDIT_ANOM_LOGIN_FAILURES, buf, + NULL, NULL, NULL, 1) <= 0) + pam_syslog(pamh, LOG_ERR, + "Error sending audit message: %m"); if (!opts->is_admin || (opts->flags & FAILLOCK_FLAG_DENY_ROOT)) { - audit_log_user_message(audit_fd, AUDIT_RESP_ACCT_LOCK, buf, - NULL, NULL, NULL, 1); + if (audit_log_user_message(audit_fd, AUDIT_RESP_ACCT_LOCK, buf, + NULL, NULL, NULL, 1) <= 0) + pam_syslog(pamh, LOG_ERR, + "Error sending audit message: %m"); } close(audit_fd); #endif diff --git a/modules/pam_faillock/tst-pam_faillock-retval.c b/modules/pam_faillock/tst-pam_faillock-retval.c index 133026cb..cbdc1684 100644 --- a/modules/pam_faillock/tst-pam_faillock-retval.c +++ b/modules/pam_faillock/tst-pam_faillock-retval.c @@ -37,11 +37,11 @@ main(void) /* root has access */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/../pam_permit/.libs/pam_permit.so\n" - "auth required %s/.libs/%s.so authsucc even_deny_root dir=%s conf=%s\n" - "account required %s/.libs/%s.so dir=%s\n" - "password required %s/.libs/%s.so dir=%s\n" - "session required %s/.libs/%s.so dir=%s\n", + "auth required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "auth required %s/" LTDIR "%s.so authsucc even_deny_root dir=%s conf=%s\n" + "account required %s/" LTDIR "%s.so dir=%s\n" + "password required %s/" LTDIR "%s.so dir=%s\n" + "session required %s/" LTDIR "%s.so dir=%s\n", cwd, cwd, MODULE_NAME, cwd, config_filename, cwd, MODULE_NAME, cwd, @@ -66,10 +66,10 @@ main(void) /* root tries to login 2 times without success*/ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth requisite %s/.libs/%s.so dir=%s preauth even_deny_root conf=%s\n" - "auth [success=1 default=bad] %s/../pam_debug/.libs/pam_debug.so auth=perm_denied cred=success\n" - "auth [default=die] %s/.libs/%s.so dir=%s authfail even_deny_root conf=%s\n" - "auth sufficient %s/.libs/%s.so dir=%s authsucc even_deny_root conf=%s\n", + "auth requisite %s/" LTDIR "%s.so dir=%s preauth even_deny_root conf=%s\n" + "auth [success=1 default=bad] %s/../pam_debug/" LTDIR "pam_debug.so auth=perm_denied cred=success\n" + "auth [default=die] %s/" LTDIR "%s.so dir=%s authfail even_deny_root conf=%s\n" + "auth sufficient %s/" LTDIR "%s.so dir=%s authsucc even_deny_root conf=%s\n", cwd, MODULE_NAME, cwd, config_filename, cwd, cwd, MODULE_NAME, cwd, config_filename, @@ -82,16 +82,17 @@ main(void) ASSERT_NE(NULL, pamh); ASSERT_EQ(PAM_PERM_DENIED, pam_authenticate(pamh, 0)); ASSERT_EQ(PAM_PERM_DENIED, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); pamh = NULL; ASSERT_EQ(0, unlink(service_file)); /* root is locked for 5 sec*/ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth requisite %s/.libs/%s.so dir=%s preauth even_deny_root conf=%s\n" - "auth [success=1 default=bad] %s/../pam_debug/.libs/pam_debug.so auth=success cred=success\n" - "auth [default=die] %s/.libs/%s.so dir=%s authfail even_deny_root conf=%s\n" - "auth sufficient %s/.libs/%s.so dir=%s authsucc even_deny_root conf=%s\n", + "auth requisite %s/" LTDIR "%s.so dir=%s preauth even_deny_root conf=%s\n" + "auth [success=1 default=bad] %s/../pam_debug/" LTDIR "pam_debug.so auth=success cred=success\n" + "auth [default=die] %s/" LTDIR "%s.so dir=%s authfail even_deny_root conf=%s\n" + "auth sufficient %s/" LTDIR "%s.so dir=%s authsucc even_deny_root conf=%s\n", cwd, MODULE_NAME, cwd, config_filename, cwd, cwd, MODULE_NAME, cwd, config_filename, diff --git a/modules/pam_filter/Makefile.am b/modules/pam_filter/Makefile.am deleted file mode 100644 index d43177c8..00000000 --- a/modules/pam_filter/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2007, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - -SUBDIRS = upperLOWER - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_filter.8 -endif -XMLS = README.xml pam_filter.8.xml -dist_check_SCRIPTS = tst-pam_filter -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -include_HEADERS=pam_filter.h -pam_filter_la_LIBADD = $(top_builddir)/libpam/libpam.la - -securelib_LTLIBRARIES = pam_filter.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_filter/Makefile.in b/modules/pam_filter/Makefile.in deleted file mode 100644 index 33a3de48..00000000 --- a/modules/pam_filter/Makefile.in +++ /dev/null @@ -1,1305 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2007, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_filter -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(include_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" \ - "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_filter_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_filter_la_SOURCES = pam_filter.c -pam_filter_la_OBJECTS = pam_filter.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_filter.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_filter.c -DIST_SOURCES = pam_filter.c -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -HEADERS = $(include_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - check recheck distdir distdir-am -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = upperLOWER -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_filter.8 -XMLS = README.xml pam_filter.8.xml -dist_check_SCRIPTS = tst-pam_filter -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -include_HEADERS = pam_filter.h -pam_filter_la_LIBADD = $(top_builddir)/libpam/libpam.la -securelib_LTLIBRARIES = pam_filter.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_filter/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_filter/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_filter.la: $(pam_filter_la_OBJECTS) $(pam_filter_la_DEPENDENCIES) $(EXTRA_pam_filter_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_filter_la_OBJECTS) $(pam_filter_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_filter.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_filter.log: tst-pam_filter - @p='tst-pam_filter'; \ - b='tst-pam_filter'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-recursive -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-recursive - -rm -f ./$(DEPDIR)/pam_filter.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-includeHEADERS install-man \ - install-securelibLTLIBRARIES - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f ./$(DEPDIR)/pam_filter.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-includeHEADERS uninstall-man \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: $(am__recursive_targets) check-am install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--depfiles check check-TESTS check-am clean clean-generic \ - clean-libtool clean-securelibLTLIBRARIES cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am \ - install-includeHEADERS install-info install-info-am \ - install-man install-man8 install-pdf install-pdf-am install-ps \ - install-ps-am install-securelibLTLIBRARIES install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am recheck tags tags-am uninstall \ - uninstall-am uninstall-includeHEADERS uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_filter/README b/modules/pam_filter/README deleted file mode 100644 index 2978e546..00000000 --- a/modules/pam_filter/README +++ /dev/null @@ -1,78 +0,0 @@ -pam_filter — PAM filter module - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -This module is intended to be a platform for providing access to all of the -input/output that passes between the user and the application. It is only -suitable for tty-based and (stdin/stdout) applications. - -To function this module requires filters to be installed on the system. The -single filter provided with the module simply transposes upper and lower case -letters in the input and output streams. (This can be very annoying and is not -kind to termcap based editors). - -Each component of the module has the potential to invoke the desired filter. -The filter is always execv(2) with the privilege of the calling application and -not that of the user. For this reason it cannot usually be killed by the user -without closing their session. - -OPTIONS - -debug - - Print debug information. - -new_term - - The default action of the filter is to set the PAM_TTY item to indicate the - terminal that the user is using to connect to the application. This - argument indicates that the filter should set PAM_TTY to the filtered - pseudo-terminal. - -non_term - - don't try to set the PAM_TTY item. - -runX - - In order that the module can invoke a filter it should know when to invoke - it. This argument is required to tell the filter when to do this. - - Permitted values for X are 1 and 2. These indicate the precise time that - the filter is to be run. To understand this concept it will be useful to - have read the pam(3) manual page. Basically, for each management group - there are up to two ways of calling the module's functions. In the case of - the authentication and session components there are actually two separate - functions. For the case of authentication, these functions are - pam_authenticate(3) and pam_setcred(3), here run1 means run the filter from - the pam_authenticate function and run2 means run the filter from - pam_setcred. In the case of the session modules, run1 implies that the - filter is invoked at the pam_open_session(3) stage, and run2 for - pam_close_session(3). - - For the case of the account component. Either run1 or run2 may be used. - - For the case of the password component, run1 is used to indicate that the - filter is run on the first occasion of pam_chauthtok(3) (the - PAM_PRELIM_CHECK phase) and run2 is used to indicate that the filter is run - on the second occasion (the PAM_UPDATE_AUTHTOK phase). - -filter - - The full pathname of the filter to be run and any command line arguments - that the filter might expect. - -EXAMPLES - -Add the following line to /etc/pam.d/login to see how to configure login to -transpose upper and lower case letters once the user has logged in: - - session required pam_filter.so run1 /lib/security/pam_filter/upperLOWER - - -AUTHOR - -pam_filter was written by Andrew G. Morgan <morgan@kernel.org>. - diff --git a/modules/pam_filter/meson.build b/modules/pam_filter/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_filter/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_filter/pam_filter.8 b/modules/pam_filter/pam_filter.8 deleted file mode 100644 index 7a0735b0..00000000 --- a/modules/pam_filter/pam_filter.8 +++ /dev/null @@ -1,172 +0,0 @@ -'\" t -.\" Title: pam_filter -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_FILTER" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_filter \- PAM filter module -.SH "SYNOPSIS" -.HP \w'\fBpam_filter\&.so\fR\ 'u -\fBpam_filter\&.so\fR [debug] [new_term] [non_term] run1|run2 \fIfilter\fR [\fI\&.\&.\&.\fR] -.SH "DESCRIPTION" -.PP -This module is intended to be a platform for providing access to all of the input/output that passes between the user and the application\&. It is only suitable for tty\-based and (stdin/stdout) applications\&. -.PP -To function this module requires -\fIfilters\fR -to be installed on the system\&. The single filter provided with the module simply transposes upper and lower case letters in the input and output streams\&. (This can be very annoying and is not kind to termcap based editors)\&. -.PP -Each component of the module has the potential to invoke the desired filter\&. The filter is always -\fBexecv\fR(2) -with the privilege of the calling application and -\fInot\fR -that of the user\&. For this reason it cannot usually be killed by the user without closing their session\&. -.SH "OPTIONS" -.PP -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -new_term -.RS 4 -The default action of the filter is to set the -\fIPAM_TTY\fR -item to indicate the terminal that the user is using to connect to the application\&. This argument indicates that the filter should set -\fIPAM_TTY\fR -to the filtered pseudo\-terminal\&. -.RE -.PP -non_term -.RS 4 -don\*(Aqt try to set the -\fIPAM_TTY\fR -item\&. -.RE -.PP -runX -.RS 4 -In order that the module can invoke a filter it should know when to invoke it\&. This argument is required to tell the filter when to do this\&. -.sp -Permitted values for -\fIX\fR -are -\fI1\fR -and -\fI2\fR\&. These indicate the precise time that the filter is to be run\&. To understand this concept it will be useful to have read the -\fBpam\fR(3) -manual page\&. Basically, for each management group there are up to two ways of calling the module\*(Aqs functions\&. In the case of the -\fIauthentication\fR -and -\fIsession\fR -components there are actually two separate functions\&. For the case of authentication, these functions are -\fBpam_authenticate\fR(3) -and -\fBpam_setcred\fR(3), here -\fBrun1\fR -means run the filter from the -\fBpam_authenticate\fR -function and -\fBrun2\fR -means run the filter from -\fBpam_setcred\fR\&. In the case of the session modules, -\fIrun1\fR -implies that the filter is invoked at the -\fBpam_open_session\fR(3) -stage, and -\fIrun2\fR -for -\fBpam_close_session\fR(3)\&. -.sp -For the case of the account component\&. Either -\fIrun1\fR -or -\fIrun2\fR -may be used\&. -.sp -For the case of the password component, -\fIrun1\fR -is used to indicate that the filter is run on the first occasion of -\fBpam_chauthtok\fR(3) -(the -\fIPAM_PRELIM_CHECK\fR -phase) and -\fIrun2\fR -is used to indicate that the filter is run on the second occasion (the -\fIPAM_UPDATE_AUTHTOK\fR -phase)\&. -.RE -.PP -filter -.RS 4 -The full pathname of the filter to be run and any command line arguments that the filter might expect\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_SUCCESS -.RS 4 -The new filter was set successfully\&. -.RE -.PP -PAM_ABORT -.RS 4 -Critical error, immediate abort\&. -.RE -.SH "EXAMPLES" -.PP -Add the following line to -/etc/pam\&.d/login -to see how to configure login to transpose upper and lower case letters once the user has logged in: -.sp -.if n \{\ -.RS 4 -.\} -.nf - session required pam_filter\&.so run1 /lib/security/pam_filter/upperLOWER - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_filter was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_filter/pam_filter.c b/modules/pam_filter/pam_filter.c index 6e6def37..84d59303 100644 --- a/modules/pam_filter/pam_filter.c +++ b/modules/pam_filter/pam_filter.c @@ -94,16 +94,18 @@ static int process_args(pam_handle_t *pamh *evp = NULL; } else { char **levp; + char *p; const char *user = NULL; const void *tmp; - int i,size, retval; + int i, retval; + size_t size; *filtername = *++argv; if (ctrl & FILTER_DEBUG) { pam_syslog(pamh, LOG_DEBUG, "will run filter %s", *filtername); } - levp = (char **) malloc(5*sizeof(char *)); + levp = malloc(5*sizeof(char *)); if (levp == NULL) { pam_syslog(pamh, LOG_CRIT, "no memory for environment of filter"); return -1; @@ -127,93 +129,55 @@ static int process_args(pam_handle_t *pamh return -1; } - strcpy(levp[0], ARGS_NAME); - size = ARGS_OFFSET; + p = stpcpy(levp[0], ARGS_NAME); for (i=0; i<argc; ++i) { if (i) - levp[0][size++] = ' '; - strcpy(levp[0]+size, argv[i]); - size += strlen(argv[i]); + p = stpcpy(p, " "); + p = stpcpy(p, argv[i]); } /* the "SERVICE" variable */ -#define SERVICE_NAME "SERVICE=" -#define SERVICE_OFFSET (sizeof(SERVICE_NAME) - 1) - retval = pam_get_item(pamh, PAM_SERVICE, &tmp); if (retval != PAM_SUCCESS || tmp == NULL) { pam_syslog(pamh, LOG_CRIT, "service name not found"); - if (levp) { - free(levp[0]); - free(levp); - } + free(levp[0]); + free(levp); return -1; } - size = SERVICE_OFFSET+strlen(tmp); - levp[1] = (char *) malloc(size+1); - if (levp[1] == NULL) { + if (asprintf(&levp[1], "SERVICE=%s", (const char *) tmp) < 0) { pam_syslog(pamh, LOG_CRIT, "no memory for service name"); - if (levp) { - free(levp[0]); - free(levp); - } + free(levp[0]); + free(levp); return -1; } - strcpy(levp[1], SERVICE_NAME); - strcpy(levp[1]+SERVICE_OFFSET, tmp); - levp[1][size] = '\0'; /* <NUL> terminate */ - /* the "USER" variable */ -#define USER_NAME "USER=" -#define USER_OFFSET (sizeof(USER_NAME) - 1) - if (pam_get_user(pamh, &user, NULL) != PAM_SUCCESS) { user = "<unknown>"; } - size = USER_OFFSET+strlen(user); - levp[2] = (char *) malloc(size+1); - if (levp[2] == NULL) { + if (asprintf(&levp[2], "USER=%s", user) < 0) { pam_syslog(pamh, LOG_CRIT, "no memory for user's name"); - if (levp) { - free(levp[1]); - free(levp[0]); - free(levp); - } + free(levp[1]); + free(levp[0]); + free(levp); return -1; } - strcpy(levp[2], USER_NAME); - strcpy(levp[2]+USER_OFFSET, user); - levp[2][size] = '\0'; /* <NUL> terminate */ - /* the "USER" variable */ -#define TYPE_NAME "TYPE=" -#define TYPE_OFFSET (sizeof(TYPE_NAME) - 1) - - size = TYPE_OFFSET+strlen(type); - - levp[3] = (char *) malloc(size+1); - if (levp[3] == NULL) { + if (asprintf(&levp[3], "TYPE=%s", type) < 0) { pam_syslog(pamh, LOG_CRIT, "no memory for type"); - if (levp) { - free(levp[2]); - free(levp[1]); - free(levp[0]); - free(levp); - } + free(levp[2]); + free(levp[1]); + free(levp[0]); + free(levp); return -1; } - strcpy(levp[3], TYPE_NAME); - strcpy(levp[3]+TYPE_OFFSET, type); - levp[3][size] = '\0'; /* <NUL> terminate */ - levp[4] = NULL; /* end list */ *evp = levp; @@ -238,8 +202,7 @@ static void free_evp(char *evp[]) if (evp) for (i=0; i<4; ++i) { - if (evp[i]) - free(evp[i]); + free(evp[i]); } free(evp); } @@ -349,33 +312,31 @@ set_filter (pam_handle_t *pamh, int flags UNUSED, int ctrl, if (aterminal) { /* close the controlling tty */ - -#if defined(__hpux) && defined(O_NOCTTY) - int t = open("/dev/tty", O_RDWR|O_NOCTTY); -#else int t = open("/dev/tty",O_RDWR); if (t >= 0) { (void) ioctl(t, TIOCNOTTY, NULL); close(t); } -#endif /* defined(__hpux) && defined(O_NOCTTY) */ - /* make this process it's own process leader */ + /* make this process its own process leader */ if (setsid() == -1) { pam_syslog(pamh, LOG_ERR, "child cannot become new session: %m"); + close(fd[0]); return PAM_ABORT; } /* grant slave terminal */ if (grantpt (fd[0]) < 0) { pam_syslog(pamh, LOG_ERR, "Cannot grant access to slave terminal"); + close(fd[0]); return PAM_ABORT; } /* unlock slave terminal */ if (unlockpt (fd[0]) < 0) { pam_syslog(pamh, LOG_ERR, "Cannot unlock slave terminal"); + close(fd[0]); return PAM_ABORT; } @@ -385,6 +346,7 @@ set_filter (pam_handle_t *pamh, int flags UNUSED, int ctrl, if (terminal == NULL) { pam_syslog(pamh, LOG_ERR, "Cannot get the name of the slave terminal: %m"); + close(fd[0]); return PAM_ABORT; } @@ -408,7 +370,8 @@ set_filter (pam_handle_t *pamh, int flags UNUSED, int ctrl, } } else { - /* nothing to do for a simple stream socket */ + /* nothing else to do for a simple stream socket */ + close(fd[0]); } @@ -423,6 +386,10 @@ set_filter (pam_handle_t *pamh, int flags UNUSED, int ctrl, return PAM_ABORT; } + /* now the user input is read from the parent/filter: forget fd */ + + close(fd[1]); + /* make sure that file descriptors survive 'exec's */ if ( fcntl(STDIN_FILENO, F_SETFD, 0) || @@ -433,16 +400,15 @@ set_filter (pam_handle_t *pamh, int flags UNUSED, int ctrl, return PAM_ABORT; } - /* now the user input is read from the parent/filter: forget fd */ - - close(fd[1]); - /* the current process is now apparently working with filtered stdio/stdout/stderr --- success! */ return PAM_SUCCESS; } + if (!aterminal) + close(fd[1]); + /* Clear out passwords... there is a security problem here in * that this process never executes pam_end. Consequently, any * other sensitive data in this process is *not* explicitly @@ -510,7 +476,7 @@ set_filter (pam_handle_t *pamh, int flags UNUSED, int ctrl, } else if (chid == child2) { /* - * if the filter has exited. Let the child die + * if the filter has exited, let the child die * naturally below */ if (WIFEXITED(lstatus) || WIFSIGNALED(lstatus)) diff --git a/modules/pam_filter/upperLOWER/Makefile.am b/modules/pam_filter/upperLOWER/Makefile.am deleted file mode 100644 index f65c462b..00000000 --- a/modules/pam_filter/upperLOWER/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ - -securelibfilterdir = $(SECUREDIR)/pam_filter - - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -I$(srcdir)/.. @EXE_CFLAGS@ $(WARN_CFLAGS) -AM_LDFLAGS = @EXE_LDFLAGS@ -LDADD = $(top_builddir)/libpam/libpam.la - -securelibfilter_PROGRAMS = upperLOWER diff --git a/modules/pam_filter/upperLOWER/Makefile.in b/modules/pam_filter/upperLOWER/Makefile.in deleted file mode 100644 index c25f53e2..00000000 --- a/modules/pam_filter/upperLOWER/Makefile.in +++ /dev/null @@ -1,738 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005 Thorsten Kukuk <kukuk@suse.de> -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -securelibfilter_PROGRAMS = upperLOWER$(EXEEXT) -subdir = modules/pam_filter/upperLOWER -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(securelibfilterdir)" -PROGRAMS = $(securelibfilter_PROGRAMS) -upperLOWER_SOURCES = upperLOWER.c -upperLOWER_OBJECTS = upperLOWER.$(OBJEXT) -upperLOWER_LDADD = $(LDADD) -upperLOWER_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/upperLOWER.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = upperLOWER.c -DIST_SOURCES = upperLOWER.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -securelibfilterdir = $(SECUREDIR)/pam_filter -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -I$(srcdir)/.. @EXE_CFLAGS@ $(WARN_CFLAGS) - -AM_LDFLAGS = @EXE_LDFLAGS@ -LDADD = $(top_builddir)/libpam/libpam.la -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_filter/upperLOWER/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_filter/upperLOWER/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-securelibfilterPROGRAMS: $(securelibfilter_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(securelibfilter_PROGRAMS)'; test -n "$(securelibfilterdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibfilterdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibfilterdir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(securelibfilterdir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(securelibfilterdir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-securelibfilterPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(securelibfilter_PROGRAMS)'; test -n "$(securelibfilterdir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(securelibfilterdir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(securelibfilterdir)" && rm -f $$files - -clean-securelibfilterPROGRAMS: - @list='$(securelibfilter_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -upperLOWER$(EXEEXT): $(upperLOWER_OBJECTS) $(upperLOWER_DEPENDENCIES) $(EXTRA_upperLOWER_DEPENDENCIES) - @rm -f upperLOWER$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(upperLOWER_OBJECTS) $(upperLOWER_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/upperLOWER.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) -installdirs: - for dir in "$(DESTDIR)$(securelibfilterdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibfilterPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/upperLOWER.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-securelibfilterPROGRAMS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/upperLOWER.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-securelibfilterPROGRAMS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libtool clean-securelibfilterPROGRAMS \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibfilterPROGRAMS install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am \ - uninstall-securelibfilterPROGRAMS - -.PRECIOUS: Makefile - - -# 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: diff --git a/modules/pam_filter/upperLOWER/meson.build b/modules/pam_filter/upperLOWER/meson.build new file mode 100644 index 00000000..8992fff1 --- /dev/null +++ b/modules/pam_filter/upperLOWER/meson.build @@ -0,0 +1,9 @@ +executable( + 'upperLOWER', + sources: ['upperLOWER.c'], + include_directories: ['..'], + link_args: exe_link_args, + dependencies: [libpam_internal_dep, libpam_dep], + install: true, + install_dir: securedir / 'pam_filter', +) diff --git a/modules/pam_filter/upperLOWER/upperLOWER.c b/modules/pam_filter/upperLOWER/upperLOWER.c index 25e70a5a..700e0ed1 100644 --- a/modules/pam_filter/upperLOWER/upperLOWER.c +++ b/modules/pam_filter/upperLOWER/upperLOWER.c @@ -24,10 +24,10 @@ static void do_transpose(char *buffer,int len) { int i; for (i=0; i<len; ++i) { - if (islower(buffer[i])) { - buffer[i] = toupper(buffer[i]); + if (islower((unsigned char)buffer[i])) { + buffer[i] = toupper((unsigned char)buffer[i]); } else { - buffer[i] = tolower(buffer[i]); + buffer[i] = tolower((unsigned char)buffer[i]); } } } diff --git a/modules/pam_ftp/Makefile.am b/modules/pam_ftp/Makefile.am deleted file mode 100644 index 18bb52c4..00000000 --- a/modules/pam_ftp/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_ftp.8 -endif -XMLS = README.xml pam_ftp.8.xml -dist_check_SCRIPTS = tst-pam_ftp -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_ftp.la -pam_ftp_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_ftp/Makefile.in b/modules/pam_ftp/Makefile.in deleted file mode 100644 index 442fb494..00000000 --- a/modules/pam_ftp/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_ftp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_ftp_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_ftp_la_SOURCES = pam_ftp.c -pam_ftp_la_OBJECTS = pam_ftp.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_ftp.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_ftp.c -DIST_SOURCES = pam_ftp.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_ftp.8 -XMLS = README.xml pam_ftp.8.xml -dist_check_SCRIPTS = tst-pam_ftp -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_ftp.la -pam_ftp_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_ftp/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_ftp/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_ftp.la: $(pam_ftp_la_OBJECTS) $(pam_ftp_la_DEPENDENCIES) $(EXTRA_pam_ftp_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_ftp_la_OBJECTS) $(pam_ftp_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_ftp.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_ftp.log: tst-pam_ftp - @p='tst-pam_ftp'; \ - b='tst-pam_ftp'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_ftp.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_ftp.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_ftp/README b/modules/pam_ftp/README deleted file mode 100644 index b9ef7857..00000000 --- a/modules/pam_ftp/README +++ /dev/null @@ -1,52 +0,0 @@ -pam_ftp — PAM module for anonymous access module - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_ftp is a PAM module which provides a pluggable anonymous ftp mode of -access. - -This module intercepts the user's name and password. If the name is ftp or -anonymous, the user's password is broken up at the @ delimiter into a PAM_RUSER -and a PAM_RHOST part; these pam-items being set accordingly. The username ( -PAM_USER) is set to ftp. In this case the module succeeds. Alternatively, the -module sets the PAM_AUTHTOK item with the entered password and fails. - -This module is not safe and easily spoofable. - -OPTIONS - -debug - - Print debug information. - -ignore - - Pay no attention to the email address of the user (if supplied). - -ftp=XXX,YYY,... - - Instead of ftp or anonymous, provide anonymous login to the comma separated - list of users: XXX,YYY,.... Should the applicant enter one of these - usernames the returned username is set to the first in the list: XXX. - -EXAMPLES - -Add the following line to /etc/pam.d/ftpd to handle ftp style anonymous login: - -# -# ftpd; add ftp-specifics. These lines enable anonymous ftp over -# standard UN*X access (the listfile entry blocks access to -# users listed in /etc/ftpusers) -# -auth sufficient pam_ftp.so -auth required pam_unix.so use_first_pass -auth required pam_listfile.so \ - onerr=succeed item=user sense=deny file=/etc/ftpusers - - -AUTHOR - -pam_ftp was written by Andrew G. Morgan <morgan@kernel.org>. - diff --git a/modules/pam_ftp/meson.build b/modules/pam_ftp/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_ftp/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_ftp/pam_ftp.8 b/modules/pam_ftp/pam_ftp.8 deleted file mode 100644 index e15dda7f..00000000 --- a/modules/pam_ftp/pam_ftp.8 +++ /dev/null @@ -1,125 +0,0 @@ -'\" t -.\" Title: pam_ftp -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_FTP" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_ftp \- PAM module for anonymous access module -.SH "SYNOPSIS" -.HP \w'\fBpam_ftp\&.so\fR\ 'u -\fBpam_ftp\&.so\fR [debug] [ignore] [users=\fIXXX,YYY,\fR...] -.SH "DESCRIPTION" -.PP -pam_ftp is a PAM module which provides a pluggable anonymous ftp mode of access\&. -.PP -This module intercepts the user\*(Aqs name and password\&. If the name is -\fIftp\fR -or -\fIanonymous\fR, the user\*(Aqs password is broken up at the -\fI@\fR -delimiter into a -\fIPAM_RUSER\fR -and a -\fIPAM_RHOST\fR -part; these pam\-items being set accordingly\&. The username (\fIPAM_USER\fR) is set to -\fIftp\fR\&. In this case the module succeeds\&. Alternatively, the module sets the -\fIPAM_AUTHTOK\fR -item with the entered password and fails\&. -.PP -This module is not safe and easily spoofable\&. -.SH "OPTIONS" -.PP -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -ignore -.RS 4 -Pay no attention to the email address of the user (if supplied)\&. -.RE -.PP -ftp=XXX,YYY,\&.\&.\&. -.RS 4 -Instead of -\fIftp\fR -or -\fIanonymous\fR, provide anonymous login to the comma separated list of users: -\fB\fIXXX,YYY,\&.\&.\&.\fR\fR\&. Should the applicant enter one of these usernames the returned username is set to the first in the list: -\fIXXX\fR\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBauth\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_SUCCESS -.RS 4 -The authentication was successful\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known\&. -.RE -.SH "EXAMPLES" -.PP -Add the following line to -/etc/pam\&.d/ftpd -to handle ftp style anonymous login: -.sp -.if n \{\ -.RS 4 -.\} -.nf -# -# ftpd; add ftp\-specifics\&. These lines enable anonymous ftp over -# standard UN*X access (the listfile entry blocks access to -# users listed in /etc/ftpusers) -# -auth sufficient pam_ftp\&.so -auth required pam_unix\&.so use_first_pass -auth required pam_listfile\&.so \e - onerr=succeed item=user sense=deny file=/etc/ftpusers - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_ftp was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_ftp/pam_ftp.c b/modules/pam_ftp/pam_ftp.c index 41fb9f48..cfb0f177 100644 --- a/modules/pam_ftp/pam_ftp.c +++ b/modules/pam_ftp/pam_ftp.c @@ -84,7 +84,7 @@ static int lookup(const char *name, const char *list, char **_user) } } else { #define MAX_L 2 - static const char *l[MAX_L] = { "ftp", "anonymous" }; + static const char *const l[MAX_L] = { "ftp", "anonymous" }; int i; for (i=0; i<MAX_L; ++i) { diff --git a/modules/pam_group/Makefile.am b/modules/pam_group/Makefile.am deleted file mode 100644 index af8df4eb..00000000 --- a/modules/pam_group/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = group.conf.5 pam_group.8 -endif -XMLS = README.xml group.conf.5.xml pam_group.8.xml -dist_check_SCRIPTS = tst-pam_group -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_group.la -pam_group_la_LIBADD = $(top_builddir)/libpam/libpam.la - -dist_secureconf_DATA = group.conf - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_group/Makefile.in b/modules/pam_group/Makefile.in deleted file mode 100644 index 66e4ed95..00000000 --- a/modules/pam_group/Makefile.in +++ /dev/null @@ -1,1232 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_group -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(dist_secureconf_DATA) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" \ - "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_group_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_group_la_SOURCES = pam_group.c -pam_group_la_OBJECTS = pam_group.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_group.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_group.c -DIST_SOURCES = pam_group.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = group.conf.5 pam_group.8 -XMLS = README.xml group.conf.5.xml pam_group.8.xml -dist_check_SCRIPTS = tst-pam_group -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_group.la -pam_group_la_LIBADD = $(top_builddir)/libpam/libpam.la -dist_secureconf_DATA = group.conf -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_group/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_group/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_group.la: $(pam_group_la_OBJECTS) $(pam_group_la_DEPENDENCIES) $(EXTRA_pam_group_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_group_la_OBJECTS) $(pam_group_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_group.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_group.log: tst-pam_group - @p='tst-pam_group'; \ - b='tst-pam_group'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_group.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-dist_secureconfDATA install-man \ - install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_group.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA uninstall-man \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dist_secureconfDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man5 install-man8 install-pdf install-pdf-am \ - install-ps install-ps-am install-securelibLTLIBRARIES \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am recheck tags tags-am uninstall \ - uninstall-am uninstall-dist_secureconfDATA uninstall-man \ - uninstall-man5 uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_group/README b/modules/pam_group/README deleted file mode 100644 index 5e2d01e0..00000000 --- a/modules/pam_group/README +++ /dev/null @@ -1,55 +0,0 @@ -pam_group — PAM module for group access - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_group PAM module does not authenticate the user, but instead it grants -group memberships (in the credential setting phase of the authentication -module) to the user. Such memberships are based on the service they are -applying for. - -By default rules for group memberships are taken from config file /etc/security -/group.conf. - -If /etc/security/group.conf does not exist, %vendordir%/security/group.conf is -used. - -This module's usefulness relies on the file-systems accessible to the user. The -point being that once granted the membership of a group, the user may attempt -to create a setgid binary with a restricted group ownership. Later, when the -user is not given membership to this group, they can recover group membership -with the precompiled binary. The reason that the file-systems that the user has -access to are so significant, is the fact that when a system is mounted nosuid -the user is unable to create or execute such a binary file. For this module to -provide any level of security, all file-systems that the user has write access -to should be mounted nosuid. - -The pam_group module functions in parallel with the /etc/group file. If the -user is granted any groups based on the behavior of this module, they are -granted in addition to those entries /etc/group (or equivalent). - -EXAMPLES - -These are some example lines which might be specified in /etc/security/ -group.conf. - -Running 'xsh' on tty* (any ttyXXX device), the user 'us' is given access to the -floppy (through membership of the floppy group) - -xsh;tty*&!ttyp*;us;Al0000-2400;floppy - -Running 'xsh' on tty* (any ttyXXX device), the users 'sword', 'pike' and -'shield' are given access to games (through membership of the floppy group) -after work hours. - -xsh; tty* ;sword|pike|shield;!Wk0900-1800;games, sound -xsh; tty* ;*;Al0900-1800;floppy - - -Any member of the group 'admin' running 'xsh' on tty*, is granted access (at -any time) to the group 'plugdev' - -xsh; tty* ;%admin;Al0000-2400;plugdev - - diff --git a/modules/pam_group/group.conf.5 b/modules/pam_group/group.conf.5 deleted file mode 100644 index 96009fef..00000000 --- a/modules/pam_group/group.conf.5 +++ /dev/null @@ -1,121 +0,0 @@ -'\" t -.\" Title: group.conf -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "GROUP\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -group.conf \- configuration file for the pam_group module -.SH "DESCRIPTION" -.PP -The pam_group PAM module does not authenticate the user, but instead it grants group memberships (in the credential setting phase of the authentication module) to the user\&. Such memberships are based on the service they are applying for\&. -.PP -For this module to function correctly there must be a correctly formatted -/etc/security/group\&.conf -file present\&. White spaces are ignored and lines maybe extended with \*(Aq\e\*(Aq (escaped newlines)\&. Text following a \*(Aq#\*(Aq is ignored to the end of the line\&. -.PP -The syntax of the lines is as follows: -.PP -\fIservices\fR;\fIttys\fR;\fIusers\fR;\fItimes\fR;\fIgroups\fR -.PP -The first field, the -\fIservices\fR -field, is a logic list of PAM service names that the rule applies to\&. -.PP -The second field, the -\fItty\fR -field, is a logic list of terminal names that this rule applies to\&. -.PP -The third field, the -\fIusers\fR -field, is a logic list of users, or a UNIX group, or a netgroup of users to whom this rule applies\&. Group names are preceded by a \*(Aq%\*(Aq symbol, while netgroup names are preceded by a \*(Aq@\*(Aq symbol\&. -.PP -A logic list namely means individual tokens that are optionally prefixed with \*(Aq!\*(Aq (logical not) and separated with \*(Aq&\*(Aq (logical and) and \*(Aq|\*(Aq (logical or)\&. -.PP -For these items the simple wildcard \*(Aq*\*(Aq may be used only once\&. With UNIX groups or netgroups no wildcards or logic operators are allowed\&. -.PP -The -\fItimes\fR -field is used to indicate "when" these groups are to be given to the user\&. The format here is a logic list of day/time\-range entries\&. The days are specified by a sequence of two character entries, MoTuSa for example is Monday Tuesday and Saturday\&. Note that repeated days are unset MoMo = no day, and MoWk = all weekdays bar Monday\&. The two character combinations accepted are Mo Tu We Th Fr Sa Su Wk Wd Al, the last two being week\-end days and all 7 days of the week respectively\&. As a final example, AlFr means all days except Friday\&. -.PP -Each day/time\-range can be prefixed with a \*(Aq!\*(Aq to indicate "anything but"\&. The time\-range part is two 24\-hour times HHMM, separated by a hyphen, indicating the start and finish time (if the finish time is smaller than the start time it is deemed to apply on the following day)\&. -.PP -The -\fIgroups\fR -field is a comma or space separated list of groups that the user inherits membership of\&. These groups are added if the previous fields are satisfied by the user\*(Aqs request\&. -.PP -For a rule to be active, ALL of service+ttys+users must be satisfied by the applying process\&. -.SH "EXAMPLES" -.PP -These are some example lines which might be specified in -/etc/security/group\&.conf\&. -.PP -Running \*(Aqxsh\*(Aq on tty* (any ttyXXX device), the user \*(Aqus\*(Aq is given access to the floppy (through membership of the floppy group) -.sp -.if n \{\ -.RS 4 -.\} -.nf -xsh;tty*&!ttyp*;us;Al0000\-2400;floppy -.fi -.if n \{\ -.RE -.\} -.PP -Running \*(Aqxsh\*(Aq on tty* (any ttyXXX device), the users \*(Aqsword\*(Aq, \*(Aqpike\*(Aq and \*(Aqshield\*(Aq are given access to games (through membership of the floppy group) after work hours\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -xsh; tty* ;sword|pike|shield;!Wk0900\-1800;games, sound -xsh; tty* ;*;Al0900\-1800;floppy - -.fi -.if n \{\ -.RE -.\} -.PP -Any member of the group \*(Aqadmin\*(Aq running \*(Aqxsh\*(Aq on tty*, is granted access (at any time) to the group \*(Aqplugdev\*(Aq -.sp -.if n \{\ -.RS 4 -.\} -.nf -xsh; tty* ;%admin;Al0000\-2400;plugdev - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam_group\fR(8), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_group was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_group/meson.build b/modules/pam_group/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_group/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_group/pam_group.8 b/modules/pam_group/pam_group.8 deleted file mode 100644 index 959c7491..00000000 --- a/modules/pam_group/pam_group.8 +++ /dev/null @@ -1,109 +0,0 @@ -'\" t -.\" Title: pam_group -.\" Author: [see the "AUTHORS" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_GROUP" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_group \- PAM module for group access -.SH "SYNOPSIS" -.HP \w'\fBpam_group\&.so\fR\ 'u -\fBpam_group\&.so\fR -.SH "DESCRIPTION" -.PP -The pam_group PAM module does not authenticate the user, but instead it grants group memberships (in the credential setting phase of the authentication module) to the user\&. Such memberships are based on the service they are applying for\&. -.PP -By default rules for group memberships are taken from config file -/etc/security/group\&.conf\&. -.PP -This module\*(Aqs usefulness relies on the file\-systems accessible to the user\&. The point being that once granted the membership of a group, the user may attempt to create a -\fBsetgid\fR -binary with a restricted group ownership\&. Later, when the user is not given membership to this group, they can recover group membership with the precompiled binary\&. The reason that the file\-systems that the user has access to are so significant, is the fact that when a system is mounted -\fInosuid\fR -the user is unable to create or execute such a binary file\&. For this module to provide any level of security, all file\-systems that the user has write access to should be mounted -\fInosuid\fR\&. -.PP -The pam_group module functions in parallel with the -/etc/group -file\&. If the user is granted any groups based on the behavior of this module, they are granted -\fIin addition\fR -to those entries -/etc/group -(or equivalent)\&. -.SH "OPTIONS" -.PP -This module does not recognise any options\&. -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBauth\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -group membership was granted\&. -.RE -.PP -PAM_ABORT -.RS 4 -Not all relevant data could be gotten\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CRED_ERR -.RS 4 -Group membership was not granted\&. -.RE -.PP -PAM_IGNORE -.RS 4 -\fBpam_sm_authenticate\fR -was called which does nothing\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The user is not known to the system\&. -.RE -.SH "FILES" -.PP -/etc/security/group\&.conf -.RS 4 -Default configuration file -.RE -.SH "SEE ALSO" -.PP -\fBgroup.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8)\&. -.SH "AUTHORS" -.PP -pam_group was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_group/pam_group.c b/modules/pam_group/pam_group.c index 6877849e..21c04d73 100644 --- a/modules/pam_group/pam_group.c +++ b/modules/pam_group/pam_group.c @@ -24,9 +24,9 @@ #include <fcntl.h> #include <netdb.h> -#define PAM_GROUP_CONF SCONFIGDIR "/group.conf" -#ifdef VENDOR_SCONFIGDIR -# define VENDOR_PAM_GROUP_CONF VENDOR_SCONFIGDIR "/group.conf" +#define PAM_GROUP_CONF SCONFIG_DIR "/group.conf" +#ifdef VENDOR_SCONFIG_DIR +# define VENDOR_PAM_GROUP_CONF VENDOR_SCONFIG_DIR "/group.conf" #endif #define PAM_GROUP_BUFLEN 1000 #define FIELD_SEPARATOR ';' /* this is new as of .02 */ @@ -87,7 +87,7 @@ read_field(const pam_handle_t *pamh, int fd, char **buf, int *from, int *state, /* is buf set ? */ if (! *buf) { - *buf = (char *) calloc(1, PAM_GROUP_BUFLEN+1); + *buf = calloc(1, PAM_GROUP_BUFLEN+1); if (! *buf) { pam_syslog(pamh, LOG_CRIT, "out of memory"); D(("no memory")); @@ -232,7 +232,7 @@ static int logic_member(const char *string, int *at) break; default: - if (isalpha(c) || c == '*' || isdigit(c) || c == '_' + if (isalpha((unsigned char)c) || c == '*' || isdigit((unsigned char)c) || c == '_' || c == '-' || c == '.' || c == '/' || c == ':') { token = 1; } else if (token) { @@ -266,7 +266,7 @@ logic_field (const pam_handle_t *pamh, const void *me, if (next == VAL) { if (c == '!') not = !not; - else if (isalpha(c) || c == '*' || isdigit(c) || c == '_' + else if (isalpha((unsigned char)c) || c == '*' || isdigit((unsigned char)c) || c == '_' || c == '-' || c == '.' || c == '/' || c == ':') { right = not ^ agrees(pamh, me, x+at, l, rule); if (oper == AND) @@ -394,13 +394,13 @@ check_time (const pam_handle_t *pamh, const void *AT, not = FALSE; } - for (marked_day = 0; len > 0 && isalpha(times[j]); --len) { + for (marked_day = 0; len > 0 && isalpha((unsigned char)times[j]); --len) { int this_day=-1; D(("%c%c ?", times[j], times[j+1])); for (i=0; days[i].d != NULL; ++i) { - if (tolower(times[j]) == days[i].d[0] - && tolower(times[j+1]) == days[i].d[1] ) { + if (tolower((unsigned char)times[j]) == days[i].d[0] + && tolower((unsigned char)times[j+1]) == days[i].d[1] ) { this_day = days[i].bit; break; } @@ -419,7 +419,7 @@ check_time (const pam_handle_t *pamh, const void *AT, D(("day range = 0%o", marked_day)); time_start = 0; - for (i=0; len > 0 && i < 4 && isdigit(times[i+j]); ++i, --len) { + for (i=0; len > 0 && i < 4 && isdigit((unsigned char)times[i+j]); ++i, --len) { time_start *= 10; time_start += times[i+j]-'0'; /* is this portable? */ } @@ -427,7 +427,7 @@ check_time (const pam_handle_t *pamh, const void *AT, if (times[j] == '-') { time_end = 0; - for (i=1; len > 0 && i < 5 && isdigit(times[i+j]); ++i, --len) { + for (i=1; len > 0 && i < 5 && isdigit((unsigned char)times[i+j]); ++i, --len) { time_end *= 10; time_end += times[i+j]-'0'; /* is this portable? */ } @@ -497,7 +497,7 @@ static int find_member(const char *string, int *at) break; default: - if (isalpha(c) || isdigit(c) || c == '_' || c == '*' + if (isalpha((unsigned char)c) || isdigit((unsigned char)c) || c == '_' || c == '*' || c == '-') { token = 1; } else if (token) { @@ -513,7 +513,7 @@ static int find_member(const char *string, int *at) } #define GROUP_BLK 10 -#define blk_size(len) (((len-1 + GROUP_BLK)/GROUP_BLK)*GROUP_BLK) +#define blk_size(len) ((((len)-1 + GROUP_BLK)/GROUP_BLK)*GROUP_BLK) static int mkgrplist(pam_handle_t *pamh, char *buf, gid_t **list, int len) { @@ -530,8 +530,7 @@ static int mkgrplist(pam_handle_t *pamh, char *buf, gid_t **list, int len) gid_t *tmp; D(("allocating new block")); - tmp = (gid_t *) realloc((*list) - , sizeof(gid_t) * (blks += GROUP_BLK)); + tmp = realloc((*list), sizeof(gid_t) * (blks += GROUP_BLK)); if (tmp != NULL) { (*list) = tmp; } else { @@ -822,7 +821,7 @@ pam_sm_setcred (pam_handle_t *pamh, int flags, /* good, now we have the service name, the user and the terminal name */ - D(("service=%s", service)); + D(("service=%s", (const char *) service)); D(("user=%s", user)); D(("tty=%s", tty)); diff --git a/modules/pam_issue/Makefile.am b/modules/pam_issue/Makefile.am deleted file mode 100644 index 1ab2b2ce..00000000 --- a/modules/pam_issue/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_issue.8 -endif -XMLS = README.xml pam_issue.8.xml -dist_check_SCRIPTS = tst-pam_issue -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(LOGIND_CFLAGS) $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_issue.la -pam_issue_la_LIBADD = $(top_builddir)/libpam/libpam.la $(SYSTEMD_LIBS) - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_issue/Makefile.in b/modules/pam_issue/Makefile.in deleted file mode 100644 index 02a3cc16..00000000 --- a/modules/pam_issue/Makefile.in +++ /dev/null @@ -1,1163 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_issue -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -am__DEPENDENCIES_1 = -pam_issue_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(am__DEPENDENCIES_1) -pam_issue_la_SOURCES = pam_issue.c -pam_issue_la_OBJECTS = pam_issue.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_issue.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_issue.c -DIST_SOURCES = pam_issue.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_issue.8 -XMLS = README.xml pam_issue.8.xml -dist_check_SCRIPTS = tst-pam_issue -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(LOGIND_CFLAGS) $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_issue.la -pam_issue_la_LIBADD = $(top_builddir)/libpam/libpam.la $(SYSTEMD_LIBS) -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_issue/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_issue/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_issue.la: $(pam_issue_la_OBJECTS) $(pam_issue_la_DEPENDENCIES) $(EXTRA_pam_issue_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_issue_la_OBJECTS) $(pam_issue_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_issue.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_issue.log: tst-pam_issue - @p='tst-pam_issue'; \ - b='tst-pam_issue'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_issue.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_issue.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_issue/README b/modules/pam_issue/README deleted file mode 100644 index e3192beb..00000000 --- a/modules/pam_issue/README +++ /dev/null @@ -1,79 +0,0 @@ -pam_issue — PAM module to add issue file to user prompt - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_issue is a PAM module to prepend an issue file to the username prompt. It -also by default parses escape codes in the issue file similar to some common -getty's (using \x format). - -Recognized escapes: - -\d - - current day - -\l - - name of this tty - -\m - - machine architecture (uname -m) - -\n - - machine's network node hostname (uname -n) - -\o - - domain name of this system - -\r - - release number of operating system (uname -r) - -\t - - current time - -\s - - operating system name (uname -s) - -\u - - number of users currently logged in - -\U - - same as \u except it is suffixed with "user" or "users" (eg. "1 user" or - "10 users") - -\v - - operating system version and build date (uname -v) - -OPTIONS - -noesc - - Turns off escape code parsing. - -issue=issue-file-name - - The file to output if not using the default. - -EXAMPLES - -Add the following line to /etc/pam.d/login to set the user specific issue at -login: - - auth optional pam_issue.so issue=/etc/issue - - -AUTHOR - -pam_issue was written by Ben Collins <bcollins@debian.org>. - diff --git a/modules/pam_issue/meson.build b/modules/pam_issue/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_issue/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_issue/pam_issue.8 b/modules/pam_issue/pam_issue.8 deleted file mode 100644 index fdeed526..00000000 --- a/modules/pam_issue/pam_issue.8 +++ /dev/null @@ -1,158 +0,0 @@ -'\" t -.\" Title: pam_issue -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_ISSUE" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_issue \- PAM module to add issue file to user prompt -.SH "SYNOPSIS" -.HP \w'\fBpam_issue\&.so\fR\ 'u -\fBpam_issue\&.so\fR [noesc] [issue=\fIissue\-file\-name\fR] -.SH "DESCRIPTION" -.PP -pam_issue is a PAM module to prepend an issue file to the username prompt\&. It also by default parses escape codes in the issue file similar to some common getty\*(Aqs (using \ex format)\&. -.PP -Recognized escapes: -.PP -\ed -.RS 4 -current day -.RE -.PP -\el -.RS 4 -name of this tty -.RE -.PP -\em -.RS 4 -machine architecture (uname \-m) -.RE -.PP -\en -.RS 4 -machine\*(Aqs network node hostname (uname \-n) -.RE -.PP -\eo -.RS 4 -domain name of this system -.RE -.PP -\er -.RS 4 -release number of operating system (uname \-r) -.RE -.PP -\et -.RS 4 -current time -.RE -.PP -\es -.RS 4 -operating system name (uname \-s) -.RE -.PP -\eu -.RS 4 -number of users currently logged in -.RE -.PP -\eU -.RS 4 -same as \eu except it is suffixed with "user" or "users" (eg\&. "1 user" or "10 users") -.RE -.PP -\ev -.RS 4 -operating system version and build date (uname \-v) -.RE -.SH "OPTIONS" -.PP -.PP -noesc -.RS 4 -Turns off escape code parsing\&. -.RE -.PP -issue=issue\-file\-name -.RS 4 -The file to output if not using the default\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBauth\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_IGNORE -.RS 4 -The prompt was already changed\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -A service module error occurred\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The new prompt was set successfully\&. -.RE -.SH "EXAMPLES" -.PP -Add the following line to -/etc/pam\&.d/login -to set the user specific issue at login: -.sp -.if n \{\ -.RS 4 -.\} -.nf - auth optional pam_issue\&.so issue=/etc/issue - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_issue was written by Ben Collins <bcollins@debian\&.org>\&. diff --git a/modules/pam_issue/pam_issue.c b/modules/pam_issue/pam_issue.c index c08f90c3..e2c555c4 100644 --- a/modules/pam_issue/pam_issue.c +++ b/modules/pam_issue/pam_issue.c @@ -165,13 +165,31 @@ read_issue_quoted(pam_handle_t *pamh, FILE *fp, char **prompt) { unsigned int users = 0; #ifdef USE_LOGIND - int sessions = sd_get_sessions(NULL); + char **sessions_list; + int sessions = sd_get_sessions(&sessions_list); if (sessions < 0) { pam_syslog(pamh, LOG_ERR, "logind error: %s", strerror(-sessions)); _pam_drop(issue); return PAM_SERVICE_ERR; + } else if (sessions > 0 && sessions_list != NULL) { + int i; + + for (i = 0; i < sessions; i++) { + char *class; + + if (sd_session_get_class(sessions_list[i], &class) < 0 || class == NULL) + continue; + + if (strncmp(class, "user", 4) == 0) // user, user-early, user-incomplete + users++; + free(class); + } + + for (i = 0; i < sessions; i++) + free(sessions_list[i]); + free(sessions_list); } else { users = sessions; } @@ -240,7 +258,6 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, const char *issue_file = NULL; int parse_esc = 1; const void *item = NULL; - const char *cur_prompt; char *issue_prompt = NULL; /* If we've already set the prompt, don't set it again */ @@ -277,10 +294,6 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, return retval; } - cur_prompt = item; - if (cur_prompt == NULL) - cur_prompt = ""; - if (parse_esc) retval = read_issue_quoted(pamh, fp, &issue_prompt); else @@ -291,11 +304,10 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, if (retval != PAM_SUCCESS) goto out; - { - size_t size = strlen(issue_prompt) + strlen(cur_prompt) + 1; - char *new_prompt = realloc(issue_prompt, size); - - if (new_prompt == NULL) { + if (item != NULL) { + const char *cur_prompt = item; + char *new_prompt; + if (asprintf(&new_prompt, "%s%s", issue_prompt, cur_prompt) < 0) { pam_syslog(pamh, LOG_CRIT, "out of memory"); retval = PAM_BUF_ERR; goto out; @@ -303,7 +315,6 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, issue_prompt = new_prompt; } - strcat(issue_prompt, cur_prompt); retval = pam_set_item(pamh, PAM_USER_PROMPT, (const void *) issue_prompt); out: diff --git a/modules/pam_keyinit/Makefile.am b/modules/pam_keyinit/Makefile.am deleted file mode 100644 index e1806a41..00000000 --- a/modules/pam_keyinit/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2006, 2009 David Howells <dhowells@redhat.com> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_keyinit.8 -endif -XMLS = README.xml pam_keyinit.8.xml -dist_check_SCRIPTS = tst-pam_keyinit -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_keyinit.la -pam_keyinit_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_keyinit/Makefile.in b/modules/pam_keyinit/Makefile.in deleted file mode 100644 index 7da83525..00000000 --- a/modules/pam_keyinit/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006, 2009 David Howells <dhowells@redhat.com> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_keyinit -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_keyinit_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_keyinit_la_SOURCES = pam_keyinit.c -pam_keyinit_la_OBJECTS = pam_keyinit.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_keyinit.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_keyinit.c -DIST_SOURCES = pam_keyinit.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_keyinit.8 -XMLS = README.xml pam_keyinit.8.xml -dist_check_SCRIPTS = tst-pam_keyinit -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_keyinit.la -pam_keyinit_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_keyinit/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_keyinit/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_keyinit.la: $(pam_keyinit_la_OBJECTS) $(pam_keyinit_la_DEPENDENCIES) $(EXTRA_pam_keyinit_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_keyinit_la_OBJECTS) $(pam_keyinit_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_keyinit.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_keyinit.log: tst-pam_keyinit - @p='tst-pam_keyinit'; \ - b='tst-pam_keyinit'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_keyinit.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_keyinit.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_keyinit/README b/modules/pam_keyinit/README deleted file mode 100644 index fa503700..00000000 --- a/modules/pam_keyinit/README +++ /dev/null @@ -1,67 +0,0 @@ -pam_keyinit — Kernel session keyring initialiser module - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_keyinit PAM module ensures that the invoking process has a session -keyring other than the user default session keyring. - -The module checks to see if the process's session keyring is the -user-session-keyring(7), and, if it is, creates a new session-keyring(7) with -which to replace it. If a new session keyring is created, it will install a -link to the user-keyring(7) in the session keyring so that keys common to the -user will be automatically accessible through it. The session keyring of the -invoking process will thenceforth be inherited by all its children unless they -override it. - -In order to allow other PAM modules to attach tokens to the keyring, this -module provides both an auth (limited to pam_setcred(3) and a session -component. The session keyring is created in the module called. Moreover this -module should be included as early as possible in a PAM configuration. - -This module is intended primarily for use by login processes. Be aware that -after the session keyring has been replaced, the old session keyring and the -keys it contains will no longer be accessible. - -This module should not, generally, be invoked by programs like su, since it is -usually desirable for the key set to percolate through to the alternate -context. The keys have their own permissions system to manage this. - -The keyutils package is used to manipulate keys more directly. This can be -obtained from: - -Keyutils - -OPTIONS - -debug - - Log debug information with syslog(3). - -force - - Causes the session keyring of the invoking process to be replaced - unconditionally. - -revoke - - Causes the session keyring of the invoking process to be revoked when the - invoking process exits if the session keyring was created for this process - in the first place. - -EXAMPLES - -Add this line to your login entries to start each login session with its own -session keyring: - -session required pam_keyinit.so - - -This will prevent keys from one session leaking into another session for the -same user. - -AUTHOR - -pam_keyinit was written by David Howells, <dhowells@redhat.com>. - diff --git a/modules/pam_keyinit/meson.build b/modules/pam_keyinit/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_keyinit/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_keyinit/pam_keyinit.8 b/modules/pam_keyinit/pam_keyinit.8 deleted file mode 100644 index 5d7b3e47..00000000 --- a/modules/pam_keyinit/pam_keyinit.8 +++ /dev/null @@ -1,150 +0,0 @@ -'\" t -.\" Title: pam_keyinit -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_KEYINIT" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_keyinit \- Kernel session keyring initialiser module -.SH "SYNOPSIS" -.HP \w'\fBpam_keyinit\&.so\fR\ 'u -\fBpam_keyinit\&.so\fR [debug] [force] [revoke] -.SH "DESCRIPTION" -.PP -The pam_keyinit PAM module ensures that the invoking process has a session keyring other than the user default session keyring\&. -.PP -The module checks to see if the process\*(Aqs session keyring is the -\fBuser-session-keyring\fR(7), and, if it is, creates a new -\fBsession-keyring\fR(7) -with which to replace it\&. If a new session keyring is created, it will install a link to the -\fBuser-keyring\fR(7) -in the session keyring so that keys common to the user will be automatically accessible through it\&. The session keyring of the invoking process will thenceforth be inherited by all its children unless they override it\&. -.PP -In order to allow other PAM modules to attach tokens to the keyring, this module provides both an -\fIauth\fR -(limited to -\fBpam_setcred\fR(3) -and a -\fIsession\fR -component\&. The session keyring is created in the module called\&. Moreover this module should be included as early as possible in a PAM configuration\&. -.PP -This module is intended primarily for use by login processes\&. Be aware that after the session keyring has been replaced, the old session keyring and the keys it contains will no longer be accessible\&. -.PP -This module should not, generally, be invoked by programs like -\fBsu\fR, since it is usually desirable for the key set to percolate through to the alternate context\&. The keys have their own permissions system to manage this\&. -.PP -The keyutils package is used to manipulate keys more directly\&. This can be obtained from: -.PP -\m[blue]\fBKeyutils\fR\m[]\&\s-2\u[1]\d\s+2 -.SH "OPTIONS" -.PP -debug -.RS 4 -Log debug information with -\fBsyslog\fR(3)\&. -.RE -.PP -force -.RS 4 -Causes the session keyring of the invoking process to be replaced unconditionally\&. -.RE -.PP -revoke -.RS 4 -Causes the session keyring of the invoking process to be revoked when the invoking process exits if the session keyring was created for this process in the first place\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -This module will usually return this value -.RE -.PP -PAM_AUTH_ERR -.RS 4 -Authentication failure\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_IGNORE -.RS 4 -The return value should be ignored by PAM dispatch\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Cannot determine the user name\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -This module will return this value if its arguments are invalid or if a system error such as ENOMEM occurs\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known\&. -.RE -.SH "EXAMPLES" -.PP -Add this line to your login entries to start each login session with its own session keyring: -.sp -.if n \{\ -.RS 4 -.\} -.nf -session required pam_keyinit\&.so - -.fi -.if n \{\ -.RE -.\} -.PP -This will prevent keys from one session leaking into another session for the same user\&. -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8), -\fBkeyctl\fR(1) -.SH "AUTHOR" -.PP -pam_keyinit was written by David Howells, <dhowells@redhat\&.com>\&. -.SH "NOTES" -.IP " 1." 4 -Keyutils -.RS 4 -\%http://people.redhat.com/~dhowells/keyutils/ -.RE diff --git a/modules/pam_keyinit/pam_keyinit.c b/modules/pam_keyinit/pam_keyinit.c index df9804b9..ad81b80b 100644 --- a/modules/pam_keyinit/pam_keyinit.c +++ b/modules/pam_keyinit/pam_keyinit.c @@ -23,9 +23,9 @@ #include <sys/syscall.h> #include <stdatomic.h> -#define KEY_SPEC_SESSION_KEYRING -3 /* ID for session keyring */ -#define KEY_SPEC_USER_KEYRING -4 /* ID for UID-specific keyring */ -#define KEY_SPEC_USER_SESSION_KEYRING -5 /* - key ID for UID-session keyring */ +#define KEY_SPEC_SESSION_KEYRING (-3) /* ID for session keyring */ +#define KEY_SPEC_USER_KEYRING (-4) /* ID for UID-specific keyring */ +#define KEY_SPEC_USER_SESSION_KEYRING (-5) /* - key ID for UID-session keyring */ #define KEYCTL_GET_KEYRING_ID 0 /* ask for a keyring's ID */ #define KEYCTL_JOIN_SESSION_KEYRING 1 /* start named session keyring */ diff --git a/modules/pam_lastlog/Makefile.am b/modules/pam_lastlog/Makefile.am deleted file mode 100644 index e48038d8..00000000 --- a/modules/pam_lastlog/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_lastlog.8 -endif -XMLS = README.xml pam_lastlog.8.xml -dist_check_SCRIPTS = tst-pam_lastlog -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_lastlog.la -pam_lastlog_la_LIBADD = $(top_builddir)/libpam/libpam.la -lutil - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_lastlog/Makefile.in b/modules/pam_lastlog/Makefile.in deleted file mode 100644 index 0811a233..00000000 --- a/modules/pam_lastlog/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_lastlog -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_lastlog_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_lastlog_la_SOURCES = pam_lastlog.c -pam_lastlog_la_OBJECTS = pam_lastlog.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_lastlog.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_lastlog.c -DIST_SOURCES = pam_lastlog.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_lastlog.8 -XMLS = README.xml pam_lastlog.8.xml -dist_check_SCRIPTS = tst-pam_lastlog -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_lastlog.la -pam_lastlog_la_LIBADD = $(top_builddir)/libpam/libpam.la -lutil -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_lastlog/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_lastlog/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_lastlog.la: $(pam_lastlog_la_OBJECTS) $(pam_lastlog_la_DEPENDENCIES) $(EXTRA_pam_lastlog_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_lastlog_la_OBJECTS) $(pam_lastlog_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_lastlog.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_lastlog.log: tst-pam_lastlog - @p='tst-pam_lastlog'; \ - b='tst-pam_lastlog'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_lastlog.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_lastlog.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_lastlog/README b/modules/pam_lastlog/README deleted file mode 100644 index 9b0cff9c..00000000 --- a/modules/pam_lastlog/README +++ /dev/null @@ -1,96 +0,0 @@ -pam_lastlog — PAM module to display date of last login and perform inactive -account lock out - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_lastlog is a PAM module to display a line of information about the last -login of the user. In addition, the module maintains the /var/log/lastlog file. - -Some applications may perform this function themselves. In such cases, this -module is not necessary. - -The module checks LASTLOG_UID_MAX option in /etc/login.defs and does not update -or display last login records for users with UID higher than its value. If the -option is not present or its value is invalid, no user ID limit is applied. - -If the module is called in the auth or account phase, the accounts that were -not used recently enough will be disallowed to log in. The check is not -performed for the root account so the root is never locked out. It is also not -performed for users with UID higher than the LASTLOG_UID_MAX value. - -OPTIONS - -debug - - Print debug information. - -silent - - Don't inform the user about any previous login, just update the /var/log/ - lastlog file. This option does not affect display of bad login attempts. - -never - - If the /var/log/lastlog file does not contain any old entries for the user, - indicate that the user has never previously logged in with a welcome - message. - -nodate - - Don't display the date of the last login. - -noterm - - Don't display the terminal name on which the last login was attempted. - -nohost - - Don't indicate from which host the last login was attempted. - -nowtmp - - Don't update the wtmp entry. - -noupdate - - Don't update any file. - -showfailed - - Display number of failed login attempts and the date of the last failed - attempt from btmp. The date is not displayed when nodate is specified. - -inactive=<days> - - This option is specific for the auth or account phase. It specifies the - number of days after the last login of the user when the user will be - locked out by the module. The default value is 90. - -unlimited - - If the fsize limit is set, this option can be used to override it, - preventing failures on systems with large UID values that lead lastlog to - become a huge sparse file. - -EXAMPLES - -Add the following line to /etc/pam.d/login to display the last login time of a -user: - - session required pam_lastlog.so nowtmp - - -To reject the user if he did not login during the previous 50 days the -following line can be used: - - auth required pam_lastlog.so inactive=50 - - -AUTHOR - -pam_lastlog was written by Andrew G. Morgan <morgan@kernel.org>. - -Inactive account lock out added by Tomáš Mráz <tm@t8m.info>. - diff --git a/modules/pam_lastlog/meson.build b/modules/pam_lastlog/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_lastlog/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_lastlog/pam_lastlog.8 b/modules/pam_lastlog/pam_lastlog.8 deleted file mode 100644 index 3a85ede2..00000000 --- a/modules/pam_lastlog/pam_lastlog.8 +++ /dev/null @@ -1,197 +0,0 @@ -'\" t -.\" Title: pam_lastlog -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_LASTLOG" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_lastlog \- PAM module to display date of last login and perform inactive account lock out -.SH "SYNOPSIS" -.HP \w'\fBpam_lastlog\&.so\fR\ 'u -\fBpam_lastlog\&.so\fR [debug] [silent] [never] [nodate] [nohost] [noterm] [nowtmp] [noupdate] [showfailed] [inactive=<days>] [unlimited] -.SH "DESCRIPTION" -.PP -pam_lastlog is a PAM module to display a line of information about the last login of the user\&. In addition, the module maintains the -/var/log/lastlog -file\&. -.PP -Some applications may perform this function themselves\&. In such cases, this module is not necessary\&. -.PP -The module checks -\fBLASTLOG_UID_MAX\fR -option in -/etc/login\&.defs -and does not update or display last login records for users with UID higher than its value\&. If the option is not present or its value is invalid, no user ID limit is applied\&. -.PP -If the module is called in the auth or account phase, the accounts that were not used recently enough will be disallowed to log in\&. The check is not performed for the root account so the root is never locked out\&. It is also not performed for users with UID higher than the -\fBLASTLOG_UID_MAX\fR -value\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -silent -.RS 4 -Don\*(Aqt inform the user about any previous login, just update the -/var/log/lastlog -file\&. This option does not affect display of bad login attempts\&. -.RE -.PP -never -.RS 4 -If the -/var/log/lastlog -file does not contain any old entries for the user, indicate that the user has never previously logged in with a welcome message\&. -.RE -.PP -nodate -.RS 4 -Don\*(Aqt display the date of the last login\&. -.RE -.PP -noterm -.RS 4 -Don\*(Aqt display the terminal name on which the last login was attempted\&. -.RE -.PP -nohost -.RS 4 -Don\*(Aqt indicate from which host the last login was attempted\&. -.RE -.PP -nowtmp -.RS 4 -Don\*(Aqt update the wtmp entry\&. -.RE -.PP -noupdate -.RS 4 -Don\*(Aqt update any file\&. -.RE -.PP -showfailed -.RS 4 -Display number of failed login attempts and the date of the last failed attempt from btmp\&. The date is not displayed when -\fBnodate\fR -is specified\&. -.RE -.PP -inactive=<days> -.RS 4 -This option is specific for the auth or account phase\&. It specifies the number of days after the last login of the user when the user will be locked out by the module\&. The default value is 90\&. -.RE -.PP -unlimited -.RS 4 -If the -\fIfsize\fR -limit is set, this option can be used to override it, preventing failures on systems with large UID values that lead lastlog to become a huge sparse file\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBaccount\fR -module type allows one to lock out users who did not login recently enough\&. The -\fBsession\fR -module type is provided for displaying the information about the last login and/or updating the lastlog and wtmp files\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_SUCCESS -.RS 4 -Everything was successful\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Internal service module error\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -User locked out in the auth or account phase due to inactivity\&. -.RE -.PP -PAM_IGNORE -.RS 4 -There was an error during reading the lastlog file in the auth or account phase and thus inactivity of the user cannot be determined\&. -.RE -.SH "EXAMPLES" -.PP -Add the following line to -/etc/pam\&.d/login -to display the last login time of a user: -.sp -.if n \{\ -.RS 4 -.\} -.nf - session required pam_lastlog\&.so nowtmp - -.fi -.if n \{\ -.RE -.\} -.PP -To reject the user if he did not login during the previous 50 days the following line can be used: -.sp -.if n \{\ -.RS 4 -.\} -.nf - auth required pam_lastlog\&.so inactive=50 - -.fi -.if n \{\ -.RE -.\} -.SH "FILES" -.PP -/var/log/lastlog -.RS 4 -Lastlog logging file -.RE -.SH "SEE ALSO" -.PP -\fBlimits.conf\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_lastlog was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. -.PP -Inactive account lock out added by Tomáš Mráz <tm@t8m\&.info>\&. diff --git a/modules/pam_lastlog/pam_lastlog.8.xml b/modules/pam_lastlog/pam_lastlog.8.xml index 1fd9d9dd..d9909787 100644 --- a/modules/pam_lastlog/pam_lastlog.8.xml +++ b/modules/pam_lastlog/pam_lastlog.8.xml @@ -289,7 +289,7 @@ session required pam_lastlog.so nowtmp </programlisting> <para> - To reject the user if he did not login during the previous 50 days + To reject users if they did not login during the previous 50 days the following line can be used: </para> <programlisting> @@ -337,4 +337,4 @@ </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_lastlog/pam_lastlog.c b/modules/pam_lastlog/pam_lastlog.c index ec515f56..ded76763 100644 --- a/modules/pam_lastlog/pam_lastlog.c +++ b/modules/pam_lastlog/pam_lastlog.c @@ -13,11 +13,7 @@ #include <fcntl.h> #include <time.h> #include <errno.h> -#ifdef HAVE_UTMP_H -# include <utmp.h> -#else -# include <lastlog.h> -#endif +#include <utmp.h> #include <pwd.h> #include <stdlib.h> #include <ctype.h> @@ -70,6 +66,7 @@ struct lastlog { #include <security/pam_modutil.h> #include <security/pam_ext.h> #include "pam_inline.h" +#include "pam_i18n.h" /* argument parsing */ @@ -205,7 +202,7 @@ get_lastlog_uid_max(pam_handle_t *pamh) return uid_max; ep = s + strlen(s); - while (ep > s && isspace(*(--ep))) { + while (ep > s && isspace((unsigned char)*(--ep))) { *ep = '\0'; } errno = 0; @@ -665,9 +662,8 @@ cleanup: } /* --- authentication (locking out inactive users) functions --- */ -int -pam_sm_authenticate(pam_handle_t *pamh, int flags, - int argc, const char **argv) +static int +pam_auth(pam_handle_t *pamh, int flags, int argc, const char **argv) { int retval, ctrl; const char *user = NULL; @@ -678,7 +674,7 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags, int last_fd; /* - * Lock out the user if he did not login recently enough. + * Lock out users if they did not login recently enough. */ ctrl = _pam_auth_parse(pamh, flags, argc, argv, &inactive_days); @@ -742,10 +738,17 @@ pam_sm_setcred(pam_handle_t *pamh UNUSED, int flags UNUSED, } int +pam_sm_authenticate(pam_handle_t *pamh, int flags, + int argc, const char **argv) +{ + return pam_auth(pamh, flags, argc, argv); +} + +int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_auth(pamh, flags, argc, argv); } /* --- session management functions --- */ @@ -779,7 +782,7 @@ pam_sm_open_session(pam_handle_t *pamh, int flags, pwd = pam_modutil_getpwnam (pamh, user); if (pwd == NULL) { - D(("couldn't identify user %s", user)); + D(("couldn't identify user %s", (const char *) user)); return PAM_USER_UNKNOWN; } uid = pwd->pw_uid; diff --git a/modules/pam_limits/Makefile.am b/modules/pam_limits/Makefile.am deleted file mode 100644 index 3a3b5e01..00000000 --- a/modules/pam_limits/Makefile.am +++ /dev/null @@ -1,44 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = limits.conf.5 pam_limits.8 -endif -XMLS = README.xml limits.conf.5.xml pam_limits.8.xml -dist_check_SCRIPTS = tst-pam_limits -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif -limits_conf_dir = $(SCONFIGDIR)/limits.d - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -DLIMITS_FILE_DIR=\"$(limits_conf_dir)\" \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_limits.la -pam_limits_la_LIBADD = $(top_builddir)/libpam/libpam.la - -dist_secureconf_DATA = limits.conf - -install-data-local: - mkdir -p $(DESTDIR)$(limits_conf_dir) - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_limits/Makefile.in b/modules/pam_limits/Makefile.in deleted file mode 100644 index 7b515b83..00000000 --- a/modules/pam_limits/Makefile.in +++ /dev/null @@ -1,1238 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_limits -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(dist_secureconf_DATA) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" \ - "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_limits_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_limits_la_SOURCES = pam_limits.c -pam_limits_la_OBJECTS = pam_limits.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_limits.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_limits.c -DIST_SOURCES = pam_limits.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = limits.conf.5 pam_limits.8 -XMLS = README.xml limits.conf.5.xml pam_limits.8.xml -dist_check_SCRIPTS = tst-pam_limits -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -limits_conf_dir = $(SCONFIGDIR)/limits.d -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -DLIMITS_FILE_DIR=\"$(limits_conf_dir)\" \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_limits.la -pam_limits_la_LIBADD = $(top_builddir)/libpam/libpam.la -dist_secureconf_DATA = limits.conf -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_limits/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_limits/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_limits.la: $(pam_limits_la_OBJECTS) $(pam_limits_la_DEPENDENCIES) $(EXTRA_pam_limits_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_limits_la_OBJECTS) $(pam_limits_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_limits.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_limits.log: tst-pam_limits - @p='tst-pam_limits'; \ - b='tst-pam_limits'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_limits.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-data-local install-dist_secureconfDATA \ - install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_limits.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA uninstall-man \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-local install-dist_secureconfDATA \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-man5 install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am \ - uninstall-dist_secureconfDATA uninstall-man uninstall-man5 \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - - -install-data-local: - mkdir -p $(DESTDIR)$(limits_conf_dir) -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_limits/README b/modules/pam_limits/README deleted file mode 100644 index 98264b95..00000000 --- a/modules/pam_limits/README +++ /dev/null @@ -1,82 +0,0 @@ -pam_limits — PAM module to limit resources - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_limits PAM module sets limits on the system resources that can be -obtained in a user-session. Users of uid=0 are affected by this limits, too. - -By default limits are taken from the /etc/security/limits.conf config file. -Then individual *.conf files from the /etc/security/limits.d/ directory are -read. The files are parsed one after another in the order of "C" locale. The -effect of the individual files is the same as if all the files were -concatenated together in the order of parsing. If a config file is explicitly -specified with a module option then the files in the above directory are not -parsed. - -By default limits are taken from the /etc/security/limits.conf config file or, -if that one is not present, the file %vendordir%/security/limits.conf. Then -individual *.conf files from the /etc/security/limits.d/ and %vendordir%/ -security/limits.d directories are read. If /etc/security/limits.d/ -@filename@.conf exists, then %vendordir%/security/limits.d/@filename@.conf will -not be used. All limits.d/*.conf files are sorted by their @filename@.conf in -lexicographic order regardless of which of the directories they reside in. The -effect of the individual files is the same as if all the files were -concatenated together in the order of parsing. If a config file is explicitly -specified with the config option the files in the above directories are not -parsed. - -The module must not be called by a multithreaded application. - -If Linux PAM is compiled with audit support the module will report when it -denies access based on limit of maximum number of concurrent login sessions. - -OPTIONS - -conf=/path/to/limits.conf - - Indicate an alternative limits.conf style configuration file to override - the default. - -debug - - Print debug information. - -set_all - - Set the limits for which no value is specified in the configuration file to - the one from the process with the PID 1. Please note that if the init - process is systemd these limits will not be the kernel default limits and - this option should not be used. - -utmp_early - - Some broken applications actually allocate a utmp entry for the user before - the user is admitted to the system. If some of the services you are - configuring PAM for do this, you can selectively use this module argument - to compensate for this behavior and at the same time maintain system-wide - consistency with a single limits.conf file. - -noaudit - - Do not report exceeded maximum logins count to the audit subsystem. - -EXAMPLES - -These are some example lines which might be specified in /etc/security/ -limits.conf. - -* soft core 0 -* hard nofile 512 -@student hard nproc 20 -@faculty soft nproc 20 -@faculty hard nproc 50 -ftp hard nproc 0 -@student - maxlogins 4 -@student - nonewprivs 1 -:123 hard cpu 5000 -@500: soft cpu 10000 -600:700 hard locks 10 - - diff --git a/modules/pam_limits/limits.conf.5 b/modules/pam_limits/limits.conf.5 deleted file mode 100644 index 25f44597..00000000 --- a/modules/pam_limits/limits.conf.5 +++ /dev/null @@ -1,349 +0,0 @@ -'\" t -.\" Title: limits.conf -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "LIMITS\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -limits.conf \- configuration file for the pam_limits module -.SH "DESCRIPTION" -.PP -The -\fIpam_limits\&.so\fR -module applies ulimit limits, nice priority and number of simultaneous login sessions limit to user login sessions\&. This description of the configuration file syntax applies to the -/etc/security/limits\&.conf -file and -*\&.conf -files in the -/etc/security/limits\&.d -directory\&. -.PP -The syntax of the lines is as follows: -.PP -\fI<domain>\fR -\fI<type>\fR -\fI<item>\fR -\fI<value>\fR -.PP -The fields listed above should be filled as follows: -.PP -<domain> -.RS 4 -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -a username -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -a groupname, with -\fB@group\fR -syntax\&. This should not be confused with netgroups\&. -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -the wildcard -\fB*\fR, for default entry\&. -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -the wildcard -\fB%\fR, for maxlogins limit only, can also be used with -\fB%group\fR -syntax\&. If the -\fB%\fR -wildcard is used alone it is identical to using -\fB*\fR -with maxsyslogins limit\&. With a group specified after -\fB%\fR -it limits the total number of logins of all users that are member of the group\&. -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -an uid range specified as -\fI<min_uid>\fR\fB:\fR\fI<max_uid>\fR\&. If min_uid is omitted, the match is exact for the max_uid\&. If max_uid is omitted, all uids greater than or equal min_uid match\&. -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -a gid range specified as -\fB@\fR\fI<min_gid>\fR\fB:\fR\fI<max_gid>\fR\&. If min_gid is omitted, the match is exact for the max_gid\&. If max_gid is omitted, all gids greater than or equal min_gid match\&. For the exact match all groups including the user\*(Aqs supplementary groups are examined\&. For the range matches only the user\*(Aqs primary group is examined\&. -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -a gid specified as -\fB%:\fR\fI<gid>\fR -applicable to maxlogins limit only\&. It limits the total number of logins of all users that are member of the group with the specified gid\&. -.RE -.RE -.PP -<type> -.RS 4 -.PP -hard -.RS 4 -for enforcing -\fBhard\fR -resource limits\&. These limits are set by the superuser and enforced by the Kernel\&. The user cannot raise his requirement of system resources above such values\&. -.RE -.PP -soft -.RS 4 -for enforcing -\fBsoft\fR -resource limits\&. These limits are ones that the user can move up or down within the permitted range by any pre\-existing -\fBhard\fR -limits\&. The values specified with this token can be thought of as -\fIdefault\fR -values, for normal system usage\&. -.RE -.PP -\- -.RS 4 -for enforcing both -\fBsoft\fR -and -\fBhard\fR -resource limits together\&. -.sp -Note, if you specify a type of \*(Aq\-\*(Aq but neglect to supply the item and value fields then the module will never enforce any limits on the specified user/group etc\&. \&. -.RE -.RE -.PP -<item> -.RS 4 -.PP -core -.RS 4 -limits the core file size (KB) -.RE -.PP -data -.RS 4 -maximum data size (KB) -.RE -.PP -fsize -.RS 4 -maximum filesize (KB) -.RE -.PP -memlock -.RS 4 -maximum locked\-in\-memory address space (KB) -.RE -.PP -nofile -.RS 4 -maximum number of open file descriptors -.RE -.PP -rss -.RS 4 -maximum resident set size (KB) (Ignored in Linux 2\&.4\&.30 and higher) -.RE -.PP -stack -.RS 4 -maximum stack size (KB) -.RE -.PP -cpu -.RS 4 -maximum CPU time (minutes) -.RE -.PP -nproc -.RS 4 -maximum number of processes -.RE -.PP -as -.RS 4 -address space limit (KB) -.RE -.PP -maxlogins -.RS 4 -maximum number of logins for this user (this limit does not apply to user with -\fIuid=0\fR) -.RE -.PP -maxsyslogins -.RS 4 -maximum number of all logins on system; user is not allowed to log\-in if total number of all user logins is greater than specified number (this limit does not apply to user with -\fIuid=0\fR) -.RE -.PP -nonewprivs -.RS 4 -value of 0 or 1; if set to 1 disables acquiring new privileges by invoking prctl(PR_SET_NO_NEW_PRIVS) -.RE -.PP -priority -.RS 4 -the priority to run user process with (negative values boost process priority) -.RE -.PP -locks -.RS 4 -maximum locked files (Linux 2\&.4 and higher) -.RE -.PP -sigpending -.RS 4 -maximum number of pending signals (Linux 2\&.6 and higher) -.RE -.PP -msgqueue -.RS 4 -maximum memory used by POSIX message queues (bytes) (Linux 2\&.6 and higher) -.RE -.PP -nice -.RS 4 -maximum nice priority allowed to raise to (Linux 2\&.6\&.12 and higher) values: [\-20,19] -.RE -.PP -rtprio -.RS 4 -maximum realtime priority allowed for non\-privileged processes (Linux 2\&.6\&.12 and higher) -.RE -.RE -.PP -All items support the values -\fI\-1\fR, -\fIunlimited\fR -or -\fIinfinity\fR -indicating no limit, except for -\fBpriority\fR, -\fBnice\fR, and -\fBnonewprivs\fR\&. If -\fBnofile\fR -is to be set to one of these values, it will be set to the contents of /proc/sys/fs/nr_open instead (see setrlimit(3))\&. -.PP -If a hard limit or soft limit of a resource is set to a valid value, but outside of the supported range of the local system, the system may reject the new limit or unexpected behavior may occur\&. If the control value -\fIrequired\fR -is used, the module will reject the login if a limit could not be set\&. -.PP -In general, individual limits have priority over group limits, so if you impose no limits for -\fIadmin\fR -group, but one of the members in this group have a limits line, the user will have its limits set according to this line\&. -.PP -Also, please note that all limit settings are set -\fIper login\fR\&. They are not global, nor are they permanent; existing only for the duration of the session\&. One exception is the -\fImaxlogin\fR -option, this one is system wide\&. But there is a race, concurrent logins at the same time will not always be detect as such but only counted as one\&. -.PP -In the -\fIlimits\fR -configuration file, the \*(Aq\fB#\fR\*(Aq character introduces a comment \- after which the rest of the line is ignored\&. -.PP -The pam_limits module does report configuration problems found in its configuration file and errors via -\fBsyslog\fR(3)\&. -.SH "EXAMPLES" -.PP -These are some example lines which might be specified in -/etc/security/limits\&.conf\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -* soft core 0 -* hard nofile 512 -@student hard nproc 20 -@faculty soft nproc 20 -@faculty hard nproc 50 -ftp hard nproc 0 -@student \- maxlogins 4 -@student \- nonewprivs 1 -:123 hard cpu 5000 -@500: soft cpu 10000 -600:700 hard locks 10 - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam_limits\fR(8), -\fBpam.d\fR(5), -\fBpam\fR(8), -\fBgetrlimit\fR(2), -\fBgetrlimit\fR(3p) -.SH "AUTHOR" -.PP -pam_limits was initially written by Cristian Gafton <gafton@redhat\&.com> diff --git a/modules/pam_limits/limits.conf.5.xml b/modules/pam_limits/limits.conf.5.xml index 2177da1f..dd8d68bc 100644 --- a/modules/pam_limits/limits.conf.5.xml +++ b/modules/pam_limits/limits.conf.5.xml @@ -104,7 +104,7 @@ <para> for enforcing <emphasis remap="B">hard</emphasis> resource limits. These limits are set by the superuser and enforced by the Kernel. - The user cannot raise his requirement of system resources above such values. + Users cannot raise their own requirement of system resources above such values. </para> </listitem> </varlistentry> @@ -350,4 +350,4 @@ ftp hard nproc 0 pam_limits was initially written by Cristian Gafton <gafton@redhat.com> </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_limits/meson.build b/modules/pam_limits/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_limits/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_limits/pam_limits.8 b/modules/pam_limits/pam_limits.8 deleted file mode 100644 index a3d15f26..00000000 --- a/modules/pam_limits/pam_limits.8 +++ /dev/null @@ -1,152 +0,0 @@ -'\" t -.\" Title: pam_limits -.\" Author: [see the "AUTHORS" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_LIMITS" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_limits \- PAM module to limit resources -.SH "SYNOPSIS" -.HP \w'\fBpam_limits\&.so\fR\ 'u -\fBpam_limits\&.so\fR [conf=\fI/path/to/limits\&.conf\fR] [debug] [set_all] [utmp_early] [noaudit] -.SH "DESCRIPTION" -.PP -The pam_limits PAM module sets limits on the system resources that can be obtained in a user\-session\&. Users of -\fIuid=0\fR -are affected by this limits, too\&. -.PP -By default limits are taken from the -/etc/security/limits\&.conf -config file\&. Then individual *\&.conf files from the -/etc/security/limits\&.d/ -directory are read\&. The files are parsed one after another in the order of "C" locale\&. The effect of the individual files is the same as if all the files were concatenated together in the order of parsing\&. If a config file is explicitly specified with a module option then the files in the above directory are not parsed\&. -.PP -The module must not be called by a multithreaded application\&. -.PP -If Linux PAM is compiled with audit support the module will report when it denies access based on limit of maximum number of concurrent login sessions\&. -.SH "OPTIONS" -.PP -conf=/path/to/limits\&.conf -.RS 4 -Indicate an alternative limits\&.conf style configuration file to override the default\&. -.RE -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -set_all -.RS 4 -Set the limits for which no value is specified in the configuration file to the one from the process with the PID 1\&. Please note that if the init process is systemd these limits will not be the kernel default limits and this option should not be used\&. -.RE -.PP -utmp_early -.RS 4 -Some broken applications actually allocate a utmp entry for the user before the user is admitted to the system\&. If some of the services you are configuring PAM for do this, you can selectively use this module argument to compensate for this behavior and at the same time maintain system\-wide consistency with a single limits\&.conf file\&. -.RE -.PP -noaudit -.RS 4 -Do not report exceeded maximum logins count to the audit subsystem\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_ABORT -.RS 4 -Cannot get current limits\&. -.RE -.PP -PAM_IGNORE -.RS 4 -No limits found for this user\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -New limits could not be set\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Cannot read config file\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Error recovering account name\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Limits were changed\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The user is not known to the system\&. -.RE -.SH "FILES" -.PP -/etc/security/limits\&.conf -.RS 4 -Default configuration file -.RE -.SH "EXAMPLES" -.PP -For the services you need resources limits (login for example) put a the following line in -/etc/pam\&.d/login -as the last line for that service (usually after the pam_unix session line): -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -# -# Resource limits imposed on login sessions via pam_limits -# -session required pam_limits\&.so - -.fi -.if n \{\ -.RE -.\} -.PP -Replace "login" for each service you are using this module\&. -.SH "SEE ALSO" -.PP -\fBlimits.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8)\&. -.SH "AUTHORS" -.PP -pam_limits was initially written by Cristian Gafton <gafton@redhat\&.com> diff --git a/modules/pam_limits/pam_limits.c b/modules/pam_limits/pam_limits.c index 87bb4b70..1e4dfa3d 100644 --- a/modules/pam_limits/pam_limits.c +++ b/modules/pam_limits/pam_limits.c @@ -28,13 +28,20 @@ #include <syslog.h> #include <stdarg.h> #include <signal.h> +#ifdef __linux__ #include <sys/prctl.h> +#endif #include <sys/types.h> #include <sys/stat.h> #include <sys/resource.h> #include <limits.h> #include <glob.h> +#ifdef USE_LOGIND +#include <systemd/sd-login.h> +#else #include <utmp.h> +#endif + #ifndef UT_USER /* some systems have ut_name instead of ut_user */ #define UT_USER ut_user #endif @@ -52,8 +59,6 @@ #endif /* Module defines */ -#define LINE_LENGTH 1024 - #define LIMITS_DEF_USER 0 /* limit was set by a user entry */ #define LIMITS_DEF_GROUP 1 /* limit was set by a group entry */ #define LIMITS_DEF_ALLGROUP 2 /* limit was set by a group entry */ @@ -62,13 +67,13 @@ #define LIMITS_DEF_KERNEL 5 /* limit was set from /proc/1/limits */ #define LIMITS_DEF_NONE 6 /* this limit was not set yet */ -#define LIMIT_RANGE_ERR -1 /* error in specified uid/gid range */ +#define LIMIT_RANGE_ERR (-1) /* error in specified uid/gid range */ #define LIMIT_RANGE_NONE 0 /* no range specified */ #define LIMIT_RANGE_ONE 1 /* exact uid/gid specified (:max_uid)*/ #define LIMIT_RANGE_MIN 2 /* only minimum uid/gid specified (min_uid:) */ #define LIMIT_RANGE_MM 3 /* both min and max uid/gid specified (min_uid:max_uid) */ -static const char *limits_def_names[] = { +static const char *const limits_def_names[] = { "USER", "GROUP", "ALLGROUP", @@ -97,14 +102,14 @@ struct pam_limit_s { struct user_limits_struct limits[RLIM_NLIMITS]; const char *conf_file; int utmp_after_pam_call; - char login_group[LINE_LENGTH]; + char *login_group; }; -#define LIMIT_LOGIN RLIM_NLIMITS+1 -#define LIMIT_NUMSYSLOGINS RLIM_NLIMITS+2 +#define LIMIT_LOGIN (RLIM_NLIMITS+1) +#define LIMIT_NUMSYSLOGINS (RLIM_NLIMITS+2) -#define LIMIT_PRI RLIM_NLIMITS+3 -#define LIMIT_NONEWPRIVS RLIM_NLIMITS+4 +#define LIMIT_PRI (RLIM_NLIMITS+3) +#define LIMIT_NONEWPRIVS (RLIM_NLIMITS+4) #define LIMIT_SOFT 1 #define LIMIT_HARD 2 @@ -114,6 +119,7 @@ struct pam_limit_s { #include <security/pam_modutil.h> #include <security/pam_ext.h> #include "pam_inline.h" +#include "pam_i18n.h" /* argument parsing */ @@ -125,11 +131,11 @@ struct pam_limit_s { /* Limits from globbed files. */ #define LIMITS_CONF_GLOB (LIMITS_FILE_DIR "/*.conf") -#define LIMITS_FILE (SCONFIGDIR "/limits.conf") +#define LIMITS_FILE (SCONFIG_DIR "/limits.conf") -#ifdef VENDOR_SCONFIGDIR -#define VENDOR_LIMITS_FILE (VENDOR_SCONFIGDIR "/limits.conf") -#define VENDOR_LIMITS_CONF_GLOB (VENDOR_SCONFIGDIR "/limits.d/*.conf") +#ifdef VENDOR_SCONFIG_DIR +#define VENDOR_LIMITS_FILE (VENDOR_SCONFIG_DIR "/limits.conf") +#define VENDOR_LIMITS_CONF_GLOB (VENDOR_SCONFIG_DIR "/limits.d/*.conf") #endif static int @@ -239,7 +245,6 @@ static int check_logins (pam_handle_t *pamh, const char *name, int limit, int ctrl, struct pam_limit_s *pl) { - struct utmp *ut; int count; if (ctrl & PAM_DEBUG_ARG) { @@ -254,8 +259,6 @@ check_logins (pam_handle_t *pamh, const char *name, int limit, int ctrl, return LOGIN_ERR; } - setutent(); - /* Because there is no definition about when an application actually adds a utmp entry, some applications bizarrely do the utmp call before the have PAM authenticate them to the system: @@ -272,6 +275,78 @@ check_logins (pam_handle_t *pamh, const char *name, int limit, int ctrl, count = 1; } +#ifdef USE_LOGIND + char **sessions_list; + int sessions = sd_get_sessions(&sessions_list); + + /* maxlogins needs to be 2 with systemd-logind because + of the systemd --user process started with first login by + pam_systemd. + Which is also calling pam_limits, but in this very first special + case the session does already exist and is counted twice. + With start of the second session, session manager is already running + and no longer counted. */ + if (limit == 1) { + pam_syslog(pamh, LOG_WARNING, "Maxlogin limit needs to be 2 or higher with systemd-logind"); + return LIMIT_ERR; + } + + if (sessions < 0) { + pam_syslog(pamh, LOG_ERR, "logind error getting session list: %s", + strerror(-sessions)); + return LIMIT_ERR; + } else if (sessions > 0 && sessions_list != NULL && !pl->flag_numsyslogins) { + int i; + + for (i = 0; i < sessions; i++) { + char *user = NULL; + char *class = NULL; + + if (sd_session_get_class(sessions_list[i], &class) < 0 || class == NULL) + continue; + + if (strncmp(class, "user", 4) != 0) { /* user, user-early, user-incomplete */ + free (class); + continue; + } + free (class); + + if (sd_session_get_username(sessions_list[i], &user) < 0 || user == NULL) { + pam_syslog(pamh, LOG_ERR, "logind error getting username: %s", + strerror(-sessions)); + return LIMIT_ERR; + } + + if (((pl->login_limit_def == LIMITS_DEF_USER) + || (pl->login_limit_def == LIMITS_DEF_GROUP) + || (pl->login_limit_def == LIMITS_DEF_DEFAULT)) + && strcmp(name, user) != 0) { + free(user); + continue; + } + if ((pl->login_limit_def == LIMITS_DEF_ALLGROUP) + && pl->login_group != NULL + && !pam_modutil_user_in_group_nam_nam(pamh, user, pl->login_group)) { + free(user); + continue; + } + free(user); + + if (++count > limit) { + break; + } + } + for (i = 0; i < sessions; i++) + free(sessions_list[i]); + free(sessions_list); + } else { + count = sessions; + } +#else + struct utmp *ut; + + setutent(); + while((ut = getutent())) { #ifdef USER_PROCESS if (ut->ut_type != USER_PROCESS) { @@ -293,6 +368,7 @@ check_logins (pam_handle_t *pamh, const char *name, int limit, int ctrl, continue; } if ((pl->login_limit_def == LIMITS_DEF_ALLGROUP) + && pl->login_group != NULL && !pam_modutil_user_in_group_nam_nam(pamh, user, pl->login_group)) { continue; } @@ -309,6 +385,7 @@ check_logins (pam_handle_t *pamh, const char *name, int limit, int ctrl, } } endutent(); +#endif if (count > limit) { if (name) { pam_syslog(pamh, LOG_NOTICE, @@ -321,7 +398,8 @@ check_logins (pam_handle_t *pamh, const char *name, int limit, int ctrl, return 0; } -static const char *lnames[RLIM_NLIMITS] = { +#ifdef __linux__ +static const char *const lnames[RLIM_NLIMITS] = { [RLIMIT_CPU] = "Max cpu time", [RLIMIT_FSIZE] = "Max file size", [RLIMIT_DATA] = "Max data size", @@ -387,15 +465,16 @@ static rlim_t str2rlim_t(char *value) { pos--; \ while (pos && line[pos] != ' ') pos--; \ if (!pos) continue; \ - item = line + pos + 1; \ + (item) = line + pos + 1; \ } static void parse_kernel_limits(pam_handle_t *pamh, struct pam_limit_s *pl, int ctrl) { - int i, maxlen = 0; + int i; FILE *limitsfile; const char *proclimits = "/proc/1/limits"; - char line[256]; + char *line = NULL; + size_t maxlen = 0, n = 0; char *hard, *soft, *name; if (!(limitsfile = fopen(proclimits, "r"))) { @@ -403,8 +482,8 @@ static void parse_kernel_limits(pam_handle_t *pamh, struct pam_limit_s *pl, int return; } - while (fgets(line, 256, limitsfile)) { - int pos = strlen(line); + while (getline(&line, &n, limitsfile) != -1) { + size_t pos = strlen(line); if (pos < 2) continue; /* drop trailing newline */ @@ -448,8 +527,10 @@ static void parse_kernel_limits(pam_handle_t *pamh, struct pam_limit_s *pl, int pl->limits[i].src_soft = LIMITS_DEF_KERNEL; pl->limits[i].src_hard = LIMITS_DEF_KERNEL; } + free(line); fclose(limitsfile); } +#endif static int init_limits(pam_handle_t *pamh, struct pam_limit_s *pl, int ctrl) { @@ -492,6 +573,7 @@ static int init_limits(pam_handle_t *pamh, struct pam_limit_s *pl, int ctrl) retval = !PAM_SUCCESS; pl->login_limit = -2; pl->login_limit_def = LIMITS_DEF_NONE; + pl->login_group = NULL; return retval; } @@ -504,14 +586,16 @@ static int init_limits(pam_handle_t *pamh, struct pam_limit_s *pl, int ctrl) static int value_from_file(const char *pathname, rlim_t *valuep) { - char buf[128]; FILE *fp; int retval; retval = 0; if ((fp = fopen(pathname, "r")) != NULL) { - if (fgets(buf, sizeof(buf), fp) != NULL) { + char *buf = NULL; + size_t n = 0; + + if (getline(&buf, &n, fp) != -1) { char *endptr; unsigned long long value; @@ -525,6 +609,7 @@ value_from_file(const char *pathname, rlim_t *valuep) } } + free(buf); fclose(fp); } @@ -762,7 +847,6 @@ process_limit (const pam_handle_t *pamh, int source, const char *lim_type, } } } - return; } static int @@ -814,11 +898,66 @@ parse_uid_range(pam_handle_t *pamh, const char *domain, } static int +set_if_null(char **dest, char *def) +{ + if (*dest == NULL) { + *dest = def; + return 0; + } + return 1; +} + +static char * +trim(char *s) +{ + char *p; + + if (s == NULL) + return NULL; + + while (*s == ' ' || *s == '\t') + s++; + + if (*s == '\0') + return NULL; + + p = s + strlen(s) - 1; + while (p >= s && (*p == ' ' || *p == '\t')) + *p-- = '\0'; + return s; +} + +static int +split(char *line, char **domain, char **ltype, char **item, char **value) +{ + char *blank, *saveptr; + int count; + + blank = line + strlen(line); + saveptr = NULL; + + *domain = strtok_r(line, " \t", &saveptr); + *ltype = strtok_r(NULL, " \t", &saveptr); + *item = strtok_r(NULL, " \t", &saveptr); + *value = trim(strtok_r(NULL, "", &saveptr)); + + count = 0; + count += set_if_null(domain, blank); + count += set_if_null(ltype, blank); + count += set_if_null(item, blank); + count += set_if_null(value, blank); + + return count; +} + +static int parse_config_file(pam_handle_t *pamh, const char *uname, uid_t uid, gid_t gid, int ctrl, struct pam_limit_s *pl, const int conf_file_set_by_user) { FILE *fil; - char buf[LINE_LENGTH]; + char *buf = NULL; + size_t n = 0; + unsigned long long lineno = 0; /* check for the conf_file */ if (ctrl & PAM_DEBUG_ARG) @@ -835,20 +974,18 @@ parse_config_file(pam_handle_t *pamh, const char *uname, uid_t uid, gid_t gid, } /* start the show */ - while (fgets(buf, LINE_LENGTH, fil) != NULL) { - char domain[LINE_LENGTH]; - char ltype[LINE_LENGTH]; - char item[LINE_LENGTH]; - char value[LINE_LENGTH]; + while (getline(&buf, &n, fil) != -1) { + char *domain, *ltype, *item, *value, *tptr, *line; int i; int rngtype; size_t j; - char *tptr,*line; uid_t min_uid = (uid_t)-1, max_uid = (uid_t)-1; + lineno++; + line = buf; /* skip the leading white space */ - while (*line && isspace(*line)) + while (*line && isspace((unsigned char)*line)) line++; /* Rip off the comments */ @@ -863,14 +1000,12 @@ parse_config_file(pam_handle_t *pamh, const char *uname, uid_t uid, gid_t gid, if (!strlen(line)) continue; - domain[0] = ltype[0] = item[0] = value[0] = '\0'; - - i = sscanf(line,"%s%s%s%s", domain, ltype, item, value); + i = split(line, &domain, <ype, &item, &value); D(("scanned line[%d]: domain[%s], ltype[%s], item[%s], value[%s]", i, domain, ltype, item, value)); for(j=0; j < strlen(ltype); j++) - ltype[j]=tolower(ltype[j]); + ltype[j]=tolower((unsigned char)ltype[j]); if ((rngtype=parse_uid_range(pamh, domain, &min_uid, &max_uid)) < 0) { pam_syslog(pamh, LOG_WARNING, "invalid uid range '%s' - skipped", domain); @@ -879,11 +1014,11 @@ parse_config_file(pam_handle_t *pamh, const char *uname, uid_t uid, gid_t gid, if (i == 4) { /* a complete line */ for(j=0; j < strlen(item); j++) - item[j]=tolower(item[j]); + item[j]=tolower((unsigned char)item[j]); for(j=0; j < strlen(value); j++) - value[j]=tolower(value[j]); + value[j]=tolower((unsigned char)value[j]); - if (strcmp(uname, domain) == 0) /* this user have a limit */ + if (strcmp(uname, domain) == 0) /* this user has a limit */ process_limit(pamh, LIMITS_DEF_USER, ltype, item, value, ctrl, pl); else if (domain[0]=='@') { if (ctrl & PAM_DEBUG_ARG) { @@ -923,7 +1058,8 @@ parse_config_file(pam_handle_t *pamh, const char *uname, uid_t uid, gid_t gid, process_limit(pamh, LIMITS_DEF_ALL, ltype, item, value, ctrl, pl); else if (pam_modutil_user_in_group_nam_nam(pamh, uname, domain+1)) { - strcpy(pl->login_group, domain+1); + free(pl->login_group); + pl->login_group = strdup(domain+1); process_limit(pamh, LIMITS_DEF_ALLGROUP, ltype, item, value, ctrl, pl); } @@ -932,8 +1068,8 @@ parse_config_file(pam_handle_t *pamh, const char *uname, uid_t uid, gid_t gid, if (pam_modutil_user_in_group_nam_gid(pamh, uname, (gid_t)max_uid)) { struct group *grp; grp = pam_modutil_getgrgid(pamh, (gid_t)max_uid); - strncpy(pl->login_group, grp->gr_name, sizeof(pl->login_group)); - pl->login_group[sizeof(pl->login_group)-1] = '\0'; + free(pl->login_group); + pl->login_group = strdup(grp->gr_name); process_limit(pamh, LIMITS_DEF_ALLGROUP, ltype, item, value, ctrl, pl); } @@ -1011,12 +1147,15 @@ parse_config_file(pam_handle_t *pamh, const char *uname, uid_t uid, gid_t gid, pam_syslog(pamh, LOG_DEBUG, "no limits for '%s'", uname); } } + free(buf); fclose(fil); return PAM_IGNORE; } else { - pam_syslog(pamh, LOG_WARNING, "invalid line '%s' - skipped", line); + pam_syslog(pamh, LOG_WARNING, "invalid line %llu in '%s' - skipped", + lineno, pl->conf_file); } } + free(buf); fclose(fil); return PAM_SUCCESS; } @@ -1078,16 +1217,20 @@ static int setup_limits(pam_handle_t *pamh, } if (pl->nonewprivs) { +#ifdef __linux__ if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) { pam_syslog(pamh, LOG_ERR, "Could not set prctl(PR_SET_NO_NEW_PRIVS): %m"); retval |= LIMIT_ERR; } +#else + pam_syslog(pamh, LOG_INFO, "Setting 'nonewprivs' not supported on this OS"); +#endif } return retval; } -/* --- evaluting all files in VENDORDIR/security/limits.d and /etc/security/limits.d --- */ +/* --- evaluating all files in VENDORDIR/security/limits.d and /etc/security/limits.d --- */ static const char * base_name(const char *path) { @@ -1188,6 +1331,7 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, int ctrl; struct pam_limit_s plstruct; struct pam_limit_s *pl = &plstruct; + char *free_filename = NULL; D(("called.")); @@ -1232,6 +1376,7 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, ctrl, pl, conf_file_set_by_user); if (retval == PAM_IGNORE) { D(("the configuration file ('%s') has an applicable '<domain> -' entry", pl->conf_file)); + free(pl->login_group); return PAM_SUCCESS; } if (retval != PAM_SUCCESS || conf_file_set_by_user) @@ -1247,13 +1392,19 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, if (retval != PAM_SUCCESS) break; } - for (i = 0; filename_list[i] != NULL; i++) - free(filename_list[i]); + for (i = 0; filename_list[i] != NULL; i++) { + if (filename_list[i] == pl->conf_file) + free_filename = filename_list[i]; + else + free(filename_list[i]); + } free(filename_list); } if (retval == PAM_IGNORE) { D(("the configuration file ('%s') has an applicable '<domain> -' entry", pl->conf_file)); + free(free_filename); + free(pl->login_group); return PAM_SUCCESS; } @@ -1261,10 +1412,14 @@ out: if (retval != PAM_SUCCESS) { pam_syslog(pamh, LOG_ERR, "error parsing the configuration file: '%s' ", pl->conf_file); + free(free_filename); + free(pl->login_group); return retval; } retval = setup_limits(pamh, pwd->pw_name, pwd->pw_uid, ctrl, pl); + free(free_filename); + free(pl->login_group); if (retval & LOGIN_ERR) pam_error(pamh, _("There were too many logins for '%s'."), pwd->pw_name); diff --git a/modules/pam_listfile/Makefile.am b/modules/pam_listfile/Makefile.am deleted file mode 100644 index c9ba85f6..00000000 --- a/modules/pam_listfile/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_listfile.8 -endif -XMLS = README.xml pam_listfile.8.xml -dist_check_SCRIPTS = tst-pam_listfile -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_listfile.la -pam_listfile_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_listfile/Makefile.in b/modules/pam_listfile/Makefile.in deleted file mode 100644 index ffe0df6a..00000000 --- a/modules/pam_listfile/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_listfile -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_listfile_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_listfile_la_SOURCES = pam_listfile.c -pam_listfile_la_OBJECTS = pam_listfile.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_listfile.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_listfile.c -DIST_SOURCES = pam_listfile.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_listfile.8 -XMLS = README.xml pam_listfile.8.xml -dist_check_SCRIPTS = tst-pam_listfile -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_listfile.la -pam_listfile_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_listfile/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_listfile/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_listfile.la: $(pam_listfile_la_OBJECTS) $(pam_listfile_la_DEPENDENCIES) $(EXTRA_pam_listfile_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_listfile_la_OBJECTS) $(pam_listfile_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_listfile.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_listfile.log: tst-pam_listfile - @p='tst-pam_listfile'; \ - b='tst-pam_listfile'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_listfile.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_listfile.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_listfile/README b/modules/pam_listfile/README deleted file mode 100644 index 5f926bdf..00000000 --- a/modules/pam_listfile/README +++ /dev/null @@ -1,101 +0,0 @@ -pam_listfile — deny or allow services based on an arbitrary file - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_listfile is a PAM module which provides a way to deny or allow services -based on an arbitrary file. - -The module gets the item of the type specified -- user specifies the username, -PAM_USER; tty specifies the name of the terminal over which the request has -been made, PAM_TTY; rhost specifies the name of the remote host (if any) from -which the request was made, PAM_RHOST; and ruser specifies the name of the -remote user (if available) who made the request, PAM_RUSER -- and looks for an -instance of that item in the file=filename. filename contains one line per item -listed. If the item is found, then if sense=allow, PAM_SUCCESS is returned, -causing the authorization request to succeed; else if sense=deny, PAM_AUTH_ERR -is returned, causing the authorization request to fail. - -If an error is encountered (for instance, if filename does not exist, or a -poorly-constructed argument is encountered), then if onerr=succeed, PAM_SUCCESS -is returned, otherwise if onerr=fail, PAM_AUTH_ERR or PAM_SERVICE_ERR (as -appropriate) will be returned. - -An additional argument, apply=, can be used to restrict the application of the -above to a specific user (apply=username) or a given group (apply=@groupname). -This added restriction is only meaningful when used with the tty, rhost and -shell items. - -Besides this last one, all arguments should be specified; do not count on any -default behavior. - -No credentials are awarded by this module. - -OPTIONS - -item=[tty|user|rhost|ruser|group|shell] - - What is listed in the file and should be checked for. - -sense=[allow|deny] - - Action to take if found in file, if the item is NOT found in the file, then - the opposite action is requested. - -file=/path/filename - - File containing one item per line. The file needs to be a plain file and - not world writable. - -onerr=[succeed|fail] - - What to do if something weird happens like being unable to open the file. - -apply=[user|@group] - - Restrict the user class for which the restriction apply. Note that with - item=[user|ruser|group] this does not make sense, but for item=[tty|rhost| - shell] it have a meaning. - -quiet - - Do not treat service refusals or missing list files as errors that need to - be logged. - -EXAMPLES - -Classic 'ftpusers' authentication can be implemented with this entry in /etc/ -pam.d/ftpd: - -# -# deny ftp-access to users listed in the /etc/ftpusers file -# -auth required pam_listfile.so \ - onerr=succeed item=user sense=deny file=/etc/ftpusers - - -Note, users listed in /etc/ftpusers file are (counterintuitively) not allowed -access to the ftp service. - -To allow login access only for certain users, you can use a /etc/pam.d/login -entry like this: - -# -# permit login to users listed in /etc/loginusers -# -auth required pam_listfile.so \ - onerr=fail item=user sense=allow file=/etc/loginusers - - -For this example to work, all users who are allowed to use the login service -should be listed in the file /etc/loginusers. Unless you are explicitly trying -to lock out root, make sure that when you do this, you leave a way for root to -log in, either by listing root in /etc/loginusers, or by listing a user who is -able to su to the root account. - -AUTHOR - -pam_listfile was written by Michael K. Johnson <johnsonm@redhat.com> and Elliot -Lee <sopwith@cuc.edu>. - diff --git a/modules/pam_listfile/meson.build b/modules/pam_listfile/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_listfile/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_listfile/pam_listfile.8 b/modules/pam_listfile/pam_listfile.8 deleted file mode 100644 index 5052664d..00000000 --- a/modules/pam_listfile/pam_listfile.8 +++ /dev/null @@ -1,211 +0,0 @@ -'\" t -.\" Title: pam_listfile -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_LISTFILE" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_listfile \- deny or allow services based on an arbitrary file -.SH "SYNOPSIS" -.HP \w'\fBpam_listfile\&.so\fR\ 'u -\fBpam_listfile\&.so\fR item=[tty|user|rhost|ruser|group|shell] sense=[allow|deny] file=\fI/path/filename\fR onerr=[succeed|fail] [apply=[\fIuser\fR|\fI@group\fR]] [quiet] -.SH "DESCRIPTION" -.PP -pam_listfile is a PAM module which provides a way to deny or allow services based on an arbitrary file\&. -.PP -The module gets the -\fBitem\fR -of the type specified \-\- -\fIuser\fR -specifies the username, -\fIPAM_USER\fR; tty specifies the name of the terminal over which the request has been made, -\fIPAM_TTY\fR; rhost specifies the name of the remote host (if any) from which the request was made, -\fIPAM_RHOST\fR; and ruser specifies the name of the remote user (if available) who made the request, -\fIPAM_RUSER\fR -\-\- and looks for an instance of that item in the -\fBfile=\fR\fB\fIfilename\fR\fR\&. -filename -contains one line per item listed\&. If the item is found, then if -\fBsense=\fR\fB\fIallow\fR\fR, -\fIPAM_SUCCESS\fR -is returned, causing the authorization request to succeed; else if -\fBsense=\fR\fB\fIdeny\fR\fR, -\fIPAM_AUTH_ERR\fR -is returned, causing the authorization request to fail\&. -.PP -If an error is encountered (for instance, if -filename -does not exist, or a poorly\-constructed argument is encountered), then if -\fIonerr=succeed\fR, -\fIPAM_SUCCESS\fR -is returned, otherwise if -\fIonerr=fail\fR, -\fIPAM_AUTH_ERR\fR -or -\fIPAM_SERVICE_ERR\fR -(as appropriate) will be returned\&. -.PP -An additional argument, -\fBapply=\fR, can be used to restrict the application of the above to a specific user (\fBapply=\fR\fB\fIusername\fR\fR) or a given group (\fBapply=\fR\fB\fI@groupname\fR\fR)\&. This added restriction is only meaningful when used with the -\fItty\fR, -\fIrhost\fR -and -\fIshell\fR -items\&. -.PP -Besides this last one, all arguments should be specified; do not count on any default behavior\&. -.PP -No credentials are awarded by this module\&. -.SH "OPTIONS" -.PP -.PP -item=[tty|user|rhost|ruser|group|shell] -.RS 4 -What is listed in the file and should be checked for\&. -.RE -.PP -sense=[allow|deny] -.RS 4 -Action to take if found in file, if the item is NOT found in the file, then the opposite action is requested\&. -.RE -.PP -file=/path/filename -.RS 4 -File containing one item per line\&. The file needs to be a plain file and not world writable\&. -.RE -.PP -onerr=[succeed|fail] -.RS 4 -What to do if something weird happens like being unable to open the file\&. -.RE -.PP -apply=[user|@group] -.RS 4 -Restrict the user class for which the restriction apply\&. Note that with -\fBitem=[user|ruser|group]\fR -this does not make sense, but for -\fBitem=[tty|rhost|shell]\fR -it have a meaning\&. -.RE -.PP -quiet -.RS 4 -Do not treat service refusals or missing list files as errors that need to be logged\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_AUTH_ERR -.RS 4 -Authentication failure\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_IGNORE -.RS 4 -The rule does not apply to the -\fBapply\fR -option\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Error in service module\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success\&. -.RE -.SH "EXAMPLES" -.PP -Classic \*(Aqftpusers\*(Aq authentication can be implemented with this entry in -/etc/pam\&.d/ftpd: -.sp -.if n \{\ -.RS 4 -.\} -.nf -# -# deny ftp\-access to users listed in the /etc/ftpusers file -# -auth required pam_listfile\&.so \e - onerr=succeed item=user sense=deny file=/etc/ftpusers - -.fi -.if n \{\ -.RE -.\} -.sp -Note, users listed in -/etc/ftpusers -file are (counterintuitively) -\fInot\fR -allowed access to the ftp service\&. -.PP -To allow login access only for certain users, you can use a -/etc/pam\&.d/login -entry like this: -.sp -.if n \{\ -.RS 4 -.\} -.nf -# -# permit login to users listed in /etc/loginusers -# -auth required pam_listfile\&.so \e - onerr=fail item=user sense=allow file=/etc/loginusers - -.fi -.if n \{\ -.RE -.\} -.sp -For this example to work, all users who are allowed to use the login service should be listed in the file -/etc/loginusers\&. Unless you are explicitly trying to lock out root, make sure that when you do this, you leave a way for root to log in, either by listing root in -/etc/loginusers, or by listing a user who is able to -\fIsu\fR -to the root account\&. -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_listfile was written by Michael K\&. Johnson <johnsonm@redhat\&.com> and Elliot Lee <sopwith@cuc\&.edu>\&. diff --git a/modules/pam_listfile/pam_listfile.8.xml b/modules/pam_listfile/pam_listfile.8.xml index 8847415a..40a553dc 100644 --- a/modules/pam_listfile/pam_listfile.8.xml +++ b/modules/pam_listfile/pam_listfile.8.xml @@ -47,28 +47,27 @@ <para> The module gets the <option>item</option> of the type specified -- <emphasis>user</emphasis> specifies the username, - <emphasis>PAM_USER</emphasis>; tty specifies the name of the terminal - over which the request has been made, <emphasis>PAM_TTY</emphasis>; - rhost specifies the name of the remote host (if any) from which the - request was made, <emphasis>PAM_RHOST</emphasis>; and ruser specifies + <emphasis>PAM_USER</emphasis>; <emphasis>tty</emphasis> specifies the + name of the terminal (if any) over which the request has been made, + <emphasis>PAM_TTY</emphasis>; <emphasis>rhost</emphasis> specifies the + name of the remote host (if any) from which the request was made, + <emphasis>PAM_RHOST</emphasis>; and <emphasis>ruser</emphasis> specifies the name of the remote user (if available) who made the request, - <emphasis>PAM_RUSER</emphasis> -- and looks for an instance of that - item in the <option>file=<replaceable>filename</replaceable></option>. - <filename>filename</filename> contains one line per item listed. If - the item is found, then if - <option>sense=<replaceable>allow</replaceable></option>, + <emphasis>PAM_RUSER</emphasis> -- and looks for an instance of that item + in the <option>file=<replaceable>filename</replaceable></option>. + <filename>filename</filename> contains one line per item listed. If the + item is found, then if <option>sense=allow</option>, <emphasis>PAM_SUCCESS</emphasis> is returned, causing the authorization - request to succeed; else if - <option>sense=<replaceable>deny</replaceable></option>, + request to succeed; else if <option>sense=deny</option>, <emphasis>PAM_AUTH_ERR</emphasis> is returned, causing the authorization request to fail. </para> <para> If an error is encountered (for instance, if <filename>filename</filename> does not exist, or a poorly-constructed - argument is encountered), then if <emphasis>onerr=succeed</emphasis>, + argument is encountered), then if <option>onerr=succeed</option>, <emphasis>PAM_SUCCESS</emphasis> is returned, otherwise if - <emphasis>onerr=fail</emphasis>, <emphasis>PAM_AUTH_ERR</emphasis> or + <option>onerr=fail</option>, <emphasis>PAM_AUTH_ERR</emphasis> or <emphasis>PAM_SERVICE_ERR</emphasis> (as appropriate) will be returned. </para> <para> @@ -113,8 +112,9 @@ </term> <listitem> <para> - Action to take if found in file, if the item is NOT found in - the file, then the opposite action is requested. + Action to take if the item is found in the file. + If the item is NOT found in the file, + then the opposite action is requested. </para> </listitem> </varlistentry> @@ -151,7 +151,7 @@ <para> Restrict the user class for which the restriction apply. Note that with <option>item=[user|ruser|group]</option> this does not make sense, - but for <option>item=[tty|rhost|shell]</option> it have a meaning. + but for <option>item=[tty|rhost|shell]</option> it has a meaning. </para> </listitem> </varlistentry> @@ -291,4 +291,4 @@ auth required pam_listfile.so \ </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_listfile/pam_listfile.c b/modules/pam_listfile/pam_listfile.c index 937576fd..b0bd2214 100644 --- a/modules/pam_listfile/pam_listfile.c +++ b/modules/pam_listfile/pam_listfile.c @@ -44,129 +44,136 @@ #define LESSER(a, b) ((a) < (b) ? (a) : (b)) -int -pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, - int argc, const char **argv) +static int +pam_listfile(pam_handle_t *pamh, int argc, const char **argv) { - int retval, i, citem=0, extitem=0, onerr=PAM_SERVICE_ERR, sense=2, quiet=0; + int retval = -1; + int onerr = PAM_SERVICE_ERR; + int citem = 0; + int extitem = 0; + int sense = -1; + int quiet = 0; + int i; const void *void_citemp; const char *citemp; - char *ifname=NULL; - char aline[256]; - char mybuf[256],myval[256],apply_val[256]; + const char *ifname=NULL; + char *aline=NULL; + const char *apply_val; struct stat fileinfo; FILE *inf; int apply_type; + size_t n=0; /* Stuff for "extended" items */ struct passwd *userinfo; apply_type=APPLY_TYPE_NULL; - apply_val[0] = '\0'; + apply_val = ""; for(i=0; i < argc; i++) { - { - const char *junk; + const char *str; - /* option quiet has no value */ - if(!strcmp(argv[i],"quiet")) { - quiet = 1; - continue; - } + /* option quiet has no value */ + if(!strcmp(argv[i],"quiet")) { + quiet = 1; + continue; + } - memset(mybuf,'\0',sizeof(mybuf)); - memset(myval,'\0',sizeof(myval)); - junk = strchr(argv[i], '='); - if((junk == NULL) || (junk - argv[i]) >= (int) sizeof(mybuf)) { - pam_syslog(pamh,LOG_ERR, "Bad option: \"%s\"", - argv[i]); - continue; - } - strncpy(mybuf, argv[i], - LESSER(junk - argv[i], (int)sizeof(mybuf) - 1)); - strncpy(myval, junk + 1, sizeof(myval) - 1); + if(strchr(argv[i], '=') == NULL) { + pam_syslog(pamh,LOG_ERR, "Bad option: \"%s\"", argv[i]); + continue; } - if(!strcmp(mybuf,"onerr")) - if(!strcmp(myval,"succeed")) + if ((str = pam_str_skip_prefix(argv[i], "onerr=")) != NULL) { + if(!strcmp(str,"succeed")) onerr = PAM_SUCCESS; - else if(!strcmp(myval,"fail")) + else if(!strcmp(str,"fail")) onerr = PAM_SERVICE_ERR; else { - if (ifname) free (ifname); - return PAM_SERVICE_ERR; + pam_syslog(pamh, LOG_ERR, "Unknown option: %s", argv[i]); + if (retval == -1) + retval = PAM_SERVICE_ERR; + continue; } - else if(!strcmp(mybuf,"sense")) - if(!strcmp(myval,"allow")) + } else if ((str = pam_str_skip_prefix(argv[i], "sense=")) != NULL) { + if(!strcmp(str,"allow")) sense=0; - else if(!strcmp(myval,"deny")) + else if(!strcmp(str,"deny")) sense=1; else { - if (ifname) free (ifname); - return onerr; + pam_syslog(pamh, LOG_ERR, "Unknown option: %s", argv[i]); + if (retval == -1) + retval = onerr; + continue; } - else if(!strcmp(mybuf,"file")) { - if (ifname) free (ifname); - ifname = (char *)malloc(strlen(myval)+1); - if (!ifname) - return PAM_BUF_ERR; - strcpy(ifname,myval); - } else if(!strcmp(mybuf,"item")) - if(!strcmp(myval,"user")) + } else if ((str = pam_str_skip_prefix(argv[i], "file=")) != NULL) { + ifname = str; + } else if ((str = pam_str_skip_prefix(argv[i], "item=")) != NULL) { + if(!strcmp(str,"user")) citem = PAM_USER; - else if(!strcmp(myval,"tty")) + else if(!strcmp(str,"tty")) citem = PAM_TTY; - else if(!strcmp(myval,"rhost")) + else if(!strcmp(str,"rhost")) citem = PAM_RHOST; - else if(!strcmp(myval,"ruser")) + else if(!strcmp(str,"ruser")) citem = PAM_RUSER; else { /* These items are related to the user, but are not directly gettable with pam_get_item */ citem = PAM_USER; - if(!strcmp(myval,"group")) + if(!strcmp(str,"group")) extitem = EI_GROUP; - else if(!strcmp(myval,"shell")) + else if(!strcmp(str,"shell")) extitem = EI_SHELL; else citem = 0; - } else if(!strcmp(mybuf,"apply")) { - apply_type=APPLY_TYPE_NONE; - if (myval[0]=='@') { - apply_type=APPLY_TYPE_GROUP; - memcpy(apply_val,myval+1,sizeof(myval)-1); - } else { - apply_type=APPLY_TYPE_USER; - memcpy(apply_val,myval,sizeof(myval)); - } + } + } else if ((str = pam_str_skip_prefix(argv[i], "apply=")) != NULL) { + apply_type=APPLY_TYPE_NONE; + if (*str=='@') { + apply_type=APPLY_TYPE_GROUP; + apply_val = str+1; } else { - free(ifname); - pam_syslog(pamh,LOG_ERR, "Unknown option: %s",mybuf); - return onerr; + apply_type=APPLY_TYPE_USER; + apply_val = str; } + } else { + pam_syslog(pamh,LOG_ERR, "Unknown option: %s",argv[i]); + if (retval == -1) + retval = onerr; + continue; + } } - if(!citem) { + if (!citem) { pam_syslog(pamh,LOG_ERR, "Unknown item or item not specified"); - free(ifname); - return onerr; - } else if(!ifname) { + if (retval == -1) + retval = onerr; + } + + if (!ifname) { pam_syslog(pamh,LOG_ERR, "List filename not specified"); - return onerr; - } else if(sense == 2) { + if (retval == -1) + retval = onerr; + } + + if (sense == -1) { pam_syslog(pamh,LOG_ERR, "Unknown sense or sense not specified"); - free(ifname); - return onerr; - } else if( - (apply_type==APPLY_TYPE_NONE) || - ((apply_type!=APPLY_TYPE_NULL) && (*apply_val=='\0')) - ) { + if (retval == -1) + retval = onerr; + } + + if ((apply_type == APPLY_TYPE_NONE) || + ((apply_type != APPLY_TYPE_NULL) && (*apply_val == '\0'))) { pam_syslog(pamh,LOG_ERR, "Invalid usage for apply= parameter"); - free (ifname); - return onerr; + if (retval == -1) + retval = onerr; } + if (retval != -1) + return retval; + /* Check if it makes sense to use the apply= parameter */ if (apply_type != APPLY_TYPE_NULL) { if((citem==PAM_USER) || (citem==PAM_RUSER)) { @@ -181,7 +188,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, } } - /* Short-circuit - test if this session apply for this user */ + /* Short-circuit - test if this session applies for this user */ { const char *user_name; int rval; @@ -197,7 +204,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, "don't apply: apply=%s, user=%s", apply_val,user_name); #endif /* PAM_DEBUG */ - free(ifname); return PAM_IGNORE; } } else if(apply_type==APPLY_TYPE_GROUP) { @@ -209,7 +215,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, "don't apply: %s not a member of group %s", user_name,apply_val); #endif /* PAM_DEBUG */ - free(ifname); return PAM_IGNORE; } } @@ -219,13 +224,11 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, retval = pam_get_item(pamh,citem,&void_citemp); citemp = void_citemp; if(retval != PAM_SUCCESS) { - free(ifname); return onerr; } if((citem == PAM_USER) && !citemp) { retval = pam_get_user(pamh,&citemp,NULL); if (retval != PAM_SUCCESS) { - free(ifname); return PAM_SERVICE_ERR; } } @@ -237,7 +240,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, } if(!citemp || (strlen(citemp) == 0)) { - free(ifname); /* The item was NULL - we are sure not to match */ return sense?PAM_SUCCESS:PAM_AUTH_ERR; } @@ -255,7 +257,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, if (userinfo == NULL) { pam_syslog(pamh, LOG_NOTICE, "getpwnam(%s) failed", citemp); - free(ifname); return onerr; } citemp = userinfo->pw_shell; @@ -265,7 +266,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, "Internal weirdness, unknown extended item %d", extitem); - free(ifname); return onerr; } } @@ -278,7 +278,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, if(lstat(ifname,&fileinfo)) { if(!quiet) pam_syslog(pamh,LOG_ERR, "Couldn't open %s",ifname); - free(ifname); return onerr; } @@ -289,7 +288,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, pam_syslog(pamh,LOG_ERR, "%s is either world writable or not a normal file", ifname); - free(ifname); return PAM_AUTH_ERR; } @@ -299,7 +297,6 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, /* Only report if it's an error... */ pam_syslog(pamh,LOG_ERR, "Error opening %s", ifname); } - free(ifname); return onerr; } /* There should be no more errors from here on */ @@ -310,18 +307,12 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, assert(PAM_SUCCESS == 0); assert(PAM_AUTH_ERR != 0); #endif - while((fgets(aline,sizeof(aline),inf) != NULL) - && retval) { + while(retval && getline(&aline,&n,inf) != -1) { const char *a = aline; - if(strlen(aline) == 0) - continue; - if(aline[strlen(aline) - 1] == '\n') - aline[strlen(aline) - 1] = '\0'; - if(strlen(aline) == 0) + aline[strcspn(aline, "\r\n")] = '\0'; + if(aline[0] == '\0') continue; - if(aline[strlen(aline) - 1] == '\r') - aline[strlen(aline) - 1] = '\0'; if(citem == PAM_TTY) { const char *str = pam_str_skip_prefix(a, "/dev/"); if (str != NULL) @@ -335,8 +326,8 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, } } + free(aline); fclose(inf); - free(ifname); if ((sense && retval) || (!sense && !retval)) { #ifdef PAM_DEBUG pam_syslog(pamh,LOG_INFO, @@ -361,36 +352,43 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, } int -pam_sm_setcred (pam_handle_t *pamh UNUSED, int flags UNUSED, - int argc UNUSED, const char **argv UNUSED) +pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) +{ + return pam_listfile(pamh, argc, argv); +} + +int +pam_sm_setcred(pam_handle_t *pamh UNUSED, int flags UNUSED, + int argc UNUSED, const char **argv UNUSED) { return PAM_SUCCESS; } int -pam_sm_acct_mgmt (pam_handle_t *pamh, int flags, - int argc, const char **argv) +pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_listfile(pamh, argc, argv); } int -pam_sm_open_session (pam_handle_t *pamh, int flags, - int argc, const char **argv) +pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_listfile(pamh, argc, argv); } int -pam_sm_close_session (pam_handle_t *pamh, int flags, - int argc, const char **argv) +pam_sm_close_session(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_listfile(pamh, argc, argv); } int -pam_sm_chauthtok (pam_handle_t *pamh, int flags, - int argc, const char **argv) +pam_sm_chauthtok(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_listfile(pamh, argc, argv); } diff --git a/modules/pam_listfile/tst-pam_listfile-retval.c b/modules/pam_listfile/tst-pam_listfile-retval.c new file mode 100644 index 00000000..02ed9446 --- /dev/null +++ b/modules/pam_listfile/tst-pam_listfile-retval.c @@ -0,0 +1,620 @@ +/* + * Check pam_listfile return values. + * + * Copyright (c) 2023 Dmitry V. Levin <ldv@strace.io> + */ + +#include "test_assert.h" + +#include <errno.h> +#include <limits.h> +#include <pwd.h> +#include <grp.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <security/pam_appl.h> + +#define MODULE_NAME "pam_listfile" +#define TEST_NAME "tst-" MODULE_NAME "-retval" + +static const char service_file[] = TEST_NAME ".service"; +static const char list_file[] = TEST_NAME ".list"; +static struct pam_conv conv; + +int +main(void) +{ + pam_handle_t *pamh = NULL; + FILE *fp; + + char cwd[PATH_MAX]; + ASSERT_NE(NULL, getcwd(cwd, sizeof(cwd))); + + struct passwd *pw; + ASSERT_NE(NULL, (pw = getpwuid(geteuid()))); + + struct group *gr; + ASSERT_NE(NULL, (gr = getgrgid(getegid()))); + + /* invalid onerr= specified */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so onerr\n" + "account required %s/" LTDIR "%s.so onerr=\n" + "password required %s/" LTDIR "%s.so onerr=0\n" + "session required %s/" LTDIR "%s.so onerr=1\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* unknown option, implicit onerr=fail */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so one=1\n" + "account required %s/" LTDIR "%s.so two=2\n" + "password required %s/" LTDIR "%s.so three=3\n" + "session required %s/" LTDIR "%s.so four=4\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* unknown option, onerr=succeed after unknown option */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so one=1 onerr=succeed\n" + "account required %s/" LTDIR "%s.so two=2 onerr=succeed\n" + "password required %s/" LTDIR "%s.so three=3 onerr=succeed\n" + "session required %s/" LTDIR "%s.so four=4 onerr=succeed\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* unknown option, onerr=succeed before unknown option */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so onerr=succeed one=1\n" + "account required %s/" LTDIR "%s.so onerr=succeed two=2\n" + "password required %s/" LTDIR "%s.so onerr=succeed three=3\n" + "session required %s/" LTDIR "%s.so onerr=succeed four=4\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* no item= or invalid item= specified, implicit onerr=fail */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so item\n" + "password required %s/" LTDIR "%s.so item=\n" + "session required %s/" LTDIR "%s.so item=bad\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* no item= or invalid item= specified, explicit onerr=fail */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so onerr=fail\n" + "account required %s/" LTDIR "%s.so onerr=fail item\n" + "password required %s/" LTDIR "%s.so onerr=fail item=\n" + "session required %s/" LTDIR "%s.so onerr=fail item=bad\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* no item= or invalid item= specified, onerr=succeed */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so onerr=succeed\n" + "account required %s/" LTDIR "%s.so onerr=succeed item\n" + "password required %s/" LTDIR "%s.so onerr=succeed item=\n" + "session required %s/" LTDIR "%s.so onerr=succeed item=bad\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* no file= specified, implicit onerr=fail */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=user\n" + "account required %s/" LTDIR "%s.so item=group\n" + "password required %s/" LTDIR "%s.so item=ruser\n" + "session required %s/" LTDIR "%s.so item=rhost\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* no file= specified, onerr=succeed */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so onerr=succeed item=user\n" + "account required %s/" LTDIR "%s.so onerr=succeed item=group\n" + "password required %s/" LTDIR "%s.so onerr=succeed item=ruser\n" + "session required %s/" LTDIR "%s.so onerr=succeed item=rhost\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* no sense= or invalid sense= specified, implicit onerr=fail */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=user file=.\n" + "account required %s/" LTDIR "%s.so item=group file=. sense\n" + "password required %s/" LTDIR "%s.so item=shell file=. sense=\n" + "session required %s/" LTDIR "%s.so item=tty file=. sense=bad\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* no sense= or invalid sense= specified, onerr=succeed */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so onerr=succeed item=user file=.\n" + "account required %s/" LTDIR "%s.so onerr=succeed item=group file=. sense\n" + "password required %s/" LTDIR "%s.so onerr=succeed item=shell file=. sense=\n" + "session required %s/" LTDIR "%s.so onerr=succeed item=tty file=. sense=bad\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* invalid apply= specified, implicit onerr=fail */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=ruser file=. sense=allow apply=\n" + "account required %s/" LTDIR "%s.so item=rhost file=. sense=allow apply=\n" + "password required %s/" LTDIR "%s.so item=tty file=. sense=allow apply=@\n" + "session required %s/" LTDIR "%s.so item=tty file=. sense=allow apply=\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* invalid apply= specified, onerr=succeed */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so onerr=succeed item=ruser file=. sense=allow apply=\n" + "account required %s/" LTDIR "%s.so onerr=succeed item=rhost file=. sense=allow apply=\n" + "password required %s/" LTDIR "%s.so onerr=succeed item=tty file=. sense=allow apply=@\n" + "session required %s/" LTDIR "%s.so onerr=succeed item=tty file=. sense=allow apply=\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, "", &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* PAM_IGNORE -> PAM_PERM_DENIED */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=rhost file=. sense=allow apply=:\n" + "account required %s/" LTDIR "%s.so item=tty file=. sense=allow apply=@:\n" + "password required %s/" LTDIR "%s.so item=rhost file=. sense=allow apply=:\n" + "session required %s/" LTDIR "%s.so item=tty file=. sense=allow apply=@:\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_PERM_DENIED, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* item not set, sense=allow */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=rhost file=. sense=allow apply=%s\n" + "account required %s/" LTDIR "%s.so item=tty file=. sense=allow apply=%s\n" + "password required %s/" LTDIR "%s.so item=rhost file=. sense=allow apply=@%s\n" + "session required %s/" LTDIR "%s.so item=tty file=. sense=allow apply=@%s\n", + cwd, MODULE_NAME, pw->pw_name, + cwd, MODULE_NAME, pw->pw_name, + cwd, MODULE_NAME, gr->gr_name, + cwd, MODULE_NAME, gr->gr_name)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_AUTH_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* item not set, sense=deny */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=ruser file=. sense=deny\n" + "account required %s/" LTDIR "%s.so item=rhost file=. sense=deny\n" + "password required %s/" LTDIR "%s.so item=tty file=. sense=deny\n" + "session required %s/" LTDIR "%s.so item=ruser file=. sense=deny\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* file does not exist, not a regular file, or world writable */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=user file= sense=allow\n" + "account required %s/" LTDIR "%s.so item=user file=. sense=allow onerr=succeed\n" + "password required %s/" LTDIR "%s.so item=user file=/ sense=allow onerr=succeed\n" + "session required %s/" LTDIR "%s.so item=user file=/dev/null sense=allow onerr=succeed\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* item is listed, sense=allow */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=user file=%s sense=allow\n" + "account required %s/" LTDIR "%s.so item=user file=%s sense=allow\n" + "password required %s/" LTDIR "%s.so item=user file=%s sense=allow\n" + "session required %s/" LTDIR "%s.so item=user file=%s sense=allow\n", + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_NE(NULL, fp = fopen(list_file, "w")); + ASSERT_LT(0, fprintf(fp, "%s\n", pw->pw_name)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* item is listed, sense=deny */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=user file=%s sense=deny\n" + "account required %s/" LTDIR "%s.so item=user file=%s sense=deny\n" + "password required %s/" LTDIR "%s.so item=user file=%s sense=deny\n" + "session required %s/" LTDIR "%s.so item=user file=%s sense=deny\n", + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_NE(NULL, fp = fopen(list_file, "w")); + ASSERT_LT(0, fprintf(fp, "%s\n", pw->pw_name)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_AUTH_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* item is not listed, sense=allow */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=user file=%s sense=allow\n" + "account required %s/" LTDIR "%s.so item=user file=%s sense=allow\n" + "password required %s/" LTDIR "%s.so item=user file=%s sense=allow\n" + "session required %s/" LTDIR "%s.so item=user file=%s sense=allow\n", + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_NE(NULL, fp = fopen(list_file, "w")); + ASSERT_LT(0, fprintf(fp, ":\n")); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_AUTH_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* item is not listed, sense=deny */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so item=user file=%s sense=deny\n" + "account required %s/" LTDIR "%s.so item=user file=%s sense=deny\n" + "password required %s/" LTDIR "%s.so item=user file=%s sense=deny\n" + "session required %s/" LTDIR "%s.so item=user file=%s sense=deny\n", + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_NE(NULL, fp = fopen(list_file, "w")); + ASSERT_LT(0, fprintf(fp, ":\n")); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + /* Perform a test dedicated to configuration file parsing. */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "# support line continuations, ignore escaped newlines in comments \\\n" + "auth required \\\n" + " %s/" LTDIR "%s.so \\ \n" + " item=user \\\t\t\n" + " file=%s \\ \t \t\n" + " sense=deny\n" + "\t \t # allow unneeded whitespace, ignore escaped newlines in comments \\ \n" + " account\t required %s/" LTDIR "%s.so item=user file=%s sense=deny%c\\\n" + "line after NUL byte continues up to here\n" + "# trim trailing comments, ignore escaped newlines in comments \\\t\n" + "password required %s/" LTDIR "%s.so item=user file=%s sense=deny # foo=bar\n" + "# support %*s long lines\n" + "session required %*s/" LTDIR "%s.so item=user file=%s sense=deny", + cwd, MODULE_NAME, list_file, + cwd, MODULE_NAME, list_file, '\0', + cwd, MODULE_NAME, list_file, + 8192, " ", + 65536, cwd, MODULE_NAME, list_file)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, pw->pw_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + ASSERT_EQ(0, unlink(list_file)); + ASSERT_EQ(0, unlink(service_file)); + + return 0; +} diff --git a/modules/pam_localuser/Makefile.am b/modules/pam_localuser/Makefile.am deleted file mode 100644 index f5d49dac..00000000 --- a/modules/pam_localuser/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_localuser.8 -endif -XMLS = README.xml pam_localuser.8.xml -dist_check_SCRIPTS = tst-pam_localuser -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_localuser.la -pam_localuser_la_LIBADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_localuser-retval -tst_pam_localuser_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_localuser/Makefile.in b/modules/pam_localuser/Makefile.in deleted file mode 100644 index 57ea3071..00000000 --- a/modules/pam_localuser/Makefile.in +++ /dev/null @@ -1,1192 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_localuser-retval$(EXEEXT) -subdir = modules/pam_localuser -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_localuser_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_localuser_la_SOURCES = pam_localuser.c -pam_localuser_la_OBJECTS = pam_localuser.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_localuser_retval_SOURCES = tst-pam_localuser-retval.c -tst_pam_localuser_retval_OBJECTS = tst-pam_localuser-retval.$(OBJEXT) -tst_pam_localuser_retval_DEPENDENCIES = \ - $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_localuser.Plo \ - ./$(DEPDIR)/tst-pam_localuser-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_localuser.c tst-pam_localuser-retval.c -DIST_SOURCES = pam_localuser.c tst-pam_localuser-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_localuser.8 -XMLS = README.xml pam_localuser.8.xml -dist_check_SCRIPTS = tst-pam_localuser -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_localuser.la -pam_localuser_la_LIBADD = $(top_builddir)/libpam/libpam.la -tst_pam_localuser_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_localuser/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_localuser/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_localuser.la: $(pam_localuser_la_OBJECTS) $(pam_localuser_la_DEPENDENCIES) $(EXTRA_pam_localuser_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_localuser_la_OBJECTS) $(pam_localuser_la_LIBADD) $(LIBS) - -tst-pam_localuser-retval$(EXEEXT): $(tst_pam_localuser_retval_OBJECTS) $(tst_pam_localuser_retval_DEPENDENCIES) $(EXTRA_tst_pam_localuser_retval_DEPENDENCIES) - @rm -f tst-pam_localuser-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_localuser_retval_OBJECTS) $(tst_pam_localuser_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_localuser.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_localuser-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_localuser.log: tst-pam_localuser - @p='tst-pam_localuser'; \ - b='tst-pam_localuser'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_localuser-retval.log: tst-pam_localuser-retval$(EXEEXT) - @p='tst-pam_localuser-retval$(EXEEXT)'; \ - b='tst-pam_localuser-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_localuser.Plo - -rm -f ./$(DEPDIR)/tst-pam_localuser-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_localuser.Plo - -rm -f ./$(DEPDIR)/tst-pam_localuser-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_localuser/README b/modules/pam_localuser/README deleted file mode 100644 index e4c932cb..00000000 --- a/modules/pam_localuser/README +++ /dev/null @@ -1,38 +0,0 @@ -pam_localuser — require users to be listed in /etc/passwd - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_localuser is a PAM module to help implementing site-wide login policies, -where they typically include a subset of the network's users and a few accounts -that are local to a particular workstation. Using pam_localuser and pam_wheel -or pam_listfile is an effective way to restrict access to either local users -and/or a subset of the network's users. - -This could also be implemented using pam_listfile.so and a very short awk -script invoked by cron, but it's common enough to have been separated out. - -OPTIONS - -debug - - Print debug information. - -file=/path/passwd - - Use a file other than /etc/passwd. - -EXAMPLES - -Add the following lines to /etc/pam.d/su to allow only local users or group -wheel to use su. - -account sufficient pam_localuser.so -account required pam_wheel.so - - -AUTHOR - -pam_localuser was written by Nalin Dahyabhai <nalin@redhat.com>. - diff --git a/modules/pam_localuser/meson.build b/modules/pam_localuser/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_localuser/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_localuser/pam_localuser.8 b/modules/pam_localuser/pam_localuser.8 deleted file mode 100644 index 455fdb2d..00000000 --- a/modules/pam_localuser/pam_localuser.8 +++ /dev/null @@ -1,123 +0,0 @@ -'\" t -.\" Title: pam_localuser -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_LOCALUSER" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_localuser \- require users to be listed in /etc/passwd -.SH "SYNOPSIS" -.HP \w'\fBpam_localuser\&.so\fR\ 'u -\fBpam_localuser\&.so\fR [debug] [file=\fI/path/passwd\fR] -.SH "DESCRIPTION" -.PP -pam_localuser is a PAM module to help implementing site\-wide login policies, where they typically include a subset of the network\*(Aqs users and a few accounts that are local to a particular workstation\&. Using pam_localuser and pam_wheel or pam_listfile is an effective way to restrict access to either local users and/or a subset of the network\*(Aqs users\&. -.PP -This could also be implemented using pam_listfile\&.so and a very short awk script invoked by cron, but it\*(Aqs common enough to have been separated out\&. -.SH "OPTIONS" -.PP -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -file=/path/passwd -.RS 4 -Use a file other than -/etc/passwd\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBaccount\fR, -\fBauth\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_SUCCESS -.RS 4 -The new localuser was set successfully\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -The conversation method supplied by the application failed to obtain the username\&. -.RE -.PP -PAM_INCOMPLETE -.RS 4 -The conversation method supplied by the application returned PAM_CONV_AGAIN\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -The user name is not valid or the passwd file is unavailable\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -The user is not listed in the passwd file\&. -.RE -.SH "EXAMPLES" -.PP -Add the following lines to -/etc/pam\&.d/su -to allow only local users or group wheel to use su\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -account sufficient pam_localuser\&.so -account required pam_wheel\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "FILES" -.PP -/etc/passwd -.RS 4 -Local user account information\&. -.RE -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_localuser was written by Nalin Dahyabhai <nalin@redhat\&.com>\&. diff --git a/modules/pam_localuser/pam_localuser.c b/modules/pam_localuser/pam_localuser.c index a9f2233c..e47bb00f 100644 --- a/modules/pam_localuser/pam_localuser.c +++ b/modules/pam_localuser/pam_localuser.c @@ -49,9 +49,8 @@ #include <security/pam_ext.h> #include "pam_inline.h" -int -pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, - int argc, const char **argv) +static int +pam_localuser(pam_handle_t *pamh, int argc, const char **argv) { int i; int rc; @@ -102,25 +101,36 @@ pam_sm_setcred(pam_handle_t *pamh UNUSED, int flags UNUSED, } int -pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) +{ + return pam_localuser(pamh, argc, argv); +} + +int +pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_localuser(pamh, argc, argv); } int -pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_localuser(pamh, argc, argv); } int -pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_close_session(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_localuser(pamh, argc, argv); } int -pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_chauthtok(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_localuser(pamh, argc, argv); } diff --git a/modules/pam_localuser/tst-pam_localuser-retval.c b/modules/pam_localuser/tst-pam_localuser-retval.c index 5581cecc..f6c22f97 100644 --- a/modules/pam_localuser/tst-pam_localuser-retval.c +++ b/modules/pam_localuser/tst-pam_localuser-retval.c @@ -39,7 +39,7 @@ main(void) /* default passwd */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME)); ASSERT_EQ(0, fclose(fp)); @@ -55,7 +55,7 @@ main(void) ASSERT_EQ(PAM_SUCCESS, pam_start_confdir(service_file, name, &conv, ".", &pamh)); ASSERT_NE(NULL, pamh); - ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_authenticate(pamh, 0)); ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); pamh = NULL; @@ -69,7 +69,7 @@ main(void) /* missing passwd file */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so file=%s\n", + "auth required %s/" LTDIR "%s.so file=%s\n", cwd, MODULE_NAME, missing_file)); ASSERT_EQ(0, fclose(fp)); @@ -83,7 +83,7 @@ main(void) /* custom passwd file */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so file=%s\n", + "auth required %s/" LTDIR "%s.so file=%s\n", cwd, MODULE_NAME, passwd_file)); ASSERT_EQ(0, fclose(fp)); @@ -105,7 +105,7 @@ main(void) ASSERT_EQ(PAM_SUCCESS, pam_start_confdir(service_file, name, &conv, ".", &pamh)); ASSERT_NE(NULL, pamh); - ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_PERM_DENIED, pam_authenticate(pamh, 0)); ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); pamh = NULL; diff --git a/modules/pam_loginuid/Makefile.am b/modules/pam_loginuid/Makefile.am deleted file mode 100644 index f7f5fd85..00000000 --- a/modules/pam_loginuid/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_loginuid.8 -endif -XMLS = README.xml pam_loginuid.8.xml -dist_check_SCRIPTS = tst-pam_loginuid -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_loginuid.la -pam_loginuid_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBAUDIT@ - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_loginuid/Makefile.in b/modules/pam_loginuid/Makefile.in deleted file mode 100644 index fbb16ac9..00000000 --- a/modules/pam_loginuid/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_loginuid -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_loginuid_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_loginuid_la_SOURCES = pam_loginuid.c -pam_loginuid_la_OBJECTS = pam_loginuid.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_loginuid.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_loginuid.c -DIST_SOURCES = pam_loginuid.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_loginuid.8 -XMLS = README.xml pam_loginuid.8.xml -dist_check_SCRIPTS = tst-pam_loginuid -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_loginuid.la -pam_loginuid_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBAUDIT@ -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_loginuid/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_loginuid/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_loginuid.la: $(pam_loginuid_la_OBJECTS) $(pam_loginuid_la_DEPENDENCIES) $(EXTRA_pam_loginuid_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_loginuid_la_OBJECTS) $(pam_loginuid_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_loginuid.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_loginuid.log: tst-pam_loginuid - @p='tst-pam_loginuid'; \ - b='tst-pam_loginuid'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_loginuid.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_loginuid.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_loginuid/README b/modules/pam_loginuid/README deleted file mode 100644 index f07cffeb..00000000 --- a/modules/pam_loginuid/README +++ /dev/null @@ -1,29 +0,0 @@ -pam_loginuid — Record user's login uid to the process attribute - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_loginuid module sets the loginuid process attribute for the process -that was authenticated. This is necessary for applications to be correctly -audited. This PAM module should only be used for entry point applications like: -login, sshd, gdm, vsftpd, crond and atd. There are probably other entry point -applications besides these. You should not use it for applications like sudo or -su as that defeats the purpose by changing the loginuid to the account they -just switched to. - -EXAMPLES - -#%PAM-1.0 -auth required pam_unix.so -auth required pam_nologin.so -account required pam_unix.so -password required pam_unix.so -session required pam_unix.so -session required pam_loginuid.so - - -AUTHOR - -pam_loginuid was written by Steve Grubb <sgrubb@redhat.com> - diff --git a/modules/pam_loginuid/meson.build b/modules/pam_loginuid/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_loginuid/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_loginuid/pam_loginuid.8 b/modules/pam_loginuid/pam_loginuid.8 deleted file mode 100644 index 32f1b544..00000000 --- a/modules/pam_loginuid/pam_loginuid.8 +++ /dev/null @@ -1,93 +0,0 @@ -'\" t -.\" Title: pam_loginuid -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_LOGINUID" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_loginuid \- Record user\*(Aqs login uid to the process attribute -.SH "SYNOPSIS" -.HP \w'\fBpam_loginuid\&.so\fR\ 'u -\fBpam_loginuid\&.so\fR [require_auditd] -.SH "DESCRIPTION" -.PP -The pam_loginuid module sets the loginuid process attribute for the process that was authenticated\&. This is necessary for applications to be correctly audited\&. This PAM module should only be used for entry point applications like: login, sshd, gdm, vsftpd, crond and atd\&. There are probably other entry point applications besides these\&. You should not use it for applications like sudo or su as that defeats the purpose by changing the loginuid to the account they just switched to\&. -.SH "OPTIONS" -.PP -require_auditd -.RS 4 -This option, when given, will cause this module to query the audit daemon status and deny logins if it is not running\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_SUCCESS -.RS 4 -The loginuid value is set and auditd is running if check requested\&. -.RE -.PP -PAM_IGNORE -.RS 4 -The /proc/self/loginuid file is not present on the system or the login process runs inside uid namespace and kernel does not support overwriting loginuid\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Any other error prevented setting loginuid or auditd is not running\&. -.RE -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -auth required pam_unix\&.so -auth required pam_nologin\&.so -account required pam_unix\&.so -password required pam_unix\&.so -session required pam_unix\&.so -session required pam_loginuid\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8), -\fBauditctl\fR(8), -\fBauditd\fR(8) -.SH "AUTHOR" -.PP -pam_loginuid was written by Steve Grubb <sgrubb@redhat\&.com> diff --git a/modules/pam_loginuid/pam_loginuid.c b/modules/pam_loginuid/pam_loginuid.c index 6f5a6380..fc739134 100644 --- a/modules/pam_loginuid/pam_loginuid.c +++ b/modules/pam_loginuid/pam_loginuid.c @@ -15,9 +15,7 @@ * 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., 51 Franklin Street, Suite 500 - * Boston, MA 02110-1335 USA + * along with this program. If not, see <https://www.gnu.org/licenses/>. * * Authors: * Steve Grubb <sgrubb@redhat.com> diff --git a/modules/pam_mail/Makefile.am b/modules/pam_mail/Makefile.am deleted file mode 100644 index 1f52bcd1..00000000 --- a/modules/pam_mail/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_mail.8 -endif -XMLS = README.xml pam_mail.8.xml -dist_check_SCRIPTS = tst-pam_mail -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_mail.la -pam_mail_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_mail/Makefile.in b/modules/pam_mail/Makefile.in deleted file mode 100644 index 36df81cd..00000000 --- a/modules/pam_mail/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_mail -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_mail_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_mail_la_SOURCES = pam_mail.c -pam_mail_la_OBJECTS = pam_mail.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_mail.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_mail.c -DIST_SOURCES = pam_mail.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_mail.8 -XMLS = README.xml pam_mail.8.xml -dist_check_SCRIPTS = tst-pam_mail -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_mail.la -pam_mail_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_mail/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_mail/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_mail.la: $(pam_mail_la_OBJECTS) $(pam_mail_la_DEPENDENCIES) $(EXTRA_pam_mail_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_mail_la_OBJECTS) $(pam_mail_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_mail.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_mail.log: tst-pam_mail - @p='tst-pam_mail'; \ - b='tst-pam_mail'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_mail.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_mail.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_mail/README b/modules/pam_mail/README deleted file mode 100644 index 3da92766..00000000 --- a/modules/pam_mail/README +++ /dev/null @@ -1,71 +0,0 @@ -pam_mail — Inform about available mail - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_mail PAM module provides the "you have new mail" service to the user. -It can be plugged into any application that has credential or session hooks. It -gives a single message indicating the newness of any mail it finds in the -user's mail folder. This module also sets the PAM environment variable, MAIL, -to the user's mail directory. - -If the mail spool file (be it /var/mail/$USER or a pathname given with the dir= -parameter) is a directory then pam_mail assumes it is in the Maildir format. - -OPTIONS - -close - - Indicate if the user has any mail also on logout. - -debug - - Print debug information. - -dir=maildir - - Look for the user's mail in an alternative location defined by maildir/ - <login>. The default location for mail is /var/mail/<login>. Note, if the - supplied maildir is prefixed by a '~', the directory is interpreted as - indicating a file in the user's home directory. - -empty - - Also print message if user has no mail. - -hash=count - - Mail directory hash depth. For example, a hashcount of 2 would make the - mail file be /var/spool/mail/u/s/user. - -noenv - - Do not set the MAIL environment variable. - -nopen - - Don't print any mail information on login. This flag is useful to get the - MAIL environment variable set, but to not display any information about it. - -quiet - - Only report when there is new mail. - -standard - - Old style "You have..." format which doesn't show the mail spool being - used. This also implies "empty". - -EXAMPLES - -Add the following line to /etc/pam.d/login to indicate that the user has new -mail when they login to the system. - -session optional pam_mail.so standard - - -AUTHOR - -pam_mail was written by Andrew G. Morgan <morgan@kernel.org>. - diff --git a/modules/pam_mail/meson.build b/modules/pam_mail/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_mail/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_mail/pam_mail.8 b/modules/pam_mail/pam_mail.8 deleted file mode 100644 index 36b95ba8..00000000 --- a/modules/pam_mail/pam_mail.8 +++ /dev/null @@ -1,159 +0,0 @@ -'\" t -.\" Title: pam_mail -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_MAIL" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_mail \- Inform about available mail -.SH "SYNOPSIS" -.HP \w'\fBpam_mail\&.so\fR\ 'u -\fBpam_mail\&.so\fR [close] [debug] [dir=\fImaildir\fR] [empty] [hash=\fIcount\fR] [noenv] [nopen] [quiet] [standard] -.SH "DESCRIPTION" -.PP -The pam_mail PAM module provides the "you have new mail" service to the user\&. It can be plugged into any application that has credential or session hooks\&. It gives a single message indicating the -\fInewness\fR -of any mail it finds in the user\*(Aqs mail folder\&. This module also sets the PAM environment variable, -\fBMAIL\fR, to the user\*(Aqs mail directory\&. -.PP -If the mail spool file (be it -/var/mail/$USER -or a pathname given with the -\fBdir=\fR -parameter) is a directory then pam_mail assumes it is in the -\fIMaildir\fR -format\&. -.SH "OPTIONS" -.PP -.PP -close -.RS 4 -Indicate if the user has any mail also on logout\&. -.RE -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -dir=maildir -.RS 4 -Look for the user\*(Aqs mail in an alternative location defined by -maildir/<login>\&. The default location for mail is -/var/mail/<login>\&. Note, if the supplied -maildir -is prefixed by a \*(Aq~\*(Aq, the directory is interpreted as indicating a file in the user\*(Aqs home directory\&. -.RE -.PP -empty -.RS 4 -Also print message if user has no mail\&. -.RE -.PP -hash=count -.RS 4 -Mail directory hash depth\&. For example, a -\fIhashcount\fR -of 2 would make the mail file be -/var/spool/mail/u/s/user\&. -.RE -.PP -noenv -.RS 4 -Do not set the -\fBMAIL\fR -environment variable\&. -.RE -.PP -nopen -.RS 4 -Don\*(Aqt print any mail information on login\&. This flag is useful to get the -\fBMAIL\fR -environment variable set, but to not display any information about it\&. -.RE -.PP -quiet -.RS 4 -Only report when there is new mail\&. -.RE -.PP -standard -.RS 4 -Old style "You have\&.\&.\&." format which doesn\*(Aqt show the mail spool being used\&. This also implies "empty"\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBsession\fR -and -\fBauth\fR -(on establishment and deletion of credentials) module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Badly formed arguments\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known\&. -.RE -.SH "EXAMPLES" -.PP -Add the following line to -/etc/pam\&.d/login -to indicate that the user has new mail when they login to the system\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -session optional pam_mail\&.so standard - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_mail was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_mail/pam_mail.c b/modules/pam_mail/pam_mail.c index 2b77e560..3202ce0c 100644 --- a/modules/pam_mail/pam_mail.c +++ b/modules/pam_mail/pam_mail.c @@ -35,6 +35,7 @@ #include <security/pam_modutil.h> #include <security/pam_ext.h> #include "pam_inline.h" +#include "pam_i18n.h" /* argument parsing */ diff --git a/modules/pam_mkhomedir/Makefile.am b/modules/pam_mkhomedir/Makefile.am deleted file mode 100644 index e0f80a96..00000000 --- a/modules/pam_mkhomedir/Makefile.am +++ /dev/null @@ -1,48 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# Copyright (c) 2008 Red Hat, Inc. -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_mkhomedir.8 mkhomedir_helper.8 -endif -XMLS = README.xml pam_mkhomedir.8.xml mkhomedir_helper.8.xml -dist_check_SCRIPTS = tst-pam_mkhomedir -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -DMKHOMEDIR_HELPER=\"$(sbindir)/mkhomedir_helper\" $(WARN_CFLAGS) - -securelib_LTLIBRARIES = pam_mkhomedir.la -pam_mkhomedir_la_SOURCES = pam_mkhomedir.c -pam_mkhomedir_la_LIBADD = $(top_builddir)/libpam/libpam.la -pam_mkhomedir_la_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - pam_mkhomedir_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -sbin_PROGRAMS = mkhomedir_helper -mkhomedir_helper_SOURCES = mkhomedir_helper.c -mkhomedir_helper_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -mkhomedir_helper_LDFLAGS = @EXE_LDFLAGS@ -mkhomedir_helper_LDADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_mkhomedir-retval -tst_pam_mkhomedir_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_mkhomedir/Makefile.in b/modules/pam_mkhomedir/Makefile.in deleted file mode 100644 index 3e5cb170..00000000 --- a/modules/pam_mkhomedir/Makefile.in +++ /dev/null @@ -1,1291 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# Copyright (c) 2008 Red Hat, Inc. -# - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -sbin_PROGRAMS = mkhomedir_helper$(EXEEXT) -check_PROGRAMS = tst-pam_mkhomedir-retval$(EXEEXT) -subdir = modules/pam_mkhomedir -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" \ - "$(DESTDIR)$(man8dir)" -PROGRAMS = $(sbin_PROGRAMS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_mkhomedir_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -am_pam_mkhomedir_la_OBJECTS = pam_mkhomedir.lo -pam_mkhomedir_la_OBJECTS = $(am_pam_mkhomedir_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -pam_mkhomedir_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(pam_mkhomedir_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -am_mkhomedir_helper_OBJECTS = \ - mkhomedir_helper-mkhomedir_helper.$(OBJEXT) -mkhomedir_helper_OBJECTS = $(am_mkhomedir_helper_OBJECTS) -mkhomedir_helper_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -mkhomedir_helper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(mkhomedir_helper_CFLAGS) $(CFLAGS) \ - $(mkhomedir_helper_LDFLAGS) $(LDFLAGS) -o $@ -tst_pam_mkhomedir_retval_SOURCES = tst-pam_mkhomedir-retval.c -tst_pam_mkhomedir_retval_OBJECTS = tst-pam_mkhomedir-retval.$(OBJEXT) -tst_pam_mkhomedir_retval_DEPENDENCIES = \ - $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = \ - ./$(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Po \ - ./$(DEPDIR)/pam_mkhomedir.Plo \ - ./$(DEPDIR)/tst-pam_mkhomedir-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(pam_mkhomedir_la_SOURCES) $(mkhomedir_helper_SOURCES) \ - tst-pam_mkhomedir-retval.c -DIST_SOURCES = $(pam_mkhomedir_la_SOURCES) $(mkhomedir_helper_SOURCES) \ - tst-pam_mkhomedir-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_mkhomedir.8 mkhomedir_helper.8 -XMLS = README.xml pam_mkhomedir.8.xml mkhomedir_helper.8.xml -dist_check_SCRIPTS = tst-pam_mkhomedir -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -DMKHOMEDIR_HELPER=\"$(sbindir)/mkhomedir_helper\" $(WARN_CFLAGS) - -securelib_LTLIBRARIES = pam_mkhomedir.la -pam_mkhomedir_la_SOURCES = pam_mkhomedir.c -pam_mkhomedir_la_LIBADD = $(top_builddir)/libpam/libpam.la -pam_mkhomedir_la_LDFLAGS = -no-undefined -avoid-version -module \ - $(am__append_1) -mkhomedir_helper_SOURCES = mkhomedir_helper.c -mkhomedir_helper_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -mkhomedir_helper_LDFLAGS = @EXE_LDFLAGS@ -mkhomedir_helper_LDADD = $(top_builddir)/libpam/libpam.la -tst_pam_mkhomedir_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_mkhomedir/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_mkhomedir/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -install-sbinPROGRAMS: $(sbin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-sbinPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(sbindir)" && rm -f $$files - -clean-sbinPROGRAMS: - @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_mkhomedir.la: $(pam_mkhomedir_la_OBJECTS) $(pam_mkhomedir_la_DEPENDENCIES) $(EXTRA_pam_mkhomedir_la_DEPENDENCIES) - $(AM_V_CCLD)$(pam_mkhomedir_la_LINK) -rpath $(securelibdir) $(pam_mkhomedir_la_OBJECTS) $(pam_mkhomedir_la_LIBADD) $(LIBS) - -mkhomedir_helper$(EXEEXT): $(mkhomedir_helper_OBJECTS) $(mkhomedir_helper_DEPENDENCIES) $(EXTRA_mkhomedir_helper_DEPENDENCIES) - @rm -f mkhomedir_helper$(EXEEXT) - $(AM_V_CCLD)$(mkhomedir_helper_LINK) $(mkhomedir_helper_OBJECTS) $(mkhomedir_helper_LDADD) $(LIBS) - -tst-pam_mkhomedir-retval$(EXEEXT): $(tst_pam_mkhomedir_retval_OBJECTS) $(tst_pam_mkhomedir_retval_DEPENDENCIES) $(EXTRA_tst_pam_mkhomedir_retval_DEPENDENCIES) - @rm -f tst-pam_mkhomedir-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_mkhomedir_retval_OBJECTS) $(tst_pam_mkhomedir_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_mkhomedir.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_mkhomedir-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mkhomedir_helper-mkhomedir_helper.o: mkhomedir_helper.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mkhomedir_helper_CFLAGS) $(CFLAGS) -MT mkhomedir_helper-mkhomedir_helper.o -MD -MP -MF $(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Tpo -c -o mkhomedir_helper-mkhomedir_helper.o `test -f 'mkhomedir_helper.c' || echo '$(srcdir)/'`mkhomedir_helper.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Tpo $(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mkhomedir_helper.c' object='mkhomedir_helper-mkhomedir_helper.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mkhomedir_helper_CFLAGS) $(CFLAGS) -c -o mkhomedir_helper-mkhomedir_helper.o `test -f 'mkhomedir_helper.c' || echo '$(srcdir)/'`mkhomedir_helper.c - -mkhomedir_helper-mkhomedir_helper.obj: mkhomedir_helper.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mkhomedir_helper_CFLAGS) $(CFLAGS) -MT mkhomedir_helper-mkhomedir_helper.obj -MD -MP -MF $(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Tpo -c -o mkhomedir_helper-mkhomedir_helper.obj `if test -f 'mkhomedir_helper.c'; then $(CYGPATH_W) 'mkhomedir_helper.c'; else $(CYGPATH_W) '$(srcdir)/mkhomedir_helper.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Tpo $(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mkhomedir_helper.c' object='mkhomedir_helper-mkhomedir_helper.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mkhomedir_helper_CFLAGS) $(CFLAGS) -c -o mkhomedir_helper-mkhomedir_helper.obj `if test -f 'mkhomedir_helper.c'; then $(CYGPATH_W) 'mkhomedir_helper.c'; else $(CYGPATH_W) '$(srcdir)/mkhomedir_helper.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_mkhomedir.log: tst-pam_mkhomedir - @p='tst-pam_mkhomedir'; \ - b='tst-pam_mkhomedir'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_mkhomedir-retval.log: tst-pam_mkhomedir-retval$(EXEEXT) - @p='tst-pam_mkhomedir-retval$(EXEEXT)'; \ - b='tst-pam_mkhomedir-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Po - -rm -f ./$(DEPDIR)/pam_mkhomedir.Plo - -rm -f ./$(DEPDIR)/tst-pam_mkhomedir-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-sbinPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/mkhomedir_helper-mkhomedir_helper.Po - -rm -f ./$(DEPDIR)/pam_mkhomedir.Plo - -rm -f ./$(DEPDIR)/tst-pam_mkhomedir-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-sbinPROGRAMS \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-sbinPROGRAMS \ - uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_mkhomedir/README b/modules/pam_mkhomedir/README deleted file mode 100644 index cfc7bc48..00000000 --- a/modules/pam_mkhomedir/README +++ /dev/null @@ -1,36 +0,0 @@ -pam_mkhomedir — PAM module to create users home directory - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_mkhomedir PAM module will create a users home directory if it does not -exist when the session begins. This allows users to be present in central -database (such as NIS, kerberos or LDAP) without using a distributed file -system or pre-creating a large number of directories. The skeleton directory -(usually /etc/skel/) is used to copy default files and also sets a umask for -the creation. - -The new users home directory will not be removed after logout of the user. - -EXAMPLES - -A sample /etc/pam.d/login file: - - auth requisite pam_securetty.so - auth sufficient pam_ldap.so - auth required pam_unix.so - auth required pam_nologin.so - account sufficient pam_ldap.so - account required pam_unix.so - password required pam_unix.so - session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 - session required pam_unix.so - session optional pam_lastlog.so - session optional pam_mail.so standard - - -AUTHOR - -pam_mkhomedir was written by Jason Gunthorpe <jgg@debian.org>. - diff --git a/modules/pam_mkhomedir/meson.build b/modules/pam_mkhomedir/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_mkhomedir/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_mkhomedir/mkhomedir_helper.8 b/modules/pam_mkhomedir/mkhomedir_helper.8 deleted file mode 100644 index 7f5e6160..00000000 --- a/modules/pam_mkhomedir/mkhomedir_helper.8 +++ /dev/null @@ -1,63 +0,0 @@ -'\" t -.\" Title: mkhomedir_helper -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "MKHOMEDIR_HELPER" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -mkhomedir_helper \- Helper binary that creates home directories -.SH "SYNOPSIS" -.HP \w'\fBmkhomedir_helper\fR\ 'u -\fBmkhomedir_helper\fR {\fIuser\fR} [\fIumask\fR\ [\ \fIpath\-to\-skel\fR\ [\ \fIhome_mode\fR\ ]\ ]] -.SH "DESCRIPTION" -.PP -\fImkhomedir_helper\fR -is a helper program for the -\fIpam_mkhomedir\fR -module that creates home directories and populates them with contents of the specified skel directory\&. -.PP -The default value of -\fIumask\fR -is 0022 and the default value of -\fIpath\-to\-skel\fR -is -\fI/etc/skel\fR\&. The default value of -\fIhome_mode\fR -is computed from the value of -\fIumask\fR\&. -.PP -The helper is separated from the module to not require direct access from login SELinux domains to the contents of user home directories\&. The SELinux domain transition happens when the module is executing the -\fImkhomedir_helper\fR\&. -.PP -The helper never touches home directories if they already exist\&. -.SH "SEE ALSO" -.PP -\fBpam_mkhomedir\fR(8) -.SH "AUTHOR" -.PP -Written by Tomas Mraz based on the code originally in -\fIpam_mkhomedir\fR -module\&. diff --git a/modules/pam_mkhomedir/mkhomedir_helper.c b/modules/pam_mkhomedir/mkhomedir_helper.c index 3213f028..eefb5999 100644 --- a/modules/pam_mkhomedir/mkhomedir_helper.c +++ b/modules/pam_mkhomedir/mkhomedir_helper.c @@ -26,328 +26,340 @@ #include <security/pam_ext.h> #include <security/pam_modutil.h> +struct dir_spec { + int fd; + char *path; +}; + static unsigned long u_mask = 0022; -static unsigned long home_mode = 0; -static char skeldir[BUFSIZ] = "/etc/skel"; +static const char *skeldir = "/etc/skel"; + +static int create_homedir(struct dir_spec *, const struct passwd *, mode_t, + const char *, const char *); + +static int +dir_spec_open(struct dir_spec *spec, const char *path) +{ + spec->path = strdup(path); + if (spec->path == NULL) + goto fail; + + spec->fd = open(spec->path, O_DIRECTORY); + if (spec->fd == -1) + { + free(spec->path); + goto fail; + } + + return 0; +fail: + spec->path = NULL; + spec->fd = -1; + return -1; +} -/* Do the actual work of creating a home dir */ static int -create_homedir(const struct passwd *pwd, - const char *source, const char *dest) +dir_spec_at(struct dir_spec *spec, struct dir_spec *parent, const char *path) +{ + if (asprintf(&spec->path, "%s/%s", parent->path, path) < 0) + goto fail; + spec->fd = openat(parent->fd, path, O_DIRECTORY | O_NOFOLLOW); + if (spec->fd == -1) + { + free(spec->path); + goto fail; + } + + return 0; +fail: + spec->path = NULL; + spec->fd = -1; + return -1; +} + +static void +dir_spec_close(struct dir_spec *spec) +{ + if (spec->fd != -1) + close(spec->fd); + free(spec->path); +} + +static int +copy_entry(struct dir_spec *parent, const struct passwd *pwd, mode_t dir_mode, + const char *source, struct dirent *dent) { char remark[BUFSIZ]; - DIR *d; - struct dirent *dent; + int srcfd = -1, destfd = -1; + int res; int retval = PAM_SESSION_ERR; + struct stat st; + char *newsource = NULL; - /* Create the new directory */ - if (mkdir(dest, 0700) && errno != EEXIST) + /* Determine what kind of file it is. */ + if (asprintf(&newsource, "%s/%s", source, dent->d_name) < 0) { - pam_syslog(NULL, LOG_ERR, "unable to create directory %s: %m", dest); - return PAM_PERM_DENIED; + pam_syslog(NULL, LOG_CRIT, "asprintf failed for 'newsource'"); + retval = PAM_BUF_ERR; + goto go_out; } - /* See if we need to copy the skel dir over. */ - if ((source == NULL) || (strlen(source) == 0)) + if (lstat(newsource, &st) != 0) { retval = PAM_SUCCESS; goto go_out; } - /* Scan the directory */ - d = opendir(source); - if (d == NULL) + /* If it's a directory, recurse. */ + if (S_ISDIR(st.st_mode)) { - pam_syslog(NULL, LOG_DEBUG, "unable to read directory %s: %m", source); - retval = PAM_PERM_DENIED; + retval = create_homedir(parent, pwd, dir_mode & (~u_mask), newsource, + dent->d_name); goto go_out; } - for (dent = readdir(d); dent != NULL; dent = readdir(d)) + /* If it's a symlink, create a new link. */ + if (S_ISLNK(st.st_mode)) { - int srcfd; - int destfd; - int res; - struct stat st; -#ifndef PATH_MAX - char *newsource = NULL, *newdest = NULL; - /* track length of buffers */ - int nslen = 0, ndlen = 0; - int slen = strlen(source), dlen = strlen(dest); -#else - char newsource[PATH_MAX], newdest[PATH_MAX]; -#endif - - /* Skip some files.. */ - if (strcmp(dent->d_name,".") == 0 || - strcmp(dent->d_name,"..") == 0) - continue; - - /* Determine what kind of file it is. */ -#ifndef PATH_MAX - nslen = slen + strlen(dent->d_name) + 2; - - if (nslen <= 0) - { - retval = PAM_BUF_ERR; - goto go_out; - } - - if ((newsource = malloc(nslen)) == NULL) - { - retval = PAM_BUF_ERR; - goto go_out; - } - - sprintf(newsource, "%s/%s", source, dent->d_name); -#else - snprintf(newsource, sizeof(newsource), "%s/%s", source, dent->d_name); -#endif - - if (lstat(newsource, &st) != 0) + int pointedlen = 0; #ifndef PATH_MAX + char *pointed = NULL; { - free(newsource); - newsource = NULL; - continue; + int size = 100; + + while (1) + { + pointed = malloc(size); + if (pointed == NULL) + { + retval = PAM_BUF_ERR; + goto go_out; + } + pointedlen = readlink(newsource, pointed, size); + if (pointedlen < 0) break; + if (pointedlen < size) break; + free(pointed); + size *= 2; + } } + if (pointedlen < 0) + free(pointed); + else + pointed[pointedlen] = 0; #else - continue; -#endif - + char pointed[PATH_MAX] = {}; - /* We'll need the new file's name. */ -#ifndef PATH_MAX - ndlen = dlen + strlen(dent->d_name)+2; - - if (ndlen <= 0) - { - retval = PAM_BUF_ERR; - goto go_out; - } - - if ((newdest = malloc(ndlen)) == NULL) - { - free (newsource); - retval = PAM_BUF_ERR; - goto go_out; - } - - sprintf (newdest, "%s/%s", dest, dent->d_name); -#else - snprintf (newdest, sizeof (newdest), "%s/%s", dest, dent->d_name); + pointedlen = readlink(newsource, pointed, sizeof(pointed) - 1); #endif - /* If it's a directory, recurse. */ - if (S_ISDIR(st.st_mode)) + if (pointedlen >= 0) { - retval = create_homedir(pwd, newsource, newdest); + if (symlinkat(pointed, parent->fd, dent->d_name) != 0) + { + retval = errno == EEXIST ? PAM_SUCCESS : PAM_PERM_DENIED; + if (retval != PAM_SUCCESS) + pam_syslog(NULL, LOG_DEBUG, "unable to create link %s/%s: %m", + parent->path, dent->d_name); #ifndef PATH_MAX - free(newsource); newsource = NULL; - free(newdest); newdest = NULL; -#endif - - if (retval != PAM_SUCCESS) - { - closedir(d); - goto go_out; - } - continue; - } - - /* If it's a symlink, create a new link. */ - if (S_ISLNK(st.st_mode)) - { - int pointedlen = 0; -#ifndef PATH_MAX - char *pointed = NULL; - { - int size = 100; - - while (1) { - pointed = malloc(size); - if (pointed == NULL) { - free(newsource); - free(newdest); - return PAM_BUF_ERR; - } - pointedlen = readlink(newsource, pointed, size); - if (pointedlen < 0) break; - if (pointedlen < size) break; - free(pointed); - size *= 2; - } - } - if (pointedlen < 0) - free(pointed); - else - pointed[pointedlen] = 0; -#else - char pointed[PATH_MAX] = {}; - - pointedlen = readlink(newsource, pointed, sizeof(pointed) - 1); + free(pointed); #endif + goto go_out; + } - if (pointedlen >= 0) { - if(symlink(pointed, newdest) == 0) - { - if (lchown(newdest, pwd->pw_uid, pwd->pw_gid) != 0) - { - pam_syslog(NULL, LOG_DEBUG, - "unable to change perms on link %s: %m", newdest); - closedir(d); -#ifndef PATH_MAX - free(pointed); - free(newsource); - free(newdest); -#endif - return PAM_PERM_DENIED; - } - } + if (fchownat(parent->fd, dent->d_name, pwd->pw_uid, pwd->pw_gid, + AT_SYMLINK_NOFOLLOW) != 0) + { + pam_syslog(NULL, LOG_DEBUG, + "unable to change perms on link %s/%s: %m", + parent->path, dent->d_name); #ifndef PATH_MAX free(pointed); #endif - } + retval = PAM_PERM_DENIED; + goto go_out; + } #ifndef PATH_MAX - free(newsource); newsource = NULL; - free(newdest); newdest = NULL; + free(pointed); #endif - continue; } + retval = PAM_SUCCESS; + goto go_out; + } - /* If it's not a regular file, it's probably not a good idea to create - * the new device node, FIFO, or whatever it is. */ - if (!S_ISREG(st.st_mode)) - { -#ifndef PATH_MAX - free(newsource); newsource = NULL; - free(newdest); newdest = NULL; -#endif - continue; - } + /* If it's not a regular file, it's probably not a good idea to create + * the new device node, FIFO, or whatever it is. */ + if (!S_ISREG(st.st_mode)) + { + retval = PAM_SUCCESS; + goto go_out; + } - /* Open the source file */ - if ((srcfd = open(newsource, O_RDONLY)) < 0 || fstat(srcfd, &st) != 0) - { - pam_syslog(NULL, LOG_DEBUG, - "unable to open or stat src file %s: %m", newsource); - if (srcfd >= 0) - close(srcfd); - closedir(d); + /* Open the source file */ + if ((srcfd = open(newsource, O_RDONLY)) < 0 || fstat(srcfd, &st) != 0) + { + pam_syslog(NULL, LOG_DEBUG, + "unable to open or stat src file %s: %m", newsource); + retval = PAM_PERM_DENIED; + goto go_out; + } -#ifndef PATH_MAX - free(newsource); newsource = NULL; - free(newdest); newdest = NULL; -#endif + /* Open the dest file */ + if ((destfd = openat(parent->fd, dent->d_name, + O_WRONLY | O_CREAT | O_EXCL | O_NOFOLLOW, 0600)) < 0) + { + retval = errno == EEXIST ? PAM_SUCCESS : PAM_PERM_DENIED; + if (retval != PAM_SUCCESS) + pam_syslog(NULL, LOG_DEBUG, "unable to open dest file %s/%s: %m", + parent->path, dent->d_name); + goto go_out; + } - return PAM_PERM_DENIED; - } + /* Set the proper ownership and permissions for the module. We make + the file a+w and then mask it with the set mask. This preserves + execute bits */ + if (fchmod(destfd, (st.st_mode | 0222) & (~u_mask)) != 0 || + fchown(destfd, pwd->pw_uid, pwd->pw_gid) != 0) + { + pam_syslog(NULL, LOG_DEBUG, "unable to change perms on copy %s/%s: %m", + parent->path, dent->d_name); + retval = PAM_PERM_DENIED; + goto go_out; + } - /* Open the dest file */ - if ((destfd = open(newdest, O_WRONLY | O_TRUNC | O_CREAT, 0600)) < 0) - { - pam_syslog(NULL, LOG_DEBUG, - "unable to open dest file %s: %m", newdest); - close(srcfd); - closedir(d); + /* Copy the file */ + do + { + res = pam_modutil_read(srcfd, remark, sizeof(remark)); -#ifndef PATH_MAX - free(newsource); newsource = NULL; - free(newdest); newdest = NULL; -#endif - return PAM_PERM_DENIED; - } + if (res == 0) + continue; - /* Set the proper ownership and permissions for the module. We make - the file a+w and then mask it with the set mask. This preserves - execute bits */ - if (fchmod(destfd, (st.st_mode | 0222) & (~u_mask)) != 0 || - fchown(destfd, pwd->pw_uid, pwd->pw_gid) != 0) + if (res > 0) { - pam_syslog(NULL, LOG_DEBUG, - "unable to change perms on copy %s: %m", newdest); - close(srcfd); - close(destfd); - closedir(d); + if (pam_modutil_write(destfd, remark, res) == res) + continue; + } -#ifndef PATH_MAX - free(newsource); newsource = NULL; - free(newdest); newdest = NULL; -#endif + /* If we get here, pam_modutil_read returned a -1 or + pam_modutil_write returned something unexpected. */ + pam_syslog(NULL, LOG_DEBUG, "unable to perform IO: %m"); + retval = PAM_PERM_DENIED; + goto go_out; + } + while (res != 0); - return PAM_PERM_DENIED; - } + retval = PAM_SUCCESS; - /* Copy the file */ - do - { - res = pam_modutil_read(srcfd, remark, sizeof(remark)); + go_out: + if (srcfd >= 0) + close(srcfd); + if (destfd >= 0) + close(destfd); - if (res == 0) - continue; + free(newsource); - if (res > 0) { - if (pam_modutil_write(destfd, remark, res) == res) - continue; - } + return retval; +} - /* If we get here, pam_modutil_read returned a -1 or - pam_modutil_write returned something unexpected. */ - pam_syslog(NULL, LOG_DEBUG, "unable to perform IO: %m"); - close(srcfd); - close(destfd); - closedir(d); +/* Do the actual work of creating a home dir */ +static int +create_homedir(struct dir_spec *parent, const struct passwd *pwd, + mode_t dir_mode, const char *source, const char *dest) +{ + DIR *d = NULL; + struct dirent *dent; + struct dir_spec base; + int retval = PAM_SESSION_ERR; -#ifndef PATH_MAX - free(newsource); newsource = NULL; - free(newdest); newdest = NULL; -#endif + /* Create the new directory */ + if (mkdirat(parent->fd, dest, 0700)) + { + if (errno == EEXIST) + return PAM_SUCCESS; + pam_syslog(NULL, LOG_ERR, "unable to create directory %s/%s: %m", + parent->path, dest); + return PAM_PERM_DENIED; + } - return PAM_PERM_DENIED; - } - while (res != 0); - close(srcfd); - close(destfd); + if (dir_spec_at(&base, parent, dest) < 0) + { + retval = PAM_PERM_DENIED; + goto go_out; + } -#ifndef PATH_MAX - free(newsource); newsource = NULL; - free(newdest); newdest = NULL; -#endif + /* See if we need to copy the skel dir over. */ + if ((source == NULL) || (strlen(source) == 0)) + { + retval = PAM_SUCCESS; + goto go_out; + } + + /* Scan the directory */ + d = opendir(source); + if (d == NULL) + { + pam_syslog(NULL, LOG_DEBUG, "unable to read directory %s: %m", source); + retval = PAM_PERM_DENIED; + goto go_out; + } + for (dent = readdir(d); dent != NULL; dent = readdir(d)) + { + /* Skip some files.. */ + if (strcmp(dent->d_name,".") == 0 || + strcmp(dent->d_name,"..") == 0) + continue; + + retval = copy_entry(&base, pwd, dir_mode, source, dent); + if (retval != PAM_SUCCESS) + goto go_out; } - closedir(d); retval = PAM_SUCCESS; go_out: + if (d != NULL) + closedir(d); - if (chmod(dest, 0777 & (~u_mask)) != 0 || - chown(dest, pwd->pw_uid, pwd->pw_gid) != 0) + if (fchmodat(parent->fd, dest, dir_mode, AT_SYMLINK_NOFOLLOW) != 0 || + fchownat(parent->fd, dest, pwd->pw_uid, pwd->pw_gid, + AT_SYMLINK_NOFOLLOW) != 0) { pam_syslog(NULL, LOG_DEBUG, - "unable to change perms on directory %s: %m", dest); - return PAM_PERM_DENIED; + "unable to change perms on directory %s/%s: %m", + parent->path, dest); + retval = PAM_PERM_DENIED; } + dir_spec_close(&base); + return retval; } static int -create_homedir_helper(const struct passwd *_pwd, +create_homedir_helper(const struct passwd *_pwd, mode_t home_mode, const char *_skeldir, const char *_homedir) { int retval = PAM_SESSION_ERR; + struct dir_spec base; + char *cp = strrchr(_homedir, '/'); - retval = create_homedir(_pwd, _skeldir, _homedir); - - if (chmod(_homedir, home_mode) != 0) + *cp = '\0'; + retval = dir_spec_open(&base, cp == _homedir ? "/" : _homedir); + if (retval < 0) { pam_syslog(NULL, LOG_DEBUG, - "unable to change perms on home directory %s: %m", _homedir); - return PAM_PERM_DENIED; + "unable to open parent of home directory %s: %m", _homedir); + retval = PAM_PERM_DENIED; + goto go_out; } + *cp = '/'; + + retval = create_homedir(&base, _pwd, home_mode, _skeldir, cp + 1); + go_out: + dir_spec_close(&base); return retval; } @@ -385,6 +397,7 @@ main(int argc, char *argv[]) struct passwd *pwd; struct stat st; char *eptr; + unsigned long home_mode = 0; if (argc < 2) { fprintf(stderr, "Usage: %s <username> [<umask> [<skeldir> [<home_mode>]]]\n", argv[0]); @@ -407,11 +420,7 @@ main(int argc, char *argv[]) } if (argc >= 4) { - if (strlen(argv[3]) >= sizeof(skeldir)) { - pam_syslog(NULL, LOG_ERR, "Too long skeldir path."); - return PAM_SESSION_ERR; - } - strcpy(skeldir, argv[3]); + skeldir = argv[3]; } if (argc >= 5) { @@ -426,6 +435,11 @@ main(int argc, char *argv[]) if (home_mode == 0) home_mode = 0777 & ~u_mask; + if (pwd->pw_dir[0] != '/') { + pam_syslog(NULL, LOG_ERR, "Relative user home directory %s", pwd->pw_dir); + return PAM_SESSION_ERR; + } + /* Stat the home directory, if something exists then we assume it is correct and return a success */ if (stat(pwd->pw_dir, &st) == 0) @@ -434,5 +448,5 @@ main(int argc, char *argv[]) if (make_parent_dirs(pwd->pw_dir, 0) != PAM_SUCCESS) return PAM_PERM_DENIED; - return create_homedir_helper(pwd, skeldir, pwd->pw_dir); + return create_homedir_helper(pwd, home_mode, skeldir, pwd->pw_dir); } diff --git a/modules/pam_mkhomedir/pam_mkhomedir.8 b/modules/pam_mkhomedir/pam_mkhomedir.8 deleted file mode 100644 index 112b39b0..00000000 --- a/modules/pam_mkhomedir/pam_mkhomedir.8 +++ /dev/null @@ -1,135 +0,0 @@ -'\" t -.\" Title: pam_mkhomedir -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_MKHOMEDIR" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_mkhomedir \- PAM module to create users home directory -.SH "SYNOPSIS" -.HP \w'\fBpam_mkhomedir\&.so\fR\ 'u -\fBpam_mkhomedir\&.so\fR [silent] [debug] [umask=\fImode\fR] [skel=\fIskeldir\fR] -.SH "DESCRIPTION" -.PP -The pam_mkhomedir PAM module will create a users home directory if it does not exist when the session begins\&. This allows users to be present in central database (such as NIS, kerberos or LDAP) without using a distributed file system or pre\-creating a large number of directories\&. The skeleton directory (usually -/etc/skel/) is used to copy default files and also sets a umask for the creation\&. -.PP -The new users home directory will not be removed after logout of the user\&. -.SH "OPTIONS" -.PP -silent -.RS 4 -Don\*(Aqt print informative messages\&. -.RE -.PP -debug -.RS 4 -Turns on debugging via -\fBsyslog\fR(3)\&. -.RE -.PP -umask=mask -.RS 4 -The file mode creation mask is set to -\fImask\fR\&. The default value of mask is 0022\&. If this option is not specified, then the permissions of created user home directory is set to the value of -\fBHOME_MODE\fR -configuration item from -/etc/login\&.defs\&. If there is no such configuration item then the value is computed from the value of -\fBUMASK\fR -in the same file\&. If there is no such configuration option either the default value of 0755 is used for the mode\&. -.RE -.PP -skel=/path/to/skel/directory -.RS 4 -Indicate an alternative -skel -directory to override the default -/etc/skel\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Not enough permissions to create the new directory or read the skel directory\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known to the underlying authentication module\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Environment variables were set\&. -.RE -.SH "FILES" -.PP -/etc/skel -.RS 4 -Default skel directory -.RE -.SH "EXAMPLES" -.PP -A sample /etc/pam\&.d/login file: -.sp -.if n \{\ -.RS 4 -.\} -.nf - auth requisite pam_securetty\&.so - auth sufficient pam_ldap\&.so - auth required pam_unix\&.so - auth required pam_nologin\&.so - account sufficient pam_ldap\&.so - account required pam_unix\&.so - password required pam_unix\&.so - session required pam_mkhomedir\&.so skel=/etc/skel/ umask=0022 - session required pam_unix\&.so - session optional pam_lastlog\&.so - session optional pam_mail\&.so standard - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.d\fR(5), -\fBpam\fR(8)\&. -.SH "AUTHOR" -.PP -pam_mkhomedir was written by Jason Gunthorpe <jgg@debian\&.org>\&. diff --git a/modules/pam_mkhomedir/pam_mkhomedir.c b/modules/pam_mkhomedir/pam_mkhomedir.c index 6ddcd5a8..71d02b6d 100644 --- a/modules/pam_mkhomedir/pam_mkhomedir.c +++ b/modules/pam_mkhomedir/pam_mkhomedir.c @@ -51,6 +51,7 @@ #include "pam_cc_compat.h" #include "pam_inline.h" +#include "pam_i18n.h" /* argument parsing */ #define MKHOMEDIR_DEBUG 020 /* be verbose about things */ @@ -242,7 +243,7 @@ pam_sm_open_session (pam_handle_t *pamh, int flags, int argc, if (pwd == NULL) { pam_syslog(pamh, LOG_NOTICE, "User unknown."); - D(("couldn't identify user %s", user)); + D(("couldn't identify user %s", (const char *) user)); return PAM_USER_UNKNOWN; } diff --git a/modules/pam_mkhomedir/tst-pam_mkhomedir-retval.c b/modules/pam_mkhomedir/tst-pam_mkhomedir-retval.c index 451d2e56..282c5cd0 100644 --- a/modules/pam_mkhomedir/tst-pam_mkhomedir-retval.c +++ b/modules/pam_mkhomedir/tst-pam_mkhomedir-retval.c @@ -37,10 +37,10 @@ main(void) /* PAM_USER_UNKNOWN */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, @@ -76,10 +76,10 @@ main(void) /* PAM_SUCCESS */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so debug\n" - "account required %s/.libs/%s.so debug\n" - "password required %s/.libs/%s.so debug\n" - "session required %s/.libs/%s.so debug\n", + "auth required %s/" LTDIR "%s.so debug\n" + "account required %s/" LTDIR "%s.so debug\n" + "password required %s/" LTDIR "%s.so debug\n" + "session required %s/" LTDIR "%s.so debug\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, diff --git a/modules/pam_motd/Makefile.am b/modules/pam_motd/Makefile.am deleted file mode 100644 index fc8f26c4..00000000 --- a/modules/pam_motd/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_motd.8 -endif -XMLS = README.xml pam_motd.8.xml -dist_check_SCRIPTS = tst-pam_motd -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_motd.la -pam_motd_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_motd/Makefile.in b/modules/pam_motd/Makefile.in deleted file mode 100644 index 4116d988..00000000 --- a/modules/pam_motd/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_motd -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_motd_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_motd_la_SOURCES = pam_motd.c -pam_motd_la_OBJECTS = pam_motd.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_motd.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_motd.c -DIST_SOURCES = pam_motd.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_motd.8 -XMLS = README.xml pam_motd.8.xml -dist_check_SCRIPTS = tst-pam_motd -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_motd.la -pam_motd_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_motd/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_motd/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_motd.la: $(pam_motd_la_OBJECTS) $(pam_motd_la_DEPENDENCIES) $(EXTRA_pam_motd_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_motd_la_OBJECTS) $(pam_motd_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_motd.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_motd.log: tst-pam_motd - @p='tst-pam_motd'; \ - b='tst-pam_motd'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_motd.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_motd.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_motd/README b/modules/pam_motd/README deleted file mode 100644 index 01bc64e9..00000000 --- a/modules/pam_motd/README +++ /dev/null @@ -1,82 +0,0 @@ -pam_motd — Display the motd file - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_motd is a PAM module that can be used to display arbitrary motd (message of -the day) files after a successful login. By default, pam_motd shows files in -the following locations: - -/etc/motd -/run/motd -/usr/lib/motd -/etc/motd.d/ -/run/motd.d/ -/usr/lib/motd.d/ - -Each message size is limited to 64KB. - -If /etc/motd does not exist, then /run/motd is shown. If /run/motd does not -exist, then /usr/lib/motd is shown. - -Similar overriding behavior applies to the directories. Files in /etc/motd.d/ -override files with the same name in /run/motd.d/ and /usr/lib/motd.d/. Files -in /run/motd.d/ override files with the same name in /usr/lib/motd.d/. - -Files in the directories listed above are displayed in lexicographic order by -name. Moreover, the files are filtered by reading them with the credentials of -the target user authenticating on the system. - -To silence a message, a symbolic link with target /dev/null may be placed in / -etc/motd.d with the same filename as the message to be silenced. Example: -Creating a symbolic link as follows silences /usr/lib/motd.d/my_motd. - -ln -s /dev/null /etc/motd.d/my_motd - -The MOTD_SHOWN=pam environment variable is set after showing the motd files, -even when all of them were silenced using symbolic links. - -OPTIONS - -motd=/path/filename - - The /path/filename file is displayed as message of the day. Multiple paths - to try can be specified as a colon-separated list. By default this option - is set to /etc/motd:/run/motd:/usr/lib/motd. - -motd_dir=/path/dirname.d - - The /path/dirname.d directory is scanned and each file contained inside of - it is displayed. Multiple directories to scan can be specified as a - colon-separated list. By default this option is set to /etc/motd.d:/run/ - motd.d:/usr/lib/motd.d. - -When no options are given, the default behavior applies for both options. -Specifying either option (or both) will disable the default behavior for both -options. - -EXAMPLES - -The suggested usage for /etc/pam.d/login is: - -session optional pam_motd.so - - -To use a motd file from a different location: - -session optional pam_motd.so motd=/elsewhere/motd - - -To use a motd file from elsewhere, along with a corresponding .d directory: - -session optional pam_motd.so motd=/elsewhere/motd motd_dir=/elsewhere/motd.d - - -AUTHOR - -pam_motd was written by Ben Collins <bcollins@debian.org>. - -The motd_dir= option was added by Allison Karlitskaya -<allison.karlitskaya@redhat.com>. - diff --git a/modules/pam_motd/meson.build b/modules/pam_motd/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_motd/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_motd/pam_motd.8 b/modules/pam_motd/pam_motd.8 deleted file mode 100644 index b1a70c02..00000000 --- a/modules/pam_motd/pam_motd.8 +++ /dev/null @@ -1,195 +0,0 @@ -'\" t -.\" Title: pam_motd -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_MOTD" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_motd \- Display the motd file -.SH "SYNOPSIS" -.HP \w'\fBpam_motd\&.so\fR\ 'u -\fBpam_motd\&.so\fR [motd=\fI/path/filename\fR] [motd_dir=\fI/path/dirname\&.d\fR] -.SH "DESCRIPTION" -.PP -pam_motd is a PAM module that can be used to display arbitrary motd (message of the day) files after a successful login\&. By default, pam_motd shows files in the following locations: -.PP -.RS 4 -/etc/motd -.RE -.RS 4 -/run/motd -.RE -.RS 4 -/usr/lib/motd -.RE -.RS 4 -/etc/motd\&.d/ -.RE -.RS 4 -/run/motd\&.d/ -.RE -.RS 4 -/usr/lib/motd\&.d/ -.RE -.PP -Each message size is limited to 64KB\&. -.PP -If -/etc/motd -does not exist, then -/run/motd -is shown\&. If -/run/motd -does not exist, then -/usr/lib/motd -is shown\&. -.PP -Similar overriding behavior applies to the directories\&. Files in -/etc/motd\&.d/ -override files with the same name in -/run/motd\&.d/ -and -/usr/lib/motd\&.d/\&. Files in -/run/motd\&.d/ -override files with the same name in -/usr/lib/motd\&.d/\&. -.PP -Files in the directories listed above are displayed in lexicographic order by name\&. Moreover, the files are filtered by reading them with the credentials of the target user authenticating on the system\&. -.PP -To silence a message, a symbolic link with target -/dev/null -may be placed in -/etc/motd\&.d -with the same filename as the message to be silenced\&. Example: Creating a symbolic link as follows silences -/usr/lib/motd\&.d/my_motd\&. -.PP -\fBln \-s /dev/null /etc/motd\&.d/my_motd\fR -.PP -The -\fBMOTD_SHOWN=pam\fR -environment variable is set after showing the motd files, even when all of them were silenced using symbolic links\&. -.SH "OPTIONS" -.PP -motd=/path/filename -.RS 4 -The -/path/filename -file is displayed as message of the day\&. Multiple paths to try can be specified as a colon\-separated list\&. By default this option is set to -/etc/motd:/run/motd:/usr/lib/motd\&. -.RE -.PP -motd_dir=/path/dirname\&.d -.RS 4 -The -/path/dirname\&.d -directory is scanned and each file contained inside of it is displayed\&. Multiple directories to scan can be specified as a colon\-separated list\&. By default this option is set to -/etc/motd\&.d:/run/motd\&.d:/usr/lib/motd\&.d\&. -.RE -.PP -When no options are given, the default behavior applies for both options\&. Specifying either option (or both) will disable the default behavior for both options\&. -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_ABORT -.RS 4 -Not all relevant data or options could be obtained\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_IGNORE -.RS 4 -This is the default return value of this module\&. -.RE -.SH "EXAMPLES" -.PP -The suggested usage for -/etc/pam\&.d/login -is: -.sp -.if n \{\ -.RS 4 -.\} -.nf -session optional pam_motd\&.so - -.fi -.if n \{\ -.RE -.\} -.PP -To use a -motd -file from a different location: -.sp -.if n \{\ -.RS 4 -.\} -.nf -session optional pam_motd\&.so motd=/elsewhere/motd - -.fi -.if n \{\ -.RE -.\} -.PP -To use a -motd -file from elsewhere, along with a corresponding -\&.d -directory: -.sp -.if n \{\ -.RS 4 -.\} -.nf -session optional pam_motd\&.so motd=/elsewhere/motd motd_dir=/elsewhere/motd\&.d - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBmotd\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_motd was written by Ben Collins <bcollins@debian\&.org>\&. -.PP -The -\fBmotd_dir=\fR -option was added by Allison Karlitskaya <allison\&.karlitskaya@redhat\&.com>\&. diff --git a/modules/pam_motd/pam_motd.c b/modules/pam_motd/pam_motd.c index 5ca486e4..89b25956 100644 --- a/modules/pam_motd/pam_motd.c +++ b/modules/pam_motd/pam_motd.c @@ -7,6 +7,7 @@ #include "config.h" +#include <limits.h> #include <stdio.h> #include <string.h> #include <stdlib.h> @@ -71,14 +72,14 @@ static void try_to_display_fd(pam_handle_t *pamh, int fd) * Returns 0 in case of error, 1 in case of success. */ static int pam_split_string(const pam_handle_t *pamh, char *arg, char delim, - char ***out_arg_split, unsigned int *out_num_strs) + char ***out_arg_split, size_t *out_num_strs) { char *arg_extracted = NULL; const char *arg_ptr = arg; char **arg_split = NULL; char delim_str[2]; - unsigned int i = 0; - unsigned int num_strs = 0; + size_t i = 0; + size_t num_strs = 0; int retval = 0; delim_str[0] = delim; @@ -167,14 +168,14 @@ static int compare_strings(const void *a, const void *b) } static void try_to_display_directories_with_overrides(pam_handle_t *pamh, - char **motd_dir_path_split, unsigned int num_motd_dirs, int report_missing) + char **motd_dir_path_split, size_t num_motd_dirs, int report_missing) { struct dirent ***dirscans = NULL; unsigned int *dirscans_sizes = NULL; unsigned int dirscans_size_total = 0; char **dirnames_all = NULL; - unsigned int i; - int i_dirnames = 0; + size_t i; + unsigned int i_dirnames = 0; if (pamh == NULL || motd_dir_path_split == NULL) { goto out; @@ -203,6 +204,10 @@ static void try_to_display_directories_with_overrides(pam_handle_t *pamh, } else { dirscans_sizes[i] = rv; } + if (dirscans_size_total > UINT_MAX - dirscans_sizes[i]) { + pam_syslog(pamh, LOG_CRIT, "encountered too many motd files"); + goto out; + } dirscans_size_total += dirscans_sizes[i]; } @@ -335,9 +340,8 @@ static int drop_privileges(pam_handle_t *pamh, struct pam_modutil_privs *privs) } static int try_to_display(pam_handle_t *pamh, char **motd_path_split, - unsigned int num_motd_paths, - char **motd_dir_path_split, - unsigned int num_motd_dir_paths, int report_missing) + size_t num_motd_paths, char **motd_dir_path_split, + size_t num_motd_dir_paths, int report_missing) { PAM_MODUTIL_DEF_PRIVS(privs); @@ -347,7 +351,7 @@ static int try_to_display(pam_handle_t *pamh, char **motd_path_split, } if (motd_path_split != NULL) { - unsigned int i; + size_t i; for (i = 0; i < num_motd_paths; i++) { int fd = open(motd_path_split[i], O_RDONLY, 0); @@ -385,11 +389,11 @@ int pam_sm_open_session(pam_handle_t *pamh, int flags, int retval = PAM_IGNORE; const char *motd_path = NULL; char *motd_path_copy = NULL; - unsigned int num_motd_paths = 0; + size_t num_motd_paths = 0; char **motd_path_split = NULL; const char *motd_dir_path = NULL; char *motd_dir_path_copy = NULL; - unsigned int num_motd_dir_paths = 0; + size_t num_motd_dir_paths = 0; char **motd_dir_path_split = NULL; int report_missing; diff --git a/modules/pam_namespace/Makefile.am b/modules/pam_namespace/Makefile.am deleted file mode 100644 index 507beea7..00000000 --- a/modules/pam_namespace/Makefile.am +++ /dev/null @@ -1,52 +0,0 @@ -# -# Copyright (c) 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# Copyright (c) 2006 Red Hat, Inc. -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = namespace.conf.5 pam_namespace.8 pam_namespace_helper.8 -endif -XMLS = README.xml namespace.conf.5.xml pam_namespace.8.xml pam_namespace_helper.8.xml -dist_check_SCRIPTS = tst-pam_namespace -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif -namespaceddir = $(SCONFIGDIR)/namespace.d -servicedir = $(systemdunitdir) - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -noinst_HEADERS = md5.h pam_namespace.h argv_parse.h - -securelib_LTLIBRARIES = pam_namespace.la -pam_namespace_la_SOURCES = pam_namespace.c md5.c argv_parse.c -pam_namespace_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ - -dist_secureconf_DATA = namespace.conf -dist_secureconf_SCRIPTS = namespace.init -service_DATA = pam_namespace.service - -install-data-local: - mkdir -p $(DESTDIR)$(namespaceddir) - -sbin_SCRIPTS = pam_namespace_helper - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_namespace/Makefile.in b/modules/pam_namespace/Makefile.in deleted file mode 100644 index 8fc29dc1..00000000 --- a/modules/pam_namespace/Makefile.in +++ /dev/null @@ -1,1359 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# Copyright (c) 2006 Red Hat, Inc. -# - - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_namespace -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(dist_secureconf_SCRIPTS) $(am__dist_noinst_DATA_DIST) \ - $(dist_secureconf_DATA) $(noinst_HEADERS) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = pam_namespace_helper pam_namespace.service -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" \ - "$(DESTDIR)$(secureconfdir)" "$(DESTDIR)$(sbindir)" \ - "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" \ - "$(DESTDIR)$(secureconfdir)" "$(DESTDIR)$(servicedir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_namespace_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -am_pam_namespace_la_OBJECTS = pam_namespace.lo md5.lo argv_parse.lo -pam_namespace_la_OBJECTS = $(am_pam_namespace_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -SCRIPTS = $(dist_secureconf_SCRIPTS) $(sbin_SCRIPTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/argv_parse.Plo ./$(DEPDIR)/md5.Plo \ - ./$(DEPDIR)/pam_namespace.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(pam_namespace_la_SOURCES) -DIST_SOURCES = $(pam_namespace_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) $(service_DATA) -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(srcdir)/pam_namespace.service.in \ - $(srcdir)/pam_namespace_helper.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = namespace.conf.5 pam_namespace.8 pam_namespace_helper.8 -XMLS = README.xml namespace.conf.5.xml pam_namespace.8.xml pam_namespace_helper.8.xml -dist_check_SCRIPTS = tst-pam_namespace -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -namespaceddir = $(SCONFIGDIR)/namespace.d -servicedir = $(systemdunitdir) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -noinst_HEADERS = md5.h pam_namespace.h argv_parse.h -securelib_LTLIBRARIES = pam_namespace.la -pam_namespace_la_SOURCES = pam_namespace.c md5.c argv_parse.c -pam_namespace_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ -dist_secureconf_DATA = namespace.conf -dist_secureconf_SCRIPTS = namespace.init -service_DATA = pam_namespace.service -sbin_SCRIPTS = pam_namespace_helper -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_namespace/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_namespace/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -pam_namespace_helper: $(top_builddir)/config.status $(srcdir)/pam_namespace_helper.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -pam_namespace.service: $(top_builddir)/config.status $(srcdir)/pam_namespace.service.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_namespace.la: $(pam_namespace_la_OBJECTS) $(pam_namespace_la_DEPENDENCIES) $(EXTRA_pam_namespace_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_namespace_la_OBJECTS) $(pam_namespace_la_LIBADD) $(LIBS) -install-dist_secureconfSCRIPTS: $(dist_secureconf_SCRIPTS) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_SCRIPTS)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n' \ - -e 'h;s|.*|.|' \ - -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) { files[d] = files[d] " " $$1; \ - if (++n[d] == $(am__install_max)) { \ - print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ - else { print "f", d "/" $$4, $$1 } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(secureconfdir)$$dir'"; \ - $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(secureconfdir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-dist_secureconfSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_SCRIPTS)'; test -n "$(secureconfdir)" || exit 0; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 's,.*/,,;$(transform)'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) -install-sbinSCRIPTS: $(sbin_SCRIPTS) - @$(NORMAL_INSTALL) - @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n' \ - -e 'h;s|.*|.|' \ - -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) { files[d] = files[d] " " $$1; \ - if (++n[d] == $(am__install_max)) { \ - print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ - else { print "f", d "/" $$4, $$1 } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ - $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-sbinSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 's,.*/,,;$(transform)'`; \ - dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argv_parse.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_namespace.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) -install-serviceDATA: $(service_DATA) - @$(NORMAL_INSTALL) - @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(servicedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(servicedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(servicedir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(servicedir)" || exit $$?; \ - done - -uninstall-serviceDATA: - @$(NORMAL_UNINSTALL) - @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(servicedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_namespace.log: tst-pam_namespace - @p='tst-pam_namespace'; \ - b='tst-pam_namespace'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(SCRIPTS) $(MANS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(secureconfdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" "$(DESTDIR)$(servicedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/argv_parse.Plo - -rm -f ./$(DEPDIR)/md5.Plo - -rm -f ./$(DEPDIR)/pam_namespace.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-data-local install-dist_secureconfDATA \ - install-dist_secureconfSCRIPTS install-man \ - install-securelibLTLIBRARIES install-serviceDATA - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-sbinSCRIPTS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/argv_parse.Plo - -rm -f ./$(DEPDIR)/md5.Plo - -rm -f ./$(DEPDIR)/pam_namespace.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA \ - uninstall-dist_secureconfSCRIPTS uninstall-man \ - uninstall-sbinSCRIPTS uninstall-securelibLTLIBRARIES \ - uninstall-serviceDATA - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-local install-dist_secureconfDATA \ - install-dist_secureconfSCRIPTS install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-man5 \ - install-man8 install-pdf install-pdf-am install-ps \ - install-ps-am install-sbinSCRIPTS install-securelibLTLIBRARIES \ - install-serviceDATA install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \ - uninstall uninstall-am uninstall-dist_secureconfDATA \ - uninstall-dist_secureconfSCRIPTS uninstall-man uninstall-man5 \ - uninstall-man8 uninstall-sbinSCRIPTS \ - uninstall-securelibLTLIBRARIES uninstall-serviceDATA - -.PRECIOUS: Makefile - - -install-data-local: - mkdir -p $(DESTDIR)$(namespaceddir) -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_namespace/README b/modules/pam_namespace/README deleted file mode 100644 index c5a6ec4d..00000000 --- a/modules/pam_namespace/README +++ /dev/null @@ -1,240 +0,0 @@ -pam_namespace — PAM module for configuring namespace for a session - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_namespace PAM module sets up a private namespace for a session with -polyinstantiated directories. A polyinstantiated directory provides a different -instance of itself based on user name, or when using SELinux, user name, -security context or both. If an executable script /etc/security/namespace.init -exists, it is used to initialize the instance directory after it is set up and -mounted on the polyinstantiated directory. The script receives the -polyinstantiated directory path, the instance directory path, flag whether the -instance directory was newly created (0 for no, 1 for yes), and the user name -as its arguments. - -If /etc/security/namespace.init does not exist, %vendordir%/security/ -namespace.init is the alternative to be used for it. - -The pam_namespace module disassociates the session namespace from the parent -namespace. Any mounts/unmounts performed in the parent namespace, such as -mounting of devices, are not reflected in the session namespace. To propagate -selected mount/unmount events from the parent namespace into the disassociated -session namespace, an administrator may use the special shared-subtree feature. -For additional information on shared-subtree feature, please refer to the mount -(8) man page and the shared-subtree description at http://lwn.net/Articles/ -159077 and http://lwn.net/Articles/159092. - -OPTIONS - -debug - - A lot of debug information is logged using syslog - -unmnt_remnt - - For programs such as su and newrole, the login session has already setup a - polyinstantiated namespace. For these programs, polyinstantiation is - performed based on new user id or security context, however the command - first needs to undo the polyinstantiation performed by login. This argument - instructs the command to first undo previous polyinstantiation before - proceeding with new polyinstantiation based on new id/context - -unmnt_only - - For trusted programs that want to undo any existing bind mounts and process - instance directories on their own, this argument allows them to unmount - currently mounted instance directories - -require_selinux - - If selinux is not enabled, return failure - -gen_hash - - Instead of using the security context string for the instance name, - generate and use its md5 hash. - -ignore_config_error - - If a line in the configuration file corresponding to a polyinstantiated - directory contains format error, skip that line process the next line. - Without this option, pam will return an error to the calling program - resulting in termination of the session. - -ignore_instance_parent_mode - - Instance parent directories by default are expected to have the restrictive - mode of 000. Using this option, an administrator can choose to ignore the - mode of the instance parent. This option should be used with caution as it - will reduce security and isolation goals of the polyinstantiation - mechanism. - -unmount_on_close - - Explicitly unmount the polyinstantiated directories instead of relying on - automatic namespace destruction after the last process in a namespace - exits. This option should be used only in case it is ensured by other means - that there cannot be any processes running in the private namespace left - after the session close. It is also useful only in case there are multiple - pam session calls in sequence from the same process. - -use_current_context - - Useful for services which do not change the SELinux context with setexeccon - call. The module will use the current SELinux context of the calling - process for the level and context polyinstantiation. - -use_default_context - - Useful for services which do not use pam_selinux for changing the SELinux - context with setexeccon call. The module will use the default SELinux - context of the user for the level and context polyinstantiation. - -mount_private - - This option can be used on systems where the / mount point or its submounts - are made shared (for example with a mount --make-rshared / command). The - module will mark the whole directory tree so any mount and unmount - operations in the polyinstantiation namespace are private. Normally the - pam_namespace will try to detect the shared / mount point and make the - polyinstantiated directories private automatically. This option has to be - used just when only a subtree is shared and / is not. - - Note that mounts and unmounts done in the private namespace will not affect - the parent namespace if this option is used or when the shared / mount - point is autodetected. - -DESCRIPTION - -The pam_namespace.so module allows setup of private namespaces with -polyinstantiated directories. Directories can be polyinstantiated based on user -name or, in the case of SELinux, user name, sensitivity level or complete -security context. If an executable script /etc/security/namespace.init exists, -it is used to initialize the namespace every time an instance directory is set -up and mounted. The script receives the polyinstantiated directory path and the -instance directory path as its arguments. - -The /etc/security/namespace.conf file specifies which directories are -polyinstantiated, how they are polyinstantiated, how instance directories would -be named, and any users for whom polyinstantiation would not be performed. - -The /etc/security/namespace.conf file ( or %vendordir%/security/namespace.conf -if it does not exist) specifies which directories are polyinstantiated, how -they are polyinstantiated, how instance directories would be named, and any -users for whom polyinstantiation would not be performed. Then individual *.conf -files from the /etc/security/namespace.d/ and %vendordir%/security/namespace.d -directories are taken too. If /etc/security/namespace.d/@filename@.conf exists, -then %vendordir%/security/namespace.d/@filename@.conf will not be used. All -namespace.d/*.conf files are sorted by their @filename@.conf in lexicographic -order regardless of which of the directories they reside in. - -When someone logs in, the file namespace.conf is scanned. Comments are marked -by # characters. Each non comment line represents one polyinstantiated -directory. The fields are separated by spaces but can be quoted by " characters -also escape sequences \b, \n, and \t are recognized. The fields are as follows: - -polydir instance_prefix method list_of_uids - -The first field, polydir, is the absolute pathname of the directory to -polyinstantiate. The special string $HOME is replaced with the user's home -directory, and $USER with the username. This field cannot be blank. - -The second field, instance_prefix is the string prefix used to build the -pathname for the instantiation of <polydir>. Depending on the polyinstantiation -method it is then appended with "instance differentiation string" to generate -the final instance directory path. This directory is created if it did not -exist already, and is then bind mounted on the <polydir> to provide an instance -of <polydir> based on the <method> column. The special string $HOME is replaced -with the user's home directory, and $USER with the username. This field cannot -be blank. - -The third field, method, is the method used for polyinstantiation. It can take -these values; "user" for polyinstantiation based on user name, "level" for -polyinstantiation based on process MLS level and user name, "context" for -polyinstantiation based on process security context and user name, "tmpfs" for -mounting tmpfs filesystem as an instance dir, and "tmpdir" for creating -temporary directory as an instance dir which is removed when the user's session -is closed. Methods "context" and "level" are only available with SELinux. This -field cannot be blank. - -The fourth field, list_of_uids, is a comma separated list of user names for -whom the polyinstantiation is not performed. If left blank, polyinstantiation -will be performed for all users. If the list is preceded with a single "~" -character, polyinstantiation is performed only for users in the list. - -The method field can contain also following optional flags separated by : -characters. - -create=mode,owner,group - create the polyinstantiated directory. The mode, -owner and group parameters are optional. The default for mode is determined by -umask, the default owner is the user whose session is opened, the default group -is the primary group of the user. - -iscript=path - path to the instance directory init script. The base directory -for relative paths is /etc/security/namespace.d. - -noinit - instance directory init script will not be executed. - -shared - the instance directories for "context" and "level" methods will not -contain the user name and will be shared among all users. - -mntopts=value - value of this flag is passed to the mount call when the tmpfs -mount is done. It allows for example the specification of the maximum size of -the tmpfs instance that is created by the mount call. In addition to options -specified in the tmpfs(5) manual the nosuid, noexec, and nodev flags can be -used to respectively disable setuid bit effect, disable running executables, -and disable devices to be interpreted on the mounted tmpfs filesystem. - -The directory where polyinstantiated instances are to be created, must exist -and must have, by default, the mode of 0000. The requirement that the instance -parent be of mode 0000 can be overridden with the command line option -ignore_instance_parent_mode - -In case of context or level polyinstantiation the SELinux context which is used -for polyinstantiation is the context used for executing a new process as -obtained by getexeccon. This context must be set by the calling application or -pam_selinux.so module. If this context is not set the polyinstatiation will be -based just on user name. - -The "instance differentiation string" is <user name> for "user" method and -<user name>_<raw directory context> for "context" and "level" methods. If the -whole string is too long the end of it is replaced with md5sum of itself. Also -when command line option gen_hash is used the whole string is replaced with -md5sum of itself. - -EXAMPLES - -These are some example lines which might be specified in /etc/security/ -namespace.conf. - - -      # The following three lines will polyinstantiate /tmp, -      # /var/tmp and user's home directories. /tmp and /var/tmp -      # will be polyinstantiated based on the security level -      # as well as user name, whereas home directory will be -      # polyinstantiated based on the full security context and user name. -      # Polyinstantiation will not be performed for user root -      # and adm for directories /tmp and /var/tmp, whereas home -      # directories will be polyinstantiated for all users. -      # -      # Note that instance directories do not have to reside inside -      # the polyinstantiated directory. In the examples below, -      # instances of /tmp will be created in /tmp-inst directory, -      # where as instances of /var/tmp and users home directories -      # will reside within the directories that are being -      # polyinstantiated. -      # -      /tmp     /tmp-inst/               level      root,adm -      /var/tmp /var/tmp/tmp-inst/   level      root,adm -      $HOME    $HOME/$USER.inst/inst- context -    - -For the <service>s you need polyinstantiation (login for example) put the -following line in /etc/pam.d/<service> as the last line for session group: - -session required pam_namespace.so [arguments] - -This module also depends on pam_selinux.so setting the context. - diff --git a/modules/pam_namespace/argv_parse.c b/modules/pam_namespace/argv_parse.c index 40510542..cbae7831 100644 --- a/modules/pam_namespace/argv_parse.c +++ b/modules/pam_namespace/argv_parse.c @@ -28,6 +28,9 @@ * Version 1.1, modified 2/27/1999 */ +#include "config.h" + +#include <limits.h> #include <stdlib.h> #include <ctype.h> #include <string.h> @@ -56,16 +59,21 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv) outcp = buf; for (cp = in_buf; (ch = *cp); cp++) { if (state == STATE_WHITESPACE) { - if (isspace((int) ch)) + if (isspace((unsigned char)ch)) continue; /* Not whitespace, so start a new token */ state = STATE_TOKEN; if (argc >= max_argc) { + if (max_argc >= INT_MAX - 3) { + free(argv); + free(buf); + return -1; + } max_argc += 3; new_argv = realloc(argv, (max_argc+1)*sizeof(char *)); if (!new_argv) { - if (argv) free(argv); + free(argv); free(buf); return -1; } @@ -81,7 +89,7 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv) continue; } /* Must be processing characters in a word */ - if (isspace((int) ch)) { + if (isspace((unsigned char)ch)) { /* * Terminate the current word and start * looking for the beginning of the next word. @@ -131,8 +139,7 @@ int argv_parse(const char *in_buf, int *ret_argc, char ***ret_argv) void argv_free(char **argv) { if (argv) { - if (*argv) - free(*argv); + free(*argv); free(argv); } } diff --git a/modules/pam_namespace/meson.build b/modules/pam_namespace/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_namespace/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_namespace/namespace.conf.5 b/modules/pam_namespace/namespace.conf.5 deleted file mode 100644 index cf2509ca..00000000 --- a/modules/pam_namespace/namespace.conf.5 +++ /dev/null @@ -1,168 +0,0 @@ -'\" t -.\" Title: namespace.conf -.\" Author: [see the "AUTHORS" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "NAMESPACE\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -namespace.conf \- the namespace configuration file -.SH "DESCRIPTION" -.PP -The -\fIpam_namespace\&.so\fR -module allows setup of private namespaces with polyinstantiated directories\&. Directories can be polyinstantiated based on user name or, in the case of SELinux, user name, sensitivity level or complete security context\&. If an executable script -/etc/security/namespace\&.init -exists, it is used to initialize the namespace every time an instance directory is set up and mounted\&. The script receives the polyinstantiated directory path and the instance directory path as its arguments\&. -.PP -The -/etc/security/namespace\&.conf -file specifies which directories are polyinstantiated, how they are polyinstantiated, how instance directories would be named, and any users for whom polyinstantiation would not be performed\&. -.PP -When someone logs in, the file -namespace\&.conf -is scanned\&. Comments are marked by -\fI#\fR -characters\&. Each non comment line represents one polyinstantiated directory\&. The fields are separated by spaces but can be quoted by -\fI"\fR -characters also escape sequences -\fI\eb\fR, -\fI\en\fR, and -\fI\et\fR -are recognized\&. The fields are as follows: -.PP -\fIpolydir\fR -\fIinstance_prefix\fR -\fImethod\fR -\fIlist_of_uids\fR -.PP -The first field, -\fIpolydir\fR, is the absolute pathname of the directory to polyinstantiate\&. The special string -\fI$HOME\fR -is replaced with the user\*(Aqs home directory, and -\fI$USER\fR -with the username\&. This field cannot be blank\&. -.PP -The second field, -\fIinstance_prefix\fR -is the string prefix used to build the pathname for the instantiation of <polydir>\&. Depending on the polyinstantiation -\fImethod\fR -it is then appended with "instance differentiation string" to generate the final instance directory path\&. This directory is created if it did not exist already, and is then bind mounted on the <polydir> to provide an instance of <polydir> based on the <method> column\&. The special string -\fI$HOME\fR -is replaced with the user\*(Aqs home directory, and -\fI$USER\fR -with the username\&. This field cannot be blank\&. -.PP -The third field, -\fImethod\fR, is the method used for polyinstantiation\&. It can take these values; "user" for polyinstantiation based on user name, "level" for polyinstantiation based on process MLS level and user name, "context" for polyinstantiation based on process security context and user name, "tmpfs" for mounting tmpfs filesystem as an instance dir, and "tmpdir" for creating temporary directory as an instance dir which is removed when the user\*(Aqs session is closed\&. Methods "context" and "level" are only available with SELinux\&. This field cannot be blank\&. -.PP -The fourth field, -\fIlist_of_uids\fR, is a comma separated list of user names for whom the polyinstantiation is not performed\&. If left blank, polyinstantiation will be performed for all users\&. If the list is preceded with a single "~" character, polyinstantiation is performed only for users in the list\&. -.PP -The -\fImethod\fR -field can contain also following optional flags separated by -\fI:\fR -characters\&. -.PP -\fIcreate\fR=\fImode\fR,\fIowner\fR,\fIgroup\fR -\- create the polyinstantiated directory\&. The mode, owner and group parameters are optional\&. The default for mode is determined by umask, the default owner is the user whose session is opened, the default group is the primary group of the user\&. -.PP -\fIiscript\fR=\fIpath\fR -\- path to the instance directory init script\&. The base directory for relative paths is -/etc/security/namespace\&.d\&. -.PP -\fInoinit\fR -\- instance directory init script will not be executed\&. -.PP -\fIshared\fR -\- the instance directories for "context" and "level" methods will not contain the user name and will be shared among all users\&. -.PP -\fImntopts\fR=\fIvalue\fR -\- value of this flag is passed to the mount call when the tmpfs mount is done\&. It allows for example the specification of the maximum size of the tmpfs instance that is created by the mount call\&. In addition to options specified in the -\fBtmpfs\fR(5) -manual the -\fInosuid\fR, -\fInoexec\fR, and -\fInodev\fR -flags can be used to respectively disable setuid bit effect, disable running executables, and disable devices to be interpreted on the mounted tmpfs filesystem\&. -.PP -The directory where polyinstantiated instances are to be created, must exist and must have, by default, the mode of 0000\&. The requirement that the instance parent be of mode 0000 can be overridden with the command line option -\fIignore_instance_parent_mode\fR -.PP -In case of context or level polyinstantiation the SELinux context which is used for polyinstantiation is the context used for executing a new process as obtained by getexeccon\&. This context must be set by the calling application or -pam_selinux\&.so -module\&. If this context is not set the polyinstatiation will be based just on user name\&. -.PP -The "instance differentiation string" is <user name> for "user" method and <user name>_<raw directory context> for "context" and "level" methods\&. If the whole string is too long the end of it is replaced with md5sum of itself\&. Also when command line option -\fIgen_hash\fR -is used the whole string is replaced with md5sum of itself\&. -.SH "EXAMPLES" -.PP -These are some example lines which might be specified in -/etc/security/namespace\&.conf\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf - # The following three lines will polyinstantiate /tmp, - # /var/tmp and user\*(Aqs home directories\&. /tmp and /var/tmp - # will be polyinstantiated based on the security level - # as well as user name, whereas home directory will be - # polyinstantiated based on the full security context and user name\&. - # Polyinstantiation will not be performed for user root - # and adm for directories /tmp and /var/tmp, whereas home - # directories will be polyinstantiated for all users\&. - # - # Note that instance directories do not have to reside inside - # the polyinstantiated directory\&. In the examples below, - # instances of /tmp will be created in /tmp\-inst directory, - # where as instances of /var/tmp and users home directories - # will reside within the directories that are being - # polyinstantiated\&. - # - /tmp /tmp\-inst/ level root,adm - /var/tmp /var/tmp/tmp\-inst/ level root,adm - $HOME $HOME/$USER\&.inst/inst\- context - -.fi -.if n \{\ -.RE -.\} -.PP -For the <service>s you need polyinstantiation (login for example) put the following line in /etc/pam\&.d/<service> as the last line for session group: -.PP -session required pam_namespace\&.so [arguments] -.PP -This module also depends on pam_selinux\&.so setting the context\&. -.SH "SEE ALSO" -.PP -\fBpam_namespace\fR(8), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHORS" -.PP -The namespace\&.conf manual page was written by Janak Desai <janak@us\&.ibm\&.com>\&. More features added by Tomas Mraz <tmraz@redhat\&.com>\&. diff --git a/modules/pam_namespace/namespace.conf.5.xml b/modules/pam_namespace/namespace.conf.5.xml index d398639b..54f94311 100644 --- a/modules/pam_namespace/namespace.conf.5.xml +++ b/modules/pam_namespace/namespace.conf.5.xml @@ -24,7 +24,10 @@ executable script <filename>/etc/security/namespace.init</filename> exists, it is used to initialize the namespace every time an instance directory is set up and mounted. The script receives the polyinstantiated - directory path and the instance directory path as its arguments. + directory path and the instance directory path as its arguments. The + script is invoked with full root privileges and accessing the instance directory + in this context needs to be done with caution, as it is controlled by the unprivileged + user for which it has been created. </para> <para condition="without_vendordir"> @@ -74,12 +77,13 @@ <para> The second field, <replaceable>instance_prefix</replaceable> is the string prefix used to build the pathname for the instantiation - of <polydir>. Depending on the polyinstantiation - <replaceable>method</replaceable> it is then appended with - "instance differentiation string" to generate the final - instance directory path. This directory is created if it did not exist - already, and is then bind mounted on the <polydir> to provide an - instance of <polydir> based on the <method> column. + of <polydir>. The path must end in a trailing slash, or + in a directory prefix used to build the full per-instance path. + Depending on the polyinstantiation <replaceable>method</replaceable> it + is then appended with "instance differentiation string" to generate the + final instance directory path. This directory is created if it did not + exist already, and is then bind mounted on the <polydir> to provide + an instance of <polydir> based on the <method> column. The special string <emphasis>$HOME</emphasis> is replaced with the user's home directory, and <emphasis>$USER</emphasis> with the username. This field cannot be blank. @@ -157,7 +161,7 @@ which is used for polyinstantiation is the context used for executing a new process as obtained by getexeccon. This context must be set by the calling application or <filename>pam_selinux.so</filename> - module. If this context is not set the polyinstatiation will be + module. If this context is not set the polyinstantiation will be based just on user name. </para> diff --git a/modules/pam_namespace/namespace.init b/modules/pam_namespace/namespace.init index d9053a13..1a6b6243 100755 --- a/modules/pam_namespace/namespace.init +++ b/modules/pam_namespace/namespace.init @@ -15,7 +15,7 @@ if [ "$3" = 1 ]; then gid=$(echo "$passwd" | cut -f4 -d":") cp -rT /etc/skel "$homedir" chown -R "$user":"$gid" "$homedir" - mask=$(awk '/^UMASK/{gsub("#.*$", "", $2); print $2; exit}' /etc/login.defs) + mask=$(sed -E -n 's/^UMASK[[:space:]]+([^#[:space:]]+).*/\1/p' /etc/login.defs) mode=$(printf "%o" $((0777 & ~mask))) chmod ${mode:-700} "$homedir" [ -x /sbin/restorecon ] && /sbin/restorecon -R "$homedir" diff --git a/modules/pam_namespace/pam_namespace.8 b/modules/pam_namespace/pam_namespace.8 deleted file mode 100644 index 3c9e9b39..00000000 --- a/modules/pam_namespace/pam_namespace.8 +++ /dev/null @@ -1,154 +0,0 @@ -'\" t -.\" Title: pam_namespace -.\" Author: [see the "AUTHORS" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_NAMESPACE" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_namespace \- PAM module for configuring namespace for a session -.SH "SYNOPSIS" -.HP \w'\fBpam_namespace\&.so\fR\ 'u -\fBpam_namespace\&.so\fR [debug] [unmnt_remnt] [unmnt_only] [require_selinux] [gen_hash] [ignore_config_error] [ignore_instance_parent_mode] [unmount_on_close] [use_current_context] [use_default_context] [mount_private] -.SH "DESCRIPTION" -.PP -The pam_namespace PAM module sets up a private namespace for a session with polyinstantiated directories\&. A polyinstantiated directory provides a different instance of itself based on user name, or when using SELinux, user name, security context or both\&. If an executable script -/etc/security/namespace\&.init -exists, it is used to initialize the instance directory after it is set up and mounted on the polyinstantiated directory\&. The script receives the polyinstantiated directory path, the instance directory path, flag whether the instance directory was newly created (0 for no, 1 for yes), and the user name as its arguments\&. -.PP -The pam_namespace module disassociates the session namespace from the parent namespace\&. Any mounts/unmounts performed in the parent namespace, such as mounting of devices, are not reflected in the session namespace\&. To propagate selected mount/unmount events from the parent namespace into the disassociated session namespace, an administrator may use the special shared\-subtree feature\&. For additional information on shared\-subtree feature, please refer to the mount(8) man page and the shared\-subtree description at http://lwn\&.net/Articles/159077 and http://lwn\&.net/Articles/159092\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -A lot of debug information is logged using syslog -.RE -.PP -unmnt_remnt -.RS 4 -For programs such as su and newrole, the login session has already setup a polyinstantiated namespace\&. For these programs, polyinstantiation is performed based on new user id or security context, however the command first needs to undo the polyinstantiation performed by login\&. This argument instructs the command to first undo previous polyinstantiation before proceeding with new polyinstantiation based on new id/context -.RE -.PP -unmnt_only -.RS 4 -For trusted programs that want to undo any existing bind mounts and process instance directories on their own, this argument allows them to unmount currently mounted instance directories -.RE -.PP -require_selinux -.RS 4 -If selinux is not enabled, return failure -.RE -.PP -gen_hash -.RS 4 -Instead of using the security context string for the instance name, generate and use its md5 hash\&. -.RE -.PP -ignore_config_error -.RS 4 -If a line in the configuration file corresponding to a polyinstantiated directory contains format error, skip that line process the next line\&. Without this option, pam will return an error to the calling program resulting in termination of the session\&. -.RE -.PP -ignore_instance_parent_mode -.RS 4 -Instance parent directories by default are expected to have the restrictive mode of 000\&. Using this option, an administrator can choose to ignore the mode of the instance parent\&. This option should be used with caution as it will reduce security and isolation goals of the polyinstantiation mechanism\&. -.RE -.PP -unmount_on_close -.RS 4 -Explicitly unmount the polyinstantiated directories instead of relying on automatic namespace destruction after the last process in a namespace exits\&. This option should be used only in case it is ensured by other means that there cannot be any processes running in the private namespace left after the session close\&. It is also useful only in case there are multiple pam session calls in sequence from the same process\&. -.RE -.PP -use_current_context -.RS 4 -Useful for services which do not change the SELinux context with setexeccon call\&. The module will use the current SELinux context of the calling process for the level and context polyinstantiation\&. -.RE -.PP -use_default_context -.RS 4 -Useful for services which do not use pam_selinux for changing the SELinux context with setexeccon call\&. The module will use the default SELinux context of the user for the level and context polyinstantiation\&. -.RE -.PP -mount_private -.RS 4 -This option can be used on systems where the / mount point or its submounts are made shared (for example with a -\fBmount \-\-make\-rshared /\fR -command)\&. The module will mark the whole directory tree so any mount and unmount operations in the polyinstantiation namespace are private\&. Normally the pam_namespace will try to detect the shared / mount point and make the polyinstantiated directories private automatically\&. This option has to be used just when only a subtree is shared and / is not\&. -.sp -Note that mounts and unmounts done in the private namespace will not affect the parent namespace if this option is used or when the shared / mount point is autodetected\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -module type is provided\&. The module must not be called from multithreaded processes\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -Namespace setup was successful\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Unexpected system error occurred while setting up namespace\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Unexpected namespace configuration error occurred\&. -.RE -.SH "FILES" -.PP -/etc/security/namespace\&.conf -.RS 4 -Main configuration file -.RE -.PP -/etc/security/namespace\&.d -.RS 4 -Directory for additional configuration files -.RE -.PP -/etc/security/namespace\&.init -.RS 4 -Init script for instance directories -.RE -.SH "EXAMPLES" -.PP -For the <service>s you need polyinstantiation (login for example) put the following line in /etc/pam\&.d/<service> as the last line for session group: -.PP -session required pam_namespace\&.so [arguments] -.PP -To use polyinstantiation with graphical display manager gdm, please refer to gdm\*(Aqs documentation\&. -.SH "SEE ALSO" -.PP -\fBnamespace.conf\fR(5), -\fBpam.d\fR(5), -\fBmount\fR(8), -\fBpam\fR(8)\&. -.SH "AUTHORS" -.PP -The namespace setup scheme was designed by Stephen Smalley, Janak Desai and Chad Sellers\&. The pam_namespace PAM module was developed by Janak Desai <janak@us\&.ibm\&.com>, Chad Sellers <csellers@tresys\&.com> and Steve Grubb <sgrubb@redhat\&.com>\&. Additional improvements by Xavier Toth <txtoth@gmail\&.com> and Tomas Mraz <tmraz@redhat\&.com>\&. diff --git a/modules/pam_namespace/pam_namespace.8.xml b/modules/pam_namespace/pam_namespace.8.xml index 598037a4..a866d2ef 100644 --- a/modules/pam_namespace/pam_namespace.8.xml +++ b/modules/pam_namespace/pam_namespace.8.xml @@ -68,7 +68,10 @@ and mounted on the polyinstantiated directory. The script receives the polyinstantiated directory path, the instance directory path, flag whether the instance directory was newly created (0 for no, 1 for yes), - and the user name as its arguments. + and the user name as its arguments. The script is invoked with full root + privileges and accessing the instance directory in this context needs to + be done with caution, as it is controlled by the unprivileged user for + which it has been created. </para> <para condition="with_vendordir"> diff --git a/modules/pam_namespace/pam_namespace.c b/modules/pam_namespace/pam_namespace.c index f34ce934..ba7910f6 100644 --- a/modules/pam_namespace/pam_namespace.c +++ b/modules/pam_namespace/pam_namespace.c @@ -34,12 +34,14 @@ #define _ATFILE_SOURCE +#include "config.h" +#include <stdint.h> #include "pam_cc_compat.h" #include "pam_inline.h" #include "pam_namespace.h" #include "argv_parse.h" -/* --- evaluting all files in VENDORDIR/security/namespace.d and /etc/security/namespace.d --- */ +/* --- evaluating all files in VENDORDIR/security/namespace.d and /etc/security/namespace.d --- */ static const char *base_name(const char *path) { const char *base = strrchr(path, '/'); @@ -53,6 +55,14 @@ compare_filename(const void *a, const void *b) base_name(* (char * const *) b)); } +static void close_fds_pre_exec(struct instance_data *idata) +{ + if (pam_modutil_sanitize_helper_fds(idata->pamh, PAM_MODUTIL_IGNORE_FD, + PAM_MODUTIL_IGNORE_FD, PAM_MODUTIL_IGNORE_FD) < 0) { + _exit(1); + } +} + /* Evaluating a list of files which have to be parsed in the right order: * * - If etc/security/namespace.d/@filename@.conf exists, then @@ -196,7 +206,7 @@ static void cleanup_protect_data(pam_handle_t *pamh UNUSED , void *data, int err unprotect_dirs(data); } -static char *expand_variables(const char *orig, const char *var_names[], const char *var_values[]) +static char *expand_variables(const char *orig, const char *const var_names[], const char *var_values[]) { const char *src = orig; char *dst; @@ -207,7 +217,7 @@ static char *expand_variables(const char *orig, const char *var_names[], const c if (*src == '$') { int i; for (i = 0; var_names[i]; i++) { - int namelen = strlen(var_names[i]); + size_t namelen = strlen(var_names[i]); if (strncmp(var_names[i], src+1, namelen) == 0) { dstlen += strlen(var_values[i]) - 1; /* $ */ src += namelen; @@ -225,7 +235,7 @@ static char *expand_variables(const char *orig, const char *var_names[], const c if (c == '$') { int i; for (i = 0; var_names[i]; i++) { - int namelen = strlen(var_names[i]); + size_t namelen = strlen(var_names[i]); if (strncmp(var_names[i], src+1, namelen) == 0) { dst = stpcpy(dst, var_values[i]); --dst; @@ -392,9 +402,9 @@ static int parse_method(char *method, struct polydir_s *poly, { enum polymethod pm; char *sptr = NULL; - static const char *method_names[] = { "user", "context", "level", "tmpdir", + static const char *const method_names[] = { "user", "context", "level", "tmpdir", "tmpfs", NULL }; - static const char *flag_names[] = { "create", "noinit", "iscript", + static const char *const flag_names[] = { "create", "noinit", "iscript", "shared", "mntopts", NULL }; static const unsigned int flag_values[] = { POLYDIR_CREATE, POLYDIR_NOINIT, POLYDIR_ISCRIPT, POLYDIR_SHARED, POLYDIR_MNTOPTS }; @@ -419,7 +429,7 @@ static int parse_method(char *method, struct polydir_s *poly, while ((flag=strtok_r(NULL, ":", &sptr)) != NULL) { for (i = 0; flag_names[i]; i++) { - int namelen = strlen(flag_names[i]); + size_t namelen = strlen(flag_names[i]); if (strncmp(flag, flag_names[i], namelen) == 0) { poly->flags |= flag_values[i]; @@ -465,7 +475,7 @@ static int parse_method(char *method, struct polydir_s *poly, * of the namespace configuration file. It skips over comments and incomplete * or malformed lines. It processes a valid line with information on * polyinstantiating a directory by populating appropriate fields of a - * polyinstatiated directory structure and then calling add_polydir_entry to + * polyinstantiated directory structure and then calling add_polydir_entry to * add that entry to the linked list of polyinstantiated directories. */ static int process_line(char *line, const char *home, const char *rhome, @@ -477,15 +487,15 @@ static int process_line(char *line, const char *home, const char *rhome, struct polydir_s *poly; int retval = 0; char **config_options = NULL; - static const char *var_names[] = {"HOME", "USER", NULL}; + static const char *const var_names[] = {"HOME", "USER", NULL}; const char *var_values[] = {home, idata->user}; const char *rvar_values[] = {rhome, idata->ruser}; - int len; + size_t len; /* * skip the leading white space */ - while (*line && isspace(*line)) + while (*line && isspace((unsigned char)*line)) line++; /* @@ -529,7 +539,7 @@ static int process_line(char *line, const char *home, const char *rhome, instance_prefix = config_options[1]; if (instance_prefix == NULL) { pam_syslog(idata->pamh, LOG_NOTICE, "Invalid line missing instance_prefix"); - instance_prefix = NULL; + dir = NULL; goto skipping; } method = config_options[2]; @@ -592,26 +602,20 @@ static int process_line(char *line, const char *home, const char *rhome, * Populate polyinstantiated directory structure with appropriate * pathnames and the method with which to polyinstantiate. */ - if (strlen(dir) >= sizeof(poly->dir) - || strlen(rdir) >= sizeof(poly->rdir) - || strlen(instance_prefix) >= sizeof(poly->instance_prefix)) { - pam_syslog(idata->pamh, LOG_NOTICE, "Pathnames too long"); - goto skipping; - } - strcpy(poly->dir, dir); - strcpy(poly->rdir, rdir); - strcpy(poly->instance_prefix, instance_prefix); - if (parse_method(method, poly, idata) != 0) { goto skipping; } - if (poly->method == TMPDIR) { - if (sizeof(poly->instance_prefix) - strlen(poly->instance_prefix) < 7) { - pam_syslog(idata->pamh, LOG_NOTICE, "Pathnames too long"); - goto skipping; - } - strcat(poly->instance_prefix, "XXXXXX"); +#define COPY_STR(dst, src, apd) \ + (snprintf((dst), sizeof(dst), "%s%s", (src), (apd)) != \ + (ssize_t) (strlen(src) + strlen(apd))) + + if (COPY_STR(poly->dir, dir, "") + || COPY_STR(poly->rdir, rdir, "") + || COPY_STR(poly->instance_prefix, instance_prefix, + poly->method == TMPDIR ? "XXXXXX" : "")) { + pam_syslog(idata->pamh, LOG_NOTICE, "Pathnames too long"); + goto skipping; } /* @@ -635,7 +639,7 @@ static int process_line(char *line, const char *home, const char *rhome, if (uids) { uid_t *uidptr; const char *ustr, *sstr; - int count, i; + size_t count, i; if (*uids == '~') { poly->flags |= POLYDIR_EXCLUSIVE; @@ -644,8 +648,13 @@ static int process_line(char *line, const char *home, const char *rhome, for (count = 0, ustr = sstr = uids; sstr; ustr = sstr + 1, count++) sstr = strchr(ustr, ','); + if (count > UINT_MAX || count > SIZE_MAX / sizeof(uid_t)) { + pam_syslog(idata->pamh, LOG_ERR, "Too many uids encountered in configuration"); + goto skipping; + } + poly->num_uids = count; - poly->uid = (uid_t *) malloc(count * sizeof (uid_t)); + poly->uid = malloc(count * sizeof (uid_t)); uidptr = poly->uid; if (uidptr == NULL) { goto erralloc; @@ -994,6 +1003,7 @@ static int form_context(const struct polydir_s *polyptr, return rc; } /* Should never get here */ + freecon(scon); return PAM_SUCCESS; } #endif @@ -1194,7 +1204,7 @@ static int protect_dir(const char *path, mode_t mode, int do_mkdir, int dfd = AT_FDCWD; int dfd_next; int save_errno; - int flags = O_RDONLY; + int flags = O_RDONLY | O_DIRECTORY; int rv = -1; struct stat st; @@ -1248,22 +1258,6 @@ static int protect_dir(const char *path, mode_t mode, int do_mkdir, rv = openat(dfd, dir, flags); } - if (rv != -1) { - if (fstat(rv, &st) != 0) { - save_errno = errno; - close(rv); - rv = -1; - errno = save_errno; - goto error; - } - if (!S_ISDIR(st.st_mode)) { - close(rv); - errno = ENOTDIR; - rv = -1; - goto error; - } - } - if (flags & O_NOFOLLOW) { /* we are inside user-owned dir - protect */ if (protect_mount(rv, p, idata) == -1) { @@ -1295,13 +1289,12 @@ static int check_inst_parent(char *ipath, struct instance_data *idata) * admin explicitly instructs to ignore the instance parent * mode by the "ignore_instance_parent_mode" argument). */ - inst_parent = (char *) malloc(strlen(ipath)+1); + inst_parent = strdup(ipath); if (!inst_parent) { pam_syslog(idata->pamh, LOG_CRIT, "Error allocating pathname string"); return PAM_SESSION_ERR; } - strcpy(inst_parent, ipath); trailing_slash = strrchr(inst_parent, '/'); if (trailing_slash) *trailing_slash = '\0'; @@ -1386,6 +1379,8 @@ static int inst_init(const struct polydir_s *polyptr, const char *ipath, /* ignore failures, they don't matter */ } + close_fds_pre_exec(idata); + if (execle(init_script, init_script, polyptr->dir, ipath, newdir?"1":"0", idata->user, NULL, envp) < 0) _exit(1); @@ -1438,7 +1433,9 @@ static int create_polydir(struct polydir_s *polyptr, #ifdef WITH_SELINUX if (idata->flags & PAMNS_SELINUX_ENABLED) { - getfscreatecon_raw(&oldcon_raw); + if (getfscreatecon_raw(&oldcon_raw) != 0) + pam_syslog(idata->pamh, LOG_NOTICE, + "Error retrieving fs create context: %m"); label_handle = selabel_open(SELABEL_CTX_FILE, NULL, 0); if (!label_handle) { @@ -1467,6 +1464,9 @@ static int create_polydir(struct polydir_s *polyptr, if (rc == -1) { pam_syslog(idata->pamh, LOG_ERR, "Error creating directory %s: %m", dir); +#ifdef WITH_SELINUX + freecon(oldcon_raw); +#endif return PAM_SESSION_ERR; } @@ -1824,6 +1824,7 @@ static int cleanup_tmpdirs(struct instance_data *idata) _exit(1); } #endif + close_fds_pre_exec(idata); if (execle("/bin/rm", "/bin/rm", "-rf", pptr->instance_prefix, NULL, envp) < 0) _exit(1); } else if (pid > 0) { @@ -1840,7 +1841,7 @@ static int cleanup_tmpdirs(struct instance_data *idata) } } else if (pid < 0) { pam_syslog(idata->pamh, LOG_ERR, - "Cannot fork to run namespace init script, %m"); + "Cannot fork to cleanup temporary directory, %m"); rc = PAM_SESSION_ERR; goto out; } diff --git a/modules/pam_namespace/pam_namespace.h b/modules/pam_namespace/pam_namespace.h index a991b4c4..17999380 100644 --- a/modules/pam_namespace/pam_namespace.h +++ b/modules/pam_namespace/pam_namespace.h @@ -90,15 +90,15 @@ /* * Module defines */ -#define PAM_NAMESPACE_CONFIG (SCONFIGDIR "/namespace.conf") -#define NAMESPACE_INIT_SCRIPT (SCONFIGDIR "/namespace.init") -#define NAMESPACE_D_DIR (SCONFIGDIR "/namespace.d/") -#define NAMESPACE_D_GLOB (SCONFIGDIR "/namespace.d/*.conf") -#ifdef VENDOR_SCONFIGDIR -#define VENDOR_NAMESPACE_INIT_SCRIPT (VENDOR_SCONFIGDIR "/namespace.init") -#define VENDOR_PAM_NAMESPACE_CONFIG (VENDOR_SCONFIGDIR "/namespace.conf") -#define VENDOR_NAMESPACE_D_DIR (VENDOR_SCONFIGDIR "/namespace.d/") -#define VENDOR_NAMESPACE_D_GLOB (VENDOR_SCONFIGDIR "/namespace.d/*.conf") +#define PAM_NAMESPACE_CONFIG (SCONFIG_DIR "/namespace.conf") +#define NAMESPACE_INIT_SCRIPT (SCONFIG_DIR "/namespace.init") +#define NAMESPACE_D_DIR (SCONFIG_DIR "/namespace.d/") +#define NAMESPACE_D_GLOB (SCONFIG_DIR "/namespace.d/*.conf") +#ifdef VENDOR_SCONFIG_DIR +#define VENDOR_NAMESPACE_INIT_SCRIPT (VENDOR_SCONFIG_DIR "/namespace.init") +#define VENDOR_PAM_NAMESPACE_CONFIG (VENDOR_SCONFIG_DIR "/namespace.conf") +#define VENDOR_NAMESPACE_D_DIR (VENDOR_SCONFIG_DIR "/namespace.d/") +#define VENDOR_NAMESPACE_D_GLOB (VENDOR_SCONFIG_DIR "/namespace.d/*.conf") #endif /* module flags */ @@ -114,7 +114,7 @@ #define PAMNS_MOUNT_PRIVATE 0x00080000 /* Make the polydir mounts private */ /* polydir flags */ -#define POLYDIR_EXCLUSIVE 0x00000001 /* polyinstatiate exclusively for override uids */ +#define POLYDIR_EXCLUSIVE 0x00000001 /* polyinstantiate exclusively for override uids */ #define POLYDIR_CREATE 0x00000002 /* create the polydir */ #define POLYDIR_NOINIT 0x00000004 /* no init script */ #define POLYDIR_SHARED 0x00000008 /* share context/level instances among users */ diff --git a/modules/pam_namespace/pam_namespace_helper.8 b/modules/pam_namespace/pam_namespace_helper.8 deleted file mode 100644 index 317cddc8..00000000 --- a/modules/pam_namespace/pam_namespace_helper.8 +++ /dev/null @@ -1,49 +0,0 @@ -'\" t -.\" Title: pam_namespace_helper -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_NAMESPACE_HELPER" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_namespace_helper \- Helper binary that creates home directories -.SH "SYNOPSIS" -.HP \w'\fBpam_namespace_helper\fR\ 'u -\fBpam_namespace_helper\fR -.SH "DESCRIPTION" -.PP -\fIpam_namespace_helper\fR -is a helper program for the -\fIpam_namespace\fR -module that sets up a private namespace for a session with polyinstantiated directories\&. The helper ensures that the namespace mount points exist before they are started to be used for the polyinstantiated directories\&. Mount points for home directories (lines with $HOME) are not created\&. -.PP -\fIpam_namespace_helper\fR -should be run by systemd at system startup\&. It should also be run by the administrator after defining the polyinstantiated directories but before enabling them\&. -.SH "SEE ALSO" -.PP -\fBpam_namespace\fR(8) -.SH "AUTHOR" -.PP -Written by Topi Miettinen\&. diff --git a/modules/pam_nologin/Makefile.am b/modules/pam_nologin/Makefile.am deleted file mode 100644 index 4343b61c..00000000 --- a/modules/pam_nologin/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_nologin.8 -endif -XMLS = README.xml pam_nologin.8.xml -dist_check_SCRIPTS = tst-pam_nologin -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_nologin.la -pam_nologin_la_LIBADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_nologin-retval -tst_pam_nologin_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_nologin/Makefile.in b/modules/pam_nologin/Makefile.in deleted file mode 100644 index ebfa09b3..00000000 --- a/modules/pam_nologin/Makefile.in +++ /dev/null @@ -1,1192 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_nologin-retval$(EXEEXT) -subdir = modules/pam_nologin -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_nologin_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_nologin_la_SOURCES = pam_nologin.c -pam_nologin_la_OBJECTS = pam_nologin.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_nologin_retval_SOURCES = tst-pam_nologin-retval.c -tst_pam_nologin_retval_OBJECTS = tst-pam_nologin-retval.$(OBJEXT) -tst_pam_nologin_retval_DEPENDENCIES = \ - $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_nologin.Plo \ - ./$(DEPDIR)/tst-pam_nologin-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_nologin.c tst-pam_nologin-retval.c -DIST_SOURCES = pam_nologin.c tst-pam_nologin-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_nologin.8 -XMLS = README.xml pam_nologin.8.xml -dist_check_SCRIPTS = tst-pam_nologin -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_nologin.la -pam_nologin_la_LIBADD = $(top_builddir)/libpam/libpam.la -tst_pam_nologin_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_nologin/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_nologin/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_nologin.la: $(pam_nologin_la_OBJECTS) $(pam_nologin_la_DEPENDENCIES) $(EXTRA_pam_nologin_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_nologin_la_OBJECTS) $(pam_nologin_la_LIBADD) $(LIBS) - -tst-pam_nologin-retval$(EXEEXT): $(tst_pam_nologin_retval_OBJECTS) $(tst_pam_nologin_retval_DEPENDENCIES) $(EXTRA_tst_pam_nologin_retval_DEPENDENCIES) - @rm -f tst-pam_nologin-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_nologin_retval_OBJECTS) $(tst_pam_nologin_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_nologin.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_nologin-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_nologin.log: tst-pam_nologin - @p='tst-pam_nologin'; \ - b='tst-pam_nologin'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_nologin-retval.log: tst-pam_nologin-retval$(EXEEXT) - @p='tst-pam_nologin-retval$(EXEEXT)'; \ - b='tst-pam_nologin-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_nologin.Plo - -rm -f ./$(DEPDIR)/tst-pam_nologin-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_nologin.Plo - -rm -f ./$(DEPDIR)/tst-pam_nologin-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_nologin/README b/modules/pam_nologin/README deleted file mode 100644 index 25b1e927..00000000 --- a/modules/pam_nologin/README +++ /dev/null @@ -1,41 +0,0 @@ -pam_nologin — Prevent non-root users from login - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_nologin is a PAM module that prevents users from logging into the system -when /var/run/nologin or /etc/nologin exists. The contents of the file are -displayed to the user. The pam_nologin module has no effect on the root user's -ability to log in. - -OPTIONS - -file=/path/nologin - - Use this file instead the default /var/run/nologin or /etc/nologin. - -successok - - Return PAM_SUCCESS if no file exists, the default is PAM_IGNORE. - -EXAMPLES - -The suggested usage for /etc/pam.d/login is: - -auth required pam_nologin.so - - -NOTES - -In order to make this module effective, all login methods should be secured by -it. It should be used as a required method listed before any sufficient methods -in order to get standard Unix nologin semantics. Note, the use of successok -module argument causes the module to return PAM_SUCCESS and as such would break -such a configuration - failing sufficient modules would lead to a successful -login because the nologin module succeeded. - -AUTHOR - -pam_nologin was written by Michael K. Johnson <johnsonm@redhat.com>. - diff --git a/modules/pam_nologin/meson.build b/modules/pam_nologin/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_nologin/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_nologin/pam_nologin.8 b/modules/pam_nologin/pam_nologin.8 deleted file mode 100644 index ceb0237f..00000000 --- a/modules/pam_nologin/pam_nologin.8 +++ /dev/null @@ -1,130 +0,0 @@ -'\" t -.\" Title: pam_nologin -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_NOLOGIN" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_nologin \- Prevent non\-root users from login -.SH "SYNOPSIS" -.HP \w'\fBpam_nologin\&.so\fR\ 'u -\fBpam_nologin\&.so\fR [file=\fI/path/nologin\fR] [successok] -.SH "DESCRIPTION" -.PP -pam_nologin is a PAM module that prevents users from logging into the system when -/var/run/nologin -or -/etc/nologin -exists\&. The contents of the file are displayed to the user\&. The pam_nologin module has no effect on the root user\*(Aqs ability to log in\&. -.SH "OPTIONS" -.PP -file=/path/nologin -.RS 4 -Use this file instead the default -/var/run/nologin -or -/etc/nologin\&. -.RE -.PP -successok -.RS 4 -Return PAM_SUCCESS if no file exists, the default is PAM_IGNORE\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBaccount\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -The user is not root and -/etc/nologin -exists, so the user is not permitted to log in\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_IGNORE -.RS 4 -This is the default return value\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success: either the user is root or the nologin file does not exist\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known to the underlying authentication module\&. -.RE -.SH "EXAMPLES" -.PP -The suggested usage for -/etc/pam\&.d/login -is: -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth required pam_nologin\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "NOTES" -.PP -In order to make this module effective, all login methods should be secured by it\&. It should be used as a -\fIrequired\fR -method listed before any -\fIsufficient\fR -methods in order to get standard Unix nologin semantics\&. Note, the use of -\fBsuccessok\fR -module argument causes the module to return -\fIPAM_SUCCESS\fR -and as such would break such a configuration \- failing -\fIsufficient\fR -modules would lead to a successful login because the nologin module -\fIsucceeded\fR\&. -.SH "SEE ALSO" -.PP -\fBnologin\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_nologin was written by Michael K\&. Johnson <johnsonm@redhat\&.com>\&. diff --git a/modules/pam_nologin/pam_nologin.c b/modules/pam_nologin/pam_nologin.c index d7f83e0c..50575e1f 100644 --- a/modules/pam_nologin/pam_nologin.c +++ b/modules/pam_nologin/pam_nologin.c @@ -6,7 +6,9 @@ #include "config.h" +#include <limits.h> #include <stdio.h> +#include <stdint.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> @@ -98,10 +100,26 @@ static int perform_check(pam_handle_t *pamh, struct opt_s *opts) goto clean_up_fd; } + /* + * on some OSes (e.g. Hurd) reading a directory succeeds, + * instead of failing with EISDIR; hence, work as if + * pam_modutil_read later on would fail + */ + if (S_ISDIR(st.st_mode)) { + retval = PAM_SYSTEM_ERR; + goto clean_up_fd; + } + /* Don't print anything if the message is empty, will only disturb the output with empty lines */ if (st.st_size > 0) { - char *mtmp = malloc(st.st_size+1); + char *mtmp; + if ((uintmax_t)st.st_size > (uintmax_t)INT_MAX) { + pam_syslog(pamh, LOG_CRIT, "file too large"); + retval = PAM_SYSTEM_ERR; + goto clean_up_fd; + } + mtmp = malloc(st.st_size+1); if (!mtmp) { pam_syslog(pamh, LOG_CRIT, "out of memory"); retval = PAM_BUF_ERR; diff --git a/modules/pam_nologin/tst-pam_nologin-retval.c b/modules/pam_nologin/tst-pam_nologin-retval.c index 0046eec3..4d44a380 100644 --- a/modules/pam_nologin/tst-pam_nologin-retval.c +++ b/modules/pam_nologin/tst-pam_nologin-retval.c @@ -35,10 +35,10 @@ main(void) /* PAM_IGNORE -> PAM_PERM_DENIED */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so file=%s\n" - "account required %s/.libs/%s.so file=%s\n" - "password required %s/.libs/%s.so file=%s\n" - "session required %s/.libs/%s.so file=%s\n", + "auth required %s/" LTDIR "%s.so file=%s\n" + "account required %s/" LTDIR "%s.so file=%s\n" + "password required %s/" LTDIR "%s.so file=%s\n" + "session required %s/" LTDIR "%s.so file=%s\n", cwd, MODULE_NAME, missing_file, cwd, MODULE_NAME, missing_file, cwd, MODULE_NAME, missing_file, @@ -60,14 +60,14 @@ main(void) /* PAM_IGNORE -> PAM_SUCCESS */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so file=%s\n" - "auth required %s/../pam_permit/.libs/pam_permit.so\n" - "account required %s/.libs/%s.so file=%s\n" - "account required %s/../pam_permit/.libs/pam_permit.so\n" - "password required %s/.libs/%s.so file=%s\n" - "password required %s/../pam_permit/.libs/pam_permit.so\n" - "session required %s/.libs/%s.so file=%s\n" - "session required %s/../pam_permit/.libs/pam_permit.so\n", + "auth required %s/" LTDIR "%s.so file=%s\n" + "auth required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "account required %s/" LTDIR "%s.so file=%s\n" + "account required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "password required %s/" LTDIR "%s.so file=%s\n" + "password required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "session required %s/" LTDIR "%s.so file=%s\n" + "session required %s/../pam_permit/" LTDIR "pam_permit.so\n", cwd, MODULE_NAME, missing_file, cwd, cwd, MODULE_NAME, missing_file, cwd, cwd, MODULE_NAME, missing_file, cwd, @@ -89,10 +89,10 @@ main(void) /* successok -> PAM_SUCCESS */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so successok file=%s\n" - "account required %s/.libs/%s.so successok file=%s\n" - "password required %s/.libs/%s.so successok file=%s\n" - "session required %s/.libs/%s.so successok file=%s\n", + "auth required %s/" LTDIR "%s.so successok file=%s\n" + "account required %s/" LTDIR "%s.so successok file=%s\n" + "password required %s/" LTDIR "%s.so successok file=%s\n" + "session required %s/" LTDIR "%s.so successok file=%s\n", cwd, MODULE_NAME, missing_file, cwd, MODULE_NAME, missing_file, cwd, MODULE_NAME, missing_file, @@ -114,10 +114,10 @@ main(void) /* PAM_USER_UNKNOWN */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so file=%s\n" - "account required %s/.libs/%s.so file=%s\n" - "password required %s/.libs/%s.so file=%s\n" - "session required %s/.libs/%s.so file=%s\n", + "auth required %s/" LTDIR "%s.so file=%s\n" + "account required %s/" LTDIR "%s.so file=%s\n" + "password required %s/" LTDIR "%s.so file=%s\n" + "session required %s/" LTDIR "%s.so file=%s\n", cwd, MODULE_NAME, empty_file, cwd, MODULE_NAME, empty_file, cwd, MODULE_NAME, empty_file, @@ -141,10 +141,10 @@ main(void) /* successok -> PAM_SUCCESS */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so successok file=%s\n" - "account required %s/.libs/%s.so successok file=%s\n" - "password required %s/.libs/%s.so successok file=%s\n" - "session required %s/.libs/%s.so successok file=%s\n", + "auth required %s/" LTDIR "%s.so successok file=%s\n" + "account required %s/" LTDIR "%s.so successok file=%s\n" + "password required %s/" LTDIR "%s.so successok file=%s\n" + "session required %s/" LTDIR "%s.so successok file=%s\n", cwd, MODULE_NAME, empty_file, cwd, MODULE_NAME, empty_file, cwd, MODULE_NAME, empty_file, @@ -167,10 +167,10 @@ main(void) /* PAM_SYSTEM_ERR */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so file=%s\n" - "account required %s/.libs/%s.so file=%s\n" - "password required %s/.libs/%s.so file=%s\n" - "session required %s/.libs/%s.so file=%s\n", + "auth required %s/" LTDIR "%s.so file=%s\n" + "account required %s/" LTDIR "%s.so file=%s\n" + "password required %s/" LTDIR "%s.so file=%s\n" + "session required %s/" LTDIR "%s.so file=%s\n", cwd, MODULE_NAME, ".", cwd, MODULE_NAME, ".", cwd, MODULE_NAME, ".", @@ -196,10 +196,10 @@ main(void) /* PAM_AUTH_ERR */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so file=%s\n" - "account required %s/.libs/%s.so file=%s\n" - "password required %s/.libs/%s.so file=%s\n" - "session required %s/.libs/%s.so file=%s\n", + "auth required %s/" LTDIR "%s.so file=%s\n" + "account required %s/" LTDIR "%s.so file=%s\n" + "password required %s/" LTDIR "%s.so file=%s\n" + "session required %s/" LTDIR "%s.so file=%s\n", cwd, MODULE_NAME, empty_file, cwd, MODULE_NAME, empty_file, cwd, MODULE_NAME, empty_file, diff --git a/modules/pam_permit/Makefile.am b/modules/pam_permit/Makefile.am deleted file mode 100644 index e9a05156..00000000 --- a/modules/pam_permit/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_permit.8 -endif -XMLS = README.xml pam_permit.8.xml -dist_check_SCRIPTS = tst-pam_permit -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_permit.la -pam_permit_la_LIBADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_permit-retval -tst_pam_permit_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_permit/Makefile.in b/modules/pam_permit/Makefile.in deleted file mode 100644 index 47e8fac8..00000000 --- a/modules/pam_permit/Makefile.in +++ /dev/null @@ -1,1191 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_permit-retval$(EXEEXT) -subdir = modules/pam_permit -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_permit_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_permit_la_SOURCES = pam_permit.c -pam_permit_la_OBJECTS = pam_permit.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_permit_retval_SOURCES = tst-pam_permit-retval.c -tst_pam_permit_retval_OBJECTS = tst-pam_permit-retval.$(OBJEXT) -tst_pam_permit_retval_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_permit.Plo \ - ./$(DEPDIR)/tst-pam_permit-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_permit.c tst-pam_permit-retval.c -DIST_SOURCES = pam_permit.c tst-pam_permit-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_permit.8 -XMLS = README.xml pam_permit.8.xml -dist_check_SCRIPTS = tst-pam_permit -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_permit.la -pam_permit_la_LIBADD = $(top_builddir)/libpam/libpam.la -tst_pam_permit_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_permit/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_permit/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_permit.la: $(pam_permit_la_OBJECTS) $(pam_permit_la_DEPENDENCIES) $(EXTRA_pam_permit_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_permit_la_OBJECTS) $(pam_permit_la_LIBADD) $(LIBS) - -tst-pam_permit-retval$(EXEEXT): $(tst_pam_permit_retval_OBJECTS) $(tst_pam_permit_retval_DEPENDENCIES) $(EXTRA_tst_pam_permit_retval_DEPENDENCIES) - @rm -f tst-pam_permit-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_permit_retval_OBJECTS) $(tst_pam_permit_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_permit.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_permit-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_permit.log: tst-pam_permit - @p='tst-pam_permit'; \ - b='tst-pam_permit'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_permit-retval.log: tst-pam_permit-retval$(EXEEXT) - @p='tst-pam_permit-retval$(EXEEXT)'; \ - b='tst-pam_permit-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_permit.Plo - -rm -f ./$(DEPDIR)/tst-pam_permit-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_permit.Plo - -rm -f ./$(DEPDIR)/tst-pam_permit-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_permit/README b/modules/pam_permit/README deleted file mode 100644 index d479dccd..00000000 --- a/modules/pam_permit/README +++ /dev/null @@ -1,30 +0,0 @@ -pam_permit — The promiscuous module - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_permit is a PAM module that always permit access. It does nothing else. - -In the case of authentication, the user's name will be set to nobody if the -application didn't set one. Many applications and PAM modules become confused -if this name is unknown. - -This module is very dangerous. It should be used with extreme caution. - -OPTIONS - -This module does not recognise any options. - -EXAMPLES - -Add this line to your other login entries to disable account management, but -continue to permit users to log in. - -account required pam_permit.so - - -AUTHOR - -pam_permit was written by Andrew G. Morgan, <morgan@kernel.org>. - diff --git a/modules/pam_permit/meson.build b/modules/pam_permit/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_permit/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_permit/pam_permit.8 b/modules/pam_permit/pam_permit.8 deleted file mode 100644 index 5b1881f9..00000000 --- a/modules/pam_permit/pam_permit.8 +++ /dev/null @@ -1,84 +0,0 @@ -'\" t -.\" Title: pam_permit -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_PERMIT" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_permit \- The promiscuous module -.SH "SYNOPSIS" -.HP \w'\fBpam_permit\&.so\fR\ 'u -\fBpam_permit\&.so\fR -.SH "DESCRIPTION" -.PP -pam_permit is a PAM module that always permit access\&. It does nothing else\&. -.PP -In the case of authentication, the user\*(Aqs name will be set to -\fInobody\fR -if the application didn\*(Aqt set one\&. Many applications and PAM modules become confused if this name is unknown\&. -.PP -This module is very dangerous\&. It should be used with extreme caution\&. -.SH "OPTIONS" -.PP -This module does not recognise any options\&. -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -This module always returns this value\&. -.RE -.SH "EXAMPLES" -.PP -Add this line to your other login entries to disable account management, but continue to permit users to log in\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -account required pam_permit\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_permit was written by Andrew G\&. Morgan, <morgan@kernel\&.org>\&. diff --git a/modules/pam_permit/tst-pam_permit-retval.c b/modules/pam_permit/tst-pam_permit-retval.c index 33a789fe..aacdedba 100644 --- a/modules/pam_permit/tst-pam_permit-retval.c +++ b/modules/pam_permit/tst-pam_permit-retval.c @@ -30,10 +30,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, @@ -52,6 +52,35 @@ main(void) ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); pamh = NULL; + /* Perform a test dedicated to configuration file parsing. */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "# ignore escaped newlines in comments \\\n" + "auth required \\\n" + " %s/" LTDIR "%s.so\n" + "# allow unneeded whitespaces\n" + " account required %s/" LTDIR "%s.so%c\\\n" + "line after NUL byte continues up to here\n" + "password required %s/" LTDIR "%s.so # eol comment\n" + "session required %s/" LTDIR "%s.so", + cwd, MODULE_NAME, + cwd, MODULE_NAME, '\0', + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, user_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_setcred(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + ASSERT_EQ(0, unlink(service_file)); return 0; diff --git a/modules/pam_pwhistory/Makefile.am b/modules/pam_pwhistory/Makefile.am deleted file mode 100644 index 6cd5ffd3..00000000 --- a/modules/pam_pwhistory/Makefile.am +++ /dev/null @@ -1,55 +0,0 @@ -# -# Copyright (c) 2008, 2009 Thorsten Kukuk <kukuk@suse.de> -# Copyright (c) 2013 Red Hat, Inc. -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_pwhistory.8 pwhistory_helper.8 pwhistory.conf.5 -endif -XMLS = README.xml pam_pwhistory.8.xml pwhistory_helper.8.xml \ - pwhistory.conf.5.xml -dist_check_SCRIPTS = tst-pam_pwhistory -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -DPWHISTORY_HELPER=\"$(sbindir)/pwhistory_helper\" - -pam_pwhistory_la_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - pam_pwhistory_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -noinst_HEADERS = opasswd.h pwhistory_config.h - -dist_secureconf_DATA = pwhistory.conf - -securelib_LTLIBRARIES = pam_pwhistory.la -pam_pwhistory_la_CFLAGS = $(AM_CFLAGS) -pam_pwhistory_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBCRYPT@ @LIBSELINUX@ -pam_pwhistory_la_SOURCES = pam_pwhistory.c opasswd.c pwhistory_config.c - -sbin_PROGRAMS = pwhistory_helper -pwhistory_helper_CFLAGS = $(AM_CFLAGS) -DHELPER_COMPILE=\"pwhistory_helper\" @EXE_CFLAGS@ -pwhistory_helper_SOURCES = pwhistory_helper.c opasswd.c -pwhistory_helper_LDFLAGS = @EXE_LDFLAGS@ -pwhistory_helper_LDADD = $(top_builddir)/libpam/libpam.la @LIBCRYPT@ - -check_PROGRAMS = tst-pam_pwhistory-retval -tst_pam_pwhistory_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_pwhistory/Makefile.in b/modules/pam_pwhistory/Makefile.in deleted file mode 100644 index dcb969ac..00000000 --- a/modules/pam_pwhistory/Makefile.in +++ /dev/null @@ -1,1417 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2008, 2009 Thorsten Kukuk <kukuk@suse.de> -# Copyright (c) 2013 Red Hat, Inc. -# - - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -sbin_PROGRAMS = pwhistory_helper$(EXEEXT) -check_PROGRAMS = tst-pam_pwhistory-retval$(EXEEXT) -subdir = modules/pam_pwhistory -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(dist_secureconf_DATA) \ - $(noinst_HEADERS) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" \ - "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" \ - "$(DESTDIR)$(secureconfdir)" -PROGRAMS = $(sbin_PROGRAMS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_pwhistory_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -am_pam_pwhistory_la_OBJECTS = pam_pwhistory_la-pam_pwhistory.lo \ - pam_pwhistory_la-opasswd.lo \ - pam_pwhistory_la-pwhistory_config.lo -pam_pwhistory_la_OBJECTS = $(am_pam_pwhistory_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -pam_pwhistory_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(pam_pwhistory_la_CFLAGS) $(CFLAGS) \ - $(pam_pwhistory_la_LDFLAGS) $(LDFLAGS) -o $@ -am_pwhistory_helper_OBJECTS = \ - pwhistory_helper-pwhistory_helper.$(OBJEXT) \ - pwhistory_helper-opasswd.$(OBJEXT) -pwhistory_helper_OBJECTS = $(am_pwhistory_helper_OBJECTS) -pwhistory_helper_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pwhistory_helper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(pwhistory_helper_CFLAGS) $(CFLAGS) \ - $(pwhistory_helper_LDFLAGS) $(LDFLAGS) -o $@ -tst_pam_pwhistory_retval_SOURCES = tst-pam_pwhistory-retval.c -tst_pam_pwhistory_retval_OBJECTS = tst-pam_pwhistory-retval.$(OBJEXT) -tst_pam_pwhistory_retval_DEPENDENCIES = \ - $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_pwhistory_la-opasswd.Plo \ - ./$(DEPDIR)/pam_pwhistory_la-pam_pwhistory.Plo \ - ./$(DEPDIR)/pam_pwhistory_la-pwhistory_config.Plo \ - ./$(DEPDIR)/pwhistory_helper-opasswd.Po \ - ./$(DEPDIR)/pwhistory_helper-pwhistory_helper.Po \ - ./$(DEPDIR)/tst-pam_pwhistory-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(pam_pwhistory_la_SOURCES) $(pwhistory_helper_SOURCES) \ - tst-pam_pwhistory-retval.c -DIST_SOURCES = $(pam_pwhistory_la_SOURCES) $(pwhistory_helper_SOURCES) \ - tst-pam_pwhistory-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_pwhistory.8 pwhistory_helper.8 pwhistory.conf.5 -XMLS = README.xml pam_pwhistory.8.xml pwhistory_helper.8.xml \ - pwhistory.conf.5.xml - -dist_check_SCRIPTS = tst-pam_pwhistory -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -DPWHISTORY_HELPER=\"$(sbindir)/pwhistory_helper\" - -pam_pwhistory_la_LDFLAGS = -no-undefined -avoid-version -module \ - $(am__append_1) -noinst_HEADERS = opasswd.h pwhistory_config.h -dist_secureconf_DATA = pwhistory.conf -securelib_LTLIBRARIES = pam_pwhistory.la -pam_pwhistory_la_CFLAGS = $(AM_CFLAGS) -pam_pwhistory_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBCRYPT@ @LIBSELINUX@ -pam_pwhistory_la_SOURCES = pam_pwhistory.c opasswd.c pwhistory_config.c -pwhistory_helper_CFLAGS = $(AM_CFLAGS) -DHELPER_COMPILE=\"pwhistory_helper\" @EXE_CFLAGS@ -pwhistory_helper_SOURCES = pwhistory_helper.c opasswd.c -pwhistory_helper_LDFLAGS = @EXE_LDFLAGS@ -pwhistory_helper_LDADD = $(top_builddir)/libpam/libpam.la @LIBCRYPT@ -tst_pam_pwhistory_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_pwhistory/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_pwhistory/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -install-sbinPROGRAMS: $(sbin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-sbinPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(sbindir)" && rm -f $$files - -clean-sbinPROGRAMS: - @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_pwhistory.la: $(pam_pwhistory_la_OBJECTS) $(pam_pwhistory_la_DEPENDENCIES) $(EXTRA_pam_pwhistory_la_DEPENDENCIES) - $(AM_V_CCLD)$(pam_pwhistory_la_LINK) -rpath $(securelibdir) $(pam_pwhistory_la_OBJECTS) $(pam_pwhistory_la_LIBADD) $(LIBS) - -pwhistory_helper$(EXEEXT): $(pwhistory_helper_OBJECTS) $(pwhistory_helper_DEPENDENCIES) $(EXTRA_pwhistory_helper_DEPENDENCIES) - @rm -f pwhistory_helper$(EXEEXT) - $(AM_V_CCLD)$(pwhistory_helper_LINK) $(pwhistory_helper_OBJECTS) $(pwhistory_helper_LDADD) $(LIBS) - -tst-pam_pwhistory-retval$(EXEEXT): $(tst_pam_pwhistory_retval_OBJECTS) $(tst_pam_pwhistory_retval_DEPENDENCIES) $(EXTRA_tst_pam_pwhistory_retval_DEPENDENCIES) - @rm -f tst-pam_pwhistory-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_pwhistory_retval_OBJECTS) $(tst_pam_pwhistory_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_pwhistory_la-opasswd.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_pwhistory_la-pam_pwhistory.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_pwhistory_la-pwhistory_config.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pwhistory_helper-opasswd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pwhistory_helper-pwhistory_helper.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_pwhistory-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -pam_pwhistory_la-pam_pwhistory.lo: pam_pwhistory.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_pwhistory_la_CFLAGS) $(CFLAGS) -MT pam_pwhistory_la-pam_pwhistory.lo -MD -MP -MF $(DEPDIR)/pam_pwhistory_la-pam_pwhistory.Tpo -c -o pam_pwhistory_la-pam_pwhistory.lo `test -f 'pam_pwhistory.c' || echo '$(srcdir)/'`pam_pwhistory.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_pwhistory_la-pam_pwhistory.Tpo $(DEPDIR)/pam_pwhistory_la-pam_pwhistory.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pam_pwhistory.c' object='pam_pwhistory_la-pam_pwhistory.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_pwhistory_la_CFLAGS) $(CFLAGS) -c -o pam_pwhistory_la-pam_pwhistory.lo `test -f 'pam_pwhistory.c' || echo '$(srcdir)/'`pam_pwhistory.c - -pam_pwhistory_la-opasswd.lo: opasswd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_pwhistory_la_CFLAGS) $(CFLAGS) -MT pam_pwhistory_la-opasswd.lo -MD -MP -MF $(DEPDIR)/pam_pwhistory_la-opasswd.Tpo -c -o pam_pwhistory_la-opasswd.lo `test -f 'opasswd.c' || echo '$(srcdir)/'`opasswd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_pwhistory_la-opasswd.Tpo $(DEPDIR)/pam_pwhistory_la-opasswd.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='opasswd.c' object='pam_pwhistory_la-opasswd.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_pwhistory_la_CFLAGS) $(CFLAGS) -c -o pam_pwhistory_la-opasswd.lo `test -f 'opasswd.c' || echo '$(srcdir)/'`opasswd.c - -pam_pwhistory_la-pwhistory_config.lo: pwhistory_config.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_pwhistory_la_CFLAGS) $(CFLAGS) -MT pam_pwhistory_la-pwhistory_config.lo -MD -MP -MF $(DEPDIR)/pam_pwhistory_la-pwhistory_config.Tpo -c -o pam_pwhistory_la-pwhistory_config.lo `test -f 'pwhistory_config.c' || echo '$(srcdir)/'`pwhistory_config.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_pwhistory_la-pwhistory_config.Tpo $(DEPDIR)/pam_pwhistory_la-pwhistory_config.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pwhistory_config.c' object='pam_pwhistory_la-pwhistory_config.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_pwhistory_la_CFLAGS) $(CFLAGS) -c -o pam_pwhistory_la-pwhistory_config.lo `test -f 'pwhistory_config.c' || echo '$(srcdir)/'`pwhistory_config.c - -pwhistory_helper-pwhistory_helper.o: pwhistory_helper.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pwhistory_helper_CFLAGS) $(CFLAGS) -MT pwhistory_helper-pwhistory_helper.o -MD -MP -MF $(DEPDIR)/pwhistory_helper-pwhistory_helper.Tpo -c -o pwhistory_helper-pwhistory_helper.o `test -f 'pwhistory_helper.c' || echo '$(srcdir)/'`pwhistory_helper.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pwhistory_helper-pwhistory_helper.Tpo $(DEPDIR)/pwhistory_helper-pwhistory_helper.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pwhistory_helper.c' object='pwhistory_helper-pwhistory_helper.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pwhistory_helper_CFLAGS) $(CFLAGS) -c -o pwhistory_helper-pwhistory_helper.o `test -f 'pwhistory_helper.c' || echo '$(srcdir)/'`pwhistory_helper.c - -pwhistory_helper-pwhistory_helper.obj: pwhistory_helper.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pwhistory_helper_CFLAGS) $(CFLAGS) -MT pwhistory_helper-pwhistory_helper.obj -MD -MP -MF $(DEPDIR)/pwhistory_helper-pwhistory_helper.Tpo -c -o pwhistory_helper-pwhistory_helper.obj `if test -f 'pwhistory_helper.c'; then $(CYGPATH_W) 'pwhistory_helper.c'; else $(CYGPATH_W) '$(srcdir)/pwhistory_helper.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pwhistory_helper-pwhistory_helper.Tpo $(DEPDIR)/pwhistory_helper-pwhistory_helper.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pwhistory_helper.c' object='pwhistory_helper-pwhistory_helper.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pwhistory_helper_CFLAGS) $(CFLAGS) -c -o pwhistory_helper-pwhistory_helper.obj `if test -f 'pwhistory_helper.c'; then $(CYGPATH_W) 'pwhistory_helper.c'; else $(CYGPATH_W) '$(srcdir)/pwhistory_helper.c'; fi` - -pwhistory_helper-opasswd.o: opasswd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pwhistory_helper_CFLAGS) $(CFLAGS) -MT pwhistory_helper-opasswd.o -MD -MP -MF $(DEPDIR)/pwhistory_helper-opasswd.Tpo -c -o pwhistory_helper-opasswd.o `test -f 'opasswd.c' || echo '$(srcdir)/'`opasswd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pwhistory_helper-opasswd.Tpo $(DEPDIR)/pwhistory_helper-opasswd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='opasswd.c' object='pwhistory_helper-opasswd.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pwhistory_helper_CFLAGS) $(CFLAGS) -c -o pwhistory_helper-opasswd.o `test -f 'opasswd.c' || echo '$(srcdir)/'`opasswd.c - -pwhistory_helper-opasswd.obj: opasswd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pwhistory_helper_CFLAGS) $(CFLAGS) -MT pwhistory_helper-opasswd.obj -MD -MP -MF $(DEPDIR)/pwhistory_helper-opasswd.Tpo -c -o pwhistory_helper-opasswd.obj `if test -f 'opasswd.c'; then $(CYGPATH_W) 'opasswd.c'; else $(CYGPATH_W) '$(srcdir)/opasswd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pwhistory_helper-opasswd.Tpo $(DEPDIR)/pwhistory_helper-opasswd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='opasswd.c' object='pwhistory_helper-opasswd.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pwhistory_helper_CFLAGS) $(CFLAGS) -c -o pwhistory_helper-opasswd.obj `if test -f 'opasswd.c'; then $(CYGPATH_W) 'opasswd.c'; else $(CYGPATH_W) '$(srcdir)/opasswd.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_pwhistory.log: tst-pam_pwhistory - @p='tst-pam_pwhistory'; \ - b='tst-pam_pwhistory'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_pwhistory-retval.log: tst-pam_pwhistory-retval$(EXEEXT) - @p='tst-pam_pwhistory-retval$(EXEEXT)'; \ - b='tst-pam_pwhistory-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(MANS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_pwhistory_la-opasswd.Plo - -rm -f ./$(DEPDIR)/pam_pwhistory_la-pam_pwhistory.Plo - -rm -f ./$(DEPDIR)/pam_pwhistory_la-pwhistory_config.Plo - -rm -f ./$(DEPDIR)/pwhistory_helper-opasswd.Po - -rm -f ./$(DEPDIR)/pwhistory_helper-pwhistory_helper.Po - -rm -f ./$(DEPDIR)/tst-pam_pwhistory-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-dist_secureconfDATA install-man \ - install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-sbinPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_pwhistory_la-opasswd.Plo - -rm -f ./$(DEPDIR)/pam_pwhistory_la-pam_pwhistory.Plo - -rm -f ./$(DEPDIR)/pam_pwhistory_la-pwhistory_config.Plo - -rm -f ./$(DEPDIR)/pwhistory_helper-opasswd.Po - -rm -f ./$(DEPDIR)/pwhistory_helper-pwhistory_helper.Po - -rm -f ./$(DEPDIR)/tst-pam_pwhistory-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA uninstall-man \ - uninstall-sbinPROGRAMS uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dist_secureconfDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man5 install-man8 install-pdf install-pdf-am \ - install-ps install-ps-am install-sbinPROGRAMS \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am \ - uninstall-dist_secureconfDATA uninstall-man uninstall-man5 \ - uninstall-man8 uninstall-sbinPROGRAMS \ - uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_pwhistory/README b/modules/pam_pwhistory/README deleted file mode 100644 index b4868767..00000000 --- a/modules/pam_pwhistory/README +++ /dev/null @@ -1,80 +0,0 @@ -pam_pwhistory — PAM module to remember last passwords - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -This module saves the last passwords for each user in order to force password -change history and keep the user from alternating between the same password too -frequently. - -This module does not work together with kerberos. In general, it does not make -much sense to use this module in conjunction with NIS or LDAP, since the old -passwords are stored on the local machine and are not available on another -machine for password history checking. - -OPTIONS - -debug - - Turns on debugging via syslog(3). - -use_authtok - - When password changing enforce the module to use the new password provided - by a previously stacked password module (this is used in the example of the - stacking of the pam_passwdqc module documented below). - -enforce_for_root - - If this option is set, the check is enforced for root, too. - -remember=N - - The last N passwords for each user are saved. The default is 10. Value of 0 - makes the module to keep the existing contents of the opasswd file - unchanged. - -retry=N - - Prompt user at most N times before returning with error. The default is 1. - -authtok_type=STRING - - See pam_get_authtok(3) for more details. - -file=/path/filename - - Store password history in file /path/filename rather than the default - location. The default location is /etc/security/opasswd. - -conf=/path/to/config-file - - Use another configuration file instead of the default /etc/security/ - pwhistory.conf. - -The options for configuring the module behavior are described in the -pwhistory.conf(5) manual page. The options specified on the module command line -override the values from the configuration file. - -EXAMPLES - -An example password section would be: - -#%PAM-1.0 -password required pam_pwhistory.so -password required pam_unix.so use_authtok - - -In combination with pam_passwdqc: - -#%PAM-1.0 -password required pam_passwdqc.so config=/etc/passwdqc.conf -password required pam_pwhistory.so use_authtok -password required pam_unix.so use_authtok - - -AUTHOR - -pam_pwhistory was written by Thorsten Kukuk <kukuk@thkukuk.de> - diff --git a/modules/pam_pwhistory/meson.build b/modules/pam_pwhistory/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_pwhistory/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_pwhistory/opasswd.c b/modules/pam_pwhistory/opasswd.c index 859b3da4..512688d1 100644 --- a/modules/pam_pwhistory/opasswd.c +++ b/modules/pam_pwhistory/opasswd.c @@ -34,9 +34,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if defined(HAVE_CONFIG_H) #include <config.h> -#endif #include <pwd.h> #include <shadow.h> @@ -76,9 +74,7 @@ #define RANDOM_DEVICE "/dev/urandom" #endif -#define DEFAULT_OLD_PASSWORDS_FILE SCONFIGDIR "/opasswd" - -#define DEFAULT_BUFLEN 4096 +#define DEFAULT_OLD_PASSWORDS_FILE SCONFIG_DIR "/opasswd" typedef struct { char *user; @@ -88,7 +84,6 @@ typedef struct { } opwd; #ifdef HELPER_COMPILE -PAM_FORMAT((printf, 2, 3)) void helper_log_err(int err, const char *format, ...) { @@ -124,23 +119,32 @@ parse_entry (char *line, opwd *data) return 0; } +/* Return 1 if the passwords are equal, 0 if they are not, and -1 on error. */ static int compare_password(const char *newpass, const char *oldpass) { char *outval; -#ifdef HAVE_CRYPT_R - struct crypt_data output; int retval; +#ifdef HAVE_CRYPT_R + struct crypt_data *cdata; - output.initialized = 0; + cdata = calloc(1, sizeof(*cdata)); + if (!cdata) + return -1; - outval = crypt_r (newpass, oldpass, &output); + outval = crypt_r (newpass, oldpass, cdata); #else outval = crypt (newpass, oldpass); #endif retval = outval != NULL && strcmp(outval, oldpass) == 0; + +#ifdef HAVE_CRYPT_R + pam_overwrite_object(cdata); + free(cdata); +#else pam_overwrite_string(outval); +#endif return retval; } @@ -172,46 +176,20 @@ check_old_pass, const char *user, const char *newpass, const char *filename, int while (!feof (oldpf)) { - char *cp, *tmp; -#if defined(HAVE_GETLINE) ssize_t n = getline (&buf, &buflen, oldpf); -#elif defined (HAVE_GETDELIM) - ssize_t n = getdelim (&buf, &buflen, '\n', oldpf); -#else - ssize_t n; - - if (buf == NULL) - { - buflen = DEFAULT_BUFLEN; - buf = malloc (buflen); - if (buf == NULL) - return PAM_BUF_ERR; - } - buf[0] = '\0'; - fgets (buf, buflen - 1, oldpf); - n = strlen (buf); -#endif /* HAVE_GETLINE / HAVE_GETDELIM */ - cp = buf; if (n < 1) break; - tmp = strchr (cp, '#'); /* remove comments */ - if (tmp) - *tmp = '\0'; - while (isspace ((int)*cp)) /* remove spaces and tabs */ - ++cp; - if (*cp == '\0') /* ignore empty lines */ + buf[strcspn(buf, "\n")] = '\0'; + if (buf[0] == '\0') /* ignore empty lines */ continue; - if (cp[strlen (cp) - 1] == '\n') - cp[strlen (cp) - 1] = '\0'; - - if (strncmp (cp, user, strlen (user)) == 0 && - cp[strlen (user)] == ':') + if (strncmp (buf, user, strlen (user)) == 0 && + buf[strlen (user)] == ':') { /* We found the line we needed */ - if (parse_entry (cp, &entry) == 0) + if (parse_entry (buf, &entry) == 0) { found = 1; break; @@ -231,13 +209,19 @@ check_old_pass, const char *user, const char *newpass, const char *filename, int do { oldpass = strsep (&running, delimiters); - if (oldpass && strlen (oldpass) > 0 && - compare_password(newpass, oldpass) ) - { - if (debug) - pam_syslog (pamh, LOG_DEBUG, "New password already used"); - retval = PAM_AUTHTOK_ERR; - break; + if (oldpass && strlen (oldpass) > 0) { + int rc; + + rc = compare_password(newpass, oldpass); + if (rc) { + if (rc < 0) + pam_syslog (pamh, LOG_ERR, "Cannot allocate crypt data"); + else if (debug) + pam_syslog (pamh, LOG_DEBUG, "New password already used"); + + retval = PAM_AUTHTOK_ERR; + break; + } } } while (oldpass != NULL); } @@ -265,22 +249,30 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN /* Define opasswd file and temp file for opasswd */ const char *opasswd_file = (filename != NULL ? filename : DEFAULT_OLD_PASSWORDS_FILE); - char opasswd_tmp[PATH_MAX]; + char *opasswd_tmp; - if ((size_t) snprintf (opasswd_tmp, sizeof (opasswd_tmp), "%s.tmpXXXXXX", - opasswd_file) >= sizeof (opasswd_tmp)) + if (asprintf (&opasswd_tmp, "%s.tmpXXXXXX", opasswd_file) < 0) return PAM_BUF_ERR; pwd = pam_modutil_getpwnam (pamh, user); if (pwd == NULL) - return PAM_USER_UNKNOWN; + { + free (opasswd_tmp); + return PAM_USER_UNKNOWN; + } if (howmany <= 0) - return PAM_SUCCESS; + { + free (opasswd_tmp); + return PAM_SUCCESS; + } #ifndef HELPER_COMPILE if (SELINUX_ENABLED) - return PAM_PWHISTORY_RUN_HELPER; + { + free (opasswd_tmp); + return PAM_PWHISTORY_RUN_HELPER; + } #endif if ((strcmp(pwd->pw_passwd, "x") == 0) || @@ -291,14 +283,20 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN struct spwd *spw = pam_modutil_getspnam (pamh, user); if (spw == NULL) - return PAM_USER_UNKNOWN; + { + free (opasswd_tmp); + return PAM_USER_UNKNOWN; + } oldpass = spw->sp_pwdp; } else oldpass = pwd->pw_passwd; if (oldpass == NULL || *oldpass == '\0') - return PAM_SUCCESS; + { + free (opasswd_tmp); + return PAM_SUCCESS; + } if ((oldpf = fopen (opasswd_file, "r")) == NULL) { @@ -310,6 +308,7 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN else { pam_syslog (pamh, LOG_ERR, "Cannot open %s: %m", opasswd_file); + free (opasswd_tmp); return PAM_AUTHTOK_ERR; } } @@ -317,6 +316,7 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN { pam_syslog (pamh, LOG_ERR, "Cannot stat %s: %m", opasswd_file); fclose (oldpf); + free (opasswd_tmp); return PAM_AUTHTOK_ERR; } @@ -328,6 +328,7 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN opasswd_file); if (oldpf) fclose (oldpf); + free (opasswd_tmp); return PAM_AUTHTOK_ERR; } if (do_create) @@ -362,35 +363,12 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN if (!do_create) while (!feof (oldpf)) { - char *cp, *tmp, *save; -#if defined(HAVE_GETLINE) + char *save; ssize_t n = getline (&buf, &buflen, oldpf); -#elif defined (HAVE_GETDELIM) - ssize_t n = getdelim (&buf, &buflen, '\n', oldpf); -#else - ssize_t n; - - if (buf == NULL) - { - buflen = DEFAULT_BUFLEN; - buf = malloc (buflen); - if (buf == NULL) - { - fclose (oldpf); - fclose (newpf); - retval = PAM_BUF_ERR; - goto error_opasswd; - } - } - buf[0] = '\0'; - fgets (buf, buflen - 1, oldpf); - n = strlen (buf); -#endif /* HAVE_GETLINE / HAVE_GETDELIM */ if (n < 1) break; - cp = buf; save = strdup (buf); /* Copy to write the original data back. */ if (save == NULL) { @@ -400,24 +378,17 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN goto error_opasswd; } - tmp = strchr (cp, '#'); /* remove comments */ - if (tmp) - *tmp = '\0'; - while (isspace ((int)*cp)) /* remove spaces and tabs */ - ++cp; - if (*cp == '\0') /* ignore empty lines */ + buf[strcspn(buf, "\n")] = '\0'; + if (buf[0] == '\0') /* ignore empty lines */ goto write_old_data; - if (cp[strlen (cp) - 1] == '\n') - cp[strlen (cp) - 1] = '\0'; - - if (strncmp (cp, user, strlen (user)) == 0 && - cp[strlen (user)] == ':') + if (strncmp (buf, user, strlen (user)) == 0 && + buf[strlen (user)] == ':') { /* We found the line we needed */ opwd entry; - if (parse_entry (cp, &entry) == 0) + if (parse_entry (buf, &entry) == 0) { char *out = NULL; @@ -426,9 +397,9 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN /* Don't save the current password twice */ if (entry.old_passwords && entry.old_passwords[0] != '\0') { - char *last = entry.old_passwords; + char *cp = entry.old_passwords; + char *last = cp; - cp = entry.old_passwords; entry.count = 1; /* Don't believe the count */ while ((cp = strchr (cp, ',')) != NULL) { @@ -446,7 +417,7 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN /* increase count. */ entry.count++; - /* check that we don't remember to many passwords. */ + /* check that we don't remember too many passwords. */ while (entry.count > howmany && entry.count > 1) { char *p = strpbrk (entry.old_passwords, ","); @@ -561,9 +532,8 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN goto error_opasswd; } - char opasswd_backup[PATH_MAX]; - if ((size_t) snprintf (opasswd_backup, sizeof (opasswd_backup), "%s.old", - opasswd_file) >= sizeof (opasswd_backup)) + char *opasswd_backup; + if (asprintf (&opasswd_backup, "%s.old", opasswd_file) < 0) { retval = PAM_BUF_ERR; goto error_opasswd; @@ -575,8 +545,10 @@ save_old_pass, const char *user, int howmany, const char *filename, int debug UN pam_syslog (pamh, LOG_ERR, "Cannot create backup file of %s: %m", opasswd_file); rename (opasswd_tmp, opasswd_file); + free (opasswd_backup); error_opasswd: unlink (opasswd_tmp); + free (opasswd_tmp); pam_overwrite_n(buf, buflen); free (buf); diff --git a/modules/pam_pwhistory/opasswd.h b/modules/pam_pwhistory/opasswd.h index 19a4062c..4b981d86 100644 --- a/modules/pam_pwhistory/opasswd.h +++ b/modules/pam_pwhistory/opasswd.h @@ -54,6 +54,7 @@ #ifdef HELPER_COMPILE void +PAM_FORMAT((printf, 2, 3)) helper_log_err(int err, const char *format, ...); #endif diff --git a/modules/pam_pwhistory/pam_pwhistory.8 b/modules/pam_pwhistory/pam_pwhistory.8 deleted file mode 100644 index df95ee37..00000000 --- a/modules/pam_pwhistory/pam_pwhistory.8 +++ /dev/null @@ -1,186 +0,0 @@ -'\" t -.\" Title: pam_pwhistory -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_PWHISTORY" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_pwhistory \- PAM module to remember last passwords -.SH "SYNOPSIS" -.HP \w'\fBpam_pwhistory\&.so\fR\ 'u -\fBpam_pwhistory\&.so\fR [debug] [use_authtok] [enforce_for_root] [remember=\fIN\fR] [retry=\fIN\fR] [authtok_type=\fISTRING\fR] [file=\fI/path/filename\fR] [conf=\fI/path/to/config\-file\fR] -.SH "DESCRIPTION" -.PP -This module saves the last passwords for each user in order to force password change history and keep the user from alternating between the same password too frequently\&. -.PP -This module does not work together with kerberos\&. In general, it does not make much sense to use this module in conjunction with NIS or LDAP, since the old passwords are stored on the local machine and are not available on another machine for password history checking\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Turns on debugging via -\fBsyslog\fR(3)\&. -.RE -.PP -use_authtok -.RS 4 -When password changing enforce the module to use the new password provided by a previously stacked -\fBpassword\fR -module (this is used in the example of the stacking of the -\fBpam_passwdqc\fR -module documented below)\&. -.RE -.PP -enforce_for_root -.RS 4 -If this option is set, the check is enforced for root, too\&. -.RE -.PP -remember=N -.RS 4 -The last -\fIN\fR -passwords for each user are saved\&. The default is -\fI10\fR\&. Value of -\fI0\fR -makes the module to keep the existing contents of the -opasswd -file unchanged\&. -.RE -.PP -retry=N -.RS 4 -Prompt user at most -\fIN\fR -times before returning with error\&. The default is -\fI1\fR\&. -.RE -.PP -authtok_type=STRING -.RS 4 -See -\fBpam_get_authtok\fR(3) -for more details\&. -.RE -.PP -file=/path/filename -.RS 4 -Store password history in file -/path/filename -rather than the default location\&. The default location is -/etc/security/opasswd\&. -.RE -.PP -conf=/path/to/config\-file -.RS 4 -Use another configuration file instead of the default -/etc/security/pwhistory\&.conf\&. -.RE -.PP -The options for configuring the module behavior are described in the -\fBpwhistory.conf\fR(5) -manual page\&. The options specified on the module command line override the values from the configuration file\&. -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBpassword\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTHTOK_ERR -.RS 4 -No new password was entered, the user aborted password change or new password couldn\*(Aqt be set\&. -.RE -.PP -PAM_IGNORE -.RS 4 -Password history was disabled\&. -.RE -.PP -PAM_MAXTRIES -.RS 4 -Password was rejected too often\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User is not known to system\&. -.RE -.SH "EXAMPLES" -.PP -An example password section would be: -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -password required pam_pwhistory\&.so -password required pam_unix\&.so use_authtok - -.fi -.if n \{\ -.RE -.\} -.PP -In combination with -\fBpam_passwdqc\fR: -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -password required pam_passwdqc\&.so config=/etc/passwdqc\&.conf -password required pam_pwhistory\&.so use_authtok -password required pam_unix\&.so use_authtok - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "FILES" -.PP -/etc/security/opasswd -.RS 4 -Default file with password history -.RE -.PP -/etc/security/pwhistory\&.conf -.RS 4 -Config file for pam_pwhistory options -.RE -.SH "SEE ALSO" -.PP -\fBpwhistory.conf\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -\fBpam_get_authtok\fR(3) -.SH "AUTHOR" -.PP -pam_pwhistory was written by Thorsten Kukuk <kukuk@thkukuk\&.de> diff --git a/modules/pam_pwhistory/pam_pwhistory.c b/modules/pam_pwhistory/pam_pwhistory.c index 5a7fb811..6a720927 100644 --- a/modules/pam_pwhistory/pam_pwhistory.c +++ b/modules/pam_pwhistory/pam_pwhistory.c @@ -37,9 +37,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if defined(HAVE_CONFIG_H) #include <config.h> -#endif #include <pwd.h> #include <errno.h> @@ -63,6 +61,7 @@ #include "opasswd.h" #include "pam_inline.h" +#include "pam_i18n.h" #include "pwhistory_config.h" @@ -112,6 +111,7 @@ parse_option (pam_handle_t *pamh, const char *argv, options_t *options) pam_syslog (pamh, LOG_ERR, "pam_pwhistory: unknown option: %s", argv); } +#ifdef WITH_SELINUX static int run_save_helper(pam_handle_t *pamh, const char *user, int howmany, const char *filename, int debug) @@ -141,7 +141,7 @@ run_save_helper(pam_handle_t *pamh, const char *user, args[0] = (char *)PWHISTORY_HELPER; args[1] = (char *)"save"; args[2] = (char *)user; - args[3] = (char *)filename; + args[3] = (char *)((filename != NULL) ? filename : ""); DIAG_POP_IGNORE_CAST_QUAL; if (asprintf(&args[4], "%d", howmany) < 0 || asprintf(&args[5], "%d", debug) < 0) @@ -228,7 +228,7 @@ run_check_helper(pam_handle_t *pamh, const char *user, args[0] = (char *)PWHISTORY_HELPER; args[1] = (char *)"check"; args[2] = (char *)user; - args[3] = (char *)filename; + args[3] = (char *)((filename != NULL) ? filename : ""); DIAG_POP_IGNORE_CAST_QUAL; if (asprintf(&args[4], "%d", debug) < 0) { @@ -287,6 +287,7 @@ run_check_helper(pam_handle_t *pamh, const char *user, return retval; } +#endif /* This module saves the current hashed password in /etc/security/opasswd and then compares the new password with all entries in this file. */ @@ -332,8 +333,10 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv) retval = save_old_pass (pamh, user, options.remember, options.filename, options.debug); +#ifdef WITH_SELINUX if (retval == PAM_PWHISTORY_RUN_HELPER) retval = run_save_helper(pamh, user, options.remember, options.filename, options.debug); +#endif if (retval != PAM_SUCCESS) return retval; @@ -366,8 +369,10 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv) pam_syslog (pamh, LOG_DEBUG, "check against old password file"); retval = check_old_pass (pamh, user, newpass, options.filename, options.debug); +#ifdef WITH_SELINUX if (retval == PAM_PWHISTORY_RUN_HELPER) retval = run_check_helper(pamh, user, newpass, options.filename, options.debug); +#endif if (retval != PAM_SUCCESS) { diff --git a/modules/pam_pwhistory/pwhistory.conf b/modules/pam_pwhistory/pwhistory.conf index 070b7197..51e783a6 100644 --- a/modules/pam_pwhistory/pwhistory.conf +++ b/modules/pam_pwhistory/pwhistory.conf @@ -16,6 +16,6 @@ # The default is 1. # retry = 1 # -# The directory where the last passwords are kept. +# The file where the last passwords are kept. # The default is /etc/security/opasswd. # file = /etc/security/opasswd diff --git a/modules/pam_pwhistory/pwhistory.conf.5 b/modules/pam_pwhistory/pwhistory.conf.5 deleted file mode 100644 index ae57798f..00000000 --- a/modules/pam_pwhistory/pwhistory.conf.5 +++ /dev/null @@ -1,118 +0,0 @@ -'\" t -.\" Title: pwhistory.conf -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PWHISTORY\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pwhistory.conf \- pam_pwhistory configuration file -.SH "DESCRIPTION" -.PP -\fBpwhistory\&.conf\fR -provides a way to configure the default settings for saving the last passwords for each user\&. This file is read by the -\fIpam_pwhistory\fR -module and is the preferred method over configuring -\fIpam_pwhistory\fR -directly\&. -.PP -The file has a very simple -\fIname = value\fR -format with possible comments starting with -\fI#\fR -character\&. The whitespace at the beginning of line, end of line, and around the -\fI=\fR -sign is ignored\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Turns on debugging via -\fBsyslog\fR(3)\&. -.RE -.PP -enforce_for_root -.RS 4 -If this option is set, the check is enforced for root, too\&. -.RE -.PP -remember=N -.RS 4 -The last -\fIN\fR -passwords for each user are saved\&. The default is -\fI10\fR\&. Value of -\fI0\fR -makes the module to keep the existing contents of the -opasswd -file unchanged\&. -.RE -.PP -retry=N -.RS 4 -Prompt user at most -\fIN\fR -times before returning with error\&. The default is 1\&. -.RE -.PP -file=/path/filename -.RS 4 -Store password history in file -\fI/path/filename\fR -rather than the default location\&. The default location is -/etc/security/opasswd\&. -.RE -.SH "EXAMPLES" -.PP -/etc/security/pwhistory\&.conf file example: -.sp -.if n \{\ -.RS 4 -.\} -.nf -debug -remember=5 -file=/tmp/opasswd - -.fi -.if n \{\ -.RE -.\} -.SH "FILES" -.PP -/etc/security/pwhistory\&.conf -.RS 4 -the config file for custom options -.RE -.SH "SEE ALSO" -.PP -\fBpwhistory\fR(8), -\fBpam_pwhistory\fR(8), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_pwhistory was written by Thorsten Kukuk\&. The support for pwhistory\&.conf was written by Iker Pedrosa\&. diff --git a/modules/pam_pwhistory/pwhistory_config.c b/modules/pam_pwhistory/pwhistory_config.c index 692cf80e..2399bf21 100644 --- a/modules/pam_pwhistory/pwhistory_config.c +++ b/modules/pam_pwhistory/pwhistory_config.c @@ -46,10 +46,10 @@ #include "pam_inline.h" #include "pwhistory_config.h" -#define PWHISTORY_DEFAULT_CONF SCONFIGDIR "/pwhistory.conf" +#define PWHISTORY_DEFAULT_CONF SCONFIG_DIR "/pwhistory.conf" -#ifdef VENDOR_SCONFIGDIR -#define VENDOR_PWHISTORY_DEFAULT_CONF (VENDOR_SCONFIGDIR "/pwhistory.conf") +#ifdef VENDOR_SCONFIG_DIR +#define VENDOR_PWHISTORY_DEFAULT_CONF (VENDOR_SCONFIG_DIR "/pwhistory.conf") #endif void @@ -124,6 +124,7 @@ parse_config_file(pam_handle_t *pamh, int argc, const char **argv, if (*val != '/') { pam_syslog (pamh, LOG_ERR, "File path should be absolute: %s", val); + free(val); } else { options->filename = val; } diff --git a/modules/pam_pwhistory/pwhistory_helper.8 b/modules/pam_pwhistory/pwhistory_helper.8 deleted file mode 100644 index 0b837d32..00000000 --- a/modules/pam_pwhistory/pwhistory_helper.8 +++ /dev/null @@ -1,54 +0,0 @@ -'\" t -.\" Title: pwhistory_helper -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PWHISTORY_HELPER" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pwhistory_helper \- Helper binary that transfers password hashes from passwd or shadow to opasswd -.SH "SYNOPSIS" -.HP \w'\fBpwhistory_helper\fR\ 'u -\fBpwhistory_helper\fR [\&.\&.\&.] -.SH "DESCRIPTION" -.PP -\fIpwhistory_helper\fR -is a helper program for the -\fIpam_pwhistory\fR -module that transfers password hashes from passwd or shadow file to the opasswd file and checks a password supplied by user against the existing hashes in the opasswd file\&. -.PP -The purpose of the helper is to enable tighter confinement of login and password changing services\&. The helper is thus called only when SELinux is enabled on the system\&. -.PP -The interface of the helper \- command line options, and input/output data format are internal to the -\fIpam_pwhistory\fR -module and it should not be called directly from applications\&. -.SH "SEE ALSO" -.PP -\fBpam_pwhistory\fR(8) -.SH "AUTHOR" -.PP -Written by Tomas Mraz based on the code originally in -\fIpam_pwhistory and pam_unix\fR -modules\&. diff --git a/modules/pam_pwhistory/pwhistory_helper.c b/modules/pam_pwhistory/pwhistory_helper.c index 469d95fa..fb9a1e31 100644 --- a/modules/pam_pwhistory/pwhistory_helper.c +++ b/modules/pam_pwhistory/pwhistory_helper.c @@ -108,7 +108,7 @@ main(int argc, char *argv[]) option = argv[1]; user = argv[2]; - filename = argv[3]; + filename = (argv[3][0] != '\0') ? argv[3] : NULL; if (strcmp(option, "check") == 0 && argc == 5) return check_history(user, filename, argv[4]); diff --git a/modules/pam_pwhistory/tst-pam_pwhistory-retval.c b/modules/pam_pwhistory/tst-pam_pwhistory-retval.c index 9c9a62b4..aa2c24e8 100644 --- a/modules/pam_pwhistory/tst-pam_pwhistory-retval.c +++ b/modules/pam_pwhistory/tst-pam_pwhistory-retval.c @@ -31,10 +31,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, diff --git a/modules/pam_rhosts/Makefile.am b/modules/pam_rhosts/Makefile.am deleted file mode 100644 index cb7dbe53..00000000 --- a/modules/pam_rhosts/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2008, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_rhosts.8 -endif -XMLS = README.xml pam_rhosts.8.xml -dist_check_SCRIPTS = tst-pam_rhosts -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_rhosts.la -pam_rhosts_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_rhosts/Makefile.in b/modules/pam_rhosts/Makefile.in deleted file mode 100644 index f67159cd..00000000 --- a/modules/pam_rhosts/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2008, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_rhosts -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_rhosts_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_rhosts_la_SOURCES = pam_rhosts.c -pam_rhosts_la_OBJECTS = pam_rhosts.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_rhosts.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_rhosts.c -DIST_SOURCES = pam_rhosts.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_rhosts.8 -XMLS = README.xml pam_rhosts.8.xml -dist_check_SCRIPTS = tst-pam_rhosts -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_rhosts.la -pam_rhosts_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_rhosts/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_rhosts/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_rhosts.la: $(pam_rhosts_la_OBJECTS) $(pam_rhosts_la_DEPENDENCIES) $(EXTRA_pam_rhosts_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_rhosts_la_OBJECTS) $(pam_rhosts_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_rhosts.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_rhosts.log: tst-pam_rhosts - @p='tst-pam_rhosts'; \ - b='tst-pam_rhosts'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_rhosts.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_rhosts.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_rhosts/README b/modules/pam_rhosts/README deleted file mode 100644 index aedc0f5d..00000000 --- a/modules/pam_rhosts/README +++ /dev/null @@ -1,56 +0,0 @@ -pam_rhosts — The rhosts PAM module - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -This module performs the standard network authentication for services, as used -by traditional implementations of rlogin and rsh etc. - -The authentication mechanism of this module is based on the contents of two -files; /etc/hosts.equiv (or and ~/.rhosts. Firstly, hosts listed in the former -file are treated as equivalent to the localhost. Secondly, entries in the -user's own copy of the latter file is used to map "remote-host remote-user" -pairs to that user's account on the current host. Access is granted to the user -if their host is present in /etc/hosts.equiv and their remote account is -identical to their local one, or if their remote account has an entry in their -personal configuration file. - -The module authenticates a remote user (internally specified by the item -PAM_RUSER connecting from the remote host (internally specified by the item -PAM_RHOST). Accordingly, for applications to be compatible this authentication -module they must set these items prior to calling pam_authenticate(). The -module is not capable of independently probing the network connection for such -information. - -OPTIONS - -debug - - Print debug information. - -silent - - Don't print informative messages. - -superuser=account - - Handle account as root. - -EXAMPLES - -To grant a remote user access by /etc/hosts.equiv or .rhosts for rsh add the -following lines to /etc/pam.d/rsh: - -#%PAM-1.0 -# -auth required pam_rhosts.so -auth required pam_nologin.so -auth required pam_env.so -auth required pam_unix.so - - -AUTHOR - -pam_rhosts was written by Thorsten Kukuk <kukuk@thkukuk.de> - diff --git a/modules/pam_rhosts/meson.build b/modules/pam_rhosts/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_rhosts/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_rhosts/pam_rhosts.8 b/modules/pam_rhosts/pam_rhosts.8 deleted file mode 100644 index 36077de7..00000000 --- a/modules/pam_rhosts/pam_rhosts.8 +++ /dev/null @@ -1,128 +0,0 @@ -'\" t -.\" Title: pam_rhosts -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_RHOSTS" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_rhosts \- The rhosts PAM module -.SH "SYNOPSIS" -.HP \w'\fBpam_rhosts\&.so\fR\ 'u -\fBpam_rhosts\&.so\fR -.SH "DESCRIPTION" -.PP -This module performs the standard network authentication for services, as used by traditional implementations of -\fBrlogin\fR -and -\fBrsh\fR -etc\&. -.PP -The authentication mechanism of this module is based on the contents of two files; -/etc/hosts\&.equiv -(or and -~/\&.rhosts\&. Firstly, hosts listed in the former file are treated as equivalent to the localhost\&. Secondly, entries in the user\*(Aqs own copy of the latter file is used to map "\fIremote\-host remote\-user\fR" pairs to that user\*(Aqs account on the current host\&. Access is granted to the user if their host is present in -/etc/hosts\&.equiv -and their remote account is identical to their local one, or if their remote account has an entry in their personal configuration file\&. -.PP -The module authenticates a remote user (internally specified by the item -\fIPAM_RUSER\fR -connecting from the remote host (internally specified by the item -\fBPAM_RHOST\fR)\&. Accordingly, for applications to be compatible this authentication module they must set these items prior to calling -\fBpam_authenticate()\fR\&. The module is not capable of independently probing the network connection for such information\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -silent -.RS 4 -Don\*(Aqt print informative messages\&. -.RE -.PP -superuser=account -.RS 4 -Handle -\fIaccount\fR -as root\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBauth\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -The remote host, remote user name or the local user name couldn\*(Aqt be determined or access was denied by -\&.rhosts -file\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User is not known to system\&. -.RE -.SH "EXAMPLES" -.PP -To grant a remote user access by -/etc/hosts\&.equiv -or -\&.rhosts -for -\fBrsh\fR -add the following lines to -/etc/pam\&.d/rsh: -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -# -auth required pam_rhosts\&.so -auth required pam_nologin\&.so -auth required pam_env\&.so -auth required pam_unix\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBrootok\fR(3), -\fBhosts.equiv\fR(5), -\fBrhosts\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_rhosts was written by Thorsten Kukuk <kukuk@thkukuk\&.de> diff --git a/modules/pam_rootok/Makefile.am b/modules/pam_rootok/Makefile.am deleted file mode 100644 index c5b838f6..00000000 --- a/modules/pam_rootok/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_rootok.8 -endif -XMLS = README.xml pam_rootok.8.xml -dist_check_SCRIPTS = tst-pam_rootok -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_rootok.la -pam_rootok_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ @LIBAUDIT@ - -check_PROGRAMS = tst-pam_rootok-retval -tst_pam_rootok_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_rootok/Makefile.in b/modules/pam_rootok/Makefile.in deleted file mode 100644 index 64b6de13..00000000 --- a/modules/pam_rootok/Makefile.in +++ /dev/null @@ -1,1191 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_rootok-retval$(EXEEXT) -subdir = modules/pam_rootok -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_rootok_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_rootok_la_SOURCES = pam_rootok.c -pam_rootok_la_OBJECTS = pam_rootok.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_rootok_retval_SOURCES = tst-pam_rootok-retval.c -tst_pam_rootok_retval_OBJECTS = tst-pam_rootok-retval.$(OBJEXT) -tst_pam_rootok_retval_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_rootok.Plo \ - ./$(DEPDIR)/tst-pam_rootok-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_rootok.c tst-pam_rootok-retval.c -DIST_SOURCES = pam_rootok.c tst-pam_rootok-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_rootok.8 -XMLS = README.xml pam_rootok.8.xml -dist_check_SCRIPTS = tst-pam_rootok -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_rootok.la -pam_rootok_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ @LIBAUDIT@ -tst_pam_rootok_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_rootok/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_rootok/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_rootok.la: $(pam_rootok_la_OBJECTS) $(pam_rootok_la_DEPENDENCIES) $(EXTRA_pam_rootok_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_rootok_la_OBJECTS) $(pam_rootok_la_LIBADD) $(LIBS) - -tst-pam_rootok-retval$(EXEEXT): $(tst_pam_rootok_retval_OBJECTS) $(tst_pam_rootok_retval_DEPENDENCIES) $(EXTRA_tst_pam_rootok_retval_DEPENDENCIES) - @rm -f tst-pam_rootok-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_rootok_retval_OBJECTS) $(tst_pam_rootok_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_rootok.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_rootok-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_rootok.log: tst-pam_rootok - @p='tst-pam_rootok'; \ - b='tst-pam_rootok'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_rootok-retval.log: tst-pam_rootok-retval$(EXEEXT) - @p='tst-pam_rootok-retval$(EXEEXT)'; \ - b='tst-pam_rootok-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_rootok.Plo - -rm -f ./$(DEPDIR)/tst-pam_rootok-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_rootok.Plo - -rm -f ./$(DEPDIR)/tst-pam_rootok-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_rootok/README b/modules/pam_rootok/README deleted file mode 100644 index 55a44756..00000000 --- a/modules/pam_rootok/README +++ /dev/null @@ -1,33 +0,0 @@ -pam_rootok — Gain only root access - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_rootok is a PAM module that authenticates the user if their UID is 0. -Applications that are created setuid-root generally retain the UID of the user -but run with the authority of an enhanced effective-UID. It is the real UID -that is checked. - -OPTIONS - -debug - - Print debug information. - -EXAMPLES - -In the case of the su(1) application the historical usage is to permit the -superuser to adopt the identity of a lesser user without the use of a password. -To obtain this behavior with PAM the following pair of lines are needed for the -corresponding entry in the /etc/pam.d/su configuration file: - -# su authentication. Root is granted access by default. -auth sufficient pam_rootok.so -auth required pam_unix.so - - -AUTHOR - -pam_rootok was written by Andrew G. Morgan, <morgan@kernel.org>. - diff --git a/modules/pam_rootok/meson.build b/modules/pam_rootok/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_rootok/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_rootok/pam_rootok.8 b/modules/pam_rootok/pam_rootok.8 deleted file mode 100644 index 5fc021f7..00000000 --- a/modules/pam_rootok/pam_rootok.8 +++ /dev/null @@ -1,106 +0,0 @@ -'\" t -.\" Title: pam_rootok -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_ROOTOK" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_rootok \- Gain only root access -.SH "SYNOPSIS" -.HP \w'\fBpam_rootok\&.so\fR\ 'u -\fBpam_rootok\&.so\fR [debug] -.SH "DESCRIPTION" -.PP -pam_rootok is a PAM module that authenticates the user if their -\fIUID\fR -is -\fI0\fR\&. Applications that are created setuid\-root generally retain the -\fIUID\fR -of the user but run with the authority of an enhanced effective\-UID\&. It is the real -\fIUID\fR -that is checked\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Print debug information\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR, -\fBaccount\fR -and -\fBpassword\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -The -\fIUID\fR -is -\fI0\fR\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -The -\fIUID\fR -is -\fBnot\fR -\fI0\fR\&. -.RE -.SH "EXAMPLES" -.PP -In the case of the -\fBsu\fR(1) -application the historical usage is to permit the superuser to adopt the identity of a lesser user without the use of a password\&. To obtain this behavior with PAM the following pair of lines are needed for the corresponding entry in the -/etc/pam\&.d/su -configuration file: -.sp -.if n \{\ -.RS 4 -.\} -.nf -# su authentication\&. Root is granted access by default\&. -auth sufficient pam_rootok\&.so -auth required pam_unix\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBsu\fR(1), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_rootok was written by Andrew G\&. Morgan, <morgan@kernel\&.org>\&. diff --git a/modules/pam_rootok/pam_rootok.c b/modules/pam_rootok/pam_rootok.c index 9bc15abf..0c206157 100644 --- a/modules/pam_rootok/pam_rootok.c +++ b/modules/pam_rootok/pam_rootok.c @@ -66,13 +66,13 @@ log_callback (int type UNUSED, const char *fmt, ...) ret = vasprintf (&buf, fmt, ap); va_end(ap); if (ret < 0) { + audit_close(audit_fd); return 0; } - audit_log_user_avc_message(audit_fd, AUDIT_USER_AVC, buf, NULL, NULL, - NULL, 0); + (void) !audit_log_user_avc_message(audit_fd, AUDIT_USER_AVC, buf, + NULL, NULL, NULL, 0); audit_close(audit_fd); free(buf); - va_end(ap); return 0; } diff --git a/modules/pam_rootok/tst-pam_rootok-retval.c b/modules/pam_rootok/tst-pam_rootok-retval.c index b1797013..990ee126 100644 --- a/modules/pam_rootok/tst-pam_rootok-retval.c +++ b/modules/pam_rootok/tst-pam_rootok-retval.c @@ -30,10 +30,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, diff --git a/modules/pam_securetty/Makefile.am b/modules/pam_securetty/Makefile.am deleted file mode 100644 index c695d413..00000000 --- a/modules/pam_securetty/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_securetty.8 -endif -XMLS = README.xml pam_securetty.8.xml -dist_check_SCRIPTS = tst-pam_securetty -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_securetty.la -pam_securetty_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_securetty/Makefile.in b/modules/pam_securetty/Makefile.in deleted file mode 100644 index f207cf98..00000000 --- a/modules/pam_securetty/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_securetty -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_securetty_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_securetty_la_SOURCES = pam_securetty.c -pam_securetty_la_OBJECTS = pam_securetty.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_securetty.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_securetty.c -DIST_SOURCES = pam_securetty.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_securetty.8 -XMLS = README.xml pam_securetty.8.xml -dist_check_SCRIPTS = tst-pam_securetty -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_securetty.la -pam_securetty_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_securetty/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_securetty/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_securetty.la: $(pam_securetty_la_OBJECTS) $(pam_securetty_la_DEPENDENCIES) $(EXTRA_pam_securetty_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_securetty_la_OBJECTS) $(pam_securetty_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_securetty.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_securetty.log: tst-pam_securetty - @p='tst-pam_securetty'; \ - b='tst-pam_securetty'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_securetty.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_securetty.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_securetty/README b/modules/pam_securetty/README deleted file mode 100644 index 86dbe348..00000000 --- a/modules/pam_securetty/README +++ /dev/null @@ -1,42 +0,0 @@ -pam_securetty — Limit root login to special devices - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_securetty is a PAM module that allows root logins only if the user is -logging in on a "secure" tty, as defined by the listing in the securetty file. -pam_securetty checks at first, if /etc/securetty exists. If not and it was -built with vendordir support, it will use %vendordir%/securetty. pam_securetty -also checks that the securetty files are plain files and not world writable. It -will also allow root logins on the tty specified with console= switch on the -kernel command line and on ttys from the /sys/class/tty/console/active. - -This module has no effect on non-root users and requires that the application -fills in the PAM_TTY item correctly. - -For canonical usage, should be listed as a required authentication method -before any sufficient authentication methods. - -OPTIONS - -debug - - Print debug information. - -noconsole - - Do not automatically allow root logins on the kernel console device, as - specified on the kernel command line or by the sys file, if it is not also - specified in the securetty file. - -EXAMPLES - -auth required pam_securetty.so -auth required pam_unix.so - - -AUTHOR - -pam_securetty was written by Elliot Lee <sopwith@cuc.edu>. - diff --git a/modules/pam_securetty/meson.build b/modules/pam_securetty/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_securetty/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_securetty/pam_securetty.8 b/modules/pam_securetty/pam_securetty.8 deleted file mode 100644 index ca90438d..00000000 --- a/modules/pam_securetty/pam_securetty.8 +++ /dev/null @@ -1,140 +0,0 @@ -'\" t -.\" Title: pam_securetty -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SECURETTY" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_securetty \- Limit root login to special devices -.SH "SYNOPSIS" -.HP \w'\fBpam_securetty\&.so\fR\ 'u -\fBpam_securetty\&.so\fR [debug] -.SH "DESCRIPTION" -.PP -pam_securetty is a PAM module that allows root logins only if the user is logging in on a "secure" tty, as defined by the listing in the -securetty -file\&. pam_securetty checks at first, if -/etc/securetty -exists\&. If not and it was built with vendordir support, it will use -/securetty\&. pam_securetty also checks that the -securetty -files are plain files and not world writable\&. It will also allow root logins on the tty specified with -\fBconsole=\fR -switch on the kernel command line and on ttys from the -/sys/class/tty/console/active\&. -.PP -This module has no effect on non\-root users and requires that the application fills in the -\fBPAM_TTY\fR -item correctly\&. -.PP -For canonical usage, should be listed as a -\fBrequired\fR -authentication method before any -\fBsufficient\fR -authentication methods\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -noconsole -.RS 4 -Do not automatically allow root logins on the kernel console device, as specified on the kernel command line or by the sys file, if it is not also specified in the -securetty -file\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBauth\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -The user is allowed to continue authentication\&. Either the user is not root, or the root user is trying to log in on an acceptable device\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -Authentication is rejected\&. Either root is attempting to log in via an unacceptable device, or the -securetty -file is world writable or not a normal file\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -The conversation method supplied by the application failed to obtain the username\&. -.RE -.PP -PAM_INCOMPLETE -.RS 4 -The conversation method supplied by the application returned PAM_CONV_AGAIN\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -An error occurred while the module was determining the user\*(Aqs name or tty, or the module could not open the -securetty -file\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The module could not find the user name in the -/etc/passwd -file to verify whether the user had a UID of 0\&. Therefore, the results of running this module are ignored\&. -.RE -.SH "EXAMPLES" -.PP -.if n \{\ -.RS 4 -.\} -.nf -auth required pam_securetty\&.so -auth required pam_unix\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBsecuretty\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_securetty was written by Elliot Lee <sopwith@cuc\&.edu>\&. diff --git a/modules/pam_securetty/pam_securetty.c b/modules/pam_securetty/pam_securetty.c index 47a5cd9f..9264a309 100644 --- a/modules/pam_securetty/pam_securetty.c +++ b/modules/pam_securetty/pam_securetty.c @@ -70,7 +70,8 @@ securetty_perform_check (pam_handle_t *pamh, int ctrl, const char *uttyname; const char *str; const void *void_uttyname; - char ttyfileline[256]; + char *ttyfileline = NULL; + size_t ttyfilelinelen = 0; char ptname[256]; struct stat ttyfileinfo; struct passwd *user_pwd; @@ -148,7 +149,7 @@ securetty_perform_check (pam_handle_t *pamh, int ctrl, return PAM_SERVICE_ERR; } - if (isdigit(uttyname[0])) { + if (isdigit((unsigned char)uttyname[0])) { snprintf(ptname, sizeof(ptname), "pts/%s", uttyname); } else { ptname[0] = '\0'; @@ -156,14 +157,13 @@ securetty_perform_check (pam_handle_t *pamh, int ctrl, retval = 1; - while ((fgets(ttyfileline, sizeof(ttyfileline)-1, ttyfile) != NULL) - && retval) { - if (ttyfileline[strlen(ttyfileline) - 1] == '\n') - ttyfileline[strlen(ttyfileline) - 1] = '\0'; + while (retval && getline(&ttyfileline, &ttyfilelinelen, ttyfile) != -1) { + ttyfileline[strcspn(ttyfileline, "\n")] = '\0'; retval = ( strcmp(ttyfileline, uttyname) && (!ptname[0] || strcmp(ptname, uttyname)) ); } + free(ttyfileline); fclose(ttyfile); if (retval && !(ctrl & PAM_NOCONSOLE_ARG)) { @@ -173,9 +173,14 @@ securetty_perform_check (pam_handle_t *pamh, int ctrl, cmdlinefile = fopen(CMDLINE_FILE, "r"); if (cmdlinefile != NULL) { - char line[LINE_MAX], *p; - - p = fgets(line, sizeof(line), cmdlinefile); + char *p; + char *line = NULL; + size_t linelen = 0; + + if (getline(&line, &linelen, cmdlinefile) == -1) + p = NULL; + else + p = line; fclose(cmdlinefile); for (; p; p = strstr(p+1, "console=")) { @@ -195,6 +200,8 @@ securetty_perform_check (pam_handle_t *pamh, int ctrl, break; } } + + free(line); } } if (retval && !(ctrl & PAM_NOCONSOLE_ARG)) { @@ -204,16 +211,19 @@ securetty_perform_check (pam_handle_t *pamh, int ctrl, consoleactivefile = fopen(CONSOLEACTIVE_FILE, "r"); if (consoleactivefile != NULL) { - char line[LINE_MAX], *p, *n; - - line[0] = 0; - p = fgets(line, sizeof(line), consoleactivefile); + char *p, *n; + char *line = NULL; + size_t linelen = 0; + + if (getline(&line, &linelen, consoleactivefile) == -1) + p = NULL; + else + p = line; fclose(consoleactivefile); if (p) { /* remove the newline character at end */ - if (line[strlen(line)-1] == '\n') - line[strlen(line)-1] = 0; + line[strcspn(line, "\n")] = '\0'; for (n = p; n != NULL; p = n+1) { if ((n = strchr(p, ' ')) != NULL) @@ -225,6 +235,8 @@ securetty_perform_check (pam_handle_t *pamh, int ctrl, } } } + + free(line); } } diff --git a/modules/pam_selinux/Makefile.am b/modules/pam_selinux/Makefile.am deleted file mode 100644 index fbb6de6d..00000000 --- a/modules/pam_selinux/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) pam_selinux_check.8 - -if HAVE_DOC -dist_man_MANS = pam_selinux.8 -endif -XMLS = README.xml pam_selinux.8.xml -dist_check_SCRIPTS = tst-pam_selinux -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -I$(top_srcdir)/libpam_misc/include $(WARN_CFLAGS) - -pam_selinux_la_LDFLAGS = -no-undefined -avoid-version -module -pam_selinux_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ @LIBAUDIT@ -if HAVE_VERSIONING - pam_selinux_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_selinux.la -noinst_PROGRAMS = pam_selinux_check -pam_selinux_check_LDADD = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_selinux/Makefile.in b/modules/pam_selinux/Makefile.in deleted file mode 100644 index cad48d6c..00000000 --- a/modules/pam_selinux/Makefile.in +++ /dev/null @@ -1,1193 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de> -# - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -noinst_PROGRAMS = pam_selinux_check$(EXEEXT) -subdir = modules/pam_selinux -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_selinux_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_selinux_la_SOURCES = pam_selinux.c -pam_selinux_la_OBJECTS = pam_selinux.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -pam_selinux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(pam_selinux_la_LDFLAGS) $(LDFLAGS) -o \ - $@ -pam_selinux_check_SOURCES = pam_selinux_check.c -pam_selinux_check_OBJECTS = pam_selinux_check.$(OBJEXT) -pam_selinux_check_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_selinux.Plo \ - ./$(DEPDIR)/pam_selinux_check.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_selinux.c pam_selinux_check.c -DIST_SOURCES = pam_selinux.c pam_selinux_check.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) pam_selinux_check.8 -@HAVE_DOC_TRUE@dist_man_MANS = pam_selinux.8 -XMLS = README.xml pam_selinux.8.xml -dist_check_SCRIPTS = tst-pam_selinux -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -I$(top_srcdir)/libpam_misc/include $(WARN_CFLAGS) - -pam_selinux_la_LDFLAGS = -no-undefined -avoid-version -module \ - $(am__append_1) -pam_selinux_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ @LIBAUDIT@ -securelib_LTLIBRARIES = pam_selinux.la -pam_selinux_check_LDADD = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la - -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_selinux/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_selinux/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_selinux.la: $(pam_selinux_la_OBJECTS) $(pam_selinux_la_DEPENDENCIES) $(EXTRA_pam_selinux_la_DEPENDENCIES) - $(AM_V_CCLD)$(pam_selinux_la_LINK) -rpath $(securelibdir) $(pam_selinux_la_OBJECTS) $(pam_selinux_la_LIBADD) $(LIBS) - -pam_selinux_check$(EXEEXT): $(pam_selinux_check_OBJECTS) $(pam_selinux_check_DEPENDENCIES) $(EXTRA_pam_selinux_check_DEPENDENCIES) - @rm -f pam_selinux_check$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(pam_selinux_check_OBJECTS) $(pam_selinux_check_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_selinux.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_selinux_check.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_selinux.log: tst-pam_selinux - @p='tst-pam_selinux'; \ - b='tst-pam_selinux'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_selinux.Plo - -rm -f ./$(DEPDIR)/pam_selinux_check.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_selinux.Plo - -rm -f ./$(DEPDIR)/pam_selinux_check.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-noinstPROGRAMS clean-securelibLTLIBRARIES cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_selinux/README b/modules/pam_selinux/README deleted file mode 100644 index fb4d4499..00000000 --- a/modules/pam_selinux/README +++ /dev/null @@ -1,85 +0,0 @@ -pam_selinux — PAM module to set the default security context - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_selinux is a PAM module that sets up the default SELinux security context -for the next executed process. - -When a new session is started, the open_session part of the module computes and -sets up the execution security context used for the next execve(2) call, the -file security context for the controlling terminal, and the security context -used for creating a new kernel keyring. - -When the session is ended, the close_session part of the module restores old -security contexts that were in effect before the change made by the -open_session part of the module. - -Adding pam_selinux into the PAM stack might disrupt behavior of other PAM -modules which execute applications. To avoid that, pam_selinux.so open should -be placed after such modules in the PAM stack, and pam_selinux.so close should -be placed before them. When such a placement is not feasible, pam_selinux.so -restore could be used to temporary restore original security contexts. - -OPTIONS - -open - - Only execute the open_session part of the module. - -close - - Only execute the close_session part of the module. - -restore - - In open_session part of the module, temporarily restore the security - contexts as they were before the previous call of the module. Another call - of this module without the restore option will set up the new security - contexts again. - -nottys - - Do not setup security context of the controlling terminal. - -debug - - Turn on debug messages via syslog(3). - -verbose - - Attempt to inform the user when security context is set. - -select_context - - Attempt to ask the user for a custom security context role. If MLS is on, - ask also for sensitivity level. - -env_params - - Attempt to obtain a custom security context role from PAM environment. If - MLS is on, obtain also sensitivity level. This option and the - select_context option are mutually exclusive. The respective PAM - environment variables are SELINUX_ROLE_REQUESTED, SELINUX_LEVEL_REQUESTED, - and SELINUX_USE_CURRENT_RANGE. The first two variables are self describing - and the last one if set to 1 makes the PAM module behave as if the - use_current_range was specified on the command line of the module. - -use_current_range - - Use the sensitivity level of the current process for the user context - instead of the default level. Also suppresses asking of the sensitivity - level from the user or obtaining it from PAM environment. - -EXAMPLES - -auth required pam_unix.so -session required pam_permit.so -session optional pam_selinux.so - - -AUTHOR - -pam_selinux was written by Dan Walsh <dwalsh@redhat.com>. - diff --git a/modules/pam_selinux/meson.build b/modules/pam_selinux/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_selinux/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_selinux/pam_selinux.8 b/modules/pam_selinux/pam_selinux.8 deleted file mode 100644 index 260bc477..00000000 --- a/modules/pam_selinux/pam_selinux.8 +++ /dev/null @@ -1,151 +0,0 @@ -'\" t -.\" Title: pam_selinux -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SELINUX" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_selinux \- PAM module to set the default security context -.SH "SYNOPSIS" -.HP \w'\fBpam_selinux\&.so\fR\ 'u -\fBpam_selinux\&.so\fR [open] [close] [restore] [nottys] [debug] [verbose] [select_context] [env_params] [use_current_range] -.SH "DESCRIPTION" -.PP -pam_selinux is a PAM module that sets up the default SELinux security context for the next executed process\&. -.PP -When a new session is started, the open_session part of the module computes and sets up the execution security context used for the next -\fBexecve\fR(2) -call, the file security context for the controlling terminal, and the security context used for creating a new kernel keyring\&. -.PP -When the session is ended, the close_session part of the module restores old security contexts that were in effect before the change made by the open_session part of the module\&. -.PP -Adding pam_selinux into the PAM stack might disrupt behavior of other PAM modules which execute applications\&. To avoid that, -\fIpam_selinux\&.so open\fR -should be placed after such modules in the PAM stack, and -\fIpam_selinux\&.so close\fR -should be placed before them\&. When such a placement is not feasible, -\fIpam_selinux\&.so restore\fR -could be used to temporary restore original security contexts\&. -.SH "OPTIONS" -.PP -open -.RS 4 -Only execute the open_session part of the module\&. -.RE -.PP -close -.RS 4 -Only execute the close_session part of the module\&. -.RE -.PP -restore -.RS 4 -In open_session part of the module, temporarily restore the security contexts as they were before the previous call of the module\&. Another call of this module without the restore option will set up the new security contexts again\&. -.RE -.PP -nottys -.RS 4 -Do not setup security context of the controlling terminal\&. -.RE -.PP -debug -.RS 4 -Turn on debug messages via -\fBsyslog\fR(3)\&. -.RE -.PP -verbose -.RS 4 -Attempt to inform the user when security context is set\&. -.RE -.PP -select_context -.RS 4 -Attempt to ask the user for a custom security context role\&. If MLS is on, ask also for sensitivity level\&. -.RE -.PP -env_params -.RS 4 -Attempt to obtain a custom security context role from PAM environment\&. If MLS is on, obtain also sensitivity level\&. This option and the select_context option are mutually exclusive\&. The respective PAM environment variables are -\fISELINUX_ROLE_REQUESTED\fR, -\fISELINUX_LEVEL_REQUESTED\fR, and -\fISELINUX_USE_CURRENT_RANGE\fR\&. The first two variables are self describing and the last one if set to 1 makes the PAM module behave as if the use_current_range was specified on the command line of the module\&. -.RE -.PP -use_current_range -.RS 4 -Use the sensitivity level of the current process for the user context instead of the default level\&. Also suppresses asking of the sensitivity level from the user or obtaining it from PAM environment\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -The security context was set successfully\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Unable to get or set a valid context\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The user is not known to the system\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory allocation error\&. -.RE -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth required pam_unix\&.so -session required pam_permit\&.so -session optional pam_selinux\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBexecve\fR(2), -\fBtty\fR(4), -\fBpam.d\fR(5), -\fBpam\fR(8), -\fBselinux\fR(8) -.SH "AUTHOR" -.PP -pam_selinux was written by Dan Walsh <dwalsh@redhat\&.com>\&. diff --git a/modules/pam_selinux/pam_selinux.c b/modules/pam_selinux/pam_selinux.c index e52e0fc4..a9276123 100644 --- a/modules/pam_selinux/pam_selinux.c +++ b/modules/pam_selinux/pam_selinux.c @@ -57,6 +57,7 @@ #include <security/pam_modutil.h> #include <security/pam_ext.h> #include "pam_inline.h" +#include "pam_i18n.h" #include <selinux/selinux.h> #include <selinux/get_context_list.h> @@ -97,7 +98,7 @@ send_audit_message(const pam_handle_t *pamh, int success, const char *default_co pam_syslog(pamh, LOG_ERR, "Error translating selected context '%s'.", selected_context); selected_raw = NULL; } - if (asprintf(&msg, "pam: default-context=%s selected-context=%s", + if (asprintf(&msg, "op=pam_selinux default-context=%s selected-context=%s", default_raw ? default_raw : (default_context ? default_context : "?"), selected_raw ? selected_raw : (selected_context ? selected_context : "?")) < 0) { msg = NULL; /* asprintf leaves msg in undefined state on failure */ @@ -114,7 +115,8 @@ send_audit_message(const pam_handle_t *pamh, int success, const char *default_co fallback: #endif /* HAVE_LIBAUDIT */ pam_syslog(pamh, LOG_NOTICE, "pam: default-context=%s selected-context=%s success %d", - default_context, selected_context, success); + default_context ? default_context : "(null)", + selected_context ? selected_context : "(null)", success); #ifdef HAVE_LIBAUDIT cleanup: diff --git a/modules/pam_selinux/pam_selinux_check.c b/modules/pam_selinux/pam_selinux_check.c index 30526d37..753aa88f 100644 --- a/modules/pam_selinux/pam_selinux_check.c +++ b/modules/pam_selinux/pam_selinux_check.c @@ -55,6 +55,8 @@ #include <security/pam_appl.h> /* for PAM functions */ #include <security/pam_misc.h> /* for misc_conv PAM utility function */ +#include "pam_i18n.h" + #define SERVICE_NAME "pam_selinux_check" /* the name of this program for PAM */ /* The file containing the context to run * the scripts under. */ diff --git a/modules/pam_sepermit/Makefile.am b/modules/pam_sepermit/Makefile.am deleted file mode 100644 index 6e7e96e5..00000000 --- a/modules/pam_sepermit/Makefile.am +++ /dev/null @@ -1,48 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de> -# Copyright (c) 2008, 2009 Red Hat, Inc. -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_sepermit.8 sepermit.conf.5 -endif -XMLS = README.xml pam_sepermit.8.xml sepermit.conf.5.xml -dist_check_SCRIPTS = tst-pam_sepermit -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif -sepermitlockdir = ${localstatedir}/run/sepermit - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -I$(top_srcdir)/libpam_misc/include \ - -D SEPERMIT_LOCKDIR=\"$(sepermitlockdir)\" $(WARN_CFLAGS) - -pam_sepermit_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ -pam_sepermit_la_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - pam_sepermit_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -dist_secureconf_DATA = sepermit.conf -securelib_LTLIBRARIES = pam_sepermit.la - -check_PROGRAMS = tst-pam_sepermit-retval -tst_pam_sepermit_retval_LDADD = $(top_builddir)/libpam/libpam.la - -install-data-local: - mkdir -p $(DESTDIR)$(sepermitlockdir) - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_sepermit/Makefile.in b/modules/pam_sepermit/Makefile.in deleted file mode 100644 index 4fb5cbf7..00000000 --- a/modules/pam_sepermit/Makefile.in +++ /dev/null @@ -1,1275 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2007 Thorsten Kukuk <kukuk@thkukuk.de> -# Copyright (c) 2008, 2009 Red Hat, Inc. -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_sepermit-retval$(EXEEXT) -subdir = modules/pam_sepermit -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(dist_secureconf_DATA) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" \ - "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_sepermit_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_sepermit_la_SOURCES = pam_sepermit.c -pam_sepermit_la_OBJECTS = pam_sepermit.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -pam_sepermit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(pam_sepermit_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -tst_pam_sepermit_retval_SOURCES = tst-pam_sepermit-retval.c -tst_pam_sepermit_retval_OBJECTS = tst-pam_sepermit-retval.$(OBJEXT) -tst_pam_sepermit_retval_DEPENDENCIES = \ - $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_sepermit.Plo \ - ./$(DEPDIR)/tst-pam_sepermit-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_sepermit.c tst-pam_sepermit-retval.c -DIST_SOURCES = pam_sepermit.c tst-pam_sepermit-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_sepermit.8 sepermit.conf.5 -XMLS = README.xml pam_sepermit.8.xml sepermit.conf.5.xml -dist_check_SCRIPTS = tst-pam_sepermit -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -sepermitlockdir = ${localstatedir}/run/sepermit -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -I$(top_srcdir)/libpam_misc/include \ - -D SEPERMIT_LOCKDIR=\"$(sepermitlockdir)\" $(WARN_CFLAGS) - -pam_sepermit_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ -pam_sepermit_la_LDFLAGS = -no-undefined -avoid-version -module \ - $(am__append_1) -dist_secureconf_DATA = sepermit.conf -securelib_LTLIBRARIES = pam_sepermit.la -tst_pam_sepermit_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_sepermit/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_sepermit/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_sepermit.la: $(pam_sepermit_la_OBJECTS) $(pam_sepermit_la_DEPENDENCIES) $(EXTRA_pam_sepermit_la_DEPENDENCIES) - $(AM_V_CCLD)$(pam_sepermit_la_LINK) -rpath $(securelibdir) $(pam_sepermit_la_OBJECTS) $(pam_sepermit_la_LIBADD) $(LIBS) - -tst-pam_sepermit-retval$(EXEEXT): $(tst_pam_sepermit_retval_OBJECTS) $(tst_pam_sepermit_retval_DEPENDENCIES) $(EXTRA_tst_pam_sepermit_retval_DEPENDENCIES) - @rm -f tst-pam_sepermit-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_sepermit_retval_OBJECTS) $(tst_pam_sepermit_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_sepermit.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_sepermit-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_sepermit.log: tst-pam_sepermit - @p='tst-pam_sepermit'; \ - b='tst-pam_sepermit'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_sepermit-retval.log: tst-pam_sepermit-retval$(EXEEXT) - @p='tst-pam_sepermit-retval$(EXEEXT)'; \ - b='tst-pam_sepermit-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_sepermit.Plo - -rm -f ./$(DEPDIR)/tst-pam_sepermit-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-data-local install-dist_secureconfDATA \ - install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_sepermit.Plo - -rm -f ./$(DEPDIR)/tst-pam_sepermit-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA uninstall-man \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-local install-dist_secureconfDATA \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-man5 install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am \ - uninstall-dist_secureconfDATA uninstall-man uninstall-man5 \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - - -install-data-local: - mkdir -p $(DESTDIR)$(sepermitlockdir) -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_sepermit/README b/modules/pam_sepermit/README deleted file mode 100644 index b91424e6..00000000 --- a/modules/pam_sepermit/README +++ /dev/null @@ -1,51 +0,0 @@ -pam_sepermit — PAM module to allow/deny login depending on SELinux enforcement -state - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_sepermit module allows or denies login depending on SELinux enforcement -state. - -When the user which is logging in matches an entry in the config file he is -allowed access only when the SELinux is in enforcing mode. Otherwise he is -denied access. For users not matching any entry in the config file the -pam_sepermit module returns PAM_IGNORE return value. - -The config file contains a list of user names one per line with optional -arguments. If the name is prefixed with @ character it means that all users in -the group name match. If it is prefixed with a % character the SELinux user is -used to match against the name instead of the account name. Note that when -SELinux is disabled the SELinux user assigned to the account cannot be -determined. This means that such entries are never matched when SELinux is -disabled and pam_sepermit will return PAM_IGNORE. - -See sepermit.conf(5) for details. - -If there is no explicitly specified configuration file and /etc/security/ -sepermit.conf does not exist, %vendordir%/security/sepermit.conf is used. - -OPTIONS - -debug - - Turns on debugging via syslog(3). - -conf=/path/to/config/file - - Path to alternative config file overriding the default. - -EXAMPLES - -auth [success=done ignore=ignore default=bad] pam_sepermit.so -auth required pam_unix.so -account required pam_unix.so -session required pam_permit.so - - -AUTHOR - -pam_sepermit and this manual page were written by Tomas Mraz -<tmraz@redhat.com>. - diff --git a/modules/pam_sepermit/meson.build b/modules/pam_sepermit/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_sepermit/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_sepermit/pam_sepermit.8 b/modules/pam_sepermit/pam_sepermit.8 deleted file mode 100644 index f47f4a8a..00000000 --- a/modules/pam_sepermit/pam_sepermit.8 +++ /dev/null @@ -1,131 +0,0 @@ -'\" t -.\" Title: pam_sepermit -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SEPERMIT" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_sepermit \- PAM module to allow/deny login depending on SELinux enforcement state -.SH "SYNOPSIS" -.HP \w'\fBpam_sepermit\&.so\fR\ 'u -\fBpam_sepermit\&.so\fR [debug] [conf=\fI/path/to/config/file\fR] -.SH "DESCRIPTION" -.PP -The pam_sepermit module allows or denies login depending on SELinux enforcement state\&. -.PP -When the user which is logging in matches an entry in the config file he is allowed access only when the SELinux is in enforcing mode\&. Otherwise he is denied access\&. For users not matching any entry in the config file the pam_sepermit module returns PAM_IGNORE return value\&. -.PP -The config file contains a list of user names one per line with optional arguments\&. If the -\fIname\fR -is prefixed with -\fI@\fR -character it means that all users in the group -\fIname\fR -match\&. If it is prefixed with a -\fI%\fR -character the SELinux user is used to match against the -\fIname\fR -instead of the account name\&. Note that when SELinux is disabled the SELinux user assigned to the account cannot be determined\&. This means that such entries are never matched when SELinux is disabled and pam_sepermit will return PAM_IGNORE\&. -.PP -See -\fBsepermit.conf\fR(5) -for details\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Turns on debugging via -\fBsyslog\fR(3)\&. -.RE -.PP -conf=/path/to/config/file -.RS 4 -Path to alternative config file overriding the default\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBaccount\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -SELinux is disabled or in the permissive mode and the user matches\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -SELinux is in the enforcing mode and the user matches\&. -.RE -.PP -PAM_IGNORE -.RS 4 -The user does not match any entry in the config file\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The module was unable to determine the user\*(Aqs name\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Error during reading or parsing the config file\&. -.RE -.SH "FILES" -.PP -/etc/security/sepermit\&.conf -.RS 4 -Default configuration file -.RE -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth [success=done ignore=ignore default=bad] pam_sepermit\&.so -auth required pam_unix\&.so -account required pam_unix\&.so -session required pam_permit\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBsepermit.conf\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -\fBselinux\fR(8) -.SH "AUTHOR" -.PP -pam_sepermit and this manual page were written by Tomas Mraz <tmraz@redhat\&.com>\&. diff --git a/modules/pam_sepermit/pam_sepermit.8.xml b/modules/pam_sepermit/pam_sepermit.8.xml index 791d2bbe..114864a7 100644 --- a/modules/pam_sepermit/pam_sepermit.8.xml +++ b/modules/pam_sepermit/pam_sepermit.8.xml @@ -31,9 +31,9 @@ enforcement state. </para> <para> - When the user which is logging in matches an entry in the config file - he is allowed access only when the SELinux is in enforcing mode. Otherwise - he is denied access. For users not matching any entry in the config file + When the users which are logging in match an entry in the config file + they are allowed access only when SELinux is in enforcing mode. Otherwise + they are denied access. For users not matching any entry in the config file the pam_sepermit module returns PAM_IGNORE return value. </para> <para> @@ -192,4 +192,4 @@ session required pam_permit.so </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_sepermit/pam_sepermit.c b/modules/pam_sepermit/pam_sepermit.c index 5fbc8fdd..b9ed9458 100644 --- a/modules/pam_sepermit/pam_sepermit.c +++ b/modules/pam_sepermit/pam_sepermit.c @@ -63,9 +63,9 @@ #include "pam_inline.h" -#define SEPERMIT_CONF_FILE (SCONFIGDIR "/sepermit.conf") -#ifdef VENDOR_SCONFIGDIR -# define SEPERMIT_VENDOR_CONF_FILE (VENDOR_SCONFIGDIR "/sepermit.conf"); +#define SEPERMIT_CONF_FILE (SCONFIG_DIR "/sepermit.conf") +#ifdef VENDOR_SCONFIG_DIR +# define SEPERMIT_VENDOR_CONF_FILE (VENDOR_SCONFIG_DIR "/sepermit.conf"); #endif #define MODULE "pam_sepermit" #define OPT_DELIM ":" @@ -82,21 +82,27 @@ struct lockfd { static int match_process_uid(pid_t pid, uid_t uid) { - char buf[128]; + char *buf; + size_t n; uid_t puid; FILE *f; int re = 0; - snprintf (buf, sizeof buf, PROC_BASE "/%d/status", pid); - if (!(f = fopen (buf, "r"))) + if (asprintf (&buf, PROC_BASE "/%d/status", pid) < 0) return 0; + n = strlen(buf) + 1; + if (!(f = fopen (buf, "r"))) { + free(buf); + return 0; + } - while (fgets(buf, sizeof buf, f)) { + while (getline(&buf, &n, f) != -1) { if (sscanf (buf, "Uid:\t%d", &puid)) { re = uid == puid; break; } } + free(buf); fclose(f); return re; } @@ -299,10 +305,10 @@ sepermit_match(pam_handle_t *pamh, const char *cfgfile, const char *user, continue; start = line; - while (isspace(*start)) + while (isspace((unsigned char)*start)) ++start; n = strlen(start); - while (n > 0 && isspace(start[n-1])) { + while (n > 0 && isspace((unsigned char)start[n-1])) { --n; } if (n == 0) @@ -365,9 +371,8 @@ sepermit_match(pam_handle_t *pamh, const char *cfgfile, const char *user, return -1; } -int -pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, - int argc, const char **argv) +static int +pam_sepermit(pam_handle_t *pamh, int argc, const char **argv) { int i; int rv; @@ -454,8 +459,15 @@ pam_sm_setcred (pam_handle_t *pamh UNUSED, int flags UNUSED, } int -pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, - int argc, const char **argv) +pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) +{ + return pam_sepermit(pamh, argc, argv); +} + +int +pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_sepermit(pamh, argc, argv); } diff --git a/modules/pam_sepermit/sepermit.conf.5 b/modules/pam_sepermit/sepermit.conf.5 deleted file mode 100644 index e2b17368..00000000 --- a/modules/pam_sepermit/sepermit.conf.5 +++ /dev/null @@ -1,117 +0,0 @@ -'\" t -.\" Title: sepermit.conf -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "SEPERMIT\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -sepermit.conf \- configuration file for the pam_sepermit module -.SH "DESCRIPTION" -.PP -The lines of the configuration file have the following syntax: -.PP -\fI<user>\fR[:\fI<option>\fR:\fI<option>\fR\&.\&.\&.] -.PP -The -\fBuser\fR -can be specified in the following manner: -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -a username -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -a groupname, with -\fB@group\fR -syntax\&. This should not be confused with netgroups\&. -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -a SELinux user name with -\fB%seuser\fR -syntax\&. -.RE -.PP -The recognized options are: -.PP -exclusive -.RS 4 -Only single login session will be allowed for the user and the user\*(Aqs processes will be killed on logout\&. -.RE -.PP -ignore -.RS 4 -The module will never return PAM_SUCCESS status for the user\&. It will return PAM_IGNORE if SELinux is in the enforcing mode, and PAM_AUTH_ERR otherwise\&. It is useful if you want to support passwordless guest users and other confined users with passwords simultaneously\&. -.RE -.PP -The lines which start with # character are comments and are ignored\&. -.SH "EXAMPLES" -.PP -These are some example lines which might be specified in -/etc/security/sepermit\&.conf\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -%guest_u:exclusive -%staff_u:ignore -%user_u:ignore - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam_sepermit\fR(8), -\fBpam.d\fR(5), -\fBpam\fR(8), -\fBselinux\fR(8), -.SH "AUTHOR" -.PP -pam_sepermit and this manual page were written by Tomas Mraz <tmraz@redhat\&.com> diff --git a/modules/pam_sepermit/tst-pam_sepermit-retval.c b/modules/pam_sepermit/tst-pam_sepermit-retval.c index 321bd6d1..4132f286 100644 --- a/modules/pam_sepermit/tst-pam_sepermit-retval.c +++ b/modules/pam_sepermit/tst-pam_sepermit-retval.c @@ -33,10 +33,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, @@ -66,10 +66,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so conf=%s\n" - "account required %s/.libs/%s.so conf=%s\n" - "password required %s/.libs/%s.so conf=%s\n" - "session required %s/.libs/%s.so conf=%s\n", + "auth required %s/" LTDIR "%s.so conf=%s\n" + "account required %s/" LTDIR "%s.so conf=%s\n" + "password required %s/" LTDIR "%s.so conf=%s\n" + "session required %s/" LTDIR "%s.so conf=%s\n", cwd, MODULE_NAME, config_file, cwd, MODULE_NAME, config_file, cwd, MODULE_NAME, config_file, @@ -95,14 +95,14 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so conf=%s\n" - "auth required %s/../pam_permit/.libs/pam_permit.so\n" - "account required %s/.libs/%s.so conf=%s\n" - "account required %s/../pam_permit/.libs/pam_permit.so\n" - "password required %s/.libs/%s.so conf=%s\n" - "password required %s/../pam_permit/.libs/pam_permit.so\n" - "session required %s/.libs/%s.so conf=%s\n" - "session required %s/../pam_permit/.libs/pam_permit.so\n", + "auth required %s/" LTDIR "%s.so conf=%s\n" + "auth required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "account required %s/" LTDIR "%s.so conf=%s\n" + "account required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "password required %s/" LTDIR "%s.so conf=%s\n" + "password required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "session required %s/" LTDIR "%s.so conf=%s\n" + "session required %s/../pam_permit/" LTDIR "pam_permit.so\n", cwd, MODULE_NAME, config_file, cwd, cwd, MODULE_NAME, config_file, cwd, cwd, MODULE_NAME, config_file, cwd, @@ -128,10 +128,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so conf=%s\n" - "account required %s/.libs/%s.so conf=%s\n" - "password required %s/.libs/%s.so conf=%s\n" - "session required %s/.libs/%s.so conf=%s\n", + "auth required %s/" LTDIR "%s.so conf=%s\n" + "account required %s/" LTDIR "%s.so conf=%s\n" + "password required %s/" LTDIR "%s.so conf=%s\n" + "session required %s/" LTDIR "%s.so conf=%s\n", cwd, MODULE_NAME, missing_file, cwd, MODULE_NAME, missing_file, cwd, MODULE_NAME, missing_file, diff --git a/modules/pam_setquota/Makefile.am b/modules/pam_setquota/Makefile.am deleted file mode 100644 index 1582e515..00000000 --- a/modules/pam_setquota/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_setquota.8 -endif -XMLS = README.xml pam_setquota.8.xml -dist_check_SCRIPTS = tst-pam_setquota -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_setquota.la -pam_setquota_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_setquota/Makefile.in b/modules/pam_setquota/Makefile.in deleted file mode 100644 index 5e4375a9..00000000 --- a/modules/pam_setquota/Makefile.in +++ /dev/null @@ -1,1157 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_setquota -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_setquota_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_setquota_la_SOURCES = pam_setquota.c -pam_setquota_la_OBJECTS = pam_setquota.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_setquota.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_setquota.c -DIST_SOURCES = pam_setquota.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_setquota.8 -XMLS = README.xml pam_setquota.8.xml -dist_check_SCRIPTS = tst-pam_setquota -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_setquota.la -pam_setquota_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_setquota/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_setquota/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_setquota.la: $(pam_setquota_la_OBJECTS) $(pam_setquota_la_DEPENDENCIES) $(EXTRA_pam_setquota_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_setquota_la_OBJECTS) $(pam_setquota_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_setquota.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_setquota.log: tst-pam_setquota - @p='tst-pam_setquota'; \ - b='tst-pam_setquota'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_setquota.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_setquota.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_setquota/README b/modules/pam_setquota/README deleted file mode 100644 index fd00da7d..00000000 --- a/modules/pam_setquota/README +++ /dev/null @@ -1,80 +0,0 @@ -pam_setquota — PAM module to set or modify disk quotas on session start - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_setquota is a PAM module to set or modify a disk quota at session start - -This makes quotas usable with central user databases, such as MySQL or LDAP. - -OPTIONS - -fs=/home - - The device file or mountpoint the policy applies to. Defaults to the - filesystem containing the users home directory. - -overwrite=0 - - Overwrite an existing quota. Note: Enabling this will remove the ability - for the admin to manually configure different quotas for users for a - filesystem with edquota(8). (Defaults to 0) - -debug=0 - - Enable debugging. A value of 1 outputs the old and new quota on a device. A - value of 2 also prints out the matched and found filesystems should fs be - unset. (Defaults to 0) - -startuid=1000 - - Describe the start of the UID range the policy is applied to. (Defaults to - UID_MIN from login.defs or the uidmin value defined at compile-time if - UID_MIN is undefined.) - -enduid=0 - - Describe the end of the UID range the policy is applied to. Setting enduid= - 0 results in an open-ended UID range (i.e. all uids greater than startuid - are included). (Defaults to 0) - -bsoftlimit=19000 - - Soft limit for disk quota blocks, as defined by quotactl(2). Note: - bsoftlimit and bhardlimit must be set at the same time! - -bhardlimit=20000 - - Hard limit for disk quota blocks, as defined by quotactl(2). Note: - bsoftlimit and bhardlimit must be set at the same time! - -isoftlimit=3000 - - Soft limit for inodes, as defined by quotactl(2). Note: isoftlimit and - ihardlimit must be set at the same time! - -ihardlimit=4000 - - Hard limit for inodes, as defined by quotactl(2). Note: isoftlimit and - ihardlimit must be set at the same time! - -EXAMPLES - -A single invocation of `pam_setquota` applies a specific policy to a UID range. -Applying different policies to specific UID ranges is done by invoking -pam_setquota more than once. The last matching entry defines the resulting -quota. - - session required pam_setquota.so bsoftlimit=1000 bhardlimit=2000 isoftlimit=1000 ihardlimit=2000 startuid=1000 enduid=0 fs=/home - session required pam_setquota.so bsoftlimit=19000 bhardlimit=20000 isoftlimit=3000 ihardlimit=4000 startuid=2001 enduid=3000 fs=/dev/sda1 - session required pam_setquota.so bsoftlimit=19000 bhardlimit=20000 isoftlimit=3000 ihardlimit=4000 startuid=3001 enduid=4000 fs=/dev/sda1 overwrite=1 - - -AUTHOR - -pam_setquota was originally written by Ruslan Savchenko <savrus@mexmat.net>. - -Further modifications were made by Shane Tzen <shane@ict.usc.edu>, Sven Hartge -<sven@svenhartge.de> and Keller Fuchs <kellerfuchs@hashbang.sh>. - diff --git a/modules/pam_setquota/meson.build b/modules/pam_setquota/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_setquota/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_setquota/pam_setquota.8 b/modules/pam_setquota/pam_setquota.8 deleted file mode 100644 index 2c95097c..00000000 --- a/modules/pam_setquota/pam_setquota.8 +++ /dev/null @@ -1,186 +0,0 @@ -'\" t -.\" Title: pam_setquota -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SETQUOTA" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_setquota \- PAM module to set or modify disk quotas on session start -.SH "SYNOPSIS" -.HP \w'\fBpam_setquota\&.so\fR\ 'u -\fBpam_setquota\&.so\fR [fs=\fI/home\fR] [overwrite=\fI0\fR] [debug=\fI0\fR] [startuid=\fI1000\fR] [enduid=\fI0\fR] [bsoftlimit=\fI19000\fR] [bhardlimit=\fI20000\fR] [isoftlimit=\fI3000\fR] [ihardlimit=\fI4000\fR] -.SH "DESCRIPTION" -.PP -pam_setquota is a PAM module to set or modify a disk quota at session start -.PP -This makes quotas usable with central user databases, such as MySQL or LDAP\&. -.SH "OPTIONS" -.PP -.PP -fs=/home -.RS 4 -The device file or mountpoint the policy applies to\&. Defaults to the filesystem containing the users home directory\&. -.RE -.PP -overwrite=0 -.RS 4 -Overwrite an existing quota\&. Note: Enabling this will remove the ability for the admin to manually configure different quotas for users for a filesystem with -\fBedquota\fR(8)\&. (Defaults to 0) -.RE -.PP -debug=0 -.RS 4 -Enable debugging\&. A value of 1 outputs the old and new quota on a device\&. A value of 2 also prints out the matched and found filesystems should -\fBfs\fR -be unset\&. (Defaults to 0) -.RE -.PP -startuid=1000 -.RS 4 -Describe the start of the UID range the policy is applied to\&. (Defaults to UID_MIN from login\&.defs or the uidmin value defined at compile\-time if UID_MIN is undefined\&.) -.RE -.PP -enduid=0 -.RS 4 -Describe the end of the UID range the policy is applied to\&. Setting -\fIenduid=0\fR -results in an open\-ended UID range (i\&.e\&. all uids greater than -\fBstartuid\fR -are included)\&. (Defaults to 0) -.RE -.PP -bsoftlimit=19000 -.RS 4 -Soft limit for disk quota blocks, as defined by -\fBquotactl\fR(2)\&. Note: -\fBbsoftlimit\fR -and -\fBbhardlimit\fR -\fImust\fR -be set at the same time! -.RE -.PP -bhardlimit=20000 -.RS 4 -Hard limit for disk quota blocks, as defined by -\fBquotactl\fR(2)\&. Note: -\fBbsoftlimit\fR -and -\fBbhardlimit\fR -\fImust\fR -be set at the same time! -.RE -.PP -isoftlimit=3000 -.RS 4 -Soft limit for inodes, as defined by -\fB quotactl\fR(2)\&. Note: -\fBisoftlimit\fR -and -\fBihardlimit\fR -\fImust\fR -be set at the same time! -.RE -.PP -ihardlimit=4000 -.RS 4 -Hard limit for inodes, as defined by -\fB quotactl\fR(2)\&. Note: -\fBisoftlimit\fR -and -\fBihardlimit\fR -\fImust\fR -be set at the same time! -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -module type is provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_SUCCESS -.RS 4 -The quota was set successfully\&. -.RE -.PP -PAM_IGNORE -.RS 4 -No action was taken because either the UID of the user was outside of the specified range, a quota already existed and -\fBoverwrite=1\fR -was not configured or no limits were configured at all\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The user was not found\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -/proc/mounts -could not be opened\&. -.sp -The filesystem or device specified was not found\&. -.sp -The limits for the user could not be retrieved\&. See syslog for more information\&. -.sp -The limits for the user could not be set\&. See syslog for more information\&. -.sp -Either -\fBisoftlimit\fR/\fBihardlimit\fR -or -\fBbsoftlimit\fR/\fBbhardlimit\fR -were not set at the same time\&. -.RE -.SH "EXAMPLES" -.PP -A single invocation of `pam_setquota` applies a specific policy to a UID range\&. Applying different policies to specific UID ranges is done by invoking pam_setquota more than once\&. The last matching entry defines the resulting quota\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf - session required pam_setquota\&.so bsoftlimit=1000 bhardlimit=2000 isoftlimit=1000 ihardlimit=2000 startuid=1000 enduid=0 fs=/home - session required pam_setquota\&.so bsoftlimit=19000 bhardlimit=20000 isoftlimit=3000 ihardlimit=4000 startuid=2001 enduid=3000 fs=/dev/sda1 - session required pam_setquota\&.so bsoftlimit=19000 bhardlimit=20000 isoftlimit=3000 ihardlimit=4000 startuid=3001 enduid=4000 fs=/dev/sda1 overwrite=1 - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_setquota was originally written by Ruslan Savchenko <savrus@mexmat\&.net>\&. -.PP -Further modifications were made by Shane Tzen <shane@ict\&.usc\&.edu>, Sven Hartge <sven@svenhartge\&.de> and Keller Fuchs <kellerfuchs@hashbang\&.sh>\&. diff --git a/modules/pam_setquota/pam_setquota.c b/modules/pam_setquota/pam_setquota.c index ec45baac..73445e29 100644 --- a/modules/pam_setquota/pam_setquota.c +++ b/modules/pam_setquota/pam_setquota.c @@ -8,6 +8,8 @@ Copyright © 2016 Keller Fuchs <kellerfuchs@hashbang.sh> */ +#include "pam_inline.h" + #include <sys/types.h> #include <sys/quota.h> #include <linux/quota.h> @@ -22,7 +24,6 @@ #include <security/_pam_macros.h> #include <security/pam_ext.h> #include <security/pam_modutil.h> -#include "pam_inline.h" #ifndef PATH_LOGIN_DEFS # define PATH_LOGIN_DEFS "/etc/login.defs" @@ -201,6 +202,7 @@ pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED, */ if (val) { param.start_uid = str_to_uid(pamh, val, param.start_uid, PATH_LOGIN_DEFS":UID_MIN"); + _pam_drop(val); } /* Parse parameter values diff --git a/modules/pam_shells/Makefile.am b/modules/pam_shells/Makefile.am deleted file mode 100644 index e44915f2..00000000 --- a/modules/pam_shells/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_shells.8 -endif -XMLS = README.xml pam_shells.8.xml -dist_check_SCRIPTS = tst-pam_shells -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) $(ECONF_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_shells.la -pam_shells_la_LIBADD = $(top_builddir)/libpam/libpam.la $(ECONF_LIBS) - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_shells/Makefile.in b/modules/pam_shells/Makefile.in deleted file mode 100644 index 3c236b33..00000000 --- a/modules/pam_shells/Makefile.in +++ /dev/null @@ -1,1163 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_shells -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -am__DEPENDENCIES_1 = -pam_shells_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(am__DEPENDENCIES_1) -pam_shells_la_SOURCES = pam_shells.c -pam_shells_la_OBJECTS = pam_shells.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_shells.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_shells.c -DIST_SOURCES = pam_shells.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_shells.8 -XMLS = README.xml pam_shells.8.xml -dist_check_SCRIPTS = tst-pam_shells -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) $(ECONF_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_shells.la -pam_shells_la_LIBADD = $(top_builddir)/libpam/libpam.la $(ECONF_LIBS) -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_shells/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_shells/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_shells.la: $(pam_shells_la_OBJECTS) $(pam_shells_la_DEPENDENCIES) $(EXTRA_pam_shells_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_shells_la_OBJECTS) $(pam_shells_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_shells.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_shells.log: tst-pam_shells - @p='tst-pam_shells'; \ - b='tst-pam_shells'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_shells.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_shells.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_shells/README b/modules/pam_shells/README deleted file mode 100644 index bde6667c..00000000 --- a/modules/pam_shells/README +++ /dev/null @@ -1,28 +0,0 @@ -pam_shells — PAM module to check for valid login shell - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_shells is a PAM module that only allows access to the system if the user's -shell is listed in /etc/shells. - -If this file does not exist, entries are taken from files %vendordir%/shells, -%vendordir%/shells.d/* and /etc/shells.d/* in that order. - -It also checks if needed files (e.g. /etc/shells) are plain files and not world -writable. - -OPTIONS - -This module does not recognise any options. - -EXAMPLES - -auth required pam_shells.so - - -AUTHOR - -pam_shells was written by Erik Troan <ewt@redhat.com>. - diff --git a/modules/pam_shells/meson.build b/modules/pam_shells/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_shells/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_shells/pam_shells.8 b/modules/pam_shells/pam_shells.8 deleted file mode 100644 index af3dc668..00000000 --- a/modules/pam_shells/pam_shells.8 +++ /dev/null @@ -1,90 +0,0 @@ -'\" t -.\" Title: pam_shells -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SHELLS" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_shells \- PAM module to check for valid login shell -.SH "SYNOPSIS" -.HP \w'\fBpam_shells\&.so\fR\ 'u -\fBpam_shells\&.so\fR -.SH "DESCRIPTION" -.PP -pam_shells is a PAM module that only allows access to the system if the user\*(Aqs shell is listed in -/etc/shells\&. -.PP -It also checks if needed files (e\&.g\&. -/etc/shells) are plain files and not world writable\&. -.SH "OPTIONS" -.PP -This module does not recognise any options\&. -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBaccount\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -Access to the system was denied\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The user\*(Aqs login shell was listed as valid shell in -/etc/shells\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -The module was not able to get the name of the user\&. -.RE -.SH "EXAMPLES" -.PP -.if n \{\ -.RS 4 -.\} -.nf -auth required pam_shells\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBshells\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_shells was written by Erik Troan <ewt@redhat\&.com>\&. diff --git a/modules/pam_shells/pam_shells.8.xml b/modules/pam_shells/pam_shells.8.xml index b9f90e94..e1b35a3e 100644 --- a/modules/pam_shells/pam_shells.8.xml +++ b/modules/pam_shells/pam_shells.8.xml @@ -75,6 +75,14 @@ </listitem> </varlistentry> <varlistentry> + <term>PAM_USER_UNKNOWN</term> + <listitem> + <para> + The user does not exist or the user's login shell could not be determined. + </para> + </listitem> + </varlistentry> + <varlistentry> <term>PAM_SERVICE_ERR</term> <listitem> <para> diff --git a/modules/pam_shells/pam_shells.c b/modules/pam_shells/pam_shells.c index abebdd0c..bacf4f55 100644 --- a/modules/pam_shells/pam_shells.c +++ b/modules/pam_shells/pam_shells.c @@ -8,6 +8,7 @@ #include "config.h" +#include <limits.h> #include <pwd.h> #include <stdarg.h> #include <string.h> @@ -18,7 +19,7 @@ #include <syslog.h> #include <unistd.h> #if defined (USE_ECONF) && defined (VENDORDIR) -#include <libeconf.h> +#include "pam_econf.h" #endif #include <security/pam_modules.h> @@ -61,8 +62,16 @@ static int perform_check(pam_handle_t *pamh) } pw = pam_modutil_getpwnam(pamh, userName); - if (pw == NULL || pw->pw_shell == NULL) { - return PAM_AUTH_ERR; /* user doesn't exist */ + if (pw == NULL) { + return PAM_USER_UNKNOWN; + } + if (pw->pw_shell == NULL) { + /* TODO: when does this happen? I would join it with + * the case userShell[0] == '\0' below. + * + * For now, keep the existing stricter behaviour + */ + return PAM_AUTH_ERR; } userShell = pw->pw_shell; if (userShell[0] == '\0') @@ -72,17 +81,17 @@ static int perform_check(pam_handle_t *pamh) size_t size = 0; econf_err error; char **keys; - econf_file *key_file; - - error = econf_readDirsWithCallback(&key_file, - VENDORDIR, - ETCDIR, - SHELLS, - NULL, - "", /* key only */ - "#", /* comment */ - check_file, pamh); - if (error) { + econf_file *key_file = NULL; + + error = pam_econf_readconfig(&key_file, + VENDORDIR, + ETCDIR, + SHELLS, + NULL, + "", /* key only */ + "#", /* comment */ + check_file, pamh); + if (error != ECONF_SUCCESS) { pam_syslog(pamh, LOG_ERR, "Cannot parse shell files: %s", econf_errString(error)); @@ -104,10 +113,12 @@ static int perform_check(pam_handle_t *pamh) if (!retval) break; } + econf_free (keys); econf_free (key_file); #else - char shellFileLine[256]; - FILE * shellFile; + FILE *shellFile; + char *p = NULL; + size_t n = 0; if (!check_file(SHELL_FILE, pamh)) return PAM_AUTH_ERR; @@ -120,16 +131,21 @@ static int perform_check(pam_handle_t *pamh) retval = 1; - while(retval && (fgets(shellFileLine, 255, shellFile) != NULL)) { - if (shellFileLine[strlen(shellFileLine) - 1] == '\n') - shellFileLine[strlen(shellFileLine) - 1] = '\0'; - retval = strcmp(shellFileLine, userShell); + while (retval && getline(&p, &n, shellFile) != -1) { + p[strcspn(p, "\n")] = '\0'; + + if (p[0] != '/') { + continue; + } + retval = strcmp(p, userShell); } + free(p); fclose(shellFile); - #endif +#endif if (retval) { + pam_syslog(pamh, LOG_NOTICE, "User has an invalid shell '%s'", userShell); return PAM_AUTH_ERR; } else { return PAM_SUCCESS; diff --git a/modules/pam_stress/Makefile.am b/modules/pam_stress/Makefile.am deleted file mode 100644 index ee78daef..00000000 --- a/modules/pam_stress/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_stress.8 -endif -XMLS = README.xml pam_stress.8.xml -dist_check_SCRIPTS = tst-pam_stress -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif -securelib_LTLIBRARIES = pam_stress.la -pam_stress_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_stress/Makefile.in b/modules/pam_stress/Makefile.in deleted file mode 100644 index 4788de54..00000000 --- a/modules/pam_stress/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_stress -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_stress_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_stress_la_SOURCES = pam_stress.c -pam_stress_la_OBJECTS = pam_stress.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_stress.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_stress.c -DIST_SOURCES = pam_stress.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_stress.8 -XMLS = README.xml pam_stress.8.xml -dist_check_SCRIPTS = tst-pam_stress -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_stress.la -pam_stress_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_stress/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_stress/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_stress.la: $(pam_stress_la_OBJECTS) $(pam_stress_la_DEPENDENCIES) $(EXTRA_pam_stress_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_stress_la_OBJECTS) $(pam_stress_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_stress.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_stress.log: tst-pam_stress - @p='tst-pam_stress'; \ - b='tst-pam_stress'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_stress.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_stress.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_stress/README b/modules/pam_stress/README deleted file mode 100644 index 230e8621..00000000 --- a/modules/pam_stress/README +++ /dev/null @@ -1,61 +0,0 @@ -pam_stress — The stress-testing PAM module - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_stress PAM module is mainly intended to give the impression of failing -as a fully functioning module might. - -OPTIONS - -debug - - Put lots of information in syslog. *NOTE* this option writes passwords to - syslog, so don't use anything sensitive when testing. - -no_warn - - Do not give warnings about things (otherwise warnings are issued via the - conversation function) - -use_first_pass - - Do not prompt for a password, for pam_sm_authentication function just use - item PAM_AUTHTOK. - -try_first_pass - - Do not prompt for a password unless there has been no previous - authentication token (item PAM_AUTHTOK is NULL) - -rootok - - This is intended for the pam_sm_chauthtok function and it instructs this - function to permit root to change the user's password without entering the - old password. - -expired - - An argument intended for the account and chauthtok module parts. It - instructs the module to act as if the user's password has expired - -fail_1 - - This instructs the module to make its first function fail. - -fail_2 - - This instructs the module to make its second function (if there is one) - fail. - -prelim - - For pam_sm_chauthtok, means fail on PAM_PRELIM_CHECK. - -required - - For pam_sm_chauthtok, means fail if the user hasn't already been - authenticated by this module. (See stress_new_pwd data string in the - NOTES.) - diff --git a/modules/pam_stress/meson.build b/modules/pam_stress/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_stress/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_stress/pam_stress.8 b/modules/pam_stress/pam_stress.8 deleted file mode 100644 index a522b7fb..00000000 --- a/modules/pam_stress/pam_stress.8 +++ /dev/null @@ -1,190 +0,0 @@ -'\" t -.\" Title: pam_stress -.\" Author: [see the "AUTHORS" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_STRESS" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_stress \- The stress\-testing PAM module -.SH "SYNOPSIS" -.HP \w'\fBpam_stress\&.so\fR\ 'u -\fBpam_stress\&.so\fR [debug] [no_warn] [use_first_pass] [try_first_pass] [rootok] [expired] [fail_1] [fail_2] [prelim] [required] -.SH "DESCRIPTION" -.PP -The pam_stress PAM module is mainly intended to give the impression of failing as a fully functioning module might\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Put lots of information in syslog\&. *NOTE* this option writes passwords to syslog, so don\*(Aqt use anything sensitive when testing\&. -.RE -.PP -no_warn -.RS 4 -Do not give warnings about things (otherwise warnings are issued via the conversation function) -.RE -.PP -use_first_pass -.RS 4 -Do not prompt for a password, for pam_sm_authentication function just use item PAM_AUTHTOK\&. -.RE -.PP -try_first_pass -.RS 4 -Do not prompt for a password unless there has been no previous authentication token (item PAM_AUTHTOK is NULL) -.RE -.PP -rootok -.RS 4 -This is intended for the pam_sm_chauthtok function and it instructs this function to permit root to change the user\*(Aqs password without entering the old password\&. -.RE -.PP -expired -.RS 4 -An argument intended for the account and chauthtok module parts\&. It instructs the module to act as if the user\*(Aqs password has expired -.RE -.PP -fail_1 -.RS 4 -This instructs the module to make its first function fail\&. -.RE -.PP -fail_2 -.RS 4 -This instructs the module to make its second function (if there is one) fail\&. -.RE -.PP -prelim -.RS 4 -For pam_sm_chauthtok, means fail on PAM_PRELIM_CHECK\&. -.RE -.PP -required -.RS 4 -For pam_sm_chauthtok, means fail if the user hasn\*(Aqt already been authenticated by this module\&. (See stress_new_pwd data string in the NOTES\&.) -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Permission denied\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -Access to the system was denied\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -Conversation failure\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -The function passes all checks\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The user is not known to the system\&. -.RE -.PP -PAM_CRED_ERR -.RS 4 -Failure involving user credentials\&. -.RE -.PP -PAM_NEW_AUTHTOK_REQD -.RS 4 -Authentication token is no longer valid; new one required\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Session failure\&. -.RE -.PP -PAM_TRY_AGAIN -.RS 4 -Failed preliminary check by service\&. -.RE -.PP -PAM_AUTHTOK_LOCK_BUSY -.RS 4 -Authentication token lock busy\&. -.RE -.PP -PAM_AUTHTOK_ERR -.RS 4 -Authentication token manipulation error\&. -.RE -.PP -PAM_SYSTEM_ERR -.RS 4 -System error\&. -.RE -.SH "NOTES" -.PP -This module uses the stress_new_pwd data string which tells pam_sm_chauthtok that pam_sm_acct_mgmt says we need a new password\&. The only possible value for this data string is \*(Aqyes\*(Aq\&. -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -# -# Any of the following will suffice -account required pam_stress\&.so -auth required pam_stress\&.so -password required pam_stress\&.so -session required pam_stress\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8)\&. -.SH "AUTHORS" -.PP -The pam_stress PAM module was developed by Andrew Morgan <morgan@linux\&.kernel\&.org>\&. The man page for pam_stress was written by Lucas Ramage <ramage\&.lucas@protonmail\&.com>\&. diff --git a/modules/pam_stress/pam_stress.c b/modules/pam_stress/pam_stress.c index b2c55586..d0f54016 100644 --- a/modules/pam_stress/pam_stress.c +++ b/modules/pam_stress/pam_stress.c @@ -476,10 +476,8 @@ int pam_sm_chauthtok(pam_handle_t *pamh, int flags, resp = NULL; retval = converse(pamh,i,pmsg,&resp); - if (txt) { - free(txt); - txt = NULL; /* clean up */ - } + free(txt); + txt = NULL; /* clean up */ if (retval != PAM_SUCCESS) { return retval; } diff --git a/modules/pam_succeed_if/Makefile.am b/modules/pam_succeed_if/Makefile.am deleted file mode 100644 index f79a4b03..00000000 --- a/modules/pam_succeed_if/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_succeed_if.8 -endif -XMLS = README.xml pam_succeed_if.8.xml -dist_check_SCRIPTS = tst-pam_succeed_if -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_succeed_if.la -pam_succeed_if_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_succeed_if/Makefile.in b/modules/pam_succeed_if/Makefile.in deleted file mode 100644 index 5028fe07..00000000 --- a/modules/pam_succeed_if/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_succeed_if -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_succeed_if_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_succeed_if_la_SOURCES = pam_succeed_if.c -pam_succeed_if_la_OBJECTS = pam_succeed_if.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_succeed_if.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_succeed_if.c -DIST_SOURCES = pam_succeed_if.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_succeed_if.8 -XMLS = README.xml pam_succeed_if.8.xml -dist_check_SCRIPTS = tst-pam_succeed_if -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_succeed_if.la -pam_succeed_if_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_succeed_if/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_succeed_if/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_succeed_if.la: $(pam_succeed_if_la_OBJECTS) $(pam_succeed_if_la_DEPENDENCIES) $(EXTRA_pam_succeed_if_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_succeed_if_la_OBJECTS) $(pam_succeed_if_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_succeed_if.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_succeed_if.log: tst-pam_succeed_if - @p='tst-pam_succeed_if'; \ - b='tst-pam_succeed_if'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_succeed_if.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_succeed_if.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_succeed_if/README b/modules/pam_succeed_if/README deleted file mode 100644 index 3d2f3d50..00000000 --- a/modules/pam_succeed_if/README +++ /dev/null @@ -1,131 +0,0 @@ -pam_succeed_if — test account characteristics - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_succeed_if.so is designed to succeed or fail authentication based on -characteristics of the account belonging to the user being authenticated or -values of other PAM items. One use is to select whether to load other modules -based on this test. - -The module should be given one or more conditions as module arguments, and -authentication will succeed only if all of the conditions are met. - -OPTIONS - -The following flags are supported: - -debug - - Turns on debugging messages sent to syslog. - -use_uid - - Evaluate conditions using the account of the user whose UID the application - is running under instead of the user being authenticated. - -quiet - - Don't log failure or success to the system log. - -quiet_fail - - Don't log failure to the system log. - -quiet_success - - Don't log success to the system log. - -audit - - Log unknown users to the system log. - -Conditions are three words: a field, a test, and a value to test for. - -Available fields are user, uid, gid, shell, home, ruser, rhost, tty and service -: - -field < number - - Field has a value numerically less than number. - -field <= number - - Field has a value numerically less than or equal to number. - -field eq number - - Field has a value numerically equal to number. - -field >= number - - Field has a value numerically greater than or equal to number. - -field > number - - Field has a value numerically greater than number. - -field ne number - - Field has a value numerically different from number. - -field = string - - Field exactly matches the given string. - -field != string - - Field does not match the given string. - -field =~ glob - - Field matches the given glob. - -field !~ glob - - Field does not match the given glob. - -field in item:item:... - - Field is contained in the list of items separated by colons. - -field notin item:item:... - - Field is not contained in the list of items separated by colons. - -user ingroup group[:group:....] - - User is in given group(s). - -user notingroup group[:group:....] - - User is not in given group(s). - -user innetgr netgroup - - (user,host) is in given netgroup. - -user notinnetgr group - - (user,host) is not in given netgroup. - -EXAMPLES - -To emulate the behaviour of pam_wheel, except there is no fallback to group 0 -being only approximated by checking also the root group membership: - -auth required pam_succeed_if.so quiet user ingroup wheel:root - - -Given that the type matches, only loads the othermodule rule if the UID is over -500. Adjust the number after default to skip several rules. - -type [default=1 success=ignore] pam_succeed_if.so quiet uid > 500 -type required othermodule.so arguments... - - -AUTHOR - -Nalin Dahyabhai <nalin@redhat.com> - diff --git a/modules/pam_succeed_if/meson.build b/modules/pam_succeed_if/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_succeed_if/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_succeed_if/pam_succeed_if.8 b/modules/pam_succeed_if/pam_succeed_if.8 deleted file mode 100644 index e61af0cb..00000000 --- a/modules/pam_succeed_if/pam_succeed_if.8 +++ /dev/null @@ -1,226 +0,0 @@ -'\" t -.\" Title: pam_succeed_if -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_SUCCEED_IF" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_succeed_if \- test account characteristics -.SH "SYNOPSIS" -.HP \w'\fBpam_succeed_if\&.so\fR\ 'u -\fBpam_succeed_if\&.so\fR [\fIflag\fR...] [\fIcondition\fR...] -.SH "DESCRIPTION" -.PP -pam_succeed_if\&.so is designed to succeed or fail authentication based on characteristics of the account belonging to the user being authenticated or values of other PAM items\&. One use is to select whether to load other modules based on this test\&. -.PP -The module should be given one or more conditions as module arguments, and authentication will succeed only if all of the conditions are met\&. -.SH "OPTIONS" -.PP -The following -\fIflag\fRs are supported: -.PP -debug -.RS 4 -Turns on debugging messages sent to syslog\&. -.RE -.PP -use_uid -.RS 4 -Evaluate conditions using the account of the user whose UID the application is running under instead of the user being authenticated\&. -.RE -.PP -quiet -.RS 4 -Don\*(Aqt log failure or success to the system log\&. -.RE -.PP -quiet_fail -.RS 4 -Don\*(Aqt log failure to the system log\&. -.RE -.PP -quiet_success -.RS 4 -Don\*(Aqt log success to the system log\&. -.RE -.PP -audit -.RS 4 -Log unknown users to the system log\&. -.RE -.PP -\fICondition\fRs are three words: a field, a test, and a value to test for\&. -.PP -Available fields are -\fIuser\fR, -\fIuid\fR, -\fIgid\fR, -\fIshell\fR, -\fIhome\fR, -\fIruser\fR, -\fIrhost\fR, -\fItty\fR -and -\fIservice\fR: -.PP -field < number -.RS 4 -Field has a value numerically less than number\&. -.RE -.PP -field <= number -.RS 4 -Field has a value numerically less than or equal to number\&. -.RE -.PP -field eq number -.RS 4 -Field has a value numerically equal to number\&. -.RE -.PP -field >= number -.RS 4 -Field has a value numerically greater than or equal to number\&. -.RE -.PP -field > number -.RS 4 -Field has a value numerically greater than number\&. -.RE -.PP -field ne number -.RS 4 -Field has a value numerically different from number\&. -.RE -.PP -field = string -.RS 4 -Field exactly matches the given string\&. -.RE -.PP -field != string -.RS 4 -Field does not match the given string\&. -.RE -.PP -field =~ glob -.RS 4 -Field matches the given glob\&. -.RE -.PP -field !~ glob -.RS 4 -Field does not match the given glob\&. -.RE -.PP -field in item:item:\&.\&.\&. -.RS 4 -Field is contained in the list of items separated by colons\&. -.RE -.PP -field notin item:item:\&.\&.\&. -.RS 4 -Field is not contained in the list of items separated by colons\&. -.RE -.PP -user ingroup group[:group:\&.\&.\&.\&.] -.RS 4 -User is in given group(s)\&. -.RE -.PP -user notingroup group[:group:\&.\&.\&.\&.] -.RS 4 -User is not in given group(s)\&. -.RE -.PP -user innetgr netgroup -.RS 4 -(user,host) is in given netgroup\&. -.RE -.PP -user notinnetgr group -.RS 4 -(user,host) is not in given netgroup\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBaccount\fR, -\fBauth\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -The condition was true\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -The condition was false\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -A service error occurred or the arguments can\*(Aqt be parsed correctly\&. -.RE -.SH "EXAMPLES" -.PP -To emulate the behaviour of -\fIpam_wheel\fR, except there is no fallback to group 0 being only approximated by checking also the root group membership: -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth required pam_succeed_if\&.so quiet user ingroup wheel:root - -.fi -.if n \{\ -.RE -.\} -.PP -Given that the type matches, only loads the othermodule rule if the UID is over 500\&. Adjust the number after default to skip several rules\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -type [default=1 success=ignore] pam_succeed_if\&.so quiet uid > 500 -type required othermodule\&.so arguments\&.\&.\&. - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBglob\fR(7), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -Nalin Dahyabhai <nalin@redhat\&.com> diff --git a/modules/pam_succeed_if/pam_succeed_if.c b/modules/pam_succeed_if/pam_succeed_if.c index 5bf79c45..05be13da 100644 --- a/modules/pam_succeed_if/pam_succeed_if.c +++ b/modules/pam_succeed_if/pam_succeed_if.c @@ -70,13 +70,13 @@ evaluate_num(const pam_handle_t *pamh, const char *left, errno = 0; l = strtoll(left, &p, 0); - if ((p == NULL) || (*p != '\0') || errno) { + if ((p == NULL) || (*p != '\0') || (p == left) || errno) { pam_syslog(pamh, LOG_INFO, "\"%s\" is not a number", left); ret = PAM_SERVICE_ERR; } r = strtoll(right, &p, 0); - if ((p == NULL) || (*p != '\0') || errno) { + if ((p == NULL) || (*p != '\0') || (p == right) || errno) { pam_syslog(pamh, LOG_INFO, "\"%s\" is not a number", right); ret = PAM_SERVICE_ERR; } @@ -292,7 +292,7 @@ evaluate(pam_handle_t *pamh, int debug, const char *left, const char *qual, const char *right, struct passwd **pwd, const char *user) { - char buf[LINE_MAX] = ""; + char numstr[sizeof(long) * 3 + 1] = ""; const char *attribute = left; /* Get information about the user if needed. */ if ((*pwd == NULL) && @@ -311,54 +311,47 @@ evaluate(pam_handle_t *pamh, int debug, if ((strcasecmp(left, "login") == 0) || (strcasecmp(left, "name") == 0) || (strcasecmp(left, "user") == 0)) { - snprintf(buf, sizeof(buf), "%s", user); - left = buf; + left = user; } else if (strcasecmp(left, "uid") == 0) { - snprintf(buf, sizeof(buf), "%lu", (unsigned long) (*pwd)->pw_uid); - left = buf; + snprintf(numstr, sizeof(numstr), "%lu", + (unsigned long) (*pwd)->pw_uid); + left = numstr; } else if (strcasecmp(left, "gid") == 0) { - snprintf(buf, sizeof(buf), "%lu", (unsigned long) (*pwd)->pw_gid); - left = buf; + snprintf(numstr, sizeof(numstr), "%lu", + (unsigned long) (*pwd)->pw_gid); + left = numstr; } else if (strcasecmp(left, "shell") == 0) { - snprintf(buf, sizeof(buf), "%s", (*pwd)->pw_shell); - left = buf; + left = (*pwd)->pw_shell; } else if ((strcasecmp(left, "home") == 0) || (strcasecmp(left, "dir") == 0) || (strcasecmp(left, "homedir") == 0)) { - snprintf(buf, sizeof(buf), "%s", (*pwd)->pw_dir); - left = buf; + left = (*pwd)->pw_dir; } else if (strcasecmp(left, "service") == 0) { const void *svc; if (pam_get_item(pamh, PAM_SERVICE, &svc) != PAM_SUCCESS || svc == NULL) svc = ""; - snprintf(buf, sizeof(buf), "%s", (const char *)svc); - left = buf; + left = (const char *)svc; } else if (strcasecmp(left, "ruser") == 0) { const void *ruser; if (pam_get_item(pamh, PAM_RUSER, &ruser) != PAM_SUCCESS || ruser == NULL) ruser = ""; - snprintf(buf, sizeof(buf), "%s", (const char *)ruser); - left = buf; - user = buf; + left = (const char *)ruser; } else if (strcasecmp(left, "rhost") == 0) { const void *rhost; if (pam_get_item(pamh, PAM_RHOST, &rhost) != PAM_SUCCESS || rhost == NULL) rhost = ""; - snprintf(buf, sizeof(buf), "%s", (const char *)rhost); - left = buf; + left = (const char *)rhost; } else if (strcasecmp(left, "tty") == 0) { const void *tty; if (pam_get_item(pamh, PAM_TTY, &tty) != PAM_SUCCESS || tty == NULL) tty = ""; - snprintf(buf, sizeof(buf), "%s", (const char *)tty); - left = buf; - } - /* If we have no idea what's going on, return an error. */ - if (left != buf) { + left = (const char *)tty; + } else { + /* If we have no idea what's going on, return an error. */ pam_syslog(pamh, LOG_ERR, "unknown attribute \"%s\"", left); return PAM_SERVICE_ERR; } @@ -445,9 +438,8 @@ evaluate(pam_handle_t *pamh, int debug, return PAM_SERVICE_ERR; } -int -pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, - int argc, const char **argv) +static int +pam_succeed_if(pam_handle_t *pamh, int argc, const char **argv) { const char *user; struct passwd *pwd = NULL; @@ -571,6 +563,7 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, pam_syslog(pamh, LOG_ERR, "incomplete condition detected"); } else if (count == 0) { + ret = PAM_SUCCESS; pam_syslog(pamh, LOG_INFO, "no condition detected; module succeeded"); } @@ -586,25 +579,36 @@ pam_sm_setcred(pam_handle_t *pamh UNUSED, int flags UNUSED, } int -pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_succeed_if(pamh, argc, argv); } int -pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_succeed_if(pamh, argc, argv); } int -pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) +{ + return pam_succeed_if(pamh, argc, argv); +} + +int +pam_sm_close_session(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_succeed_if(pamh, argc, argv); } int -pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_chauthtok(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_succeed_if(pamh, argc, argv); } diff --git a/modules/pam_succeed_if/tst-pam_succeed_if-retval.c b/modules/pam_succeed_if/tst-pam_succeed_if-retval.c new file mode 100644 index 00000000..f665040b --- /dev/null +++ b/modules/pam_succeed_if/tst-pam_succeed_if-retval.c @@ -0,0 +1,87 @@ +/* + * Check pam_succeed_if return values. + * + * Copyright (c) 2020 Dmitry V. Levin <ldv@altlinux.org> + * Copyright (c) 2024 Tobias Stoeckmann <tobias@stoeckmann.org> + */ + +#include "test_assert.h" + +#include <limits.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <security/pam_appl.h> + +#define MODULE_NAME "pam_succeed_if" +#define TEST_NAME "tst-" MODULE_NAME "-retval" + +static const char service_file[] = TEST_NAME ".service"; +static const char user_name[] = "name"; +static struct pam_conv conv; + +int +main(void) +{ + pam_handle_t *pamh = NULL; + FILE *fp; + char cwd[PATH_MAX]; + + ASSERT_NE(NULL, getcwd(cwd, sizeof(cwd))); + + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so user = name\n" + "account required %s/" LTDIR "%s.so user notin a:b\n" + "password required %s/" LTDIR "%s.so user in x:name\n" + "session required %s/" LTDIR "%s.so rhost eq 0\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, user_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + ASSERT_EQ(PAM_SUCCESS, pam_set_item(pamh, PAM_RHOST, "0")); + + ASSERT_EQ(PAM_SUCCESS, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + ASSERT_EQ(0, unlink(service_file)); + + /* test some illegal conditions */ + ASSERT_NE(NULL, fp = fopen(service_file, "w")); + ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" + "auth required %s/" LTDIR "%s.so user eq name\n" + "account required %s/" LTDIR "%s.so user in a:b\n" + "password required %s/" LTDIR "%s.so user notin x:name\n" + "session required %s/" LTDIR "%s.so rhost eq []\n", + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME, + cwd, MODULE_NAME)); + ASSERT_EQ(0, fclose(fp)); + + ASSERT_EQ(PAM_SUCCESS, + pam_start_confdir(service_file, user_name, &conv, ".", &pamh)); + ASSERT_NE(NULL, pamh); + + ASSERT_EQ(PAM_SERVICE_ERR, pam_authenticate(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_acct_mgmt(pamh, 0)); + ASSERT_EQ(PAM_AUTH_ERR, pam_chauthtok(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_open_session(pamh, 0)); + ASSERT_EQ(PAM_SERVICE_ERR, pam_close_session(pamh, 0)); + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 0)); + pamh = NULL; + + ASSERT_EQ(0, unlink(service_file)); + + return 0; +} diff --git a/modules/pam_time/Makefile.am b/modules/pam_time/Makefile.am deleted file mode 100644 index a71e6781..00000000 --- a/modules/pam_time/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = time.conf.5 pam_time.8 -endif -XMLS = README.xml time.conf.5.xml pam_time.8.xml -dist_check_SCRIPTS = tst-pam_time -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif -pam_time_la_LIBADD = $(top_builddir)/libpam/libpam.la - -securelib_LTLIBRARIES = pam_time.la -dist_secureconf_DATA = time.conf - -check_PROGRAMS = tst-pam_time-retval -tst_pam_time_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_time/Makefile.in b/modules/pam_time/Makefile.in deleted file mode 100644 index a1f0467c..00000000 --- a/modules/pam_time/Makefile.in +++ /dev/null @@ -1,1262 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_time-retval$(EXEEXT) -subdir = modules/pam_time -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(dist_secureconf_DATA) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" \ - "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_time_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_time_la_SOURCES = pam_time.c -pam_time_la_OBJECTS = pam_time.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_time_retval_SOURCES = tst-pam_time-retval.c -tst_pam_time_retval_OBJECTS = tst-pam_time-retval.$(OBJEXT) -tst_pam_time_retval_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_time.Plo \ - ./$(DEPDIR)/tst-pam_time-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_time.c tst-pam_time-retval.c -DIST_SOURCES = pam_time.c tst-pam_time-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man5dir = $(mandir)/man5 -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) $(dist_secureconf_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = time.conf.5 pam_time.8 -XMLS = README.xml time.conf.5.xml pam_time.8.xml -dist_check_SCRIPTS = tst-pam_time -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -pam_time_la_LIBADD = $(top_builddir)/libpam/libpam.la -securelib_LTLIBRARIES = pam_time.la -dist_secureconf_DATA = time.conf -tst_pam_time_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_time/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_time/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_time.la: $(pam_time_la_OBJECTS) $(pam_time_la_DEPENDENCIES) $(EXTRA_pam_time_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_time_la_OBJECTS) $(pam_time_la_LIBADD) $(LIBS) - -tst-pam_time-retval$(EXEEXT): $(tst_pam_time_retval_OBJECTS) $(tst_pam_time_retval_DEPENDENCIES) $(EXTRA_tst_pam_time_retval_DEPENDENCIES) - @rm -f tst-pam_time-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_time_retval_OBJECTS) $(tst_pam_time_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_time.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_time-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man5: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man5dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.5[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ - done; } - -uninstall-man5: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man5dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.5[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) -install-dist_secureconfDATA: $(dist_secureconf_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(secureconfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(secureconfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(secureconfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(secureconfdir)" || exit $$?; \ - done - -uninstall-dist_secureconfDATA: - @$(NORMAL_UNINSTALL) - @list='$(dist_secureconf_DATA)'; test -n "$(secureconfdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(secureconfdir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_time.log: tst-pam_time - @p='tst-pam_time'; \ - b='tst-pam_time'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_time-retval.log: tst-pam_time-retval$(EXEEXT) - @p='tst-pam_time-retval$(EXEEXT)'; \ - b='tst-pam_time-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_time.Plo - -rm -f ./$(DEPDIR)/tst-pam_time-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-dist_secureconfDATA install-man \ - install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man5 install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_time.Plo - -rm -f ./$(DEPDIR)/tst-pam_time-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-dist_secureconfDATA uninstall-man \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man5 uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dist_secureconfDATA install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-man5 install-man8 install-pdf install-pdf-am \ - install-ps install-ps-am install-securelibLTLIBRARIES \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am recheck tags tags-am uninstall \ - uninstall-am uninstall-dist_secureconfDATA uninstall-man \ - uninstall-man5 uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_time/README b/modules/pam_time/README deleted file mode 100644 index 2fa4c164..00000000 --- a/modules/pam_time/README +++ /dev/null @@ -1,38 +0,0 @@ -pam_time — PAM module for time control access - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_time PAM module does not authenticate the user, but instead it -restricts access to a system and or specific applications at various times of -the day and on specific days or over various terminal lines. This module can be -configured to deny access to (individual) users based on their name, the time -of day, the day of week, the service they are applying for and their terminal -from which they are making their request. - -By default rules for time/port access are taken from config file /etc/security/ -time.conf. An alternative file can be specified with the conffile option. - -If there is no explicitly specified configuration file and /etc/security/ -time.conf does not exist, %vendordir%/security/time.conf is used. - -If Linux PAM is compiled with audit support the module will report when it -denies access. - -EXAMPLES - -These are some example lines which might be specified in /etc/security/ -time.conf. - -All users except for root are denied access to console-login at all times: - -login ; tty* & !ttyp* ; !root ; !Al0000-2400 - - -Games (configured to use PAM) are only to be accessed out of working hours. -This rule does not apply to the user waster: - -games ; * ; !waster ; Wd0000-2400 | Wk1800-0800 - - diff --git a/modules/pam_time/meson.build b/modules/pam_time/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_time/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_time/pam_time.8 b/modules/pam_time/pam_time.8 deleted file mode 100644 index 48c7ffce..00000000 --- a/modules/pam_time/pam_time.8 +++ /dev/null @@ -1,122 +0,0 @@ -'\" t -.\" Title: pam_time -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_TIME" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_time \- PAM module for time control access -.SH "SYNOPSIS" -.HP \w'\fBpam_time\&.so\fR\ 'u -\fBpam_time\&.so\fR [conffile=conf\-file] [debug] [noaudit] -.SH "DESCRIPTION" -.PP -The pam_time PAM module does not authenticate the user, but instead it restricts access to a system and or specific applications at various times of the day and on specific days or over various terminal lines\&. This module can be configured to deny access to (individual) users based on their name, the time of day, the day of week, the service they are applying for and their terminal from which they are making their request\&. -.PP -By default rules for time/port access are taken from config file -/etc/security/time\&.conf\&. An alternative file can be specified with the -\fIconffile\fR -option\&. -.PP -If Linux PAM is compiled with audit support the module will report when it denies access\&. -.SH "OPTIONS" -.PP -conffile=/path/to/time\&.conf -.RS 4 -Indicate an alternative time\&.conf style configuration file to override the default\&. -.RE -.PP -debug -.RS 4 -Some debug information is printed with -\fBsyslog\fR(3)\&. -.RE -.PP -noaudit -.RS 4 -Do not report logins at disallowed time to the audit subsystem\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBaccount\fR -type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -Access was granted\&. -.RE -.PP -PAM_ABORT -.RS 4 -Not all relevant data could be gotten\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Access was not granted\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -The user is not known to the system\&. -.RE -.SH "FILES" -.PP -/etc/security/time\&.conf -.RS 4 -Default configuration file -.RE -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -# -# apply pam_time accounting to login requests -# -login account required pam_time\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBtime.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8)\&. -.SH "AUTHOR" -.PP -pam_time was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_time/pam_time.c b/modules/pam_time/pam_time.c index 6b7adefc..432446aa 100644 --- a/modules/pam_time/pam_time.c +++ b/modules/pam_time/pam_time.c @@ -33,9 +33,9 @@ #include <libaudit.h> #endif -#define PAM_TIME_CONF (SCONFIGDIR "/time.conf") -#ifdef VENDOR_SCONFIGDIR -#define VENDOR_PAM_TIME_CONF (VENDOR_SCONFIGDIR "/time.conf") +#define PAM_TIME_CONF (SCONFIG_DIR "/time.conf") +#ifdef VENDOR_SCONFIG_DIR +#define VENDOR_PAM_TIME_CONF (VENDOR_SCONFIG_DIR "/time.conf") #endif #define PAM_TIME_BUFLEN 1000 @@ -139,7 +139,7 @@ read_field(const pam_handle_t *pamh, int fd, char **buf, int *from, int *state, /* is buf set ? */ if (! *buf) { - *buf = (char *) calloc(1, PAM_TIME_BUFLEN+1); + *buf = calloc(1, PAM_TIME_BUFLEN+1); if (! *buf) { pam_syslog(pamh, LOG_CRIT, "out of memory"); D(("no memory")); @@ -286,7 +286,7 @@ logic_member(const char *string, int *at) break; default: - if (isalpha(c) || c == '*' || isdigit(c) || c == '_' + if (isalpha((unsigned char)c) || c == '*' || isdigit((unsigned char)c) || c == '_' || c == '-' || c == '.' || c == '/' || c == ':') { token = 1; } else if (token) { @@ -319,7 +319,7 @@ logic_field(pam_handle_t *pamh, const void *me, const char *x, int rule, if (next == VAL) { if (c == '!') not = !not; - else if (isalpha(c) || c == '*' || isdigit(c) || c == '_' + else if (isalpha((unsigned char)c) || c == '*' || isdigit((unsigned char)c) || c == '_' || c == '-' || c == '.' || c == '/' || c == ':') { right = not ^ agrees(pamh, me, x+at, l, rule); if (oper == AND) @@ -432,7 +432,7 @@ check_time(pam_handle_t *pamh, const void *AT, const char *times, int i,j=0; at = AT; - D(("chcking: 0%o/%.4d vs. %s", at->day, at->minute, times)); + D(("checking: 0%o/%.4d vs. %s", at->day, at->minute, times)); if (times == NULL) { /* this should not happen */ @@ -449,13 +449,13 @@ check_time(pam_handle_t *pamh, const void *AT, const char *times, not = FALSE; } - for (marked_day = 0; len > 0 && isalpha(times[j]); --len) { + for (marked_day = 0; len > 0 && isalpha((unsigned char)times[j]); --len) { int this_day=-1; D(("%c%c ?", times[j], times[j+1])); for (i=0; days[i].d != NULL; ++i) { - if (tolower(times[j]) == days[i].d[0] - && tolower(times[j+1]) == days[i].d[1] ) { + if (tolower((unsigned char)times[j]) == days[i].d[0] + && tolower((unsigned char)times[j+1]) == days[i].d[1] ) { this_day = days[i].bit; break; } @@ -474,7 +474,7 @@ check_time(pam_handle_t *pamh, const void *AT, const char *times, D(("day range = 0%o", marked_day)); time_start = 0; - for (i=0; len > 0 && i < 4 && isdigit(times[i+j]); ++i, --len) { + for (i=0; len > 0 && i < 4 && isdigit((unsigned char)times[i+j]); ++i, --len) { time_start *= 10; time_start += times[i+j]-'0'; /* is this portable? */ } @@ -482,7 +482,7 @@ check_time(pam_handle_t *pamh, const void *AT, const char *times, if (times[j] == '-') { time_end = 0; - for (i=1; len > 0 && i < 5 && isdigit(times[i+j]); ++i, --len) { + for (i=1; len > 0 && i < 5 && isdigit((unsigned char)times[i+j]); ++i, --len) { time_end *= 10; time_end += times[i+j]-'0'; /* is this portable */ } @@ -674,7 +674,7 @@ pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED, /* good, now we have the service name, the user and the terminal name */ - D(("service=%s", service)); + D(("service=%s", (const char *) service)); D(("user=%s", user)); D(("tty=%s", tty)); diff --git a/modules/pam_time/time.conf.5 b/modules/pam_time/time.conf.5 deleted file mode 100644 index c68dfa74..00000000 --- a/modules/pam_time/time.conf.5 +++ /dev/null @@ -1,115 +0,0 @@ -'\" t -.\" Title: time.conf -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "TIME\&.CONF" "5" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -time.conf \- configuration file for the pam_time module -.SH "DESCRIPTION" -.PP -The pam_time PAM module does not authenticate the user, but instead it restricts access to a system and or specific applications at various times of the day and on specific days or over various terminal lines\&. This module can be configured to deny access to (individual) users based on their name, the time of day, the day of week, the service they are applying for and their terminal from which they are making their request\&. -.PP -For this module to function correctly there must be a correctly formatted -/etc/security/time\&.conf -file present\&. White spaces are ignored and lines maybe extended with \*(Aq\e\*(Aq (escaped newlines)\&. Text following a \*(Aq#\*(Aq is ignored to the end of the line\&. -.PP -The syntax of the lines is as follows: -.PP -\fIservices\fR;\fIttys\fR;\fIusers\fR;\fItimes\fR -.PP -In words, each rule occupies a line, terminated with a newline or the beginning of a comment; a \*(Aq\fB#\fR\*(Aq\&. It contains four fields separated with semicolons, \*(Aq\fB;\fR\*(Aq\&. -.PP -The first field, the -\fIservices\fR -field, is a logic list of PAM service names that the rule applies to\&. -.PP -The second field, the -\fItty\fR -field, is a logic list of terminal names that this rule applies to\&. -.PP -The third field, the -\fIusers\fR -field, is a logic list of users or a netgroup of users to whom this rule applies\&. -.PP -A logic list namely means individual tokens that are optionally prefixed with \*(Aq!\*(Aq (logical not) and separated with \*(Aq&\*(Aq (logical and) and \*(Aq|\*(Aq (logical or)\&. -.PP -For these items the simple wildcard \*(Aq*\*(Aq may be used only once\&. With netgroups no wildcards or logic operators are allowed\&. -.PP -The -\fItimes\fR -field is used to indicate the times at which this rule applies\&. The format here is a logic list of day/time\-range entries\&. The days are specified by a sequence of two character entries, MoTuSa for example is Monday Tuesday and Saturday\&. Note that repeated days are unset MoMo = no day, and MoWk = all weekdays bar Monday\&. The two character combinations accepted are Mo Tu We Th Fr Sa Su Wk Wd Al, the last two being week\-end days and all 7 days of the week respectively\&. As a final example, AlFr means all days except Friday\&. -.PP -Each day/time\-range can be prefixed with a \*(Aq!\*(Aq to indicate "anything but"\&. The time\-range part is two 24\-hour times HHMM, separated by a hyphen, indicating the start and finish time (if the finish time is smaller than the start time it is deemed to apply on the following day)\&. -.PP -For a rule to be active, ALL of service+ttys+users must be satisfied by the applying process\&. -.PP -Note, currently there is no daemon enforcing the end of a session\&. This needs to be remedied\&. -.PP -Poorly formatted rules are logged as errors using -\fBsyslog\fR(3)\&. -.SH "EXAMPLES" -.PP -These are some example lines which might be specified in -/etc/security/time\&.conf\&. -.PP -All users except for -\fIroot\fR -are denied access to console\-login at all times: -.sp -.if n \{\ -.RS 4 -.\} -.nf -login ; tty* & !ttyp* ; !root ; !Al0000\-2400 - -.fi -.if n \{\ -.RE -.\} -.PP -Games (configured to use PAM) are only to be accessed out of working hours\&. This rule does not apply to the user -\fIwaster\fR: -.sp -.if n \{\ -.RS 4 -.\} -.nf -games ; * ; !waster ; Wd0000\-2400 | Wk1800\-0800 - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam_time\fR(8), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_time was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_time/tst-pam_time-retval.c b/modules/pam_time/tst-pam_time-retval.c index 281ac80d..3fcf4591 100644 --- a/modules/pam_time/tst-pam_time-retval.c +++ b/modules/pam_time/tst-pam_time-retval.c @@ -33,10 +33,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, @@ -65,10 +65,10 @@ main(void) ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so conffile=%s\n" - "account required %s/.libs/%s.so conffile=%s\n" - "password required %s/.libs/%s.so conffile=%s\n" - "session required %s/.libs/%s.so conffile=%s\n", + "auth required %s/" LTDIR "%s.so conffile=%s\n" + "account required %s/" LTDIR "%s.so conffile=%s\n" + "password required %s/" LTDIR "%s.so conffile=%s\n" + "session required %s/" LTDIR "%s.so conffile=%s\n", cwd, MODULE_NAME, config_file, cwd, MODULE_NAME, config_file, cwd, MODULE_NAME, config_file, diff --git a/modules/pam_timestamp/Makefile.am b/modules/pam_timestamp/Makefile.am deleted file mode 100644 index 27d61237..00000000 --- a/modules/pam_timestamp/Makefile.am +++ /dev/null @@ -1,61 +0,0 @@ -# -# Copyright (c) 2005, 2009 Thorsten Kukuk <kukuk@suse.de> -# Copyright (c) 2005, 2008 Red Hat, Inc. -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_timestamp.8 pam_timestamp_check.8 -endif -XMLS = README.xml pam_timestamp.8.xml pam_timestamp_check.8.xml -dist_check_SCRIPTS = tst-pam_timestamp -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -noinst_HEADERS = hmacsha1.h sha1.h hmac_openssl_wrapper.h - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(LOGIND_CFLAGS) $(WARN_CFLAGS) - -pam_timestamp_la_LDFLAGS = -no-undefined -avoid-version -module $(AM_LDFLAGS) $(CRYPTO_LIBS) -pam_timestamp_la_LIBADD = $(top_builddir)/libpam/libpam.la $(SYSTEMD_LIBS) -if HAVE_VERSIONING - pam_timestamp_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_timestamp.la -sbin_PROGRAMS = pam_timestamp_check - -pam_timestamp_la_SOURCES = pam_timestamp.c -if COND_USE_OPENSSL -pam_timestamp_la_SOURCES += hmac_openssl_wrapper.c -else -pam_timestamp_la_SOURCES += hmacsha1.c sha1.c -endif -pam_timestamp_la_CFLAGS = $(AM_CFLAGS) - -pam_timestamp_check_SOURCES = pam_timestamp_check.c -pam_timestamp_check_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -pam_timestamp_check_LDADD = $(top_builddir)/libpam/libpam.la $(SYSTEMD_LIBS) -pam_timestamp_check_LDFLAGS = @EXE_LDFLAGS@ - -if !COND_USE_OPENSSL -hmacfile_SOURCES = hmacfile.c hmacsha1.c sha1.c -hmacfile_LDADD = $(top_builddir)/libpam/libpam.la -check_PROGRAMS = hmacfile -endif - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_timestamp/Makefile.in b/modules/pam_timestamp/Makefile.in deleted file mode 100644 index feffca8e..00000000 --- a/modules/pam_timestamp/Makefile.in +++ /dev/null @@ -1,1356 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2009 Thorsten Kukuk <kukuk@suse.de> -# Copyright (c) 2005, 2008 Red Hat, Inc. -# - - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -sbin_PROGRAMS = pam_timestamp_check$(EXEEXT) -@COND_USE_OPENSSL_TRUE@am__append_2 = hmac_openssl_wrapper.c -@COND_USE_OPENSSL_FALSE@am__append_3 = hmacsha1.c sha1.c -@COND_USE_OPENSSL_FALSE@check_PROGRAMS = hmacfile$(EXEEXT) -subdir = modules/pam_timestamp -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" \ - "$(DESTDIR)$(man8dir)" -PROGRAMS = $(sbin_PROGRAMS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -LTLIBRARIES = $(securelib_LTLIBRARIES) -am__DEPENDENCIES_1 = -pam_timestamp_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(am__DEPENDENCIES_1) -am__pam_timestamp_la_SOURCES_DIST = pam_timestamp.c \ - hmac_openssl_wrapper.c hmacsha1.c sha1.c -@COND_USE_OPENSSL_TRUE@am__objects_1 = pam_timestamp_la-hmac_openssl_wrapper.lo -@COND_USE_OPENSSL_FALSE@am__objects_2 = pam_timestamp_la-hmacsha1.lo \ -@COND_USE_OPENSSL_FALSE@ pam_timestamp_la-sha1.lo -am_pam_timestamp_la_OBJECTS = pam_timestamp_la-pam_timestamp.lo \ - $(am__objects_1) $(am__objects_2) -pam_timestamp_la_OBJECTS = $(am_pam_timestamp_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -pam_timestamp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(pam_timestamp_la_CFLAGS) $(CFLAGS) \ - $(pam_timestamp_la_LDFLAGS) $(LDFLAGS) -o $@ -am__hmacfile_SOURCES_DIST = hmacfile.c hmacsha1.c sha1.c -@COND_USE_OPENSSL_FALSE@am_hmacfile_OBJECTS = hmacfile.$(OBJEXT) \ -@COND_USE_OPENSSL_FALSE@ hmacsha1.$(OBJEXT) sha1.$(OBJEXT) -hmacfile_OBJECTS = $(am_hmacfile_OBJECTS) -@COND_USE_OPENSSL_FALSE@hmacfile_DEPENDENCIES = \ -@COND_USE_OPENSSL_FALSE@ $(top_builddir)/libpam/libpam.la -am_pam_timestamp_check_OBJECTS = \ - pam_timestamp_check-pam_timestamp_check.$(OBJEXT) -pam_timestamp_check_OBJECTS = $(am_pam_timestamp_check_OBJECTS) -pam_timestamp_check_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(am__DEPENDENCIES_1) -pam_timestamp_check_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(pam_timestamp_check_CFLAGS) $(CFLAGS) \ - $(pam_timestamp_check_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/hmacfile.Po ./$(DEPDIR)/hmacsha1.Po \ - ./$(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Po \ - ./$(DEPDIR)/pam_timestamp_la-hmac_openssl_wrapper.Plo \ - ./$(DEPDIR)/pam_timestamp_la-hmacsha1.Plo \ - ./$(DEPDIR)/pam_timestamp_la-pam_timestamp.Plo \ - ./$(DEPDIR)/pam_timestamp_la-sha1.Plo ./$(DEPDIR)/sha1.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(pam_timestamp_la_SOURCES) $(hmacfile_SOURCES) \ - $(pam_timestamp_check_SOURCES) -DIST_SOURCES = $(am__pam_timestamp_la_SOURCES_DIST) \ - $(am__hmacfile_SOURCES_DIST) $(pam_timestamp_check_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_timestamp.8 pam_timestamp_check.8 -XMLS = README.xml pam_timestamp.8.xml pam_timestamp_check.8.xml -dist_check_SCRIPTS = tst-pam_timestamp -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -noinst_HEADERS = hmacsha1.h sha1.h hmac_openssl_wrapper.h -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(LOGIND_CFLAGS) $(WARN_CFLAGS) - -pam_timestamp_la_LDFLAGS = -no-undefined -avoid-version -module \ - $(AM_LDFLAGS) $(CRYPTO_LIBS) $(am__append_1) -pam_timestamp_la_LIBADD = $(top_builddir)/libpam/libpam.la $(SYSTEMD_LIBS) -securelib_LTLIBRARIES = pam_timestamp.la -pam_timestamp_la_SOURCES = pam_timestamp.c $(am__append_2) \ - $(am__append_3) -pam_timestamp_la_CFLAGS = $(AM_CFLAGS) -pam_timestamp_check_SOURCES = pam_timestamp_check.c -pam_timestamp_check_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -pam_timestamp_check_LDADD = $(top_builddir)/libpam/libpam.la $(SYSTEMD_LIBS) -pam_timestamp_check_LDFLAGS = @EXE_LDFLAGS@ -@COND_USE_OPENSSL_FALSE@hmacfile_SOURCES = hmacfile.c hmacsha1.c sha1.c -@COND_USE_OPENSSL_FALSE@hmacfile_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_timestamp/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_timestamp/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -install-sbinPROGRAMS: $(sbin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-sbinPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(sbindir)" && rm -f $$files - -clean-sbinPROGRAMS: - @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_timestamp.la: $(pam_timestamp_la_OBJECTS) $(pam_timestamp_la_DEPENDENCIES) $(EXTRA_pam_timestamp_la_DEPENDENCIES) - $(AM_V_CCLD)$(pam_timestamp_la_LINK) -rpath $(securelibdir) $(pam_timestamp_la_OBJECTS) $(pam_timestamp_la_LIBADD) $(LIBS) - -hmacfile$(EXEEXT): $(hmacfile_OBJECTS) $(hmacfile_DEPENDENCIES) $(EXTRA_hmacfile_DEPENDENCIES) - @rm -f hmacfile$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(hmacfile_OBJECTS) $(hmacfile_LDADD) $(LIBS) - -pam_timestamp_check$(EXEEXT): $(pam_timestamp_check_OBJECTS) $(pam_timestamp_check_DEPENDENCIES) $(EXTRA_pam_timestamp_check_DEPENDENCIES) - @rm -f pam_timestamp_check$(EXEEXT) - $(AM_V_CCLD)$(pam_timestamp_check_LINK) $(pam_timestamp_check_OBJECTS) $(pam_timestamp_check_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hmacfile.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hmacsha1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_timestamp_la-hmac_openssl_wrapper.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_timestamp_la-hmacsha1.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_timestamp_la-pam_timestamp.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_timestamp_la-sha1.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -pam_timestamp_la-pam_timestamp.lo: pam_timestamp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_la_CFLAGS) $(CFLAGS) -MT pam_timestamp_la-pam_timestamp.lo -MD -MP -MF $(DEPDIR)/pam_timestamp_la-pam_timestamp.Tpo -c -o pam_timestamp_la-pam_timestamp.lo `test -f 'pam_timestamp.c' || echo '$(srcdir)/'`pam_timestamp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_timestamp_la-pam_timestamp.Tpo $(DEPDIR)/pam_timestamp_la-pam_timestamp.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pam_timestamp.c' object='pam_timestamp_la-pam_timestamp.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_la_CFLAGS) $(CFLAGS) -c -o pam_timestamp_la-pam_timestamp.lo `test -f 'pam_timestamp.c' || echo '$(srcdir)/'`pam_timestamp.c - -pam_timestamp_la-hmac_openssl_wrapper.lo: hmac_openssl_wrapper.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_la_CFLAGS) $(CFLAGS) -MT pam_timestamp_la-hmac_openssl_wrapper.lo -MD -MP -MF $(DEPDIR)/pam_timestamp_la-hmac_openssl_wrapper.Tpo -c -o pam_timestamp_la-hmac_openssl_wrapper.lo `test -f 'hmac_openssl_wrapper.c' || echo '$(srcdir)/'`hmac_openssl_wrapper.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_timestamp_la-hmac_openssl_wrapper.Tpo $(DEPDIR)/pam_timestamp_la-hmac_openssl_wrapper.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hmac_openssl_wrapper.c' object='pam_timestamp_la-hmac_openssl_wrapper.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_la_CFLAGS) $(CFLAGS) -c -o pam_timestamp_la-hmac_openssl_wrapper.lo `test -f 'hmac_openssl_wrapper.c' || echo '$(srcdir)/'`hmac_openssl_wrapper.c - -pam_timestamp_la-hmacsha1.lo: hmacsha1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_la_CFLAGS) $(CFLAGS) -MT pam_timestamp_la-hmacsha1.lo -MD -MP -MF $(DEPDIR)/pam_timestamp_la-hmacsha1.Tpo -c -o pam_timestamp_la-hmacsha1.lo `test -f 'hmacsha1.c' || echo '$(srcdir)/'`hmacsha1.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_timestamp_la-hmacsha1.Tpo $(DEPDIR)/pam_timestamp_la-hmacsha1.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hmacsha1.c' object='pam_timestamp_la-hmacsha1.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_la_CFLAGS) $(CFLAGS) -c -o pam_timestamp_la-hmacsha1.lo `test -f 'hmacsha1.c' || echo '$(srcdir)/'`hmacsha1.c - -pam_timestamp_la-sha1.lo: sha1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_la_CFLAGS) $(CFLAGS) -MT pam_timestamp_la-sha1.lo -MD -MP -MF $(DEPDIR)/pam_timestamp_la-sha1.Tpo -c -o pam_timestamp_la-sha1.lo `test -f 'sha1.c' || echo '$(srcdir)/'`sha1.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_timestamp_la-sha1.Tpo $(DEPDIR)/pam_timestamp_la-sha1.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha1.c' object='pam_timestamp_la-sha1.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_la_CFLAGS) $(CFLAGS) -c -o pam_timestamp_la-sha1.lo `test -f 'sha1.c' || echo '$(srcdir)/'`sha1.c - -pam_timestamp_check-pam_timestamp_check.o: pam_timestamp_check.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_check_CFLAGS) $(CFLAGS) -MT pam_timestamp_check-pam_timestamp_check.o -MD -MP -MF $(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Tpo -c -o pam_timestamp_check-pam_timestamp_check.o `test -f 'pam_timestamp_check.c' || echo '$(srcdir)/'`pam_timestamp_check.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Tpo $(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pam_timestamp_check.c' object='pam_timestamp_check-pam_timestamp_check.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_check_CFLAGS) $(CFLAGS) -c -o pam_timestamp_check-pam_timestamp_check.o `test -f 'pam_timestamp_check.c' || echo '$(srcdir)/'`pam_timestamp_check.c - -pam_timestamp_check-pam_timestamp_check.obj: pam_timestamp_check.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_check_CFLAGS) $(CFLAGS) -MT pam_timestamp_check-pam_timestamp_check.obj -MD -MP -MF $(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Tpo -c -o pam_timestamp_check-pam_timestamp_check.obj `if test -f 'pam_timestamp_check.c'; then $(CYGPATH_W) 'pam_timestamp_check.c'; else $(CYGPATH_W) '$(srcdir)/pam_timestamp_check.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Tpo $(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pam_timestamp_check.c' object='pam_timestamp_check-pam_timestamp_check.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pam_timestamp_check_CFLAGS) $(CFLAGS) -c -o pam_timestamp_check-pam_timestamp_check.obj `if test -f 'pam_timestamp_check.c'; then $(CYGPATH_W) 'pam_timestamp_check.c'; else $(CYGPATH_W) '$(srcdir)/pam_timestamp_check.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_timestamp.log: tst-pam_timestamp - @p='tst-pam_timestamp'; \ - b='tst-pam_timestamp'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -hmacfile.log: hmacfile$(EXEEXT) - @p='hmacfile$(EXEEXT)'; \ - b='hmacfile'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(MANS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/hmacfile.Po - -rm -f ./$(DEPDIR)/hmacsha1.Po - -rm -f ./$(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Po - -rm -f ./$(DEPDIR)/pam_timestamp_la-hmac_openssl_wrapper.Plo - -rm -f ./$(DEPDIR)/pam_timestamp_la-hmacsha1.Plo - -rm -f ./$(DEPDIR)/pam_timestamp_la-pam_timestamp.Plo - -rm -f ./$(DEPDIR)/pam_timestamp_la-sha1.Plo - -rm -f ./$(DEPDIR)/sha1.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-sbinPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/hmacfile.Po - -rm -f ./$(DEPDIR)/hmacsha1.Po - -rm -f ./$(DEPDIR)/pam_timestamp_check-pam_timestamp_check.Po - -rm -f ./$(DEPDIR)/pam_timestamp_la-hmac_openssl_wrapper.Plo - -rm -f ./$(DEPDIR)/pam_timestamp_la-hmacsha1.Plo - -rm -f ./$(DEPDIR)/pam_timestamp_la-pam_timestamp.Plo - -rm -f ./$(DEPDIR)/pam_timestamp_la-sha1.Plo - -rm -f ./$(DEPDIR)/sha1.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-sbinPROGRAMS \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-sbinPROGRAMS \ - uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_timestamp/README b/modules/pam_timestamp/README deleted file mode 100644 index e1ed508a..00000000 --- a/modules/pam_timestamp/README +++ /dev/null @@ -1,56 +0,0 @@ -pam_timestamp — Authenticate using cached successful authentication attempts - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -In a nutshell, pam_timestamp caches successful authentication attempts, and -allows you to use a recent successful attempt as the basis for authentication. -This is similar mechanism which is used in sudo. - -When an application opens a session using pam_timestamp, a timestamp file is -created in the timestampdir directory for the user. When an application -attempts to authenticate the user, a pam_timestamp will treat a sufficiently -recent timestamp file as grounds for succeeding. - -The default encryption hash is taken from the HMAC_CRYPTO_ALGO variable from / -etc/login.defs. - -OPTIONS - -timestampdir=directory - - Specify an alternate directory where pam_timestamp creates timestamp files. - -timestamp_timeout=number - - How long should pam_timestamp treat timestamp as valid after their last - modification date (in seconds). Default is 300 seconds. - -verbose - - Attempt to inform the user when access is granted. - -debug - - Turns on debugging messages sent to syslog(3). - -NOTES - -Users can get confused when they are not always asked for passwords when -running a given program. Some users reflexively begin typing information before -noticing that it is not being asked for. - -EXAMPLES - -auth sufficient pam_timestamp.so verbose -auth required pam_unix.so - -session required pam_unix.so -session optional pam_timestamp.so - - -AUTHOR - -pam_timestamp was written by Nalin Dahyabhai. - diff --git a/modules/pam_timestamp/hmac_openssl_wrapper.c b/modules/pam_timestamp/hmac_openssl_wrapper.c index 2549c1db..8fa6068e 100644 --- a/modules/pam_timestamp/hmac_openssl_wrapper.c +++ b/modules/pam_timestamp/hmac_openssl_wrapper.c @@ -49,6 +49,7 @@ #include <openssl/evp.h> #include <openssl/params.h> #include <openssl/core_names.h> +#include <openssl/rand.h> #include <security/pam_ext.h> #include <security/pam_modutil.h> @@ -56,6 +57,10 @@ #include "hmac_openssl_wrapper.h" #include "pam_inline.h" +#ifdef HAVE_SYS_RANDOM_H +#include <sys/random.h> +#endif + #define LOGIN_DEFS "/etc/login.defs" #define CRYPTO_KEY "HMAC_CRYPTO_ALGO" #define DEFAULT_ALGORITHM "SHA512" @@ -81,30 +86,48 @@ get_crypto_algorithm(pam_handle_t *pamh, int debug){ } static int +PAM_NONNULL((1, 2)) generate_key(pam_handle_t *pamh, char **key, size_t key_size) { int fd = 0; - size_t bytes_read = 0; - char * tmp = NULL; + ssize_t bytes_read = 0; + char *tmp = *key = NULL; - fd = open("/dev/urandom", O_RDONLY); - if (fd == -1) { - pam_syslog(pamh, LOG_ERR, "Cannot open /dev/urandom: %m"); + tmp = calloc(1, key_size); + if (!tmp) { + pam_syslog(pamh, LOG_CRIT, "Not enough memory"); return PAM_AUTH_ERR; } - tmp = malloc(key_size); - if (!tmp) { - pam_syslog(pamh, LOG_CRIT, "Not enough memory"); - close(fd); + /* Try to get random data from OpenSSL first */ + if (RAND_priv_bytes((unsigned char *)tmp, key_size) == 1) { + *key = tmp; + return PAM_SUCCESS; + } + +#ifdef HAVE_GETRANDOM + /* Fallback to getrandom(2) if available */ + if (getrandom(tmp, key_size, 0) == (ssize_t)key_size) { + *key = tmp; + return PAM_SUCCESS; + } +#endif + + /* Fallback to /dev/urandom */ + fd = open("/dev/urandom", O_RDONLY); + if (fd == -1) { + pam_syslog(pamh, LOG_ERR, "Cannot open /dev/urandom: %m"); + pam_overwrite_n(tmp, key_size); + free(tmp); return PAM_AUTH_ERR; } bytes_read = pam_modutil_read(fd, tmp, key_size); close(fd); - if (bytes_read < key_size) { + if (bytes_read < 0 || (size_t)bytes_read < key_size) { pam_syslog(pamh, LOG_ERR, "Short read on random device"); + pam_overwrite_n(tmp, key_size); free(tmp); return PAM_AUTH_ERR; } @@ -115,10 +138,11 @@ generate_key(pam_handle_t *pamh, char **key, size_t key_size) } static int +PAM_NONNULL((1, 3, 4)) read_file(pam_handle_t *pamh, int fd, char **text, size_t *text_length) { struct stat st; - size_t bytes_read = 0; + ssize_t bytes_read = 0; char *tmp = NULL; if (fstat(fd, &st) == -1) { @@ -133,7 +157,13 @@ read_file(pam_handle_t *pamh, int fd, char **text, size_t *text_length) return PAM_AUTH_ERR; } - tmp = malloc(st.st_size); + if ((uintmax_t)st.st_size > (uintmax_t)INT_MAX) { + pam_syslog(pamh, LOG_ERR, "Key file is too large"); + close(fd); + return PAM_AUTH_ERR; + } + + tmp = calloc(1, st.st_size); if (!tmp) { pam_syslog(pamh, LOG_CRIT, "Not enough memory"); close(fd); @@ -143,7 +173,7 @@ read_file(pam_handle_t *pamh, int fd, char **text, size_t *text_length) bytes_read = pam_modutil_read(fd, tmp, st.st_size); close(fd); - if (bytes_read < (size_t)st.st_size) { + if (bytes_read < st.st_size) { pam_syslog(pamh, LOG_ERR, "Short read on key file"); pam_overwrite_n(tmp, st.st_size); free(tmp); @@ -157,11 +187,12 @@ read_file(pam_handle_t *pamh, int fd, char **text, size_t *text_length) } static int +PAM_NONNULL((1, 2, 3)) write_file(pam_handle_t *pamh, const char *file_name, char *text, size_t text_length, uid_t owner, gid_t group) { int fd = 0; - size_t bytes_written = 0; + ssize_t bytes_written = 0; fd = open(file_name, O_WRONLY | O_CREAT | O_TRUNC, @@ -184,8 +215,9 @@ write_file(pam_handle_t *pamh, const char *file_name, char *text, bytes_written = pam_modutil_write(fd, text, text_length); close(fd); - if (bytes_written < text_length) { + if (bytes_written < 0 || (size_t)bytes_written < text_length) { pam_syslog(pamh, LOG_ERR, "Short write on %s", file_name); + pam_overwrite_n(text, text_length); free(text); return PAM_AUTH_ERR; } @@ -194,6 +226,7 @@ write_file(pam_handle_t *pamh, const char *file_name, char *text, } static int +PAM_NONNULL((1, 2, 3)) key_management(pam_handle_t *pamh, const char *file_name, char **text, size_t text_length, uid_t owner, gid_t group) { @@ -268,7 +301,7 @@ hmac_management(pam_handle_t *pamh, int debug, void **out, size_t *out_length, goto done; } - hmac_message = (unsigned char*)malloc(sizeof(unsigned char) * MAX_HMAC_LENGTH); + hmac_message = malloc(sizeof(unsigned char) * MAX_HMAC_LENGTH); if (!hmac_message) { pam_syslog(pamh, LOG_CRIT, "Not enough memory"); goto done; @@ -291,9 +324,7 @@ hmac_management(pam_handle_t *pamh, int debug, void **out, size_t *out_length, ret = PAM_SUCCESS; done: - if (hmac_message != NULL) { - free(hmac_message); - } + free(hmac_message); if (key != NULL) { pam_overwrite_n(key, key_length); free(key); diff --git a/modules/pam_timestamp/meson.build b/modules/pam_timestamp/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_timestamp/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_timestamp/pam_timestamp.8 b/modules/pam_timestamp/pam_timestamp.8 deleted file mode 100644 index a7b7e1c3..00000000 --- a/modules/pam_timestamp/pam_timestamp.8 +++ /dev/null @@ -1,130 +0,0 @@ -'\" t -.\" Title: pam_timestamp -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_TIMESTAMP" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_timestamp \- Authenticate using cached successful authentication attempts -.SH "SYNOPSIS" -.HP \w'\fBpam_timestamp\&.so\fR\ 'u -\fBpam_timestamp\&.so\fR [timestampdir=\fIdirectory\fR] [timestamp_timeout=\fInumber\fR] [verbose] [debug] -.SH "DESCRIPTION" -.PP -In a nutshell, -\fIpam_timestamp\fR -caches successful authentication attempts, and allows you to use a recent successful attempt as the basis for authentication\&. This is similar mechanism which is used in -\fBsudo\fR\&. -.PP -When an application opens a session using -\fIpam_timestamp\fR, a timestamp file is created in the -\fItimestampdir\fR -directory for the user\&. When an application attempts to authenticate the user, a -\fIpam_timestamp\fR -will treat a sufficiently recent timestamp file as grounds for succeeding\&. -.SH "OPTIONS" -.PP -timestampdir=directory -.RS 4 -Specify an alternate directory where -\fIpam_timestamp\fR -creates timestamp files\&. -.RE -.PP -timestamp_timeout=number -.RS 4 -How long should -\fIpam_timestamp\fR -treat timestamp as valid after their last modification date (in seconds)\&. Default is 300 seconds\&. -.RE -.PP -verbose -.RS 4 -Attempt to inform the user when access is granted\&. -.RE -.PP -debug -.RS 4 -Turns on debugging messages sent to -\fBsyslog\fR(3)\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBsession\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -The module was not able to retrieve the user name or no valid timestamp file was found\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Everything was successful\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Timestamp file could not be created or updated\&. -.RE -.SH "NOTES" -.PP -Users can get confused when they are not always asked for passwords when running a given program\&. Some users reflexively begin typing information before noticing that it is not being asked for\&. -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth sufficient pam_timestamp\&.so verbose -auth required pam_unix\&.so - -session required pam_unix\&.so -session optional pam_timestamp\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "FILES" -.PP -/var/run/pam_timestamp/\&.\&.\&. -.RS 4 -timestamp files and directories -.RE -.SH "SEE ALSO" -.PP -\fBpam_timestamp_check\fR(8), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_timestamp was written by Nalin Dahyabhai\&. diff --git a/modules/pam_timestamp/pam_timestamp.c b/modules/pam_timestamp/pam_timestamp.c index c5fa6dfc..51fcd592 100644 --- a/modules/pam_timestamp/pam_timestamp.c +++ b/modules/pam_timestamp/pam_timestamp.c @@ -72,6 +72,7 @@ #include <security/pam_ext.h> #include <security/pam_modutil.h> #include "pam_inline.h" +#include "pam_i18n.h" /* The default timeout we use is 5 minutes, which matches the sudo default * for the timestamp_timeout parameter. */ @@ -82,7 +83,9 @@ /* Various buffers we use need to be at least as large as either PATH_MAX or * LINE_MAX, so choose the larger of the two. */ -#if (LINE_MAX > PATH_MAX) +#ifndef PATH_MAX +#define BUFLEN LINE_MAX +#elif (LINE_MAX > PATH_MAX) #define BUFLEN LINE_MAX #else #define BUFLEN PATH_MAX @@ -97,13 +100,13 @@ check_dir_perms(pam_handle_t *pamh, const char *tdir) { char scratch[BUFLEN] = {}; struct stat st; - int i; + size_t i; /* Check that the directory is "safe". */ if ((tdir == NULL) || (strlen(tdir) == 0)) { return PAM_AUTH_ERR; } /* Iterate over the path, checking intermediate directories. */ - for (i = 0; (tdir[i] != '\0') && (i < (int)sizeof(scratch)); i++) { + for (i = 0; (i < sizeof(scratch)) && (tdir[i] != '\0'); i++) { scratch[i] = tdir[i]; if ((scratch[i] == '/') || (tdir[i + 1] == '\0')) { /* We now have the name of a directory in the path, so @@ -479,6 +482,7 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) #ifdef WITH_OPENSSL if (hmac_size(pamh, debug, &maclen)) { + close(fd); return PAM_AUTH_ERR; } #else @@ -555,7 +559,7 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) } #ifdef USE_LOGIND struct passwd *pwd = pam_modutil_getpwnam(pamh, ruser); - if (pwd != NULL) { + if (pwd == NULL) { return PAM_SERVICE_ERR; } if (check_login_time(pwd->pw_uid, then) != PAM_SUCCESS) @@ -750,7 +754,7 @@ pam_sm_close_session(pam_handle_t *pamh UNUSED, int flags UNUSED, int argc UNUSE int main(int argc, char **argv) { - int i, retval = 0, dflag = 0, kflag = 0; + int i, retval, dflag = 0, kflag = 0; const char *target_user = NULL, *user = NULL, *tty = NULL; struct passwd *pwd; struct timeval tv; @@ -795,7 +799,7 @@ main(int argc, char **argv) if (geteuid() != 0) { fprintf(stderr, "%s must be setuid root\n", argv[0]); - retval = 2; + return 2; } /* Check that we have a controlling tty. */ @@ -813,7 +817,8 @@ main(int argc, char **argv) /* Get the name of the invoking (requesting) user. */ pwd = getpwuid(getuid()); if (pwd == NULL) { - retval = 4; + fprintf(stderr, "unknown user\n"); + return 4; } #ifdef USE_LOGIND uid = pwd->pw_uid; @@ -822,43 +827,42 @@ main(int argc, char **argv) /* Get the name of the target user. */ user = strdup(pwd->pw_name); if (user == NULL) { - retval = 4; - } else { - target_user = (optind < argc) ? argv[optind] : user; - if ((strchr(target_user, '.') != NULL) || - (strchr(target_user, '/') != NULL) || - (strchr(target_user, '%') != NULL)) { - fprintf(stderr, "unknown user: %s\n", - target_user); - retval = 4; - } + fprintf(stderr, "out of memory\n"); + return 4; + } + target_user = (optind < argc) ? argv[optind] : user; + if ((strchr(target_user, '.') != NULL) || + (strchr(target_user, '/') != NULL) || + (strchr(target_user, '%') != NULL)) { + fprintf(stderr, "invalid user: %s\n", target_user); + return 4; } /* Sanity check the tty to make sure we should be checking * for timestamps which pertain to it. */ - if (retval == 0) { - tty = check_tty(tty); - if (tty == NULL) { - fprintf(stderr, "invalid tty\n"); - retval = 6; - } + tty = check_tty(tty); + if (tty == NULL) { + fprintf(stderr, "invalid tty\n"); + return 6; + } + + /* Generate the name of the timestamp file. */ + if (format_timestamp_name(path, sizeof(path), TIMESTAMPDIR, + tty, user, target_user) >= (int) sizeof(path)) { + fprintf(stderr, "path too long\n"); + return 4; } do { - /* Sanity check the timestamp directory itself. */ - if (retval == 0) { + retval = 0; + do { + /* Sanity check the timestamp directory itself. */ if (check_dir_perms(NULL, TIMESTAMPDIR) != PAM_SUCCESS) { retval = 5; + break; } - } - if (retval == 0) { - /* Generate the name of the timestamp file. */ - format_timestamp_name(path, sizeof(path), TIMESTAMPDIR, - tty, user, target_user); - } - if (retval == 0) { if (kflag) { /* Remove the timestamp. */ if (lstat(path, &st) != -1) { @@ -882,7 +886,7 @@ main(int argc, char **argv) retval = 7; } } - } + } while (0); if (dflag > 0) { struct timeval now; @@ -902,7 +906,6 @@ main(int argc, char **argv) select(STDOUT_FILENO + 1, NULL, NULL, &write_fds, &tv); - retval = 0; } } while (dflag > 0); diff --git a/modules/pam_timestamp/pam_timestamp_check.8 b/modules/pam_timestamp/pam_timestamp_check.8 deleted file mode 100644 index 3425a369..00000000 --- a/modules/pam_timestamp/pam_timestamp_check.8 +++ /dev/null @@ -1,133 +0,0 @@ -'\" t -.\" Title: pam_timestamp_check -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_TIMESTAMP_CHECK" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_timestamp_check \- Check to see if the default timestamp is valid -.SH "SYNOPSIS" -.HP \w'\fBpam_timestamp_check\fR\ 'u -\fBpam_timestamp_check\fR [\-k] [\-d] [\fItarget_user\fR] -.SH "DESCRIPTION" -.PP -With no arguments -\fBpam_timestamp_check\fR -will check to see if the default timestamp is valid, or optionally remove it\&. -.SH "OPTIONS" -.PP -\-k -.RS 4 -Instead of checking the validity of a timestamp, remove it\&. This is analogous to sudo\*(Aqs -\fI\-k\fR -option\&. -.RE -.PP -\-d -.RS 4 -Instead of returning validity using an exit status, loop indefinitely, polling regularly and printing the status on standard output\&. -.RE -.PP -target_user -.RS 4 -By default -\fBpam_timestamp_check\fR -checks or removes timestamps generated by -\fIpam_timestamp\fR -when the user authenticates as herself\&. When the user authenticates as a different user, the name of the timestamp file changes to accommodate this\&. -\fItarget_user\fR -allows one to specify this user name\&. -.RE -.SH "RETURN VALUES" -.PP -0 -.RS 4 -The timestamp is valid\&. -.RE -.PP -2 -.RS 4 -The binary is not setuid root\&. -.RE -.PP -3 -.RS 4 -Invalid invocation\&. -.RE -.PP -4 -.RS 4 -User is unknown\&. -.RE -.PP -5 -.RS 4 -Permissions error\&. -.RE -.PP -6 -.RS 4 -Invalid controlling tty\&. -.RE -.PP -7 -.RS 4 -Timestamp is not valid\&. -.RE -.SH "NOTES" -.PP -Users can get confused when they are not always asked for passwords when running a given program\&. Some users reflexively begin typing information before noticing that it is not being asked for\&. -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth sufficient pam_timestamp\&.so verbose -auth required pam_unix\&.so - -session required pam_unix\&.so -session optional pam_timestamp\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "FILES" -.PP -/var/run/sudo/\&.\&.\&. -.RS 4 -timestamp files and directories -.RE -.SH "SEE ALSO" -.PP -\fBpam_timestamp_check\fR(8), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_timestamp was written by Nalin Dahyabhai\&. diff --git a/modules/pam_timestamp/pam_timestamp_check.8.xml b/modules/pam_timestamp/pam_timestamp_check.8.xml index f0c09560..7f850ae0 100644 --- a/modules/pam_timestamp/pam_timestamp_check.8.xml +++ b/modules/pam_timestamp/pam_timestamp_check.8.xml @@ -72,7 +72,7 @@ see if the default timestamp is valid, or optionally remove it. <para> By default <command>pam_timestamp_check</command> checks or removes timestamps generated by <emphasis>pam_timestamp</emphasis> when - the user authenticates as herself. When the user authenticates as a + users authenticate as themselves. When the user authenticates as a different user, the name of the timestamp file changes to accommodate this. <replaceable>target_user</replaceable> allows one to specify this user name. @@ -201,4 +201,4 @@ session optional pam_timestamp.so </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_timestamp/sha1.c b/modules/pam_timestamp/sha1.c index d713aed1..f21b2870 100644 --- a/modules/pam_timestamp/sha1.c +++ b/modules/pam_timestamp/sha1.c @@ -37,6 +37,7 @@ */ /* See http://www.itl.nist.gov/fipspubs/fip180-1.htm for descriptions. */ +#include "pam_inline.h" #include <sys/types.h> #include <sys/stat.h> #include <netinet/in.h> @@ -48,7 +49,7 @@ #include <unistd.h> #include "sha1.h" -static unsigned char +static const unsigned char padding[SHA1_BLOCK_SIZE] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -142,8 +143,8 @@ sha1_process(struct sha1_context *ctx, uint32_t buffer[SHA1_BLOCK_SIZE / 4]) ctx->d += d; ctx->e += e; - memset(buffer, 0, sizeof(buffer[0]) * SHA1_BLOCK_SIZE / 4); - memset(data, 0, sizeof(data)); + pam_overwrite_n(buffer, sizeof(buffer[0]) * SHA1_BLOCK_SIZE / 4); + pam_overwrite_array(data); } void diff --git a/modules/pam_tty_audit/Makefile.am b/modules/pam_tty_audit/Makefile.am deleted file mode 100644 index e774c57d..00000000 --- a/modules/pam_tty_audit/Makefile.am +++ /dev/null @@ -1,32 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009, 2010 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_tty_audit.8 -endif -XMLS = README.xml pam_tty_audit.8.xml -dist_check_SCRIPTS = tst-pam_tty_audit -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -pam_tty_audit_la_LIBADD = $(top_builddir)/libpam/libpam.la -securelib_LTLIBRARIES = pam_tty_audit.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_tty_audit/Makefile.in b/modules/pam_tty_audit/Makefile.in deleted file mode 100644 index e3f556bf..00000000 --- a/modules/pam_tty_audit/Makefile.in +++ /dev/null @@ -1,1159 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009, 2010 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_tty_audit -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_tty_audit_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_tty_audit_la_SOURCES = pam_tty_audit.c -pam_tty_audit_la_OBJECTS = pam_tty_audit.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_tty_audit.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_tty_audit.c -DIST_SOURCES = pam_tty_audit.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_tty_audit.8 -XMLS = README.xml pam_tty_audit.8.xml -dist_check_SCRIPTS = tst-pam_tty_audit -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -pam_tty_audit_la_LIBADD = $(top_builddir)/libpam/libpam.la -securelib_LTLIBRARIES = pam_tty_audit.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_tty_audit/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_tty_audit/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_tty_audit.la: $(pam_tty_audit_la_OBJECTS) $(pam_tty_audit_la_DEPENDENCIES) $(EXTRA_pam_tty_audit_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_tty_audit_la_OBJECTS) $(pam_tty_audit_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_tty_audit.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_tty_audit.log: tst-pam_tty_audit - @p='tst-pam_tty_audit'; \ - b='tst-pam_tty_audit'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_tty_audit.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_tty_audit.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_tty_audit/README b/modules/pam_tty_audit/README deleted file mode 100644 index 91ea9cee..00000000 --- a/modules/pam_tty_audit/README +++ /dev/null @@ -1,70 +0,0 @@ -pam_tty_audit — Enable or disable TTY auditing for specified users - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_tty_audit PAM module is used to enable or disable TTY auditing. By -default, the kernel does not audit input on any TTY. - -OPTIONS - -disable=patterns - - For each user matching patterns, disable TTY auditing. This overrides any - previous enable option matching the same user name on the command line. See - NOTES for further description of patterns. - -enable=patterns - - For each user matching patterns, enable TTY auditing. This overrides any - previous disable option matching the same user name on the command line. - See NOTES for further description of patterns. - -open_only - - Set the TTY audit flag when opening the session, but do not restore it when - closing the session. Using this option is necessary for some services that - don't fork() to run the authenticated session, such as sudo. - -log_passwd - - Log keystrokes when ECHO mode is off but ICANON mode is active. This is the - mode in which the tty is placed during password entry. By default, - passwords are not logged. This option may not be available on older kernels - (3.9?). - -NOTES - -When TTY auditing is enabled, it is inherited by all processes started by that -user. In particular, daemons restarted by a user will still have TTY auditing -enabled, and audit TTY input even by other users unless auditing for these -users is explicitly disabled. Therefore, it is recommended to use disable=* as -the first option for most daemons using PAM. - -To view the data that was logged by the kernel to audit use the command -aureport --tty. - -The patterns are comma separated lists of glob patterns or ranges of uids. A -range is specified as min_uid:max_uid where one of these values can be empty. -If min_uid is empty only user with the uid max_uid will be matched. If max_uid -is empty users with the uid greater than or equal to min_uid will be matched. - -Please note that passwords in some circumstances may be logged by TTY auditing -even if the log_passwd is not used. For example, all input to an ssh session -will be logged - even if there is a password being typed into some software -running at the remote host because only the local TTY state affects the local -TTY auditing. - -EXAMPLES - -Audit all administrative actions. - -session required pam_tty_audit.so disable=* enable=root - - -AUTHOR - -pam_tty_audit was written by Miloslav TrmaÄ <mitr@redhat.com>. The log_passwd -option was added by Richard Guy Briggs <rgb@redhat.com>. - diff --git a/modules/pam_tty_audit/meson.build b/modules/pam_tty_audit/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_tty_audit/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_tty_audit/pam_tty_audit.8 b/modules/pam_tty_audit/pam_tty_audit.8 deleted file mode 100644 index ada11ae6..00000000 --- a/modules/pam_tty_audit/pam_tty_audit.8 +++ /dev/null @@ -1,135 +0,0 @@ -'\" t -.\" Title: pam_tty_audit -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_TTY_AUDIT" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_tty_audit \- Enable or disable TTY auditing for specified users -.SH "SYNOPSIS" -.HP \w'\fBpam_tty_audit\&.so\fR\ 'u -\fBpam_tty_audit\&.so\fR [disable=\fIpatterns\fR] [enable=\fIpatterns\fR] -.SH "DESCRIPTION" -.PP -The pam_tty_audit PAM module is used to enable or disable TTY auditing\&. By default, the kernel does not audit input on any TTY\&. -.SH "OPTIONS" -.PP -disable=patterns -.RS 4 -For each user matching -\fB\fIpatterns\fR\fR, disable TTY auditing\&. This overrides any previous -\fBenable\fR -option matching the same user name on the command line\&. See NOTES for further description of -\fB\fIpatterns\fR\fR\&. -.RE -.PP -enable=patterns -.RS 4 -For each user matching -\fB\fIpatterns\fR\fR, enable TTY auditing\&. This overrides any previous -\fBdisable\fR -option matching the same user name on the command line\&. See NOTES for further description of -\fB\fIpatterns\fR\fR\&. -.RE -.PP -open_only -.RS 4 -Set the TTY audit flag when opening the session, but do not restore it when closing the session\&. Using this option is necessary for some services that don\*(Aqt -\fBfork()\fR -to run the authenticated session, such as -\fBsudo\fR\&. -.RE -.PP -log_passwd -.RS 4 -Log keystrokes when ECHO mode is off but ICANON mode is active\&. This is the mode in which the tty is placed during password entry\&. By default, passwords are not logged\&. This option may not be available on older kernels (3\&.9?)\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -type is supported\&. -.SH "RETURN VALUES" -.PP -PAM_SESSION_ERR -.RS 4 -Error reading or modifying the TTY audit flag\&. See the system log for more details\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success\&. -.RE -.SH "NOTES" -.PP -When TTY auditing is enabled, it is inherited by all processes started by that user\&. In particular, daemons restarted by a user will still have TTY auditing enabled, and audit TTY input even by other users unless auditing for these users is explicitly disabled\&. Therefore, it is recommended to use -\fBdisable=*\fR -as the first option for most daemons using PAM\&. -.PP -To view the data that was logged by the kernel to audit use the command -\fBaureport \-\-tty\fR\&. -.PP -The -\fB\fIpatterns\fR\fR -are comma separated lists of glob patterns or ranges of uids\&. A range is specified as -\fImin_uid\fR:\fImax_uid\fR -where one of these values can be empty\&. If -\fImin_uid\fR -is empty only user with the uid -\fImax_uid\fR -will be matched\&. If -\fImax_uid\fR -is empty users with the uid greater than or equal to -\fImin_uid\fR -will be matched\&. -.PP -Please note that passwords in some circumstances may be logged by TTY auditing even if the -\fBlog_passwd\fR -is not used\&. For example, all input to an ssh session will be logged \- even if there is a password being typed into some software running at the remote host because only the local TTY state affects the local TTY auditing\&. -.SH "EXAMPLES" -.PP -Audit all administrative actions\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -session required pam_tty_audit\&.so disable=* enable=root - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBaureport\fR(8), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_tty_audit was written by Miloslav TrmaÄ <mitr@redhat\&.com>\&. The log_passwd option was added by Richard Guy Briggs <rgb@redhat\&.com>\&. diff --git a/modules/pam_umask/Makefile.am b/modules/pam_umask/Makefile.am deleted file mode 100644 index 1482a432..00000000 --- a/modules/pam_umask/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_umask.8 -endif -XMLS = README.xml pam_umask.8.xml -dist_check_SCRIPTS = tst-pam_umask -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_umask.la -pam_umask_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_umask/Makefile.in b/modules/pam_umask/Makefile.in deleted file mode 100644 index 08ad8c69..00000000 --- a/modules/pam_umask/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_umask -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_umask_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_umask_la_SOURCES = pam_umask.c -pam_umask_la_OBJECTS = pam_umask.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_umask.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_umask.c -DIST_SOURCES = pam_umask.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_umask.8 -XMLS = README.xml pam_umask.8.xml -dist_check_SCRIPTS = tst-pam_umask -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_umask.la -pam_umask_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_umask/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_umask/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_umask.la: $(pam_umask_la_OBJECTS) $(pam_umask_la_DEPENDENCIES) $(EXTRA_pam_umask_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_umask_la_OBJECTS) $(pam_umask_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_umask.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_umask.log: tst-pam_umask - @p='tst-pam_umask'; \ - b='tst-pam_umask'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_umask.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_umask.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_umask/README b/modules/pam_umask/README deleted file mode 100644 index ddde8c21..00000000 --- a/modules/pam_umask/README +++ /dev/null @@ -1,65 +0,0 @@ -pam_umask — PAM module to set the file mode creation mask - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_umask is a PAM module to set the file mode creation mask of the current -environment. The umask affects the default permissions assigned to newly -created files. - -The PAM module tries to get the umask value from the following places in the -following order: - - • umask= entry in the user's GECOS field - - • umask= argument - - • UMASK entry from /etc/login.defs - - • UMASK= entry from /etc/default/login - -The GECOS field is split on comma ',' characters. The module also in addition -to the umask= entry recognizes pri= entry, which sets the nice priority value -for the session, and ulimit= entry, which sets the maximum size of files the -processes in the session can create. - -OPTIONS - -debug - - Print debug information. - -silent - - Don't print informative messages. - -usergroups - - If the user is not root and the username is the same as primary group name, - the umask group bits are set to be the same as owner bits (examples: 022 -> - 002, 077 -> 007). - -nousergroups - - This is the direct opposite of the usergroups option described above, which - can be useful in case pam_umask has been compiled with usergroups enabled - by default and you want to disable it at runtime. - -umask=mask - - Sets the calling process's file mode creation mask (umask) to mask & 0777. - The value is interpreted as Octal. - -EXAMPLES - -Add the following line to /etc/pam.d/login to set the user specific umask at -login: - - session optional pam_umask.so umask=0022 - - -AUTHOR - -pam_umask was written by Thorsten Kukuk <kukuk@thkukuk.de>. - diff --git a/modules/pam_umask/meson.build b/modules/pam_umask/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_umask/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_umask/pam_umask.8 b/modules/pam_umask/pam_umask.8 deleted file mode 100644 index 741c316e..00000000 --- a/modules/pam_umask/pam_umask.8 +++ /dev/null @@ -1,176 +0,0 @@ -'\" t -.\" Title: pam_umask -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_UMASK" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_umask \- PAM module to set the file mode creation mask -.SH "SYNOPSIS" -.HP \w'\fBpam_umask\&.so\fR\ 'u -\fBpam_umask\&.so\fR [debug] [silent] [usergroups] [nousergroups] [umask=\fImask\fR] -.SH "DESCRIPTION" -.PP -pam_umask is a PAM module to set the file mode creation mask of the current environment\&. The umask affects the default permissions assigned to newly created files\&. -.PP -The PAM module tries to get the umask value from the following places in the following order: -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -umask= entry in the user\*(Aqs GECOS field -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -umask= argument -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -UMASK entry from /etc/login\&.defs -.RE -.sp -.RS 4 -.ie n \{\ -\h'-04'\(bu\h'+03'\c -.\} -.el \{\ -.sp -1 -.IP \(bu 2.3 -.\} -UMASK= entry from /etc/default/login -.RE -.PP -The GECOS field is split on comma \*(Aq,\*(Aq characters\&. The module also in addition to the umask= entry recognizes pri= entry, which sets the nice priority value for the session, and ulimit= entry, which sets the maximum size of files the processes in the session can create\&. -.SH "OPTIONS" -.PP -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -silent -.RS 4 -Don\*(Aqt print informative messages\&. -.RE -.PP -usergroups -.RS 4 -If the user is not root and the username is the same as primary group name, the umask group bits are set to be the same as owner bits (examples: 022 \-> 002, 077 \-> 007)\&. -.RE -.PP -nousergroups -.RS 4 -This is the direct opposite of the usergroups option described above, which can be useful in case pam_umask has been compiled with usergroups enabled by default and you want to disable it at runtime\&. -.RE -.PP -umask=mask -.RS 4 -Sets the calling process\*(Aqs file mode creation mask (umask) to -\fBmask\fR -& 0777\&. The value is interpreted as Octal\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -type is provided\&. -.SH "RETURN VALUES" -.PP -.PP -PAM_SUCCESS -.RS 4 -The new umask was set successfully\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -The conversation method supplied by the application failed to obtain the username\&. -.RE -.PP -PAM_INCOMPLETE -.RS 4 -The conversation method supplied by the application returned PAM_CONV_AGAIN\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -No username was given\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known\&. -.RE -.SH "EXAMPLES" -.PP -Add the following line to -/etc/pam\&.d/login -to set the user specific umask at login: -.sp -.if n \{\ -.RS 4 -.\} -.nf - session optional pam_umask\&.so umask=0022 - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_umask was written by Thorsten Kukuk <kukuk@thkukuk\&.de>\&. diff --git a/modules/pam_umask/pam_umask.8.xml b/modules/pam_umask/pam_umask.8.xml index 05276672..d2cead48 100644 --- a/modules/pam_umask/pam_umask.8.xml +++ b/modules/pam_umask/pam_umask.8.xml @@ -48,7 +48,7 @@ <itemizedlist> <listitem> <para> - umask= entry in the user's GECOS field + umask= entry in the user's GECOS field (see below for details) </para> </listitem> <listitem> @@ -69,11 +69,13 @@ </itemizedlist> </para> <para> - The GECOS field is split on comma ',' characters. The module - also in addition to the umask= entry recognizes pri= entry, - which sets the nice priority value for the session, and - ulimit= entry, which sets the maximum size of files the processes - in the session can create. + The GECOS field is split on comma ',' characters. Entries must be set in + its 'other' (sub-)field (the 5th field within the GECOS field), which + could be done, for example, using <command>chfn --other</command>. + In addition to the umask= entry, the module also recognizes the pri= + entry, which sets the nice priority value for the session, and the ulimit= + entry, which sets the maximum size of files the processes in the session + can create. </para> </refsect1> @@ -255,4 +257,4 @@ </para> </refsect1> -</refentry>
\ No newline at end of file +</refentry> diff --git a/modules/pam_umask/pam_umask.c b/modules/pam_umask/pam_umask.c index 72b10e92..8ba5de9a 100644 --- a/modules/pam_umask/pam_umask.c +++ b/modules/pam_umask/pam_umask.c @@ -125,7 +125,6 @@ set_umask (const char *value) ((mask == UINT_MAX) && (errno == ERANGE))) return; umask (mask); - return; } /* Set the process nice, ulimit, and umask from the diff --git a/modules/pam_unix/CHANGELOG b/modules/pam_unix/CHANGELOG deleted file mode 100644 index f8f70f59..00000000 --- a/modules/pam_unix/CHANGELOG +++ /dev/null @@ -1,54 +0,0 @@ -$Id$ - -* Mon Aug 16 1999 Jan RÄ™korajski <baggins@pld.org.pl> -- fixed reentrancy problems - -* Sun Jul 4 21:03:42 PDT 1999 - -- temporarily removed the crypt16 stuff. I'm really paranoid about - crypto stuff and exporting it, and there are a few too many 's-box' - references in the code for my liking.. - -* Wed Jun 30 1999 Steve Langasek <vorlon@netexpress.net> -- further NIS+ fixes - -* Sun Jun 27 1999 Steve Langasek <vorlon@netexpress.net> -- fix to uid-handling code for NIS+ - -* Sat Jun 26 1999 Jan RÄ™korajski <baggins@mimuw.edu.pl> -- merged MD5 fix and early failure syslog - by Andrey Vladimirovich Savochkin <saw@msu.ru> -- minor fixes -- added signal handler to unix_chkpwd - -* Fri Jun 25 1999 Stephen Langasek <vorlon@netexpress.net> -- reorganized the code to let it build as separate C files - -* Sun Jun 20 1999 Jan RÄ™korajski <baggins@mimuw.edu.pl> -- fixes in pam_unix_auth, it incorrectly saved and restored return - value when likeauth option was used - -* Tue Jun 15 1999 Jan RÄ™korajski <baggins@mimuw.edu.pl> -- added NIS+ support - -* Mon Jun 14 1999 Jan RÄ™korajski <baggins@mimuw.edu.pl> -- total rewrite based on pam_pwdb module, now there is ONE pam_unix.so - module, it accepts the same options as pam_pwdb - all of them correctly ;) - (pam_pwdb dosn't understand what DISALLOW_NULL_AUTHTOK means) - -* Tue Apr 20 1999 Jan RÄ™korajski <baggins@mimuw.edu.pl> -- Arghhh, pam_unix_passwd was not updating /etc/shadow when used with - pam_cracklib. - -* Mon Apr 19 1999 Jan RÄ™korajski <baggins@mimuw.edu.pl> -- added "remember=XXX" option that means 'remember XXX old passwords' - Old passwords are stored in /etc/security/opasswd, there can be - maximum of 400 passwords per user. - -* Sat Mar 27 1999 Jan RÄ™korajski <baggins@mimuw.edu.pl> -- added crypt16 to pam_unix_auth and pam_unix_passwd (check only, this algorithm - is too lame to use it in real life) - -* Sun Mar 21 1999 Jan RÄ™korajski <baggins@mimuw.edu.pl> -- pam_unix_auth now correctly behave when user has NULL AUTHTOK -- pam_unix_auth returns PAM_PERM_DENIED when seteuid fails diff --git a/modules/pam_unix/Makefile.am b/modules/pam_unix/Makefile.am deleted file mode 100644 index a1dfe44e..00000000 --- a/modules/pam_unix/Makefile.am +++ /dev/null @@ -1,70 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009, 2011 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = md5.c md5_crypt.c lckpwdf.-c yppasswd_xdr.c $(XMLS) CHANGELOG - -if HAVE_DOC -dist_man_MANS = pam_unix.8 unix_chkpwd.8 unix_update.8 -endif -XMLS = README.xml pam_unix.8.xml unix_chkpwd.8.xml unix_update.8.xml -dist_check_SCRIPTS = tst-pam_unix -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -DCHKPWD_HELPER=\"$(sbindir)/unix_chkpwd\" \ - -DUPDATE_HELPER=\"$(sbindir)/unix_update\" \ - @TIRPC_CFLAGS@ @NSL_CFLAGS@ $(WARN_CFLAGS) - -pam_unix_la_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - pam_unix_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif -pam_unix_la_LIBADD = $(top_builddir)/libpam/libpam.la \ - @LIBCRYPT@ @LIBSELINUX@ @TIRPC_LIBS@ @NSL_LIBS@ - -securelib_LTLIBRARIES = pam_unix.la - -noinst_HEADERS = md5.h support.h yppasswd.h bigcrypt.h passverify.h - -sbin_PROGRAMS = unix_chkpwd unix_update - -noinst_PROGRAMS = bigcrypt - -pam_unix_la_SOURCES = bigcrypt.c pam_unix_acct.c \ - pam_unix_auth.c pam_unix_passwd.c pam_unix_sess.c support.c \ - passverify.c md5_good.c md5_broken.c -if HAVE_NIS - pam_unix_la_SOURCES += yppasswd_xdr.c -endif - -bigcrypt_SOURCES = bigcrypt.c bigcrypt_main.c -bigcrypt_CFLAGS = $(AM_CFLAGS) -bigcrypt_LDADD = @LIBCRYPT@ - -unix_chkpwd_SOURCES = unix_chkpwd.c md5_good.c md5_broken.c bigcrypt.c \ - passverify.c -unix_chkpwd_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -DHELPER_COMPILE=\"unix_chkpwd\" -unix_chkpwd_LDFLAGS = @EXE_LDFLAGS@ -unix_chkpwd_LDADD = @LIBCRYPT@ @LIBSELINUX@ @LIBAUDIT@ - -unix_update_SOURCES = unix_update.c md5_good.c md5_broken.c bigcrypt.c \ - passverify.c -unix_update_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -DHELPER_COMPILE=\"unix_update\" -unix_update_LDFLAGS = @EXE_LDFLAGS@ -unix_update_LDADD = @LIBCRYPT@ @LIBSELINUX@ - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_unix/Makefile.in b/modules/pam_unix/Makefile.in deleted file mode 100644 index 1de5b72b..00000000 --- a/modules/pam_unix/Makefile.in +++ /dev/null @@ -1,1552 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009, 2011 Thorsten Kukuk <kukuk@suse.de> -# - - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -sbin_PROGRAMS = unix_chkpwd$(EXEEXT) unix_update$(EXEEXT) -noinst_PROGRAMS = bigcrypt$(EXEEXT) -@HAVE_NIS_TRUE@am__append_2 = yppasswd_xdr.c -subdir = modules/pam_unix -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" \ - "$(DESTDIR)$(man8dir)" -PROGRAMS = $(noinst_PROGRAMS) $(sbin_PROGRAMS) -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_unix_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -am__pam_unix_la_SOURCES_DIST = bigcrypt.c pam_unix_acct.c \ - pam_unix_auth.c pam_unix_passwd.c pam_unix_sess.c support.c \ - passverify.c md5_good.c md5_broken.c yppasswd_xdr.c -@HAVE_NIS_TRUE@am__objects_1 = yppasswd_xdr.lo -am_pam_unix_la_OBJECTS = bigcrypt.lo pam_unix_acct.lo pam_unix_auth.lo \ - pam_unix_passwd.lo pam_unix_sess.lo support.lo passverify.lo \ - md5_good.lo md5_broken.lo $(am__objects_1) -pam_unix_la_OBJECTS = $(am_pam_unix_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -pam_unix_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(pam_unix_la_LDFLAGS) $(LDFLAGS) -o $@ -am_bigcrypt_OBJECTS = bigcrypt-bigcrypt.$(OBJEXT) \ - bigcrypt-bigcrypt_main.$(OBJEXT) -bigcrypt_OBJECTS = $(am_bigcrypt_OBJECTS) -bigcrypt_DEPENDENCIES = -bigcrypt_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(bigcrypt_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -am_unix_chkpwd_OBJECTS = unix_chkpwd-unix_chkpwd.$(OBJEXT) \ - unix_chkpwd-md5_good.$(OBJEXT) \ - unix_chkpwd-md5_broken.$(OBJEXT) \ - unix_chkpwd-bigcrypt.$(OBJEXT) \ - unix_chkpwd-passverify.$(OBJEXT) -unix_chkpwd_OBJECTS = $(am_unix_chkpwd_OBJECTS) -unix_chkpwd_DEPENDENCIES = -unix_chkpwd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(unix_chkpwd_CFLAGS) \ - $(CFLAGS) $(unix_chkpwd_LDFLAGS) $(LDFLAGS) -o $@ -am_unix_update_OBJECTS = unix_update-unix_update.$(OBJEXT) \ - unix_update-md5_good.$(OBJEXT) \ - unix_update-md5_broken.$(OBJEXT) \ - unix_update-bigcrypt.$(OBJEXT) \ - unix_update-passverify.$(OBJEXT) -unix_update_OBJECTS = $(am_unix_update_OBJECTS) -unix_update_DEPENDENCIES = -unix_update_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(unix_update_CFLAGS) \ - $(CFLAGS) $(unix_update_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/bigcrypt-bigcrypt.Po \ - ./$(DEPDIR)/bigcrypt-bigcrypt_main.Po ./$(DEPDIR)/bigcrypt.Plo \ - ./$(DEPDIR)/md5_broken.Plo ./$(DEPDIR)/md5_good.Plo \ - ./$(DEPDIR)/pam_unix_acct.Plo ./$(DEPDIR)/pam_unix_auth.Plo \ - ./$(DEPDIR)/pam_unix_passwd.Plo ./$(DEPDIR)/pam_unix_sess.Plo \ - ./$(DEPDIR)/passverify.Plo ./$(DEPDIR)/support.Plo \ - ./$(DEPDIR)/unix_chkpwd-bigcrypt.Po \ - ./$(DEPDIR)/unix_chkpwd-md5_broken.Po \ - ./$(DEPDIR)/unix_chkpwd-md5_good.Po \ - ./$(DEPDIR)/unix_chkpwd-passverify.Po \ - ./$(DEPDIR)/unix_chkpwd-unix_chkpwd.Po \ - ./$(DEPDIR)/unix_update-bigcrypt.Po \ - ./$(DEPDIR)/unix_update-md5_broken.Po \ - ./$(DEPDIR)/unix_update-md5_good.Po \ - ./$(DEPDIR)/unix_update-passverify.Po \ - ./$(DEPDIR)/unix_update-unix_update.Po \ - ./$(DEPDIR)/yppasswd_xdr.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(pam_unix_la_SOURCES) $(bigcrypt_SOURCES) \ - $(unix_chkpwd_SOURCES) $(unix_update_SOURCES) -DIST_SOURCES = $(am__pam_unix_la_SOURCES_DIST) $(bigcrypt_SOURCES) \ - $(unix_chkpwd_SOURCES) $(unix_update_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = md5.c md5_crypt.c lckpwdf.-c yppasswd_xdr.c $(XMLS) CHANGELOG -@HAVE_DOC_TRUE@dist_man_MANS = pam_unix.8 unix_chkpwd.8 unix_update.8 -XMLS = README.xml pam_unix.8.xml unix_chkpwd.8.xml unix_update.8.xml -dist_check_SCRIPTS = tst-pam_unix -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - -DCHKPWD_HELPER=\"$(sbindir)/unix_chkpwd\" \ - -DUPDATE_HELPER=\"$(sbindir)/unix_update\" \ - @TIRPC_CFLAGS@ @NSL_CFLAGS@ $(WARN_CFLAGS) - -pam_unix_la_LDFLAGS = -no-undefined -avoid-version -module \ - $(am__append_1) -pam_unix_la_LIBADD = $(top_builddir)/libpam/libpam.la \ - @LIBCRYPT@ @LIBSELINUX@ @TIRPC_LIBS@ @NSL_LIBS@ - -securelib_LTLIBRARIES = pam_unix.la -noinst_HEADERS = md5.h support.h yppasswd.h bigcrypt.h passverify.h -pam_unix_la_SOURCES = bigcrypt.c pam_unix_acct.c pam_unix_auth.c \ - pam_unix_passwd.c pam_unix_sess.c support.c passverify.c \ - md5_good.c md5_broken.c $(am__append_2) -bigcrypt_SOURCES = bigcrypt.c bigcrypt_main.c -bigcrypt_CFLAGS = $(AM_CFLAGS) -bigcrypt_LDADD = @LIBCRYPT@ -unix_chkpwd_SOURCES = unix_chkpwd.c md5_good.c md5_broken.c bigcrypt.c \ - passverify.c - -unix_chkpwd_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -DHELPER_COMPILE=\"unix_chkpwd\" -unix_chkpwd_LDFLAGS = @EXE_LDFLAGS@ -unix_chkpwd_LDADD = @LIBCRYPT@ @LIBSELINUX@ @LIBAUDIT@ -unix_update_SOURCES = unix_update.c md5_good.c md5_broken.c bigcrypt.c \ - passverify.c - -unix_update_CFLAGS = $(AM_CFLAGS) @EXE_CFLAGS@ -DHELPER_COMPILE=\"unix_update\" -unix_update_LDFLAGS = @EXE_LDFLAGS@ -unix_update_LDADD = @LIBCRYPT@ @LIBSELINUX@ -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_unix/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_unix/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -install-sbinPROGRAMS: $(sbin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-sbinPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(sbindir)" && rm -f $$files - -clean-sbinPROGRAMS: - @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_unix.la: $(pam_unix_la_OBJECTS) $(pam_unix_la_DEPENDENCIES) $(EXTRA_pam_unix_la_DEPENDENCIES) - $(AM_V_CCLD)$(pam_unix_la_LINK) -rpath $(securelibdir) $(pam_unix_la_OBJECTS) $(pam_unix_la_LIBADD) $(LIBS) - -bigcrypt$(EXEEXT): $(bigcrypt_OBJECTS) $(bigcrypt_DEPENDENCIES) $(EXTRA_bigcrypt_DEPENDENCIES) - @rm -f bigcrypt$(EXEEXT) - $(AM_V_CCLD)$(bigcrypt_LINK) $(bigcrypt_OBJECTS) $(bigcrypt_LDADD) $(LIBS) - -unix_chkpwd$(EXEEXT): $(unix_chkpwd_OBJECTS) $(unix_chkpwd_DEPENDENCIES) $(EXTRA_unix_chkpwd_DEPENDENCIES) - @rm -f unix_chkpwd$(EXEEXT) - $(AM_V_CCLD)$(unix_chkpwd_LINK) $(unix_chkpwd_OBJECTS) $(unix_chkpwd_LDADD) $(LIBS) - -unix_update$(EXEEXT): $(unix_update_OBJECTS) $(unix_update_DEPENDENCIES) $(EXTRA_unix_update_DEPENDENCIES) - @rm -f unix_update$(EXEEXT) - $(AM_V_CCLD)$(unix_update_LINK) $(unix_update_OBJECTS) $(unix_update_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bigcrypt-bigcrypt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bigcrypt-bigcrypt_main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bigcrypt.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5_broken.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5_good.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_unix_acct.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_unix_auth.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_unix_passwd.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_unix_sess.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/passverify.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/support.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_chkpwd-bigcrypt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_chkpwd-md5_broken.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_chkpwd-md5_good.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_chkpwd-passverify.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_chkpwd-unix_chkpwd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-bigcrypt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-md5_broken.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-md5_good.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-passverify.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix_update-unix_update.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yppasswd_xdr.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -bigcrypt-bigcrypt.o: bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bigcrypt_CFLAGS) $(CFLAGS) -MT bigcrypt-bigcrypt.o -MD -MP -MF $(DEPDIR)/bigcrypt-bigcrypt.Tpo -c -o bigcrypt-bigcrypt.o `test -f 'bigcrypt.c' || echo '$(srcdir)/'`bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bigcrypt-bigcrypt.Tpo $(DEPDIR)/bigcrypt-bigcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bigcrypt.c' object='bigcrypt-bigcrypt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bigcrypt_CFLAGS) $(CFLAGS) -c -o bigcrypt-bigcrypt.o `test -f 'bigcrypt.c' || echo '$(srcdir)/'`bigcrypt.c - -bigcrypt-bigcrypt.obj: bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bigcrypt_CFLAGS) $(CFLAGS) -MT bigcrypt-bigcrypt.obj -MD -MP -MF $(DEPDIR)/bigcrypt-bigcrypt.Tpo -c -o bigcrypt-bigcrypt.obj `if test -f 'bigcrypt.c'; then $(CYGPATH_W) 'bigcrypt.c'; else $(CYGPATH_W) '$(srcdir)/bigcrypt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bigcrypt-bigcrypt.Tpo $(DEPDIR)/bigcrypt-bigcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bigcrypt.c' object='bigcrypt-bigcrypt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bigcrypt_CFLAGS) $(CFLAGS) -c -o bigcrypt-bigcrypt.obj `if test -f 'bigcrypt.c'; then $(CYGPATH_W) 'bigcrypt.c'; else $(CYGPATH_W) '$(srcdir)/bigcrypt.c'; fi` - -bigcrypt-bigcrypt_main.o: bigcrypt_main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bigcrypt_CFLAGS) $(CFLAGS) -MT bigcrypt-bigcrypt_main.o -MD -MP -MF $(DEPDIR)/bigcrypt-bigcrypt_main.Tpo -c -o bigcrypt-bigcrypt_main.o `test -f 'bigcrypt_main.c' || echo '$(srcdir)/'`bigcrypt_main.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bigcrypt-bigcrypt_main.Tpo $(DEPDIR)/bigcrypt-bigcrypt_main.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bigcrypt_main.c' object='bigcrypt-bigcrypt_main.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bigcrypt_CFLAGS) $(CFLAGS) -c -o bigcrypt-bigcrypt_main.o `test -f 'bigcrypt_main.c' || echo '$(srcdir)/'`bigcrypt_main.c - -bigcrypt-bigcrypt_main.obj: bigcrypt_main.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bigcrypt_CFLAGS) $(CFLAGS) -MT bigcrypt-bigcrypt_main.obj -MD -MP -MF $(DEPDIR)/bigcrypt-bigcrypt_main.Tpo -c -o bigcrypt-bigcrypt_main.obj `if test -f 'bigcrypt_main.c'; then $(CYGPATH_W) 'bigcrypt_main.c'; else $(CYGPATH_W) '$(srcdir)/bigcrypt_main.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bigcrypt-bigcrypt_main.Tpo $(DEPDIR)/bigcrypt-bigcrypt_main.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bigcrypt_main.c' object='bigcrypt-bigcrypt_main.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bigcrypt_CFLAGS) $(CFLAGS) -c -o bigcrypt-bigcrypt_main.obj `if test -f 'bigcrypt_main.c'; then $(CYGPATH_W) 'bigcrypt_main.c'; else $(CYGPATH_W) '$(srcdir)/bigcrypt_main.c'; fi` - -unix_chkpwd-unix_chkpwd.o: unix_chkpwd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-unix_chkpwd.o -MD -MP -MF $(DEPDIR)/unix_chkpwd-unix_chkpwd.Tpo -c -o unix_chkpwd-unix_chkpwd.o `test -f 'unix_chkpwd.c' || echo '$(srcdir)/'`unix_chkpwd.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-unix_chkpwd.Tpo $(DEPDIR)/unix_chkpwd-unix_chkpwd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix_chkpwd.c' object='unix_chkpwd-unix_chkpwd.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-unix_chkpwd.o `test -f 'unix_chkpwd.c' || echo '$(srcdir)/'`unix_chkpwd.c - -unix_chkpwd-unix_chkpwd.obj: unix_chkpwd.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-unix_chkpwd.obj -MD -MP -MF $(DEPDIR)/unix_chkpwd-unix_chkpwd.Tpo -c -o unix_chkpwd-unix_chkpwd.obj `if test -f 'unix_chkpwd.c'; then $(CYGPATH_W) 'unix_chkpwd.c'; else $(CYGPATH_W) '$(srcdir)/unix_chkpwd.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-unix_chkpwd.Tpo $(DEPDIR)/unix_chkpwd-unix_chkpwd.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix_chkpwd.c' object='unix_chkpwd-unix_chkpwd.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-unix_chkpwd.obj `if test -f 'unix_chkpwd.c'; then $(CYGPATH_W) 'unix_chkpwd.c'; else $(CYGPATH_W) '$(srcdir)/unix_chkpwd.c'; fi` - -unix_chkpwd-md5_good.o: md5_good.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-md5_good.o -MD -MP -MF $(DEPDIR)/unix_chkpwd-md5_good.Tpo -c -o unix_chkpwd-md5_good.o `test -f 'md5_good.c' || echo '$(srcdir)/'`md5_good.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-md5_good.Tpo $(DEPDIR)/unix_chkpwd-md5_good.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5_good.c' object='unix_chkpwd-md5_good.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-md5_good.o `test -f 'md5_good.c' || echo '$(srcdir)/'`md5_good.c - -unix_chkpwd-md5_good.obj: md5_good.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-md5_good.obj -MD -MP -MF $(DEPDIR)/unix_chkpwd-md5_good.Tpo -c -o unix_chkpwd-md5_good.obj `if test -f 'md5_good.c'; then $(CYGPATH_W) 'md5_good.c'; else $(CYGPATH_W) '$(srcdir)/md5_good.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-md5_good.Tpo $(DEPDIR)/unix_chkpwd-md5_good.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5_good.c' object='unix_chkpwd-md5_good.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-md5_good.obj `if test -f 'md5_good.c'; then $(CYGPATH_W) 'md5_good.c'; else $(CYGPATH_W) '$(srcdir)/md5_good.c'; fi` - -unix_chkpwd-md5_broken.o: md5_broken.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-md5_broken.o -MD -MP -MF $(DEPDIR)/unix_chkpwd-md5_broken.Tpo -c -o unix_chkpwd-md5_broken.o `test -f 'md5_broken.c' || echo '$(srcdir)/'`md5_broken.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-md5_broken.Tpo $(DEPDIR)/unix_chkpwd-md5_broken.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5_broken.c' object='unix_chkpwd-md5_broken.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-md5_broken.o `test -f 'md5_broken.c' || echo '$(srcdir)/'`md5_broken.c - -unix_chkpwd-md5_broken.obj: md5_broken.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-md5_broken.obj -MD -MP -MF $(DEPDIR)/unix_chkpwd-md5_broken.Tpo -c -o unix_chkpwd-md5_broken.obj `if test -f 'md5_broken.c'; then $(CYGPATH_W) 'md5_broken.c'; else $(CYGPATH_W) '$(srcdir)/md5_broken.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-md5_broken.Tpo $(DEPDIR)/unix_chkpwd-md5_broken.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5_broken.c' object='unix_chkpwd-md5_broken.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-md5_broken.obj `if test -f 'md5_broken.c'; then $(CYGPATH_W) 'md5_broken.c'; else $(CYGPATH_W) '$(srcdir)/md5_broken.c'; fi` - -unix_chkpwd-bigcrypt.o: bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-bigcrypt.o -MD -MP -MF $(DEPDIR)/unix_chkpwd-bigcrypt.Tpo -c -o unix_chkpwd-bigcrypt.o `test -f 'bigcrypt.c' || echo '$(srcdir)/'`bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-bigcrypt.Tpo $(DEPDIR)/unix_chkpwd-bigcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bigcrypt.c' object='unix_chkpwd-bigcrypt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-bigcrypt.o `test -f 'bigcrypt.c' || echo '$(srcdir)/'`bigcrypt.c - -unix_chkpwd-bigcrypt.obj: bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-bigcrypt.obj -MD -MP -MF $(DEPDIR)/unix_chkpwd-bigcrypt.Tpo -c -o unix_chkpwd-bigcrypt.obj `if test -f 'bigcrypt.c'; then $(CYGPATH_W) 'bigcrypt.c'; else $(CYGPATH_W) '$(srcdir)/bigcrypt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-bigcrypt.Tpo $(DEPDIR)/unix_chkpwd-bigcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bigcrypt.c' object='unix_chkpwd-bigcrypt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-bigcrypt.obj `if test -f 'bigcrypt.c'; then $(CYGPATH_W) 'bigcrypt.c'; else $(CYGPATH_W) '$(srcdir)/bigcrypt.c'; fi` - -unix_chkpwd-passverify.o: passverify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-passverify.o -MD -MP -MF $(DEPDIR)/unix_chkpwd-passverify.Tpo -c -o unix_chkpwd-passverify.o `test -f 'passverify.c' || echo '$(srcdir)/'`passverify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-passverify.Tpo $(DEPDIR)/unix_chkpwd-passverify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='passverify.c' object='unix_chkpwd-passverify.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-passverify.o `test -f 'passverify.c' || echo '$(srcdir)/'`passverify.c - -unix_chkpwd-passverify.obj: passverify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -MT unix_chkpwd-passverify.obj -MD -MP -MF $(DEPDIR)/unix_chkpwd-passverify.Tpo -c -o unix_chkpwd-passverify.obj `if test -f 'passverify.c'; then $(CYGPATH_W) 'passverify.c'; else $(CYGPATH_W) '$(srcdir)/passverify.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_chkpwd-passverify.Tpo $(DEPDIR)/unix_chkpwd-passverify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='passverify.c' object='unix_chkpwd-passverify.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_chkpwd_CFLAGS) $(CFLAGS) -c -o unix_chkpwd-passverify.obj `if test -f 'passverify.c'; then $(CYGPATH_W) 'passverify.c'; else $(CYGPATH_W) '$(srcdir)/passverify.c'; fi` - -unix_update-unix_update.o: unix_update.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-unix_update.o -MD -MP -MF $(DEPDIR)/unix_update-unix_update.Tpo -c -o unix_update-unix_update.o `test -f 'unix_update.c' || echo '$(srcdir)/'`unix_update.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-unix_update.Tpo $(DEPDIR)/unix_update-unix_update.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix_update.c' object='unix_update-unix_update.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-unix_update.o `test -f 'unix_update.c' || echo '$(srcdir)/'`unix_update.c - -unix_update-unix_update.obj: unix_update.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-unix_update.obj -MD -MP -MF $(DEPDIR)/unix_update-unix_update.Tpo -c -o unix_update-unix_update.obj `if test -f 'unix_update.c'; then $(CYGPATH_W) 'unix_update.c'; else $(CYGPATH_W) '$(srcdir)/unix_update.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-unix_update.Tpo $(DEPDIR)/unix_update-unix_update.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix_update.c' object='unix_update-unix_update.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-unix_update.obj `if test -f 'unix_update.c'; then $(CYGPATH_W) 'unix_update.c'; else $(CYGPATH_W) '$(srcdir)/unix_update.c'; fi` - -unix_update-md5_good.o: md5_good.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-md5_good.o -MD -MP -MF $(DEPDIR)/unix_update-md5_good.Tpo -c -o unix_update-md5_good.o `test -f 'md5_good.c' || echo '$(srcdir)/'`md5_good.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-md5_good.Tpo $(DEPDIR)/unix_update-md5_good.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5_good.c' object='unix_update-md5_good.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-md5_good.o `test -f 'md5_good.c' || echo '$(srcdir)/'`md5_good.c - -unix_update-md5_good.obj: md5_good.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-md5_good.obj -MD -MP -MF $(DEPDIR)/unix_update-md5_good.Tpo -c -o unix_update-md5_good.obj `if test -f 'md5_good.c'; then $(CYGPATH_W) 'md5_good.c'; else $(CYGPATH_W) '$(srcdir)/md5_good.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-md5_good.Tpo $(DEPDIR)/unix_update-md5_good.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5_good.c' object='unix_update-md5_good.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-md5_good.obj `if test -f 'md5_good.c'; then $(CYGPATH_W) 'md5_good.c'; else $(CYGPATH_W) '$(srcdir)/md5_good.c'; fi` - -unix_update-md5_broken.o: md5_broken.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-md5_broken.o -MD -MP -MF $(DEPDIR)/unix_update-md5_broken.Tpo -c -o unix_update-md5_broken.o `test -f 'md5_broken.c' || echo '$(srcdir)/'`md5_broken.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-md5_broken.Tpo $(DEPDIR)/unix_update-md5_broken.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5_broken.c' object='unix_update-md5_broken.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-md5_broken.o `test -f 'md5_broken.c' || echo '$(srcdir)/'`md5_broken.c - -unix_update-md5_broken.obj: md5_broken.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-md5_broken.obj -MD -MP -MF $(DEPDIR)/unix_update-md5_broken.Tpo -c -o unix_update-md5_broken.obj `if test -f 'md5_broken.c'; then $(CYGPATH_W) 'md5_broken.c'; else $(CYGPATH_W) '$(srcdir)/md5_broken.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-md5_broken.Tpo $(DEPDIR)/unix_update-md5_broken.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5_broken.c' object='unix_update-md5_broken.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-md5_broken.obj `if test -f 'md5_broken.c'; then $(CYGPATH_W) 'md5_broken.c'; else $(CYGPATH_W) '$(srcdir)/md5_broken.c'; fi` - -unix_update-bigcrypt.o: bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-bigcrypt.o -MD -MP -MF $(DEPDIR)/unix_update-bigcrypt.Tpo -c -o unix_update-bigcrypt.o `test -f 'bigcrypt.c' || echo '$(srcdir)/'`bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-bigcrypt.Tpo $(DEPDIR)/unix_update-bigcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bigcrypt.c' object='unix_update-bigcrypt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-bigcrypt.o `test -f 'bigcrypt.c' || echo '$(srcdir)/'`bigcrypt.c - -unix_update-bigcrypt.obj: bigcrypt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-bigcrypt.obj -MD -MP -MF $(DEPDIR)/unix_update-bigcrypt.Tpo -c -o unix_update-bigcrypt.obj `if test -f 'bigcrypt.c'; then $(CYGPATH_W) 'bigcrypt.c'; else $(CYGPATH_W) '$(srcdir)/bigcrypt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-bigcrypt.Tpo $(DEPDIR)/unix_update-bigcrypt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bigcrypt.c' object='unix_update-bigcrypt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-bigcrypt.obj `if test -f 'bigcrypt.c'; then $(CYGPATH_W) 'bigcrypt.c'; else $(CYGPATH_W) '$(srcdir)/bigcrypt.c'; fi` - -unix_update-passverify.o: passverify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-passverify.o -MD -MP -MF $(DEPDIR)/unix_update-passverify.Tpo -c -o unix_update-passverify.o `test -f 'passverify.c' || echo '$(srcdir)/'`passverify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-passverify.Tpo $(DEPDIR)/unix_update-passverify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='passverify.c' object='unix_update-passverify.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-passverify.o `test -f 'passverify.c' || echo '$(srcdir)/'`passverify.c - -unix_update-passverify.obj: passverify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -MT unix_update-passverify.obj -MD -MP -MF $(DEPDIR)/unix_update-passverify.Tpo -c -o unix_update-passverify.obj `if test -f 'passverify.c'; then $(CYGPATH_W) 'passverify.c'; else $(CYGPATH_W) '$(srcdir)/passverify.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/unix_update-passverify.Tpo $(DEPDIR)/unix_update-passverify.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='passverify.c' object='unix_update-passverify.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(unix_update_CFLAGS) $(CFLAGS) -c -o unix_update-passverify.obj `if test -f 'passverify.c'; then $(CYGPATH_W) 'passverify.c'; else $(CYGPATH_W) '$(srcdir)/passverify.c'; fi` - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_unix.log: tst-pam_unix - @p='tst-pam_unix'; \ - b='tst-pam_unix'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(MANS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ - clean-sbinPROGRAMS clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/bigcrypt-bigcrypt.Po - -rm -f ./$(DEPDIR)/bigcrypt-bigcrypt_main.Po - -rm -f ./$(DEPDIR)/bigcrypt.Plo - -rm -f ./$(DEPDIR)/md5_broken.Plo - -rm -f ./$(DEPDIR)/md5_good.Plo - -rm -f ./$(DEPDIR)/pam_unix_acct.Plo - -rm -f ./$(DEPDIR)/pam_unix_auth.Plo - -rm -f ./$(DEPDIR)/pam_unix_passwd.Plo - -rm -f ./$(DEPDIR)/pam_unix_sess.Plo - -rm -f ./$(DEPDIR)/passverify.Plo - -rm -f ./$(DEPDIR)/support.Plo - -rm -f ./$(DEPDIR)/unix_chkpwd-bigcrypt.Po - -rm -f ./$(DEPDIR)/unix_chkpwd-md5_broken.Po - -rm -f ./$(DEPDIR)/unix_chkpwd-md5_good.Po - -rm -f ./$(DEPDIR)/unix_chkpwd-passverify.Po - -rm -f ./$(DEPDIR)/unix_chkpwd-unix_chkpwd.Po - -rm -f ./$(DEPDIR)/unix_update-bigcrypt.Po - -rm -f ./$(DEPDIR)/unix_update-md5_broken.Po - -rm -f ./$(DEPDIR)/unix_update-md5_good.Po - -rm -f ./$(DEPDIR)/unix_update-passverify.Po - -rm -f ./$(DEPDIR)/unix_update-unix_update.Po - -rm -f ./$(DEPDIR)/yppasswd_xdr.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-sbinPROGRAMS - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/bigcrypt-bigcrypt.Po - -rm -f ./$(DEPDIR)/bigcrypt-bigcrypt_main.Po - -rm -f ./$(DEPDIR)/bigcrypt.Plo - -rm -f ./$(DEPDIR)/md5_broken.Plo - -rm -f ./$(DEPDIR)/md5_good.Plo - -rm -f ./$(DEPDIR)/pam_unix_acct.Plo - -rm -f ./$(DEPDIR)/pam_unix_auth.Plo - -rm -f ./$(DEPDIR)/pam_unix_passwd.Plo - -rm -f ./$(DEPDIR)/pam_unix_sess.Plo - -rm -f ./$(DEPDIR)/passverify.Plo - -rm -f ./$(DEPDIR)/support.Plo - -rm -f ./$(DEPDIR)/unix_chkpwd-bigcrypt.Po - -rm -f ./$(DEPDIR)/unix_chkpwd-md5_broken.Po - -rm -f ./$(DEPDIR)/unix_chkpwd-md5_good.Po - -rm -f ./$(DEPDIR)/unix_chkpwd-passverify.Po - -rm -f ./$(DEPDIR)/unix_chkpwd-unix_chkpwd.Po - -rm -f ./$(DEPDIR)/unix_update-bigcrypt.Po - -rm -f ./$(DEPDIR)/unix_update-md5_broken.Po - -rm -f ./$(DEPDIR)/unix_update-md5_good.Po - -rm -f ./$(DEPDIR)/unix_update-passverify.Po - -rm -f ./$(DEPDIR)/unix_update-unix_update.Po - -rm -f ./$(DEPDIR)/yppasswd_xdr.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-sbinPROGRAMS \ - uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-noinstPROGRAMS clean-sbinPROGRAMS \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-sbinPROGRAMS \ - uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_unix/README b/modules/pam_unix/README deleted file mode 100644 index 67a2d215..00000000 --- a/modules/pam_unix/README +++ /dev/null @@ -1,206 +0,0 @@ -pam_unix — Module for traditional password authentication - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -This is the standard Unix authentication module. It uses standard calls from -the system's libraries to retrieve and set account information as well as -authentication. Usually this is obtained from the /etc/passwd and the /etc/ -shadow file as well if shadow is enabled. - -The account component performs the task of establishing the status of the -user's account and password based on the following shadow elements: expire, -last_change, max_change, min_change, warn_change. In the case of the latter, it -may offer advice to the user on changing their password or, through the -PAM_AUTHTOKEN_REQD return, delay giving service to the user until they have -established a new password. The entries listed above are documented in the -shadow(5) manual page. Should the user's record not contain one or more of -these entries, the corresponding shadow check is not performed. - -The authentication component performs the task of checking the users -credentials (password). The default action of this module is to not permit the -user access to a service if their official password is blank. - -A helper binary, unix_chkpwd(8), is provided to check the user's password when -it is stored in a read protected database. This binary is very simple and will -only check the password of the user invoking it. It is called transparently on -behalf of the user by the authenticating component of this module. In this way -it is possible for applications like xlock(1) to work without being -setuid-root. The module, by default, will temporarily turn off SIGCHLD handling -for the duration of execution of the helper binary. This is generally the right -thing to do, as many applications are not prepared to handle this signal from a -child they didn't know was fork()d. The noreap module argument can be used to -suppress this temporary shielding and may be needed for use with certain -applications. - -The maximum length of a password supported by the pam_unix module via the -helper binary is PAM_MAX_RESP_SIZE - currently 512 bytes. The rest of the -password provided by the conversation function to the module will be ignored. - -The password component of this module performs the task of updating the user's -password. The default encryption hash is taken from the ENCRYPT_METHOD variable -from /etc/login.defs - -The session component of this module logs when a user logins or leave the -system. - -Remaining arguments, supported by others functions of this module, are silently -ignored. Other arguments are logged as errors through syslog(3). - -OPTIONS - -debug - - Turns on debugging via syslog(3). - -audit - - A little more extreme than debug. - -quiet - - Turns off informational messages namely messages about session open and - close via syslog(3). - -nullok - - The default action of this module is to not permit the user access to a - service if their official password is blank. The nullok argument overrides - this default. - -nullresetok - - Allow users to authenticate with blank password if password reset is - enforced even if nullok is not set. If password reset is not required and - nullok is not set the authentication with blank password will be denied. - -try_first_pass - - Before prompting the user for their password, the module first tries the - previous stacked module's password in case that satisfies this module as - well. - -use_first_pass - - The argument use_first_pass forces the module to use a previous stacked - modules password and will never prompt the user - if no password is - available or the password is not appropriate, the user will be denied - access. - -nodelay - - This argument can be used to discourage the authentication component from - requesting a delay should the authentication as a whole fail. The default - action is for the module to request a delay-on-failure of the order of two - second. - -use_authtok - - When password changing enforce the module to set the new password to the - one provided by a previously stacked password module (this is used in the - example of the stacking of the pam_passwdqc module documented below). - -authtok_type=type - - This argument can be used to modify the password prompt when changing - passwords to include the type of the password. Empty by default. - -nis - - NIS RPC is used for setting new passwords. - -remember=n - - The last n passwords for each user are saved in /etc/security/opasswd in - order to force password change history and keep the user from alternating - between the same password too frequently. The MD5 password hash algorithm - is used for storing the old passwords. Instead of this option the - pam_pwhistory module should be used. - -shadow - - Try to maintain a shadow based system. - -md5 - - When a user changes their password next, encrypt it with the MD5 algorithm. - -bigcrypt - - When a user changes their password next, encrypt it with the DEC C2 - algorithm. - -sha256 - - When a user changes their password next, encrypt it with the SHA256 - algorithm. The SHA256 algorithm must be supported by the crypt(3) function. - -sha512 - - When a user changes their password next, encrypt it with the SHA512 - algorithm. The SHA512 algorithm must be supported by the crypt(3) function. - -blowfish - - When a user changes their password next, encrypt it with the blowfish - algorithm. The blowfish algorithm must be supported by the crypt(3) - function. - -gost_yescrypt - - When a user changes their password next, encrypt it with the gost-yescrypt - algorithm. The gost-yescrypt algorithm must be supported by the crypt(3) - function. - -yescrypt - - When a user changes their password next, encrypt it with the yescrypt - algorithm. The yescrypt algorithm must be supported by the crypt(3) - function. - -rounds=n - - Set the optional number of rounds of the SHA256, SHA512, blowfish, - gost-yescrypt, and yescrypt password hashing algorithms to n. - -broken_shadow - - Ignore errors reading shadow information for users in the account - management module. - -minlen=n - - Set a minimum password length of n characters. The max. for DES crypt based - passwords are 8 characters. - -no_pass_expiry - - When set ignore password expiration as defined by the shadow entry of the - user. The option has an effect only in case pam_unix was not used for the - authentication or it returned authentication failure meaning that other - authentication source or method succeeded. The example can be public key - authentication in sshd. The module will return PAM_SUCCESS instead of - eventual PAM_NEW_AUTHTOK_REQD or PAM_AUTHTOK_EXPIRED. - -Invalid arguments are logged with syslog(3). - -EXAMPLES - -An example usage for /etc/pam.d/login would be: - -# Authenticate the user -auth required pam_unix.so -# Ensure users account and password are still active -account required pam_unix.so -# Change the user's password, but at first check the strength -# with pam_passwdqc(8) -password required pam_passwdqc.so config=/etc/passwdqc.conf -password required pam_unix.so use_authtok nullok yescrypt -session required pam_unix.so - - -AUTHOR - -pam_unix was written by various people. - diff --git a/modules/pam_unix/audit.c b/modules/pam_unix/audit.c new file mode 100644 index 00000000..9513aaa9 --- /dev/null +++ b/modules/pam_unix/audit.c @@ -0,0 +1,44 @@ +#include "config.h" + +#ifdef HAVE_LIBAUDIT + +#include <errno.h> +#include <unistd.h> + +#include <libaudit.h> + +#include <security/_pam_types.h> + +#include "audit.h" +#include "passverify.h" + +int audit_log(int type, const char *uname, int retval) +{ + int audit_fd, rc; + + audit_fd = audit_open(); + if (audit_fd < 0) { + /* You get these error codes only when the kernel doesn't have + * audit compiled in. */ + if (errno == EINVAL || errno == EPROTONOSUPPORT || + errno == EAFNOSUPPORT) + return PAM_SUCCESS; + + helper_log_err(LOG_CRIT, "audit_open() failed: %m"); + return PAM_AUTH_ERR; + } + + + + rc = audit_log_acct_message(audit_fd, type, NULL, "PAM:" HELPER_COMPILE, + uname, -1, NULL, NULL, NULL, retval == PAM_SUCCESS); + if (rc == -EPERM && geteuid() != 0) { + rc = 0; + } + + audit_close(audit_fd); + + return rc < 0 ? PAM_AUTH_ERR : PAM_SUCCESS; +} + +#endif /* HAVE_LIBAUDIT */ diff --git a/modules/pam_unix/audit.h b/modules/pam_unix/audit.h new file mode 100644 index 00000000..321232a1 --- /dev/null +++ b/modules/pam_unix/audit.h @@ -0,0 +1,7 @@ +#ifndef PAM_UNIX_AUDIT_H +#define PAM_UNIX_AUDIT_H + +int +audit_log(int type, const char *uname, int rc); + +#endif /* PAM_UNIX_AUDIT_H */ diff --git a/modules/pam_unix/bigcrypt.c b/modules/pam_unix/bigcrypt.c index c1028668..296e01f7 100644 --- a/modules/pam_unix/bigcrypt.c +++ b/modules/pam_unix/bigcrypt.c @@ -55,7 +55,7 @@ char *bigcrypt(const char *key, const char *salt) #ifdef HAVE_CRYPT_R struct crypt_data *cdata; #endif - unsigned long int keylen, n_seg, j; + size_t keylen, n_seg, j; char *cipher_ptr, *plaintext_ptr, *tmp_ptr, *salt_ptr; char keybuf[KEYBUF_SIZE + 1] = {}; @@ -67,12 +67,11 @@ char *bigcrypt(const char *key, const char *salt) return NULL; } #ifdef HAVE_CRYPT_R - cdata = malloc(sizeof(*cdata)); + cdata = calloc(1, sizeof(*cdata)); if(!cdata) { free(dec_c2_cryptbuf); return NULL; } - cdata->initialized = 0; #endif /* fill KEYBUF_SIZE with key */ @@ -107,8 +106,10 @@ char *bigcrypt(const char *key, const char *salt) tmp_ptr = crypt(plaintext_ptr, salt); /* libc crypt() */ #endif if (tmp_ptr == NULL) { + pam_overwrite_array(keybuf); free(dec_c2_cryptbuf); #ifdef HAVE_CRYPT_R + pam_overwrite_object(cdata); free(cdata); #endif return NULL; @@ -136,6 +137,7 @@ char *bigcrypt(const char *key, const char *salt) tmp_ptr = crypt(plaintext_ptr, salt_ptr); #endif if (tmp_ptr == NULL) { + pam_overwrite_array(keybuf); pam_overwrite_string(dec_c2_cryptbuf); free(dec_c2_cryptbuf); #ifdef HAVE_CRYPT_R @@ -156,6 +158,7 @@ char *bigcrypt(const char *key, const char *salt) } D(("key=|%s|, salt=|%s|\nbuf=|%s|\n", key, salt, dec_c2_cryptbuf)); + pam_overwrite_array(keybuf); #ifdef HAVE_CRYPT_R pam_overwrite_object(cdata); free(cdata); diff --git a/modules/pam_unix/bigcrypt_main.c b/modules/pam_unix/bigcrypt_main.c index fab212d9..22d325da 100644 --- a/modules/pam_unix/bigcrypt_main.c +++ b/modules/pam_unix/bigcrypt_main.c @@ -1,3 +1,5 @@ +#include "config.h" + #include <stdio.h> #include <string.h> diff --git a/modules/pam_unix/lckpwdf.-c b/modules/pam_unix/lckpwdf.-c index c3e63155..4d0f0ad3 100644 --- a/modules/pam_unix/lckpwdf.-c +++ b/modules/pam_unix/lckpwdf.-c @@ -35,15 +35,6 @@ static int lockfd = -1; -static int set_close_on_exec(int fd) -{ - int flags = fcntl(fd, F_GETFD, 0); - if (flags == -1) - return -1; - flags |= FD_CLOEXEC; - return fcntl(fd, F_SETFD, flags); -} - static int do_lock(int fd) { struct flock fl; @@ -70,7 +61,7 @@ static int lckpwdf(void) #ifdef WITH_SELINUX if(is_selinux_enabled()>0) { - lockfd = open(LOCKFILE, O_WRONLY); + lockfd = open(LOCKFILE, O_WRONLY | O_CLOEXEC); if(lockfd == -1 && errno == ENOENT) { char *create_context_raw; @@ -82,18 +73,16 @@ static int lckpwdf(void) freecon(create_context_raw); if(rc) return -1; - lockfd = open(LOCKFILE, O_CREAT | O_WRONLY, 0600); + lockfd = open(LOCKFILE, O_CREAT | O_WRONLY | O_CLOEXEC, 0600); if(setfscreatecon_raw(NULL)) return -1; } } else #endif - lockfd = open(LOCKFILE, O_CREAT | O_WRONLY, 0600); + lockfd = open(LOCKFILE, O_CREAT | O_WRONLY | O_CLOEXEC, 0600); if (lockfd == -1) return -1; - if (set_close_on_exec(lockfd) == -1) - goto cleanup_fd; memset(&act, 0, sizeof act); act.sa_handler = alarm_catch; diff --git a/modules/pam_unix/md5.c b/modules/pam_unix/md5.c index 95b8de4c..78e9af27 100644 --- a/modules/pam_unix/md5.c +++ b/modules/pam_unix/md5.c @@ -18,11 +18,11 @@ * */ +#include "pam_inline.h" + #include <string.h> #include "md5.h" -#include "pam_inline.h" - #ifndef HIGHFIRST #define byteReverse(buf, len) /* Nothing */ #else diff --git a/modules/pam_unix/md5_crypt.c b/modules/pam_unix/md5_crypt.c index ed5ecda4..9451f376 100644 --- a/modules/pam_unix/md5_crypt.c +++ b/modules/pam_unix/md5_crypt.c @@ -12,12 +12,13 @@ * */ +#include "pam_inline.h" #include <string.h> +#include <stdio.h> #include <stdlib.h> #include "md5.h" -#include "pam_inline.h" -static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */ +static const unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */ "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; static void to64(char *s, unsigned long v, int n) @@ -38,9 +39,10 @@ char *MD5Name(crypt_md5)(const char *pw, const char *salt) { const char *magic = "$1$"; /* This string is magic for this algorithm. Having - * it this way, we can get get better later on */ + * it this way, we can get better later on */ char *passwd, *p; const char *sp, *ep; + char buf[23]; unsigned char final[16]; int sl, pl, i, j; MD5_CTX ctx, ctx1; @@ -49,12 +51,6 @@ char *MD5Name(crypt_md5)(const char *pw, const char *salt) /* Refine the Salt first */ sp = salt; - /* TODO: now that we're using malloc'ed memory, get rid of the - strange constant buffer size. */ - passwd = malloc(120); - if (passwd == NULL) - return NULL; - /* If it starts with the magic string, then skip that */ if ((ep = pam_str_skip_prefix_len(sp, magic, strlen(magic))) != NULL) sp = ep; @@ -96,11 +92,6 @@ char *MD5Name(crypt_md5)(const char *pw, const char *salt) else MD5Name(MD5Update)(&ctx, (unsigned const char *)pw+j, 1); - /* Now make the output string */ - strcpy(passwd, magic); - strncat(passwd, sp, sl); - strcat(passwd, "$"); - MD5Name(MD5Final)(final,&ctx); /* @@ -128,7 +119,7 @@ char *MD5Name(crypt_md5)(const char *pw, const char *salt) MD5Name(MD5Final)(final,&ctx1); } - p = passwd + strlen(passwd); + p = buf; l = (final[0] << 16) | (final[6] << 8) | final[12]; to64(p, l, 4); @@ -150,7 +141,12 @@ char *MD5Name(crypt_md5)(const char *pw, const char *salt) p += 2; *p = '\0'; + /* Now make the output string */ + if (asprintf(&passwd, "%s%.*s$%s", magic, sl, sp, buf) < 0) + passwd = NULL; + /* Don't leave anything around in vm they could use. */ + pam_overwrite_array(buf); pam_overwrite_array(final); return passwd; diff --git a/modules/pam_unix/meson.build b/modules/pam_unix/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_unix/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_unix/pam_unix.8 b/modules/pam_unix/pam_unix.8 deleted file mode 100644 index 438717f9..00000000 --- a/modules/pam_unix/pam_unix.8 +++ /dev/null @@ -1,285 +0,0 @@ -'\" t -.\" Title: pam_unix -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_UNIX" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_unix \- Module for traditional password authentication -.SH "SYNOPSIS" -.HP \w'\fBpam_unix\&.so\fR\ 'u -\fBpam_unix\&.so\fR [\&.\&.\&.] -.SH "DESCRIPTION" -.PP -This is the standard Unix authentication module\&. It uses standard calls from the system\*(Aqs libraries to retrieve and set account information as well as authentication\&. Usually this is obtained from the /etc/passwd and the /etc/shadow file as well if shadow is enabled\&. -.PP -The account component performs the task of establishing the status of the user\*(Aqs account and password based on the following -\fIshadow\fR -elements: expire, last_change, max_change, min_change, warn_change\&. In the case of the latter, it may offer advice to the user on changing their password or, through the -\fBPAM_AUTHTOKEN_REQD\fR -return, delay giving service to the user until they have established a new password\&. The entries listed above are documented in the -\fBshadow\fR(5) -manual page\&. Should the user\*(Aqs record not contain one or more of these entries, the corresponding -\fIshadow\fR -check is not performed\&. -.PP -The authentication component performs the task of checking the users credentials (password)\&. The default action of this module is to not permit the user access to a service if their official password is blank\&. -.PP -A helper binary, -\fBunix_chkpwd\fR(8), is provided to check the user\*(Aqs password when it is stored in a read protected database\&. This binary is very simple and will only check the password of the user invoking it\&. It is called transparently on behalf of the user by the authenticating component of this module\&. In this way it is possible for applications like -\fBxlock\fR(1) -to work without being setuid\-root\&. The module, by default, will temporarily turn off SIGCHLD handling for the duration of execution of the helper binary\&. This is generally the right thing to do, as many applications are not prepared to handle this signal from a child they didn\*(Aqt know was -\fBfork()\fRd\&. The -\fBnoreap\fR -module argument can be used to suppress this temporary shielding and may be needed for use with certain applications\&. -.PP -The maximum length of a password supported by the pam_unix module via the helper binary is -\fIPAM_MAX_RESP_SIZE\fR -\- currently 512 bytes\&. The rest of the password provided by the conversation function to the module will be ignored\&. -.PP -The password component of this module performs the task of updating the user\*(Aqs password\&. The default encryption hash is taken from the -\fBENCRYPT_METHOD\fR -variable from -\fI/etc/login\&.defs\fR -.PP -The session component of this module logs when a user logins or leave the system\&. -.PP -Remaining arguments, supported by others functions of this module, are silently ignored\&. Other arguments are logged as errors through -\fBsyslog\fR(3)\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Turns on debugging via -\fBsyslog\fR(3)\&. -.RE -.PP -audit -.RS 4 -A little more extreme than debug\&. -.RE -.PP -quiet -.RS 4 -Turns off informational messages namely messages about session open and close via -\fBsyslog\fR(3)\&. -.RE -.PP -nullok -.RS 4 -The default action of this module is to not permit the user access to a service if their official password is blank\&. The -\fBnullok\fR -argument overrides this default\&. -.RE -.PP -nullresetok -.RS 4 -Allow users to authenticate with blank password if password reset is enforced even if -\fBnullok\fR -is not set\&. If password reset is not required and -\fBnullok\fR -is not set the authentication with blank password will be denied\&. -.RE -.PP -try_first_pass -.RS 4 -Before prompting the user for their password, the module first tries the previous stacked module\*(Aqs password in case that satisfies this module as well\&. -.RE -.PP -use_first_pass -.RS 4 -The argument -\fBuse_first_pass\fR -forces the module to use a previous stacked modules password and will never prompt the user \- if no password is available or the password is not appropriate, the user will be denied access\&. -.RE -.PP -nodelay -.RS 4 -This argument can be used to discourage the authentication component from requesting a delay should the authentication as a whole fail\&. The default action is for the module to request a delay\-on\-failure of the order of two second\&. -.RE -.PP -use_authtok -.RS 4 -When password changing enforce the module to set the new password to the one provided by a previously stacked -\fBpassword\fR -module (this is used in the example of the stacking of the -\fBpam_passwdqc\fR -module documented below)\&. -.RE -.PP -authtok_type=type -.RS 4 -This argument can be used to modify the password prompt when changing passwords to include the type of the password\&. Empty by default\&. -.RE -.PP -nis -.RS 4 -NIS RPC is used for setting new passwords\&. -.RE -.PP -remember=n -.RS 4 -The last -\fIn\fR -passwords for each user are saved in -/etc/security/opasswd -in order to force password change history and keep the user from alternating between the same password too frequently\&. The MD5 password hash algorithm is used for storing the old passwords\&. Instead of this option the -\fBpam_pwhistory\fR -module should be used\&. -.RE -.PP -shadow -.RS 4 -Try to maintain a shadow based system\&. -.RE -.PP -md5 -.RS 4 -When a user changes their password next, encrypt it with the MD5 algorithm\&. -.RE -.PP -bigcrypt -.RS 4 -When a user changes their password next, encrypt it with the DEC C2 algorithm\&. -.RE -.PP -sha256 -.RS 4 -When a user changes their password next, encrypt it with the SHA256 algorithm\&. The SHA256 algorithm must be supported by the -\fBcrypt\fR(3) -function\&. -.RE -.PP -sha512 -.RS 4 -When a user changes their password next, encrypt it with the SHA512 algorithm\&. The SHA512 algorithm must be supported by the -\fBcrypt\fR(3) -function\&. -.RE -.PP -blowfish -.RS 4 -When a user changes their password next, encrypt it with the blowfish algorithm\&. The blowfish algorithm must be supported by the -\fBcrypt\fR(3) -function\&. -.RE -.PP -gost_yescrypt -.RS 4 -When a user changes their password next, encrypt it with the gost\-yescrypt algorithm\&. The gost\-yescrypt algorithm must be supported by the -\fBcrypt\fR(3) -function\&. -.RE -.PP -yescrypt -.RS 4 -When a user changes their password next, encrypt it with the yescrypt algorithm\&. The yescrypt algorithm must be supported by the -\fBcrypt\fR(3) -function\&. -.RE -.PP -rounds=n -.RS 4 -Set the optional number of rounds of the SHA256, SHA512, blowfish, gost\-yescrypt, and yescrypt password hashing algorithms to -\fIn\fR\&. -.RE -.PP -broken_shadow -.RS 4 -Ignore errors reading shadow information for users in the account management module\&. -.RE -.PP -minlen=n -.RS 4 -Set a minimum password length of -\fIn\fR -characters\&. The max\&. for DES crypt based passwords are 8 characters\&. -.RE -.PP -no_pass_expiry -.RS 4 -When set ignore password expiration as defined by the -\fIshadow\fR -entry of the user\&. The option has an effect only in case -\fIpam_unix\fR -was not used for the authentication or it returned authentication failure meaning that other authentication source or method succeeded\&. The example can be public key authentication in -\fIsshd\fR\&. The module will return -\fBPAM_SUCCESS\fR -instead of eventual -\fBPAM_NEW_AUTHTOK_REQD\fR -or -\fBPAM_AUTHTOK_EXPIRED\fR\&. -.RE -.PP -Invalid arguments are logged with -\fBsyslog\fR(3)\&. -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBaccount\fR, -\fBauth\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -PAM_IGNORE -.RS 4 -Ignore this module\&. -.RE -.SH "EXAMPLES" -.PP -An example usage for -/etc/pam\&.d/login -would be: -.sp -.if n \{\ -.RS 4 -.\} -.nf -# Authenticate the user -auth required pam_unix\&.so -# Ensure users account and password are still active -account required pam_unix\&.so -# Change the user\*(Aqs password, but at first check the strength -# with pam_passwdqc(8) -password required pam_passwdqc\&.so config=/etc/passwdqc\&.conf -password required pam_unix\&.so use_authtok nullok yescrypt -session required pam_unix\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBlogin.defs\fR(5), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_unix was written by various people\&. diff --git a/modules/pam_unix/pam_unix.8.xml b/modules/pam_unix/pam_unix.8.xml index dfc04274..d2cd198f 100644 --- a/modules/pam_unix/pam_unix.8.xml +++ b/modules/pam_unix/pam_unix.8.xml @@ -207,7 +207,7 @@ This argument can be used to discourage the authentication component from requesting a delay should the authentication as a whole fail. The default action is for the module to - request a delay-on-failure of the order of two second. + request a delay-on-failure of the order of two seconds. </para> </listitem> </varlistentry> @@ -397,7 +397,7 @@ <listitem> <para> Set a minimum password length of <replaceable>n</replaceable> - characters. The max. for DES crypt based passwords are 8 + characters. The max. for DES crypt based passwords is 8 characters. </para> </listitem> @@ -459,7 +459,7 @@ <programlisting> # Authenticate the user auth required pam_unix.so -# Ensure users account and password are still active +# Ensure user's account and password are still active account required pam_unix.so # Change the user's password, but at first check the strength # with pam_passwdqc(8) diff --git a/modules/pam_unix/pam_unix_acct.c b/modules/pam_unix/pam_unix_acct.c index 8f5ed3e0..befd3c99 100644 --- a/modules/pam_unix/pam_unix_acct.c +++ b/modules/pam_unix/pam_unix_acct.c @@ -57,6 +57,7 @@ #include <security/pam_ext.h> #include <security/pam_modutil.h> +#include "pam_i18n.h" #include "pam_cc_compat.h" #include "support.h" #include "passverify.h" @@ -110,14 +111,15 @@ int _unix_run_verify_binary(pam_handle_t *pamh, unsigned long long ctrl, _exit(PAM_AUTHINFO_UNAVAIL); } - if (geteuid() == 0) { - /* must set the real uid to 0 so the helper will not error - out if pam is called from setuid binary (su, sudo...) */ - if (setuid(0) == -1) { - pam_syslog(pamh, LOG_ERR, "setuid failed: %m"); - printf("-1\n"); - fflush(stdout); - _exit(PAM_AUTHINFO_UNAVAIL); + /* must set the real uid to 0 so the helper will not error + out if pam is called from setuid binary (su, sudo...) */ + if (setuid(0) == -1) { + uid_t euid = geteuid(); + pam_syslog(pamh, euid == 0 ? LOG_ERR : LOG_DEBUG, "setuid failed: %m"); + if (euid == 0) { + printf("-1\n"); + fflush(stdout); + _exit(PAM_AUTHINFO_UNAVAIL); } } diff --git a/modules/pam_unix/pam_unix_auth.c b/modules/pam_unix/pam_unix_auth.c index 4eccff8e..ffb61547 100644 --- a/modules/pam_unix/pam_unix_auth.c +++ b/modules/pam_unix/pam_unix_auth.c @@ -86,8 +86,7 @@ do { \ static void setcred_free (pam_handle_t *pamh UNUSED, void *ptr, int err UNUSED) { - if (ptr) - free (ptr); + free (ptr); } int @@ -119,7 +118,7 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) /* * Various libraries at various times have had bugs related to * '+' or '-' as the first character of a user name. Don't - * allow this characters here. + * allow these characters here. */ if (name[0] == '-' || name[0] == '+') { pam_syslog(pamh, LOG_NOTICE, "bad username [%s]", name); diff --git a/modules/pam_unix/pam_unix_passwd.c b/modules/pam_unix/pam_unix_passwd.c index c3417413..4a3784a5 100644 --- a/modules/pam_unix/pam_unix_passwd.c +++ b/modules/pam_unix/pam_unix_passwd.c @@ -67,6 +67,7 @@ #include <security/pam_modutil.h> #include "pam_inline.h" +#include "pam_i18n.h" #include "pam_cc_compat.h" #include "md5.h" #include "support.h" @@ -286,7 +287,7 @@ static int _unix_run_update_binary(pam_handle_t *pamh, unsigned long long ctrl, DIAG_POP_IGNORE_CAST_QUAL; /* should not get here: exit with error */ - D(("helper binary is not available")); + pam_syslog(pamh, LOG_ERR, "failed to execute %s: %m", UPDATE_HELPER); _exit(PAM_AUTHINFO_UNAVAIL); } else if (child > 0) { /* wait for child */ @@ -339,25 +340,25 @@ static int _unix_run_update_binary(pam_handle_t *pamh, unsigned long long ctrl, static int check_old_password(const char *forwho, const char *newpass) { - static char buf[16384]; + char *buf = NULL; char *s_pas; int retval = PAM_SUCCESS; FILE *opwfile; + size_t n = 0; size_t len = strlen(forwho); - opwfile = fopen(OLD_PASSWORDS_FILE, "r"); + opwfile = fopen(OLD_PASSWORDS_FILE, "re"); if (opwfile == NULL) return PAM_ABORT; - while (fgets(buf, 16380, opwfile)) { - if (!strncmp(buf, forwho, len) && (buf[len] == ':' || - buf[len] == ',')) { + for (; getline(&buf, &n, opwfile) != -1; pam_overwrite_n(buf, n)) { + if (!strncmp(buf, forwho, len) && buf[len] == ':') { char *sptr; buf[strlen(buf) - 1] = '\0'; - /* s_luser = */ strtok_r(buf, ":,", &sptr); - /* s_uid = */ strtok_r(NULL, ":,", &sptr); - /* s_npas = */ strtok_r(NULL, ":,", &sptr); - s_pas = strtok_r(NULL, ":,", &sptr); + /* s_luser = */ strtok_r(buf, ":", &sptr); + /* s_uid = */ strtok_r(NULL, ":", &sptr); + /* s_npas = */ strtok_r(NULL, ":", &sptr); + s_pas = strtok_r(NULL, ",", &sptr); while (s_pas != NULL) { char *md5pass = Goodcrypt_md5(newpass, s_pas); if (md5pass == NULL || !strcmp(md5pass, s_pas)) { @@ -365,12 +366,14 @@ static int check_old_password(const char *forwho, const char *newpass) retval = PAM_AUTHTOK_ERR; break; } - s_pas = strtok_r(NULL, ":,", &sptr); + s_pas = strtok_r(NULL, ",", &sptr); _pam_delete(md5pass); } break; } } + pam_overwrite_n(buf, n); + free(buf); fclose(opwfile); return retval; @@ -572,9 +575,10 @@ static int _pam_unix_approve_pass(pam_handle_t * pamh remark = _("You must choose a shorter password."); D(("length exceeded [%s]", remark)); } else if (off(UNIX__IAMROOT, ctrl)) { - if ((int)strlen(pass_new) < pass_min_len) + if ((int)strlen(pass_new) < pass_min_len) { remark = _("You must choose a longer password."); - D(("length check [%s]", remark)); + D(("length check [%s]", remark)); + } if (on(UNIX_REMEMBER_PASSWD, ctrl)) { if ((retval = check_old_password(user, pass_new)) == PAM_AUTHTOK_ERR) remark = _("Password has been already used. Choose another."); @@ -600,6 +604,7 @@ pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const char **argv) int remember = -1; int rounds = 0; int pass_min_len = 0; + struct passwd *pwd; /* <DO NOT free() THESE> */ const char *user; @@ -645,20 +650,16 @@ pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const char **argv) * getpwnam() doesn't tell you *where* the information it gives you * came from, nor should it. That's our job. */ - if (_unix_comesfromsource(pamh, user, 1, on(UNIX_NIS, ctrl)) == 0) { + if (_unix_getpwnam(pamh, user, 1, on(UNIX_NIS, ctrl), &pwd) == 0) { pam_syslog(pamh, LOG_DEBUG, "user \"%s\" does not exist in /etc/passwd%s", user, on(UNIX_NIS, ctrl) ? " or NIS" : ""); return PAM_USER_UNKNOWN; - } else { - struct passwd *pwd; - _unix_getpwnam(pamh, user, 1, 1, &pwd); - if (pwd == NULL) { - pam_syslog(pamh, LOG_DEBUG, - "user \"%s\" has corrupted passwd entry", - user); - return PAM_USER_UNKNOWN; - } + } else if (pwd == NULL) { + pam_syslog(pamh, LOG_DEBUG, + "user \"%s\" has corrupted passwd entry", + user); + return PAM_USER_UNKNOWN; } /* @@ -697,7 +698,7 @@ pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const char **argv) } else { D(("process run by root so do nothing this time around")); pass_old = NULL; - retval = PAM_SUCCESS; /* root doesn't have too */ + retval = PAM_SUCCESS; /* root doesn't have to */ } if (retval != PAM_SUCCESS) { @@ -779,7 +780,7 @@ pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const char **argv) * password is acceptable. */ - if (*(const char *)pass_new == '\0') { /* "\0" password = NULL */ + if (*pass_new == '\0') { /* "\0" password = NULL */ pass_new = NULL; } retval = _pam_unix_approve_pass(pamh, ctrl, pass_old, diff --git a/modules/pam_unix/pam_unix_sess.c b/modules/pam_unix/pam_unix_sess.c index 3f6a8fb3..3534948e 100644 --- a/modules/pam_unix/pam_unix_sess.c +++ b/modules/pam_unix/pam_unix_sess.c @@ -62,7 +62,7 @@ int pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv) { - char *user_name, *service; + const char *user_name, *service; unsigned long long ctrl; int retval; const char *login_name; @@ -71,14 +71,14 @@ pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv) ctrl = _set_ctrl(pamh, flags, NULL, NULL, NULL, argc, argv); - retval = pam_get_item(pamh, PAM_USER, (void *) &user_name); + retval = pam_get_item(pamh, PAM_USER, (const void **) &user_name); if (user_name == NULL || *user_name == '\0' || retval != PAM_SUCCESS) { pam_syslog(pamh, LOG_ERR, "open_session - error recovering username"); return PAM_SESSION_ERR; /* How did we get authenticated with no username?! */ } - retval = pam_get_item(pamh, PAM_SERVICE, (void *) &service); + retval = pam_get_item(pamh, PAM_SERVICE, (const void **) &service); if (service == NULL || *service == '\0' || retval != PAM_SUCCESS) { pam_syslog(pamh, LOG_CRIT, "open_session - error recovering service"); @@ -105,7 +105,7 @@ pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv) int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, const char **argv) { - char *user_name, *service; + const char *user_name, *service; unsigned long long ctrl; int retval; @@ -113,14 +113,14 @@ pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, const char **argv) ctrl = _set_ctrl(pamh, flags, NULL, NULL, NULL, argc, argv); - retval = pam_get_item(pamh, PAM_USER, (void *) &user_name); + retval = pam_get_item(pamh, PAM_USER, (const void **) &user_name); if (user_name == NULL || *user_name == '\0' || retval != PAM_SUCCESS) { pam_syslog(pamh, LOG_ERR, "close_session - error recovering username"); return PAM_SESSION_ERR; /* How did we get authenticated with no username?! */ } - retval = pam_get_item(pamh, PAM_SERVICE, (void *) &service); + retval = pam_get_item(pamh, PAM_SERVICE, (const void **) &service); if (service == NULL || *service == '\0' || retval != PAM_SUCCESS) { pam_syslog(pamh, LOG_CRIT, "close_session - error recovering service"); diff --git a/modules/pam_unix/passverify.c b/modules/pam_unix/passverify.c index 81b10d88..e8d0b91d 100644 --- a/modules/pam_unix/passverify.c +++ b/modules/pam_unix/passverify.c @@ -5,6 +5,7 @@ #include <security/_pam_macros.h> #include <security/pam_modules.h> #include "support.h" +#include <limits.h> #include <stdio.h> #include <string.h> #include <sys/types.h> @@ -52,7 +53,7 @@ static void strip_hpux_aging(char *hash) { - static const char valid[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + static const char *const valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789./"; if ((*hash != '$') && (strlen(hash) > 13)) { @@ -75,9 +76,13 @@ PAMH_ARG_DECL(int verify_pwd_hash, strip_hpux_aging(hash); hash_len = strlen(hash); - if (!hash_len) { + + if (p && p[0] == '\0' && !nullok) { + /* The passed password is empty */ + retval = PAM_AUTH_ERR; + } else if (!hash_len) { /* the stored password is NULL */ - if (nullok) { /* this means we've succeeded */ + if (p && p[0] == '\0' && nullok) { /* this means we've succeeded */ D(("user has empty password - access granted")); retval = PAM_SUCCESS; } else { @@ -89,7 +94,7 @@ PAMH_ARG_DECL(int verify_pwd_hash, } else { if (pam_str_skip_prefix(hash, "$1$") != NULL) { pp = Goodcrypt_md5(p, hash); - if (pp && strcmp(pp, hash) != 0) { + if (pp && !pam_consttime_streq(pp, hash)) { _pam_delete(pp); pp = Brokencrypt_md5(p, hash); } @@ -143,9 +148,8 @@ PAMH_ARG_DECL(int verify_pwd_hash, #endif #ifdef HAVE_CRYPT_R struct crypt_data *cdata; - cdata = malloc(sizeof(*cdata)); + cdata = calloc(1, sizeof(*cdata)); if (cdata != NULL) { - cdata->initialized = 0; pp = x_strdup(crypt_r(p, hash, cdata)); pam_overwrite_object(cdata); free(cdata); @@ -157,9 +161,9 @@ PAMH_ARG_DECL(int verify_pwd_hash, p = NULL; /* no longer needed here */ /* the moment of truth -- do we agree with the password? */ - D(("comparing state of pp[%s] and hash[%s]", pp, hash)); + D(("comparing state of pp[%s] and hash[%s]", pp ? pp : "(null)", hash)); - if (pp && strcmp(pp, hash) == 0) { + if (pp && pam_consttime_streq(pp, hash)) { retval = PAM_SUCCESS; } else { retval = PAM_AUTH_ERR; @@ -237,20 +241,21 @@ PAMH_ARG_DECL(int get_account_info, return PAM_UNIX_RUN_HELPER; #endif } else if (is_pwd_shadowed(*pwd)) { +#ifdef HELPER_COMPILE /* - * ...and shadow password file entry for this user, + * shadow password file entry for this user, * if shadowing is enabled */ - *spwdent = pam_modutil_getspnam(pamh, name); - if (*spwdent == NULL) { -#ifndef HELPER_COMPILE - /* still a chance the user can authenticate */ - return PAM_UNIX_RUN_HELPER; -#endif - return PAM_AUTHINFO_UNAVAIL; - } - if ((*spwdent)->sp_pwdp == NULL) + *spwdent = getspnam(name); + if (*spwdent == NULL || (*spwdent)->sp_pwdp == NULL) return PAM_AUTHINFO_UNAVAIL; +#else + /* + * The helper has to be invoked to deal with + * the shadow password file entry. + */ + return PAM_UNIX_RUN_HELPER; +#endif } } else { return PAM_USER_UNKNOWN; @@ -279,14 +284,29 @@ PAMH_ARG_DECL(int get_pwd_hash, return PAM_SUCCESS; } +/* + * invariant: 0 <= num1 + * invariant: 0 <= num2 + */ +static int +subtract(long num1, long num2) +{ + long value = num1 - num2; + if (value < INT_MIN) + return INT_MIN; + if (value > INT_MAX) + return INT_MAX; + return (int)value; +} + PAMH_ARG_DECL(int check_shadow_expiry, struct spwd *spent, int *daysleft) { - long int curdays; + long int curdays, passed; *daysleft = -1; curdays = (long int)(time(NULL) / (60 * 60 * 24)); - D(("today is %d, last change %d", curdays, spent->sp_lstchg)); - if ((curdays >= spent->sp_expire) && (spent->sp_expire != -1)) { + D(("today is %ld, last change %ld", curdays, spent->sp_lstchg)); + if (spent->sp_expire >= 0 && curdays >= spent->sp_expire) { D(("account expired")); return PAM_ACCT_EXPIRED; } @@ -295,31 +315,41 @@ PAMH_ARG_DECL(int check_shadow_expiry, *daysleft = 0; return PAM_NEW_AUTHTOK_REQD; } + if (spent->sp_lstchg < 0) { + D(("password aging disabled")); + return PAM_SUCCESS; + } if (curdays < spent->sp_lstchg) { pam_syslog(pamh, LOG_DEBUG, "account %s has password changed in future", spent->sp_namp); return PAM_SUCCESS; } - if ((curdays - spent->sp_lstchg > spent->sp_max) - && (curdays - spent->sp_lstchg > spent->sp_inact) - && (curdays - spent->sp_lstchg > spent->sp_max + spent->sp_inact) - && (spent->sp_max != -1) && (spent->sp_inact != -1)) { - *daysleft = (int)((spent->sp_lstchg + spent->sp_max) - curdays); - D(("authtok expired")); - return PAM_AUTHTOK_EXPIRED; - } - if ((curdays - spent->sp_lstchg > spent->sp_max) && (spent->sp_max != -1)) { - D(("need a new password 2")); - return PAM_NEW_AUTHTOK_REQD; - } - if ((curdays - spent->sp_lstchg > spent->sp_max - spent->sp_warn) - && (spent->sp_max != -1) && (spent->sp_warn != -1)) { - *daysleft = (int)((spent->sp_lstchg + spent->sp_max) - curdays); - D(("warn before expiry")); + passed = curdays - spent->sp_lstchg; + if (spent->sp_max >= 0) { + if (spent->sp_inact >= 0) { + long inact = spent->sp_max < LONG_MAX - spent->sp_inact ? + spent->sp_max + spent->sp_inact : LONG_MAX; + if (passed >= inact) { + *daysleft = subtract(inact, passed); + D(("authtok expired")); + return PAM_AUTHTOK_EXPIRED; + } + } + if (passed >= spent->sp_max) { + D(("need a new password 2")); + return PAM_NEW_AUTHTOK_REQD; + } + if (spent->sp_warn > 0) { + long warn = spent->sp_warn > spent->sp_max ? -1 : + spent->sp_max - spent->sp_warn; + if (passed >= warn) { + *daysleft = subtract(spent->sp_max, passed); + D(("warn before expiry")); + } + } } - if ((curdays - spent->sp_lstchg < spent->sp_min) - && (spent->sp_min != -1)) { + if (spent->sp_min > 0 && passed < spent->sp_min) { /* * The last password change was too recent. This error will be ignored * if no password change is attempted. @@ -334,7 +364,7 @@ PAMH_ARG_DECL(int check_shadow_expiry, #define PW_TMPFILE "/etc/npasswd" #define SH_TMPFILE "/etc/nshadow" -#define OPW_TMPFILE SCONFIGDIR "/nopasswd" +#define OPW_TMPFILE SCONFIG_DIR "/nopasswd" /* * i64c - convert an integer to a radix 64 character @@ -372,7 +402,7 @@ crypt_make_salt(char *where, int length) int fd; int rv; - if ((rv = fd = open(PAM_PATH_RANDOMDEV, O_RDONLY)) != -1) { + if ((rv = fd = open(PAM_PATH_RANDOMDEV, O_RDONLY | O_CLOEXEC)) != -1) { while ((rv = read(fd, where, length)) != length && errno == EINTR); close (fd); } @@ -476,9 +506,8 @@ PAMH_ARG_DECL(char * create_password_hash, #endif /* CRYPT_GENSALT_IMPLEMENTS_AUTO_ENTROPY */ #ifdef HAVE_CRYPT_R sp = NULL; - cdata = malloc(sizeof(*cdata)); + cdata = calloc(1, sizeof(*cdata)); if (cdata != NULL) { - cdata->initialized = 0; sp = crypt_r(password, salt, cdata); } #else @@ -529,7 +558,7 @@ unix_selinux_confined(void) } /* let's try opening shadow read only */ - if ((fd=open("/etc/shadow", O_RDONLY)) != -1) { + if ((fd=open("/etc/shadow", O_RDONLY | O_CLOEXEC)) != -1) { close(fd); confined = 0; return confined; @@ -624,16 +653,16 @@ save_old_password(pam_handle_t *pamh, const char *forwho, const char *oldpass, int howmany) #endif { - static char buf[16384]; - static char nbuf[16384]; + char *buf = NULL; char *s_luser, *s_uid, *s_npas, *s_pas, *pass; int npas; FILE *pwfile, *opwfile; int err = 0; - int oldmask; + mode_t oldmask; int found = 0; struct passwd *pwd = NULL; struct stat st; + size_t bufsize = 0; size_t len = strlen(forwho); #ifdef WITH_SELINUX char *prev_context_raw = NULL; @@ -667,14 +696,14 @@ save_old_password(pam_handle_t *pamh, const char *forwho, const char *oldpass, freecon(passwd_context_raw); } #endif - pwfile = fopen(OPW_TMPFILE, "w"); + pwfile = fopen(OPW_TMPFILE, "we"); umask(oldmask); if (pwfile == NULL) { err = 1; goto done; } - opwfile = fopen(OLD_PASSWORDS_FILE, "r"); + opwfile = fopen(OLD_PASSWORDS_FILE, "re"); if (opwfile == NULL) { fclose(pwfile); err = 1; @@ -701,9 +730,10 @@ save_old_password(pam_handle_t *pamh, const char *forwho, const char *oldpass, goto done; } - while (fgets(buf, 16380, opwfile)) { - if (!strncmp(buf, forwho, len) && strchr(":,\n", buf[len]) != NULL) { - char *sptr = NULL; + for (; getline(&buf, &bufsize, opwfile) != -1; pam_overwrite_n(buf, bufsize)) { + if (!strncmp(buf, forwho, len) && strchr(":\n", buf[len]) != NULL) { + char *ep, *sptr = NULL; + long value; found = 1; if (howmany == 0) continue; @@ -723,8 +753,12 @@ save_old_password(pam_handle_t *pamh, const char *forwho, const char *oldpass, found = 0; continue; } - s_pas = strtok_r(NULL, ":", &sptr); - npas = strtol(s_npas, NULL, 10) + 1; + s_pas = strtok_r(NULL, "", &sptr); + value = strtol(s_npas, &ep, 10); + if (value < 0 || value >= INT_MAX || s_npas == ep || *ep != '\0') + npas = 0; + else + npas = (int)value + 1; while (npas > howmany && s_pas != NULL) { s_pas = strpbrk(s_pas, ","); if (s_pas != NULL) @@ -733,21 +767,21 @@ save_old_password(pam_handle_t *pamh, const char *forwho, const char *oldpass, } pass = crypt_md5_wrapper(oldpass); if (s_pas == NULL) - snprintf(nbuf, sizeof(nbuf), "%s:%s:%d:%s\n", - s_luser, s_uid, npas, pass); + err = fprintf(pwfile, "%s:%s:%d:%s\n", + s_luser, s_uid, npas, pass) < 0; else - snprintf(nbuf, sizeof(nbuf),"%s:%s:%d:%s,%s\n", - s_luser, s_uid, npas, s_pas, pass); + err = fprintf(pwfile, "%s:%s:%d:%s,%s\n", + s_luser, s_uid, npas, s_pas, pass) < 0; _pam_delete(pass); - if (fputs(nbuf, pwfile) < 0) { - err = 1; + if (err) break; - } } else if (fputs(buf, pwfile) < 0) { err = 1; break; } } + pam_overwrite_n(buf, bufsize); + free(buf); fclose(opwfile); if (!found) { @@ -756,12 +790,9 @@ save_old_password(pam_handle_t *pamh, const char *forwho, const char *oldpass, err = 1; } else { pass = crypt_md5_wrapper(oldpass); - snprintf(nbuf, sizeof(nbuf), "%s:%lu:1:%s\n", - forwho, (unsigned long)pwd->pw_uid, pass); + err = fprintf(pwfile, "%s:%lu:1:%s\n", + forwho, (unsigned long)pwd->pw_uid, pass) < 0; _pam_delete(pass); - if (fputs(nbuf, pwfile) < 0) { - err = 1; - } } } @@ -805,7 +836,7 @@ PAMH_ARG_DECL(int unix_update_passwd, struct stat st; FILE *pwfile, *opwfile; int err = 1; - int oldmask; + mode_t oldmask; #ifdef WITH_SELINUX char *prev_context_raw = NULL; #endif @@ -829,14 +860,14 @@ PAMH_ARG_DECL(int unix_update_passwd, freecon(passwd_context_raw); } #endif - pwfile = fopen(PW_TMPFILE, "w"); + pwfile = fopen(PW_TMPFILE, "we"); umask(oldmask); if (pwfile == NULL) { err = 1; goto done; } - opwfile = fopen("/etc/passwd", "r"); + opwfile = fopen("/etc/passwd", "re"); if (opwfile == NULL) { fclose(pwfile); err = 1; @@ -928,7 +959,7 @@ PAMH_ARG_DECL(int unix_update_shadow, struct stat st; FILE *pwfile, *opwfile; int err = 0; - int oldmask; + mode_t oldmask; int wroteentry = 0; #ifdef WITH_SELINUX char *prev_context_raw = NULL; @@ -954,14 +985,14 @@ PAMH_ARG_DECL(int unix_update_shadow, freecon(shadow_context_raw); } #endif - pwfile = fopen(SH_TMPFILE, "w"); + pwfile = fopen(SH_TMPFILE, "we"); umask(oldmask); if (pwfile == NULL) { err = 1; goto done; } - opwfile = fopen("/etc/shadow", "r"); + opwfile = fopen("/etc/shadow", "re"); if (opwfile == NULL) { fclose(pwfile); err = 1; @@ -1082,12 +1113,6 @@ helper_verify_password(const char *name, const char *p, int nullok) if (pwd == NULL || hash == NULL) { helper_log_err(LOG_NOTICE, "check pass; user unknown"); retval = PAM_USER_UNKNOWN; - } else if (p[0] == '\0' && nullok) { - if (hash[0] == '\0') { - retval = PAM_SUCCESS; - } else { - retval = PAM_AUTH_ERR; - } } else { retval = verify_pwd_hash(p, hash, nullok); } @@ -1103,7 +1128,6 @@ helper_verify_password(const char *name, const char *p, int nullok) } void -PAM_FORMAT((printf, 2, 3)) helper_log_err(int err, const char *format, ...) { va_list args; @@ -1128,7 +1152,7 @@ su_sighandler(int sig) } #endif if (sig > 0) { - _exit(sig); + _exit(128 + (sig & 127)); } } @@ -1161,16 +1185,12 @@ char * getuidname(uid_t uid) { struct passwd *pw; - static char username[256]; pw = getpwuid(uid); if (pw == NULL) return NULL; - strncpy(username, pw->pw_name, sizeof(username)); - username[sizeof(username) - 1] = '\0'; - - return username; + return pw->pw_name; } #endif diff --git a/modules/pam_unix/passverify.h b/modules/pam_unix/passverify.h index 463ef185..1636791c 100644 --- a/modules/pam_unix/passverify.h +++ b/modules/pam_unix/passverify.h @@ -4,11 +4,12 @@ #include <sys/types.h> #include <pwd.h> +#include <shadow.h> #include <security/pam_modules.h> #define PAM_UNIX_RUN_HELPER PAM_CRED_INSUFFICIENT -#define OLD_PASSWORDS_FILE SCONFIGDIR "/opasswd" +#define OLD_PASSWORDS_FILE SCONFIG_DIR "/opasswd" int is_pwd_shadowed(const struct passwd *pwd); @@ -37,6 +38,7 @@ save_old_password(pam_handle_t *pamh, const char *forwho, const char *oldpass, #ifdef HELPER_COMPILE void +PAM_FORMAT((printf, 2, 3)) helper_log_err(int err, const char *format,...); int diff --git a/modules/pam_unix/support.c b/modules/pam_unix/support.c index 043273d2..dfdc9fc1 100644 --- a/modules/pam_unix/support.c +++ b/modules/pam_unix/support.c @@ -46,6 +46,18 @@ int _make_remark(pam_handle_t * pamh, unsigned long long ctrl, return retval; } +static int _unix_strtoi(const char *str, int minval, int *result) +{ + char *ep; + long value = strtol(str, &ep, 10); + if (value < minval || value > INT_MAX || str == ep || *ep != '\0') { + *result = minval; + return -1; + } + *result = (int)value; + return 0; +} + /* * set the control flags for the UNIX module. */ @@ -97,17 +109,6 @@ unsigned long long _set_ctrl(pam_handle_t *pamh, int flags, int *remember, ctrl |= unix_args[j].flag; /* for turning things on */ } free (val); - - /* read number of rounds for crypt algo */ - if (rounds && (on(UNIX_SHA256_PASS, ctrl) || on(UNIX_SHA512_PASS, ctrl))) { - val = pam_modutil_search_key(pamh, LOGIN_DEFS, "SHA_CRYPT_MAX_ROUNDS"); - - if (val) { - *rounds = strtol(val, NULL, 10); - set(UNIX_ALGO_ROUNDS, ctrl); - free (val); - } - } } /* now parse the arguments to this module */ @@ -137,9 +138,11 @@ unsigned long long _set_ctrl(pam_handle_t *pamh, int flags, int *remember, "option remember not allowed for this module type"); continue; } - *remember = strtol(str, NULL, 10); - if ((*remember == INT_MIN) || (*remember == INT_MAX)) - *remember = -1; + if (_unix_strtoi(str, -1, remember)) { + pam_syslog(pamh, LOG_ERR, + "option remember invalid [%s]", str); + continue; + } if (*remember > 400) *remember = 400; } else if (j == UNIX_MIN_PASS_LEN) { @@ -148,14 +151,22 @@ unsigned long long _set_ctrl(pam_handle_t *pamh, int flags, int *remember, "option minlen not allowed for this module type"); continue; } - *pass_min_len = atoi(str); + if (_unix_strtoi(str, 0, pass_min_len)) { + pam_syslog(pamh, LOG_ERR, + "option minlen invalid [%s]", str); + continue; + } } else if (j == UNIX_ALGO_ROUNDS) { if (rounds == NULL) { pam_syslog(pamh, LOG_ERR, "option rounds not allowed for this module type"); continue; } - *rounds = strtol(str, NULL, 10); + if (_unix_strtoi(str, 0, rounds)) { + pam_syslog(pamh, LOG_ERR, + "option rounds invalid [%s]", str); + continue; + } } ctrl &= unix_args[j].mask; /* for turning things off */ @@ -175,6 +186,29 @@ unsigned long long _set_ctrl(pam_handle_t *pamh, int flags, int *remember, set(UNIX__NONULL, ctrl); } + /* Read number of rounds for sha256, sha512 and yescrypt */ + if (off(UNIX_ALGO_ROUNDS, ctrl) && rounds != NULL) { + const char *key = NULL; + if (on(UNIX_YESCRYPT_PASS, ctrl)) + key = "YESCRYPT_COST_FACTOR"; + else if (on(UNIX_SHA256_PASS, ctrl) || on(UNIX_SHA512_PASS, ctrl)) + key = "SHA_CRYPT_MAX_ROUNDS"; + else + key = NULL; + + if (key != NULL) { + val = pam_modutil_search_key(pamh, LOGIN_DEFS, key); + if (val) { + if (_unix_strtoi(val, 0, rounds)) + pam_syslog(pamh, LOG_ERR, + "option %s invalid [%s]", key, val); + else + set(UNIX_ALGO_ROUNDS, ctrl); + free (val); + } + } + } + /* Set default rounds for blowfish, gost-yescrypt and yescrypt */ if (off(UNIX_ALGO_ROUNDS, ctrl) && rounds != NULL) { if (on(UNIX_BLOWFISH_PASS, ctrl) || @@ -189,11 +223,15 @@ unsigned long long _set_ctrl(pam_handle_t *pamh, int flags, int *remember, if (on(UNIX_ALGO_ROUNDS, ctrl)) { if (on(UNIX_GOST_YESCRYPT_PASS, ctrl) || on(UNIX_YESCRYPT_PASS, ctrl)) { - if (*rounds < 3 || *rounds > 11) - *rounds = 5; + if (*rounds < 3) + *rounds = 3; + else if (*rounds > 11) + *rounds = 11; } else if (on(UNIX_BLOWFISH_PASS, ctrl)) { - if (*rounds < 4 || *rounds > 31) - *rounds = 5; + if (*rounds < 4) + *rounds = 4; + else if (*rounds > 31) + *rounds = 31; } else if (on(UNIX_SHA256_PASS, ctrl) || on(UNIX_SHA512_PASS, ctrl)) { if ((*rounds < 1000) || (*rounds == INT_MAX)) { /* don't care about bogus values */ @@ -279,7 +317,8 @@ static void _cleanup_failures(pam_handle_t * pamh, void *fl, int err) tty ? (const char *)tty : "", ruser ? (const char *)ruser : "", rhost ? (const char *)rhost : "", (failure->user && failure->user[0] != '\0') - ? " user=" : "", failure->user + ? " user=" : "", + failure->user ? failure->user : "" ); if (failure->count > UNIX_MAX_RETRIES) { @@ -308,33 +347,40 @@ static void _unix_cleanup(pam_handle_t *pamh UNUSED, void *data, int error_statu int _unix_getpwnam(pam_handle_t *pamh, const char *name, int files, int nis, struct passwd **ret) { - FILE *passwd; - char buf[16384]; - int matched = 0, buflen; - char *slogin, *spasswd, *suid, *sgid, *sgecos, *shome, *sshell, *p; + char *buf = NULL; + int matched = 0; - memset(buf, 0, sizeof(buf)); + if (!matched && files && strchr(name, ':') == NULL) { + FILE *passwd; - if (!matched && files) { - int userlen = strlen(name); - passwd = fopen("/etc/passwd", "r"); + passwd = fopen("/etc/passwd", "re"); if (passwd != NULL) { - while (fgets(buf, sizeof(buf), passwd) != NULL) { - if ((buf[userlen] == ':') && + size_t n = 0, userlen; + ssize_t r; + + userlen = strlen(name); + + while ((r = getline(&buf, &n, passwd)) != -1) { + if ((size_t)r > userlen && (buf[userlen] == ':') && (strncmp(name, buf, userlen) == 0)) { + char *p; + p = buf + strlen(buf) - 1; - while (isspace(*p) && (p >= buf)) { + while (isspace((unsigned char)*p) && (p >= buf)) { *p-- = '\0'; } matched = 1; break; } } + if (!matched) { + _pam_drop(buf); + } fclose(passwd); } } -#if defined(HAVE_YP_GET_DEFAULT_DOMAIN) && defined (HAVE_YP_BIND) && defined (HAVE_YP_MATCH) && defined (HAVE_YP_UNBIND) +#if defined(HAVE_NIS) && defined(HAVE_YP_GET_DEFAULT_DOMAIN) && defined (HAVE_YP_BIND) && defined (HAVE_YP_MATCH) && defined (HAVE_YP_UNBIND) if (!matched && nis) { char *userinfo = NULL, *domain = NULL; int len = 0, i; @@ -346,9 +392,7 @@ int _unix_getpwnam(pam_handle_t *pamh, const char *name, i = yp_match(domain, "passwd.byname", name, strlen(name), &userinfo, &len); yp_unbind(domain); - if ((i == YPERR_SUCCESS) && ((size_t)len < sizeof(buf))) { - strncpy(buf, userinfo, sizeof(buf) - 1); - buf[sizeof(buf) - 1] = '\0'; + if (i == YPERR_SUCCESS && (buf = strdup(userinfo)) != NULL) { matched = 1; } } @@ -359,70 +403,68 @@ int _unix_getpwnam(pam_handle_t *pamh, const char *name, #endif if (matched && (ret != NULL)) { + char *slogin, *spasswd, *suid, *sgid, *sgecos, *shome, *sshell, *p; + size_t retlen; + *ret = NULL; slogin = buf; spasswd = strchr(slogin, ':'); if (spasswd == NULL) { - return matched; + goto fail; } *spasswd++ = '\0'; suid = strchr(spasswd, ':'); if (suid == NULL) { - return matched; + goto fail; } *suid++ = '\0'; sgid = strchr(suid, ':'); if (sgid == NULL) { - return matched; + goto fail; } *sgid++ = '\0'; sgecos = strchr(sgid, ':'); if (sgecos == NULL) { - return matched; + goto fail; } *sgecos++ = '\0'; shome = strchr(sgecos, ':'); if (shome == NULL) { - return matched; + goto fail; } *shome++ = '\0'; sshell = strchr(shome, ':'); if (sshell == NULL) { - return matched; + goto fail; } *sshell++ = '\0'; - buflen = sizeof(struct passwd) + + retlen = sizeof(struct passwd) + strlen(slogin) + 1 + strlen(spasswd) + 1 + strlen(sgecos) + 1 + strlen(shome) + 1 + strlen(sshell) + 1; - *ret = malloc(buflen); + *ret = calloc(retlen, sizeof(char)); if (*ret == NULL) { - return matched; + goto fail; } - memset(*ret, '\0', buflen); (*ret)->pw_uid = strtol(suid, &p, 10); if ((strlen(suid) == 0) || (*p != '\0')) { - free(*ret); - *ret = NULL; - return matched; + goto fail; } (*ret)->pw_gid = strtol(sgid, &p, 10); if ((strlen(sgid) == 0) || (*p != '\0')) { - free(*ret); - *ret = NULL; - return matched; + goto fail; } p = ((char*)(*ret)) + sizeof(struct passwd); @@ -436,15 +478,23 @@ int _unix_getpwnam(pam_handle_t *pamh, const char *name, p += strlen(p) + 1; (*ret)->pw_shell = strcpy(p, sshell); - snprintf(buf, sizeof(buf), "_pam_unix_getpwnam_%s", name); + _pam_drop(buf); + if (asprintf(&buf, "_pam_unix_getpwnam_%s", name) < 0) { + buf = NULL; + goto fail; + } if (pam_set_data(pamh, buf, *ret, _unix_cleanup) != PAM_SUCCESS) { - free(*ret); - *ret = NULL; + goto fail; } } + _pam_drop(buf); + return matched; +fail: + _pam_drop(buf); + _pam_drop(*ret); return matched; } @@ -513,13 +563,13 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd, _exit(PAM_AUTHINFO_UNAVAIL); } - if (geteuid() == 0) { - /* must set the real uid to 0 so the helper will not error - out if pam is called from setuid binary (su, sudo...) */ - if (setuid(0) == -1) { - D(("setuid failed")); - _exit(PAM_AUTHINFO_UNAVAIL); - } + /* must set the real uid to 0 so the helper will not error + out if pam is called from setuid binary (su, sudo...) */ + if (setuid(0) == -1) { + D(("setuid failed")); + if (geteuid() == 0) { + _exit(PAM_AUTHINFO_UNAVAIL); + } } /* exec binary helper */ @@ -543,7 +593,7 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd, /* if the stored password is NULL */ int rc=0; if (passwd != NULL) { /* send the password to the child */ - int len = strlen(passwd); + size_t len = strlen(passwd); if (len > PAM_MAX_RESP_SIZE) len = PAM_MAX_RESP_SIZE; @@ -609,7 +659,7 @@ _unix_blankpasswd (pam_handle_t *pamh, unsigned long long ctrl, const char *name /* * This function does not have to be too smart if something goes - * wrong, return FALSE and let this case to be treated somewhere + * wrong, return FALSE and let this case be treated somewhere * else (CG) */ @@ -670,12 +720,10 @@ int _unix_verify_password(pam_handle_t * pamh, const char *name D(("called")); -#ifdef HAVE_PAM_FAIL_DELAY if (off(UNIX_NODELAY, ctrl)) { D(("setting delay")); (void) pam_fail_delay(pamh, 2000000); /* 2 sec delay for on failure */ } -#endif /* locate the entry for this user */ @@ -683,12 +731,9 @@ int _unix_verify_password(pam_handle_t * pamh, const char *name retval = get_pwd_hash(pamh, name, &pwd, &salt); - data_name = (char *) malloc(sizeof(FAIL_PREFIX) + strlen(name)); - if (data_name == NULL) { + if (asprintf(&data_name, "%s%s", FAIL_PREFIX, name) < 0) { pam_syslog(pamh, LOG_CRIT, "no memory for data-name"); - } else { - strcpy(data_name, FAIL_PREFIX); - strcpy(data_name + sizeof(FAIL_PREFIX) - 1, name); + data_name = NULL; } if (p != NULL && strlen(p) > PAM_MAX_RESP_SIZE) { @@ -790,7 +835,7 @@ int _unix_verify_password(pam_handle_t * pamh, const char *name rhost ? (const char *)rhost : "", (new->user && new->user[0] != '\0') ? " user=" : "", - new->user + new->user ? new->user : "" ); new->count = 1; } diff --git a/modules/pam_unix/support.h b/modules/pam_unix/support.h index 81054002..e8f629d7 100644 --- a/modules/pam_unix/support.h +++ b/modules/pam_unix/support.h @@ -31,7 +31,7 @@ typedef struct { * macro to determine if a given flag is on */ -#define on(x,ctrl) (unix_args[x].flag & ctrl) +#define on(x,ctrl) (unix_args[x].flag & (ctrl)) /* * macro to determine that a given flag is NOT on @@ -43,8 +43,8 @@ typedef struct { * macro to turn on/off a ctrl flag manually */ -#define set(x,ctrl) (ctrl = ((ctrl)&unix_args[x].mask)|unix_args[x].flag) -#define unset(x,ctrl) (ctrl &= ~(unix_args[x].flag)) +#define set(x,ctrl) ((ctrl) = ((ctrl)&unix_args[x].mask)|unix_args[x].flag) +#define unset(x,ctrl) ((ctrl) &= ~(unix_args[x].flag)) /* the generic mask */ diff --git a/modules/pam_unix/unix_chkpwd.8 b/modules/pam_unix/unix_chkpwd.8 deleted file mode 100644 index 7c1963b3..00000000 --- a/modules/pam_unix/unix_chkpwd.8 +++ /dev/null @@ -1,53 +0,0 @@ -'\" t -.\" Title: unix_chkpwd -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "UNIX_CHKPWD" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -unix_chkpwd \- Helper binary that verifies the password of the current user -.SH "SYNOPSIS" -.HP \w'\fBunix_chkpwd\fR\ 'u -\fBunix_chkpwd\fR [\&.\&.\&.] -.SH "DESCRIPTION" -.PP -\fIunix_chkpwd\fR -is a helper program for the -\fIpam_unix\fR -module that verifies the password of the current user\&. It also checks password and account expiration dates in -\fIshadow\fR\&. It is not intended to be run directly from the command line and logs a security violation if done so\&. -.PP -It is typically installed setuid root or setgid shadow\&. -.PP -The interface of the helper \- command line options, and input/output data format are internal to the -\fIpam_unix\fR -module and it should not be called directly from applications\&. -.SH "SEE ALSO" -.PP -\fBpam_unix\fR(8) -.SH "AUTHOR" -.PP -Written by Andrew Morgan and other various people\&. diff --git a/modules/pam_unix/unix_chkpwd.c b/modules/pam_unix/unix_chkpwd.c index 556a2e2c..820136d5 100644 --- a/modules/pam_unix/unix_chkpwd.c +++ b/modules/pam_unix/unix_chkpwd.c @@ -27,6 +27,7 @@ #include <errno.h> #ifdef HAVE_LIBAUDIT #include <libaudit.h> +#include "audit.h" #endif #include <security/_pam_types.h> @@ -59,35 +60,6 @@ static int _check_expiry(const char *uname) return retval; } -#ifdef HAVE_LIBAUDIT -static int _audit_log(int type, const char *uname, int rc) -{ - int audit_fd; - - audit_fd = audit_open(); - if (audit_fd < 0) { - /* You get these error codes only when the kernel doesn't have - * audit compiled in. */ - if (errno == EINVAL || errno == EPROTONOSUPPORT || - errno == EAFNOSUPPORT) - return PAM_SUCCESS; - - helper_log_err(LOG_CRIT, "audit_open() failed: %m"); - return PAM_AUTH_ERR; - } - - rc = audit_log_acct_message(audit_fd, type, NULL, "PAM:unix_chkpwd", - uname, -1, NULL, NULL, NULL, rc == PAM_SUCCESS); - if (rc == -EPERM && geteuid() != 0) { - rc = 0; - } - - audit_close(audit_fd); - - return rc < 0 ? PAM_AUTH_ERR : PAM_SUCCESS; -} -#endif - int main(int argc, char *argv[]) { char pass[PAM_MAX_RESP_SIZE + 1]; @@ -106,7 +78,7 @@ int main(int argc, char *argv[]) /* * we establish that this program is running with non-tty stdin. * this is to discourage casual use. It does *NOT* prevent an - * intruder from repeatadly running this program to determine the + * intruder from repeatedly running this program to determine the * password of the current user (brute force attack, but one for * which the attacker must already have gained access to the user's * account). @@ -117,7 +89,7 @@ int main(int argc, char *argv[]) ,"inappropriate use of Unix helper binary [UID=%d]" ,getuid()); #ifdef HAVE_LIBAUDIT - _audit_log(AUDIT_ANOM_EXEC, getuidname(getuid()), PAM_SYSTEM_ERR); + audit_log(AUDIT_ANOM_EXEC, getuidname(getuid()), PAM_SYSTEM_ERR); #endif fprintf(stderr ,"This binary is not designed for running in this way\n" @@ -138,11 +110,16 @@ int main(int argc, char *argv[]) /* if the caller specifies the username, verify that user matches it */ if (user == NULL || strcmp(user, argv[1])) { - user = argv[1]; - /* no match -> permanently change to the real user and proceed */ - if (setuid(getuid()) != 0) + uid_t ruid = getuid(); + gid_t rgid = getgid(); + + /* no match -> permanently change to the real user and group, + * check for no-return, and proceed */ + if (setgid(rgid) != 0 || setuid(ruid) != 0 || + (rgid != 0 && setgid(0) != -1) || (ruid != 0 && setuid(0) != -1)) return PAM_AUTH_ERR; } + user = argv[1]; } option=argv[2]; @@ -157,7 +134,7 @@ int main(int argc, char *argv[]) nullok = 0; else { #ifdef HAVE_LIBAUDIT - _audit_log(AUDIT_ANOM_EXEC, getuidname(getuid()), PAM_SYSTEM_ERR); + audit_log(AUDIT_ANOM_EXEC, getuidname(getuid()), PAM_SYSTEM_ERR); #endif return PAM_SYSTEM_ERR; } @@ -185,7 +162,7 @@ int main(int argc, char *argv[]) /* no need to log blank pass test */ #ifdef HAVE_LIBAUDIT if (getuid() != 0) - _audit_log(AUDIT_USER_AUTH, user, PAM_AUTH_ERR); + audit_log(AUDIT_USER_AUTH, user, PAM_AUTH_ERR); #endif helper_log_err(LOG_NOTICE, "password check failed for user (%s)", user); } @@ -200,7 +177,7 @@ int main(int argc, char *argv[]) } else { if (getuid() != 0) { #ifdef HAVE_LIBAUDIT - return _audit_log(AUDIT_USER_AUTH, user, PAM_SUCCESS); + return audit_log(AUDIT_USER_AUTH, user, PAM_SUCCESS); #else return PAM_SUCCESS; #endif diff --git a/modules/pam_unix/unix_update.8 b/modules/pam_unix/unix_update.8 deleted file mode 100644 index b3b7a28f..00000000 --- a/modules/pam_unix/unix_update.8 +++ /dev/null @@ -1,52 +0,0 @@ -'\" t -.\" Title: unix_update -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "UNIX_UPDATE" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -unix_update \- Helper binary that updates the password of a given user -.SH "SYNOPSIS" -.HP \w'\fBunix_update\fR\ 'u -\fBunix_update\fR [\&.\&.\&.] -.SH "DESCRIPTION" -.PP -\fIunix_update\fR -is a helper program for the -\fIpam_unix\fR -module that updates the password of a given user\&. It is not intended to be run directly from the command line and logs a security violation if done so\&. -.PP -The purpose of the helper is to enable tighter confinement of login and password changing services\&. The helper is thus called only when SELinux is enabled on the system\&. -.PP -The interface of the helper \- command line options, and input/output data format are internal to the -\fIpam_unix\fR -module and it should not be called directly from applications\&. -.SH "SEE ALSO" -.PP -\fBpam_unix\fR(8) -.SH "AUTHOR" -.PP -Written by Tomas Mraz and other various people\&. diff --git a/modules/pam_unix/unix_update.c b/modules/pam_unix/unix_update.c index 49a70ff3..e17d6f87 100644 --- a/modules/pam_unix/unix_update.c +++ b/modules/pam_unix/unix_update.c @@ -27,6 +27,10 @@ #include <signal.h> #include <time.h> #include <sys/time.h> +#ifdef HAVE_LIBAUDIT +#include <libaudit.h> +#include "audit.h" +#endif #include <security/_pam_types.h> #include <security/_pam_macros.h> @@ -38,6 +42,7 @@ static int set_password(const char *forwho, const char *shadow, const char *remember) { struct passwd *pwd = NULL; + uid_t ruid; int retval; char pass[PAM_MAX_RESP_SIZE + 1]; char towhat[PAM_MAX_RESP_SIZE + 1]; @@ -76,11 +81,25 @@ set_password(const char *forwho, const char *shadow, const char *remember) } /* If real caller uid is not root we must verify that - received old pass agrees with the current one. - We always allow change from null pass. */ - if (getuid()) { + * the target user is the caller and the + * received old pass agrees with the current one. + * We always allow change from null pass. */ + ruid = getuid(); + if (ruid != 0) { + if (pwd->pw_uid != ruid) { + helper_log_err(LOG_NOTICE, "user mismatch detected: source=%d target=%d", + ruid, pwd->pw_uid); + retval = PAM_AUTHTOK_ERR; + goto done; + } + retval = helper_verify_password(forwho, pass, 1); +#ifdef HAVE_LIBAUDIT + audit_log(AUDIT_USER_AUTH, getuidname(getuid()), retval); +#endif if (retval != PAM_SUCCESS) { + helper_log_err(LOG_NOTICE, "password check failed for user (%s)", + getuidname(getuid())); goto done; } } @@ -100,6 +119,11 @@ set_password(const char *forwho, const char *shadow, const char *remember) retval = unix_update_passwd(forwho, towhat); } +#ifdef HAVE_LIBAUDIT + audit_log(AUDIT_USER_CHAUTHTOK, getuidname(getuid()), retval); +#endif + + done: pam_overwrite_array(pass); pam_overwrite_array(towhat); @@ -125,7 +149,7 @@ int main(int argc, char *argv[]) /* * we establish that this program is running with non-tty stdin. * this is to discourage casual use. It does *NOT* prevent an - * intruder from repeatadly running this program to determine the + * intruder from repeatedly running this program to determine the * password of the current user (brute force attack, but one for * which the attacker must already have gained access to the user's * account). @@ -135,6 +159,9 @@ int main(int argc, char *argv[]) helper_log_err(LOG_NOTICE ,"inappropriate use of Unix helper binary [UID=%d]" ,getuid()); +#ifdef HAVE_LIBAUDIT + audit_log(AUDIT_ANOM_EXEC, getuidname(getuid()), PAM_SYSTEM_ERR); +#endif fprintf(stderr ,"This binary is not designed for running in this way\n" "-- the system administrator has been informed\n"); diff --git a/modules/pam_unix/yppasswd.h b/modules/pam_unix/yppasswd.h index dc686cd7..3a40c3ea 100644 --- a/modules/pam_unix/yppasswd.h +++ b/modules/pam_unix/yppasswd.h @@ -6,6 +6,8 @@ #ifndef _YPPASSWD_H_RPCGEN #define _YPPASSWD_H_RPCGEN +#include "config.h" + #include <rpc/rpc.h> diff --git a/modules/pam_userdb/Makefile.am b/modules/pam_userdb/Makefile.am deleted file mode 100644 index e31d9ccc..00000000 --- a/modules/pam_userdb/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) create.pl - -if HAVE_DOC -dist_man_MANS = pam_userdb.8 -endif -XMLS = README.xml pam_userdb.8.xml -dist_check_SCRIPTS = tst-pam_userdb -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module @LIBDB@ @LIBCRYPT@ -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_userdb.la -pam_userdb_la_LIBADD = $(top_builddir)/libpam/libpam.la - -noinst_HEADERS = pam_userdb.h - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_userdb/Makefile.in b/modules/pam_userdb/Makefile.in deleted file mode 100644 index c19b4231..00000000 --- a/modules/pam_userdb/Makefile.in +++ /dev/null @@ -1,1166 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@thkukuk.de> -# - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_userdb -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_userdb_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_userdb_la_SOURCES = pam_userdb.c -pam_userdb_la_OBJECTS = pam_userdb.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_userdb.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_userdb.c -DIST_SOURCES = pam_userdb.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) create.pl -@HAVE_DOC_TRUE@dist_man_MANS = pam_userdb.8 -XMLS = README.xml pam_userdb.8.xml -dist_check_SCRIPTS = tst-pam_userdb -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module @LIBDB@ @LIBCRYPT@ \ - $(am__append_1) -securelib_LTLIBRARIES = pam_userdb.la -pam_userdb_la_LIBADD = $(top_builddir)/libpam/libpam.la -noinst_HEADERS = pam_userdb.h -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_userdb/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_userdb/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_userdb.la: $(pam_userdb_la_OBJECTS) $(pam_userdb_la_DEPENDENCIES) $(EXTRA_pam_userdb_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_userdb_la_OBJECTS) $(pam_userdb_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_userdb.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_userdb.log: tst-pam_userdb - @p='tst-pam_userdb'; \ - b='tst-pam_userdb'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_userdb.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_userdb.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_userdb/README b/modules/pam_userdb/README deleted file mode 100644 index 9d931bb5..00000000 --- a/modules/pam_userdb/README +++ /dev/null @@ -1,76 +0,0 @@ -pam_userdb — PAM module to authenticate against a db database - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_userdb module is used to verify a username/password pair against values -stored in a Berkeley DB database. The database is indexed by the username, and -the data fields corresponding to the username keys are the passwords. - -OPTIONS - -crypt=[crypt|none] - - Indicates whether encrypted or plaintext passwords are stored in the - database. If it is crypt, passwords should be stored in the database in - crypt(3) form. If none is selected, passwords should be stored in the - database as plaintext. - -db=/path/database - - Use the /path/database database for performing lookup. There is no default; - the module will return PAM_IGNORE if no database is provided. Note that the - path to the database file should be specified without the .db suffix. - -debug - - Print debug information. Note that password hashes, both from db and - computed, will be printed to syslog. - -dump - - Dump all the entries in the database to the log. Don't do this by default! - -icase - - Make the password verification to be case insensitive (ie when working with - registration numbers and such). Only works with plaintext password storage. - -try_first_pass - - Use the authentication token previously obtained by another module that did - the conversation with the application. If this token can not be obtained - then the module will try to converse. This option can be used for stacking - different modules that need to deal with the authentication tokens. - -use_first_pass - - Use the authentication token previously obtained by another module that did - the conversation with the application. If this token can not be obtained - then the module will fail. This option can be used for stacking different - modules that need to deal with the authentication tokens. - -unknown_ok - - Do not return error when checking for a user that is not in the database. - This can be used to stack more than one pam_userdb module that will check a - username/password pair in more than a database. - -key_only - - The username and password are concatenated together in the database hash as - 'username-password' with a random value. if the concatenation of the - username and password with a dash in the middle returns any result, the - user is valid. this is useful in cases where the username may not be unique - but the username and password pair are. - -EXAMPLES - -auth sufficient pam_userdb.so icase db=/etc/dbtest - - -AUTHOR - -pam_userdb was written by Cristian Gafton >gafton@redhat.com<. - diff --git a/modules/pam_userdb/meson.build b/modules/pam_userdb/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_userdb/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_userdb/pam_userdb.8 b/modules/pam_userdb/pam_userdb.8 deleted file mode 100644 index c6397723..00000000 --- a/modules/pam_userdb/pam_userdb.8 +++ /dev/null @@ -1,158 +0,0 @@ -'\" t -.\" Title: pam_userdb -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_USERDB" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_userdb \- PAM module to authenticate against a db database -.SH "SYNOPSIS" -.HP \w'\fBpam_userdb\&.so\fR\ 'u -\fBpam_userdb\&.so\fR db=\fI/path/database\fR [debug] [crypt=[crypt|none]] [icase] [dump] [try_first_pass] [use_first_pass] [unknown_ok] [key_only] -.SH "DESCRIPTION" -.PP -The pam_userdb module is used to verify a username/password pair against values stored in a Berkeley DB database\&. The database is indexed by the username, and the data fields corresponding to the username keys are the passwords\&. -.SH "OPTIONS" -.PP -crypt=[crypt|none] -.RS 4 -Indicates whether encrypted or plaintext passwords are stored in the database\&. If it is -\fBcrypt\fR, passwords should be stored in the database in -\fBcrypt\fR(3) -form\&. If -\fBnone\fR -is selected, passwords should be stored in the database as plaintext\&. -.RE -.PP -db=/path/database -.RS 4 -Use the -/path/database -database for performing lookup\&. There is no default; the module will return -\fBPAM_IGNORE\fR -if no database is provided\&. Note that the path to the database file should be specified without the -\&.db -suffix\&. -.RE -.PP -debug -.RS 4 -Print debug information\&. Note that password hashes, both from db and computed, will be printed to syslog\&. -.RE -.PP -dump -.RS 4 -Dump all the entries in the database to the log\&. Don\*(Aqt do this by default! -.RE -.PP -icase -.RS 4 -Make the password verification to be case insensitive (ie when working with registration numbers and such)\&. Only works with plaintext password storage\&. -.RE -.PP -try_first_pass -.RS 4 -Use the authentication token previously obtained by another module that did the conversation with the application\&. If this token can not be obtained then the module will try to converse\&. This option can be used for stacking different modules that need to deal with the authentication tokens\&. -.RE -.PP -use_first_pass -.RS 4 -Use the authentication token previously obtained by another module that did the conversation with the application\&. If this token can not be obtained then the module will fail\&. This option can be used for stacking different modules that need to deal with the authentication tokens\&. -.RE -.PP -unknown_ok -.RS 4 -Do not return error when checking for a user that is not in the database\&. This can be used to stack more than one pam_userdb module that will check a username/password pair in more than a database\&. -.RE -.PP -key_only -.RS 4 -The username and password are concatenated together in the database hash as \*(Aqusername\-password\*(Aq with a random value\&. if the concatenation of the username and password with a dash in the middle returns any result, the user is valid\&. this is useful in cases where the username may not be unique but the username and password pair are\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBaccount\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -Authentication failure\&. -.RE -.PP -PAM_AUTHTOK_RECOVERY_ERR -.RS 4 -Authentication information cannot be recovered\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -Conversation failure\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Error in service module\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known to the underlying authentication module\&. -.RE -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -auth sufficient pam_userdb\&.so icase db=/etc/dbtest - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBcrypt\fR(3), -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_userdb was written by Cristian Gafton >gafton@redhat\&.com<\&. diff --git a/modules/pam_userdb/pam_userdb.c b/modules/pam_userdb/pam_userdb.c index 297403b0..71012e57 100644 --- a/modules/pam_userdb/pam_userdb.c +++ b/modules/pam_userdb/pam_userdb.c @@ -25,6 +25,8 @@ #ifdef HAVE_NDBM_H # include <ndbm.h> +#elif defined(HAVE_GDBM_H) +# include <gdbm.h> #else # ifdef HAVE_DB_H # define DB_DBM_HSEARCH 1 /* use the dbm interface */ @@ -39,6 +41,13 @@ #include <security/pam_ext.h> #include <security/_pam_macros.h> #include "pam_inline.h" +#include "pam_i18n.h" + +#ifndef HAVE_GDBM_H +# define COND_UNUSED UNUSED +#else +# define COND_UNUSED +#endif /* HAVE_GDBM_H */ /* * Conversation function to obtain the user's password @@ -129,6 +138,65 @@ _pam_parse (pam_handle_t *pamh, int argc, const char **argv, return ctrl; } +/* + * Database abstraction functions + */ +static void * +db_open(const char *database, mode_t file_mode) +{ +#ifdef HAVE_GDBM_H + return gdbm_open(database, 4096, GDBM_READER, file_mode, NULL); +#else + return dbm_open(database, O_RDONLY, file_mode); +#endif /* HAVE_GDBM_H */ +} + +static datum +db_firstkey(void *dbm) +{ +#ifdef HAVE_GDBM_H + return gdbm_firstkey(dbm); +#else + return dbm_firstkey(dbm); +#endif /* HAVE_GDBM_H */ +} + +static datum +db_nextkey(void *dbm, datum key COND_UNUSED) +{ +#ifdef HAVE_GDBM_H + return gdbm_nextkey(dbm, key); +#else + return dbm_nextkey(dbm); +#endif /* HAVE_GDBM_H */ +} + +static datum +db_fetch(void *dbm, datum key) +{ +#ifdef HAVE_GDBM_H + return gdbm_fetch(dbm, key); +#else + return dbm_fetch(dbm, key); +#endif /* HAVE_GDBM_H */ +} + +static int +db_close(void *dbm) +{ +#ifdef HAVE_GDBM_H +# ifdef GDBM_CLOSE_RETURNS_INT + return gdbm_close(dbm); +# else + gdbm_close(dbm); + return 0; +# endif +#else + dbm_close(dbm); + return 0; +#endif /* HAVE_GDBM_H */ +} + /* * Looks up a user name in a database and checks the password @@ -143,11 +211,15 @@ static int user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, const char *user, const char *pass, int ctrl) { +#ifdef HAVE_GDBM_H + GDBM_FILE *dbm; +#else DBM *dbm; +#endif datum key, data; /* Open the DB file. */ - dbm = dbm_open(database, O_RDONLY, 0644); + dbm = db_open(database, 0644); if (dbm == NULL) { pam_syslog(pamh, LOG_ERR, "user_lookup: could not open database `%s': %m", database); @@ -157,9 +229,9 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, /* dump out the database contents for debugging */ if (ctrl & PAM_DUMP_ARG) { pam_syslog(pamh, LOG_INFO, "Database dump:"); - for (key = dbm_firstkey(dbm); key.dptr != NULL; - key = dbm_nextkey(dbm)) { - data = dbm_fetch(dbm, key); + for (key = db_firstkey(dbm); key.dptr != NULL; + key = db_nextkey(dbm, key)) { + data = db_fetch(dbm, key); pam_syslog(pamh, LOG_INFO, "key[len=%d] = `%s', data[len=%d] = `%s'", key.dsize, key.dptr, data.dsize, data.dptr); @@ -180,7 +252,7 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, } if (key.dptr) { - data = dbm_fetch(dbm, key); + data = db_fetch(dbm, key); pam_overwrite_n(key.dptr, key.dsize); free(key.dptr); } @@ -196,16 +268,11 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, if (ctrl & PAM_KEY_ONLY_ARG) { - dbm_close (dbm); + db_close (dbm); return 0; /* found it, data contents don't matter */ } if (cryptmode && pam_str_skip_icase_prefix(cryptmode, "crypt") != NULL) { - - /* crypt(3) password storage */ - - char *cryptpw = NULL; - if (data.dsize < 13) { /* hash is too short */ pam_syslog(pamh, LOG_INFO, "password hash in database is too short"); @@ -219,13 +286,13 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, if (pwhash == NULL) { pam_syslog(pamh, LOG_CRIT, "strndup failed: data.dptr"); } else { + char *cryptpw = NULL; #ifdef HAVE_CRYPT_R struct crypt_data *cdata = NULL; - cdata = malloc(sizeof(*cdata)); + cdata = calloc(1, sizeof(*cdata)); if (cdata == NULL) { pam_syslog(pamh, LOG_CRIT, "malloc failed: struct crypt_data"); } else { - cdata->initialized = 0; cryptpw = crypt_r(pass, pwhash, cdata); } #else @@ -244,14 +311,15 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, } } #ifdef HAVE_CRYPT_R + pam_overwrite_object(cdata); free(cdata); +#else + pam_overwrite_string(cryptpw); #endif } pam_overwrite_string(pwhash); free(pwhash); } - - pam_overwrite_string(cryptpw); } else { /* Unknown password encryption method - @@ -275,7 +343,7 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, } - dbm_close(dbm); + db_close(dbm); if (compare == 0) return 0; /* match */ else @@ -290,14 +358,14 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, /* probably we should check dbm_error() here */ if ((ctrl & PAM_KEY_ONLY_ARG) == 0) { - dbm_close(dbm); + db_close(dbm); return 1; /* not key_only, so no entry => no entry for the user */ } /* now handle the key_only case */ - for (key = dbm_firstkey(dbm); + for (key = db_firstkey(dbm); key.dptr != NULL; - key = dbm_nextkey(dbm)) { + key = db_nextkey(dbm, key)) { int compare; /* first compare the user portion (case sensitive) */ compare = strncmp(key.dptr, user, strlen(user)); @@ -322,12 +390,12 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode, } } if (compare == 0) { - dbm_close(dbm); + db_close(dbm); return 0; /* match */ } } } - dbm_close(dbm); + db_close(dbm); if (saw_user) return -1; /* saw the user, but password mismatch */ else diff --git a/modules/pam_usertype/Makefile.am b/modules/pam_usertype/Makefile.am deleted file mode 100644 index e6d35e48..00000000 --- a/modules/pam_usertype/Makefile.am +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# Copyright (c) 2020 Red Hat, Inc. -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_usertype.8 -endif -XMLS = README.xml pam_usertype.8.xml -dist_check_SCRIPTS = tst-pam_usertype -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_usertype.la -pam_usertype_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_usertype/Makefile.in b/modules/pam_usertype/Makefile.in deleted file mode 100644 index 28b96739..00000000 --- a/modules/pam_usertype/Makefile.in +++ /dev/null @@ -1,1162 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# Copyright (c) 2020 Red Hat, Inc. -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_usertype -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_usertype_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_usertype_la_SOURCES = pam_usertype.c -pam_usertype_la_OBJECTS = pam_usertype.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_usertype.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_usertype.c -DIST_SOURCES = pam_usertype.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_usertype.8 -XMLS = README.xml pam_usertype.8.xml -dist_check_SCRIPTS = tst-pam_usertype -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_usertype.la -pam_usertype_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_usertype/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_usertype/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_usertype.la: $(pam_usertype_la_OBJECTS) $(pam_usertype_la_DEPENDENCIES) $(EXTRA_pam_usertype_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_usertype_la_OBJECTS) $(pam_usertype_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_usertype.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_usertype.log: tst-pam_usertype - @p='tst-pam_usertype'; \ - b='tst-pam_usertype'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_usertype.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_usertype.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_usertype/README b/modules/pam_usertype/README deleted file mode 100644 index 290a8fe1..00000000 --- a/modules/pam_usertype/README +++ /dev/null @@ -1,48 +0,0 @@ -pam_usertype — check if the authenticated user is a system or regular account - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_usertype.so is designed to succeed or fail authentication based on type of -the account of the authenticated user. The type of the account is decided with -help of SYS_UID_MAX settings in /etc/login.defs. One use is to select whether -to load other modules based on this test. - -The module should be given only one condition as module argument. -Authentication will succeed only if the condition is met. - -OPTIONS - -The following flags are supported: - -use_uid - - Evaluate conditions using the account of the user whose UID the application - is running under instead of the user being authenticated. - -audit - - Log unknown users to the system log. - -Available conditions are: - -issystem - - Succeed if the user is a system user. - -isregular - - Succeed if the user is a regular user. - -EXAMPLES - -Skip remaining modules if the user is a system user: - -account sufficient pam_usertype.so issystem - - -AUTHOR - -Pavel BÅ™ezina <pbrezina@redhat.com> - diff --git a/modules/pam_usertype/meson.build b/modules/pam_usertype/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_usertype/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_usertype/pam_usertype.8 b/modules/pam_usertype/pam_usertype.8 deleted file mode 100644 index 4bc8652e..00000000 --- a/modules/pam_usertype/pam_usertype.8 +++ /dev/null @@ -1,133 +0,0 @@ -'\" t -.\" Title: pam_usertype -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_USERTYPE" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_usertype \- check if the authenticated user is a system or regular account -.SH "SYNOPSIS" -.HP \w'\fBpam_usertype\&.so\fR\ 'u -\fBpam_usertype\&.so\fR [\fIflag\fR...] {\fIcondition\fR} -.SH "DESCRIPTION" -.PP -pam_usertype\&.so is designed to succeed or fail authentication based on type of the account of the authenticated user\&. The type of the account is decided with help of -\fISYS_UID_MAX\fR -settings in -\fI/etc/login\&.defs\fR\&. One use is to select whether to load other modules based on this test\&. -.PP -The module should be given only one condition as module argument\&. Authentication will succeed only if the condition is met\&. -.SH "OPTIONS" -.PP -The following -\fIflag\fRs are supported: -.PP -use_uid -.RS 4 -Evaluate conditions using the account of the user whose UID the application is running under instead of the user being authenticated\&. -.RE -.PP -audit -.RS 4 -Log unknown users to the system log\&. -.RE -.PP -Available -\fIcondition\fRs are: -.PP -issystem -.RS 4 -Succeed if the user is a system user\&. -.RE -.PP -isregular -.RS 4 -Succeed if the user is a regular user\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -All module types (\fBaccount\fR, -\fBauth\fR, -\fBpassword\fR -and -\fBsession\fR) are provided\&. -.SH "RETURN VALUES" -.PP -PAM_SUCCESS -.RS 4 -The condition was true\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_CONV_ERR -.RS 4 -The conversation method supplied by the application failed to obtain the username\&. -.RE -.PP -PAM_INCOMPLETE -.RS 4 -The conversation method supplied by the application returned PAM_CONV_AGAIN\&. -.RE -.PP -PAM_AUTH_ERR -.RS 4 -The condition was false\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -A service error occurred or the arguments can\*(Aqt be parsed correctly\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User was not found\&. -.RE -.SH "EXAMPLES" -.PP -Skip remaining modules if the user is a system user: -.sp -.if n \{\ -.RS 4 -.\} -.nf -account sufficient pam_usertype\&.so issystem - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBlogin.defs\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -Pavel BÅ™ezina <pbrezina@redhat\&.com> diff --git a/modules/pam_usertype/pam_usertype.c b/modules/pam_usertype/pam_usertype.c index cfd9c8bb..27380382 100644 --- a/modules/pam_usertype/pam_usertype.c +++ b/modules/pam_usertype/pam_usertype.c @@ -169,7 +169,7 @@ pam_usertype_get_id(pam_handle_t *pamh, /* taken from get_lastlog_uid_max() */ ep = value + strlen(value); - while (ep > value && isspace(*(--ep))) { + while (ep > value && isspace((unsigned char)*(--ep))) { *ep = '\0'; } @@ -255,9 +255,8 @@ pam_usertype_evaluate(struct pam_usertype_opts *opts, * - use_uid: use user that runs application not that is being authenticate (same as in pam_succeed_if) * - audit: log unknown users to syslog */ -int -pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, - int argc, const char **argv) +static int +pam_usertype(pam_handle_t *pamh, int argc, const char **argv) { struct pam_usertype_opts opts; uid_t uid = -1; @@ -284,25 +283,36 @@ pam_sm_setcred(pam_handle_t *pamh UNUSED, int flags UNUSED, } int -pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) +{ + return pam_usertype(pamh, argc, argv); +} + +int +pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_usertype(pamh, argc, argv); } int -pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_usertype(pamh, argc, argv); } int -pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_close_session(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_usertype(pamh, argc, argv); } int -pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const char **argv) +pam_sm_chauthtok(pam_handle_t *pamh, int flags UNUSED, + int argc, const char **argv) { - return pam_sm_authenticate(pamh, flags, argc, argv); + return pam_usertype(pamh, argc, argv); } diff --git a/modules/pam_warn/Makefile.am b/modules/pam_warn/Makefile.am deleted file mode 100644 index 5e13f8f2..00000000 --- a/modules/pam_warn/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_warn.8 -endif -XMLS = README.xml pam_warn.8.xml -dist_check_SCRIPTS = tst-pam_warn -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_warn.la -pam_warn_la_LIBADD = $(top_builddir)/libpam/libpam.la - -check_PROGRAMS = tst-pam_warn-retval -tst_pam_warn_retval_LDADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_warn/Makefile.in b/modules/pam_warn/Makefile.in deleted file mode 100644 index aff1ee54..00000000 --- a/modules/pam_warn/Makefile.in +++ /dev/null @@ -1,1191 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -check_PROGRAMS = tst-pam_warn-retval$(EXEEXT) -subdir = modules/pam_warn -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_warn_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_warn_la_SOURCES = pam_warn.c -pam_warn_la_OBJECTS = pam_warn.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_warn_retval_SOURCES = tst-pam_warn-retval.c -tst_pam_warn_retval_OBJECTS = tst-pam_warn-retval.$(OBJEXT) -tst_pam_warn_retval_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_warn.Plo \ - ./$(DEPDIR)/tst-pam_warn-retval.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_warn.c tst-pam_warn-retval.c -DIST_SOURCES = pam_warn.c tst-pam_warn-retval.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_warn.8 -XMLS = README.xml pam_warn.8.xml -dist_check_SCRIPTS = tst-pam_warn -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_warn.la -pam_warn_la_LIBADD = $(top_builddir)/libpam/libpam.la -tst_pam_warn_retval_LDADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_warn/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_warn/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_warn.la: $(pam_warn_la_OBJECTS) $(pam_warn_la_DEPENDENCIES) $(EXTRA_pam_warn_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_warn_la_OBJECTS) $(pam_warn_la_LIBADD) $(LIBS) - -tst-pam_warn-retval$(EXEEXT): $(tst_pam_warn_retval_OBJECTS) $(tst_pam_warn_retval_DEPENDENCIES) $(EXTRA_tst_pam_warn_retval_DEPENDENCIES) - @rm -f tst-pam_warn-retval$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_warn_retval_OBJECTS) $(tst_pam_warn_retval_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_warn.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_warn-retval.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_warn.log: tst-pam_warn - @p='tst-pam_warn'; \ - b='tst-pam_warn'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_warn-retval.log: tst-pam_warn-retval$(EXEEXT) - @p='tst-pam_warn-retval$(EXEEXT)'; \ - b='tst-pam_warn-retval'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_warn.Plo - -rm -f ./$(DEPDIR)/tst-pam_warn-retval.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_warn.Plo - -rm -f ./$(DEPDIR)/tst-pam_warn-retval.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_warn/README b/modules/pam_warn/README deleted file mode 100644 index a0713173..00000000 --- a/modules/pam_warn/README +++ /dev/null @@ -1,36 +0,0 @@ -pam_warn — PAM module which logs all PAM items if called - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -pam_warn is a PAM module that logs the service, terminal, user, remote user and -remote host to syslog(3). The items are not probed for, but instead obtained -from the standard PAM items. The module always returns PAM_IGNORE, indicating -that it does not want to affect the authentication process. - -OPTIONS - -This module does not recognise any options. - -EXAMPLES - -#%PAM-1.0 -# -# If we don't have config entries for a service, the -# OTHER entries are used. To be secure, warn and deny -# access to everything. -other auth required pam_warn.so -other auth required pam_deny.so -other account required pam_warn.so -other account required pam_deny.so -other password required pam_warn.so -other password required pam_deny.so -other session required pam_warn.so -other session required pam_deny.so - - -AUTHOR - -pam_warn was written by Andrew G. Morgan <morgan@kernel.org>. - diff --git a/modules/pam_warn/meson.build b/modules/pam_warn/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_warn/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_warn/pam_warn.8 b/modules/pam_warn/pam_warn.8 deleted file mode 100644 index 3e507d76..00000000 --- a/modules/pam_warn/pam_warn.8 +++ /dev/null @@ -1,89 +0,0 @@ -'\" t -.\" Title: pam_warn -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_WARN" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_warn \- PAM module which logs all PAM items if called -.SH "SYNOPSIS" -.HP \w'\fBpam_warn\&.so\fR\ 'u -\fBpam_warn\&.so\fR -.SH "DESCRIPTION" -.PP -pam_warn is a PAM module that logs the service, terminal, user, remote user and remote host to -\fBsyslog\fR(3)\&. The items are not probed for, but instead obtained from the standard PAM items\&. The module always returns -\fBPAM_IGNORE\fR, indicating that it does not want to affect the authentication process\&. -.SH "OPTIONS" -.PP -This module does not recognise any options\&. -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR, -\fBaccount\fR, -\fBpassword\fR -and -\fBsession\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_IGNORE -.RS 4 -This module always returns PAM_IGNORE\&. -.RE -.SH "EXAMPLES" -.sp -.if n \{\ -.RS 4 -.\} -.nf -#%PAM\-1\&.0 -# -# If we don\*(Aqt have config entries for a service, the -# OTHER entries are used\&. To be secure, warn and deny -# access to everything\&. -other auth required pam_warn\&.so -other auth required pam_deny\&.so -other account required pam_warn\&.so -other account required pam_deny\&.so -other password required pam_warn\&.so -other password required pam_deny\&.so -other session required pam_warn\&.so -other session required pam_deny\&.so - -.fi -.if n \{\ -.RE -.\} -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_warn was written by Andrew G\&. Morgan <morgan@kernel\&.org>\&. diff --git a/modules/pam_warn/pam_warn.c b/modules/pam_warn/pam_warn.c index d91c3e9f..e2258feb 100644 --- a/modules/pam_warn/pam_warn.c +++ b/modules/pam_warn/pam_warn.c @@ -17,8 +17,8 @@ /* some syslogging */ #define OBTAIN(item, value, default_value) do { \ - (void) pam_get_item(pamh, item, &value); \ - value = value ? value : default_value ; \ + (void) pam_get_item(pamh, item, &(value)); \ + (value) = (value) ? (value) : (default_value) ; \ } while (0) static void log_items(pam_handle_t *pamh, const char *function, int flags) diff --git a/modules/pam_warn/tst-pam_warn-retval.c b/modules/pam_warn/tst-pam_warn-retval.c index 49d6524e..48b1f311 100644 --- a/modules/pam_warn/tst-pam_warn-retval.c +++ b/modules/pam_warn/tst-pam_warn-retval.c @@ -31,10 +31,10 @@ main(void) /* PAM_IGNORE -> PAM_PERM_DENIED */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "account required %s/.libs/%s.so\n" - "password required %s/.libs/%s.so\n" - "session required %s/.libs/%s.so\n", + "auth required %s/" LTDIR "%s.so\n" + "account required %s/" LTDIR "%s.so\n" + "password required %s/" LTDIR "%s.so\n" + "session required %s/" LTDIR "%s.so\n", cwd, MODULE_NAME, cwd, MODULE_NAME, cwd, MODULE_NAME, @@ -56,14 +56,14 @@ main(void) /* PAM_IGNORE -> PAM_SUCCESS */ ASSERT_NE(NULL, fp = fopen(service_file, "w")); ASSERT_LT(0, fprintf(fp, "#%%PAM-1.0\n" - "auth required %s/.libs/%s.so\n" - "auth required %s/../pam_permit/.libs/pam_permit.so\n" - "account required %s/.libs/%s.so\n" - "account required %s/../pam_permit/.libs/pam_permit.so\n" - "password required %s/.libs/%s.so\n" - "password required %s/../pam_permit/.libs/pam_permit.so\n" - "session required %s/.libs/%s.so\n" - "session required %s/../pam_permit/.libs/pam_permit.so\n", + "auth required %s/" LTDIR "%s.so\n" + "auth required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "account required %s/" LTDIR "%s.so\n" + "account required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "password required %s/" LTDIR "%s.so\n" + "password required %s/../pam_permit/" LTDIR "pam_permit.so\n" + "session required %s/" LTDIR "%s.so\n" + "session required %s/../pam_permit/" LTDIR "pam_permit.so\n", cwd, MODULE_NAME, cwd, cwd, MODULE_NAME, cwd, cwd, MODULE_NAME, cwd, diff --git a/modules/pam_wheel/Makefile.am b/modules/pam_wheel/Makefile.am deleted file mode 100644 index 4d9084e0..00000000 --- a/modules/pam_wheel/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_wheel.8 -endif -XMLS = README.xml pam_wheel.8.xml -dist_check_SCRIPTS = tst-pam_wheel -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_wheel.la -pam_wheel_la_LIBADD = $(top_builddir)/libpam/libpam.la - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_wheel/Makefile.in b/modules/pam_wheel/Makefile.in deleted file mode 100644 index d9ea36d3..00000000 --- a/modules/pam_wheel/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_wheel -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_wheel_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_wheel_la_SOURCES = pam_wheel.c -pam_wheel_la_OBJECTS = pam_wheel.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_wheel.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_wheel.c -DIST_SOURCES = pam_wheel.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_wheel.8 -XMLS = README.xml pam_wheel.8.xml -dist_check_SCRIPTS = tst-pam_wheel -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_wheel.la -pam_wheel_la_LIBADD = $(top_builddir)/libpam/libpam.la -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_wheel/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_wheel/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_wheel.la: $(pam_wheel_la_OBJECTS) $(pam_wheel_la_DEPENDENCIES) $(EXTRA_pam_wheel_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_wheel_la_OBJECTS) $(pam_wheel_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_wheel.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_wheel.log: tst-pam_wheel - @p='tst-pam_wheel'; \ - b='tst-pam_wheel'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_wheel.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_wheel.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_wheel/README b/modules/pam_wheel/README deleted file mode 100644 index 5dae4b61..00000000 --- a/modules/pam_wheel/README +++ /dev/null @@ -1,61 +0,0 @@ -pam_wheel — Only permit root access to members of group wheel - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_wheel PAM module is used to enforce the so-called wheel group. By -default it permits access to the target user if the applicant user is a member -of the wheel group. If no group with this name exist, the module is using the -group with the group-ID 0. - -OPTIONS - -debug - - Print debug information. - -deny - - Reverse the sense of the auth operation: if the user is trying to get UID 0 - access and is a member of the wheel group (or the group of the group - option), deny access. Conversely, if the user is not in the group, return - PAM_IGNORE (unless trust was also specified, in which case we return - PAM_SUCCESS). - -group=name - - Instead of checking the wheel or GID 0 groups, use the name group to - perform the authentication. - -root_only - - The check for wheel membership is done only when the target user UID is 0. - -trust - - The pam_wheel module will return PAM_SUCCESS instead of PAM_IGNORE if the - user is a member of the wheel group (thus with a little play stacking the - modules the wheel members may be able to su to root without being prompted - for a passwd). - -use_uid - - The check will be done against the real uid of the calling process, instead - of trying to obtain the user from the login session associated with the - terminal in use. - -EXAMPLES - -The root account gains access by default (rootok), only wheel members can -become root (wheel) but Unix authenticate non-root applicants. - -su auth sufficient pam_rootok.so -su auth required pam_wheel.so -su auth required pam_unix.so - - -AUTHOR - -pam_wheel was written by Cristian Gafton <gafton@redhat.com>. - diff --git a/modules/pam_wheel/meson.build b/modules/pam_wheel/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_wheel/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_wheel/pam_wheel.8 b/modules/pam_wheel/pam_wheel.8 deleted file mode 100644 index 8077e814..00000000 --- a/modules/pam_wheel/pam_wheel.8 +++ /dev/null @@ -1,147 +0,0 @@ -'\" t -.\" Title: pam_wheel -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_WHEEL" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_wheel \- Only permit root access to members of group wheel -.SH "SYNOPSIS" -.HP \w'\fBpam_wheel\&.so\fR\ 'u -\fBpam_wheel\&.so\fR [debug] [deny] [group=\fIname\fR] [root_only] [trust] [use_uid] -.SH "DESCRIPTION" -.PP -The pam_wheel PAM module is used to enforce the so\-called -\fIwheel\fR -group\&. By default it permits access to the target user if the applicant user is a member of the -\fIwheel\fR -group\&. If no group with this name exist, the module is using the group with the group\-ID -\fB0\fR\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -deny -.RS 4 -Reverse the sense of the auth operation: if the user is trying to get UID 0 access and is a member of the wheel group (or the group of the -\fBgroup\fR -option), deny access\&. Conversely, if the user is not in the group, return PAM_IGNORE (unless -\fBtrust\fR -was also specified, in which case we return PAM_SUCCESS)\&. -.RE -.PP -group=name -.RS 4 -Instead of checking the wheel or GID 0 groups, use the -\fB\fIname\fR\fR -group to perform the authentication\&. -.RE -.PP -root_only -.RS 4 -The check for wheel membership is done only when the target user UID is 0\&. -.RE -.PP -trust -.RS 4 -The pam_wheel module will return PAM_SUCCESS instead of PAM_IGNORE if the user is a member of the wheel group (thus with a little play stacking the modules the wheel members may be able to su to root without being prompted for a passwd)\&. -.RE -.PP -use_uid -.RS 4 -The check will be done against the real uid of the calling process, instead of trying to obtain the user from the login session associated with the terminal in use\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -The -\fBauth\fR -and -\fBaccount\fR -module types are provided\&. -.SH "RETURN VALUES" -.PP -PAM_AUTH_ERR -.RS 4 -Authentication failure\&. -.RE -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_IGNORE -.RS 4 -The return value should be ignored by PAM dispatch\&. -.RE -.PP -PAM_PERM_DENY -.RS 4 -Permission denied\&. -.RE -.PP -PAM_SERVICE_ERR -.RS 4 -Cannot determine the user name\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known\&. -.RE -.SH "EXAMPLES" -.PP -The root account gains access by default (rootok), only wheel members can become root (wheel) but Unix authenticate non\-root applicants\&. -.sp -.if n \{\ -.RS 4 -.\} -.nf -su auth sufficient pam_rootok\&.so -su auth required pam_wheel\&.so -su auth required pam_unix\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_wheel was written by Cristian Gafton <gafton@redhat\&.com>\&. diff --git a/modules/pam_wheel/pam_wheel.c b/modules/pam_wheel/pam_wheel.c index 179f56b3..dd047afb 100644 --- a/modules/pam_wheel/pam_wheel.c +++ b/modules/pam_wheel/pam_wheel.c @@ -54,11 +54,11 @@ static int _pam_parse (const pam_handle_t *pamh, int argc, const char **argv, - char *use_group, size_t group_length) + const char **use_group) { int ctrl=0; - memset(use_group, '\0', group_length); + *use_group = ""; /* step through arguments */ for (ctrl=0; argc-- > 0; ++argv) { @@ -77,7 +77,7 @@ _pam_parse (const pam_handle_t *pamh, int argc, const char **argv, else if (!strcmp(*argv,"root_only")) ctrl |= PAM_ROOT_ONLY_ARG; else if ((str = pam_str_skip_prefix(*argv, "group=")) != NULL) - strncpy(use_group, str, group_length - 1); + *use_group = str; else { pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv); } @@ -237,10 +237,10 @@ int pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { - char use_group[BUFSIZ]; + const char *use_group; int ctrl; - ctrl = _pam_parse(pamh, argc, argv, use_group, sizeof(use_group)); + ctrl = _pam_parse(pamh, argc, argv, &use_group); return perform_check(pamh, ctrl, use_group); } @@ -256,10 +256,10 @@ int pam_sm_acct_mgmt (pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { - char use_group[BUFSIZ]; + const char *use_group; int ctrl; - ctrl = _pam_parse(pamh, argc, argv, use_group, sizeof(use_group)); + ctrl = _pam_parse(pamh, argc, argv, &use_group); return perform_check(pamh, ctrl, use_group); } diff --git a/modules/pam_xauth/Makefile.am b/modules/pam_xauth/Makefile.am deleted file mode 100644 index bf736abe..00000000 --- a/modules/pam_xauth/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README - -EXTRA_DIST = $(XMLS) - -if HAVE_DOC -dist_man_MANS = pam_xauth.8 -endif -XMLS = README.xml pam_xauth.8.xml -dist_check_SCRIPTS = tst-pam_xauth -TESTS = $(dist_check_SCRIPTS) - -securelibdir = $(SECUREDIR) -if HAVE_VENDORDIR -secureconfdir = $(VENDOR_SCONFIGDIR) -else -secureconfdir = $(SCONFIGDIR) -endif - -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) -AM_LDFLAGS = -no-undefined -avoid-version -module -if HAVE_VERSIONING - AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map -endif - -securelib_LTLIBRARIES = pam_xauth.la -pam_xauth_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ - -if ENABLE_REGENERATE_MAN -dist_noinst_DATA = README --include $(top_srcdir)/Make.xml.rules -endif diff --git a/modules/pam_xauth/Makefile.in b/modules/pam_xauth/Makefile.in deleted file mode 100644 index 4d3a6b79..00000000 --- a/modules/pam_xauth/Makefile.in +++ /dev/null @@ -1,1161 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2005, 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_VERSIONING_TRUE@am__append_1 = -Wl,--version-script=$(srcdir)/../modules.map -subdir = modules/pam_xauth -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(dist_check_SCRIPTS) \ - $(am__dist_noinst_DATA_DIST) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)" -LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_xauth_la_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -pam_xauth_la_SOURCES = pam_xauth.c -pam_xauth_la_OBJECTS = pam_xauth.lo -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/pam_xauth.Plo -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = pam_xauth.c -DIST_SOURCES = pam_xauth.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man8dir = $(mandir)/man8 -NROFF = nroff -MANS = $(dist_man_MANS) -am__dist_noinst_DATA_DIST = README -DATA = $(dist_noinst_DATA) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -CLEANFILES = *~ -MAINTAINERCLEANFILES = $(MANS) README -EXTRA_DIST = $(XMLS) -@HAVE_DOC_TRUE@dist_man_MANS = pam_xauth.8 -XMLS = README.xml pam_xauth.8.xml -dist_check_SCRIPTS = tst-pam_xauth -TESTS = $(dist_check_SCRIPTS) -securelibdir = $(SECUREDIR) -@HAVE_VENDORDIR_FALSE@secureconfdir = $(SCONFIGDIR) -@HAVE_VENDORDIR_TRUE@secureconfdir = $(VENDOR_SCONFIGDIR) -AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ - $(WARN_CFLAGS) - -AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) -securelib_LTLIBRARIES = pam_xauth.la -pam_xauth_la_LIBADD = $(top_builddir)/libpam/libpam.la @LIBSELINUX@ -@ENABLE_REGENERATE_MAN_TRUE@dist_noinst_DATA = README -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/pam_xauth/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu modules/pam_xauth/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-securelibLTLIBRARIES: $(securelib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(securelibdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(securelibdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(securelibdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(securelibdir)"; \ - } - -uninstall-securelibLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(securelib_LTLIBRARIES)'; test -n "$(securelibdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(securelibdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(securelibdir)/$$f"; \ - done - -clean-securelibLTLIBRARIES: - -test -z "$(securelib_LTLIBRARIES)" || rm -f $(securelib_LTLIBRARIES) - @list='$(securelib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -pam_xauth.la: $(pam_xauth_la_OBJECTS) $(pam_xauth_la_DEPENDENCIES) $(EXTRA_pam_xauth_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) -rpath $(securelibdir) $(pam_xauth_la_OBJECTS) $(pam_xauth_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_xauth.Plo@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man8: $(dist_man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(dist_man_MANS)'; \ - test -n "$(man8dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.8[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ - done; } - -uninstall-man8: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man8dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.8[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(dist_check_SCRIPTS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(dist_check_SCRIPTS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_xauth.log: tst-pam_xauth - @p='tst-pam_xauth'; \ - b='tst-pam_xauth'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(LTLIBRARIES) $(MANS) $(DATA) -installdirs: - for dir in "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man8dir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-securelibLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/pam_xauth.Plo - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-man install-securelibLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man8 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/pam_xauth.Plo - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-man uninstall-securelibLTLIBRARIES - -uninstall-man: uninstall-man8 - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-generic clean-libtool \ - clean-securelibLTLIBRARIES cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-man8 install-pdf \ - install-pdf-am install-ps install-ps-am \ - install-securelibLTLIBRARIES install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am uninstall-man \ - uninstall-man8 uninstall-securelibLTLIBRARIES - -.PRECIOUS: Makefile - -@ENABLE_REGENERATE_MAN_TRUE@-include $(top_srcdir)/Make.xml.rules - -# 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: diff --git a/modules/pam_xauth/README b/modules/pam_xauth/README deleted file mode 100644 index a32822d2..00000000 --- a/modules/pam_xauth/README +++ /dev/null @@ -1,90 +0,0 @@ -pam_xauth — PAM module to forward xauth keys between users - -â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â” - -DESCRIPTION - -The pam_xauth PAM module is designed to forward xauth keys (sometimes referred -to as "cookies") between users. - -Without pam_xauth, when xauth is enabled and a user uses the su(1) command to -assume another user's privileges, that user is no longer able to access the -original user's X display because the new user does not have the key needed to -access the display. pam_xauth solves the problem by forwarding the key from the -user running su (the source user) to the user whose identity the source user is -assuming (the target user) when the session is created, and destroying the key -when the session is torn down. - -This means, for example, that when you run su(1) from an xterm session, you -will be able to run X programs without explicitly dealing with the xauth(1) -xauth command or ~/.Xauthority files. - -pam_xauth will only forward keys if xauth can list a key connected to the -$DISPLAY environment variable. - -Primitive access control is provided by ~/.xauth/export in the invoking user's -home directory and ~/.xauth/import in the target user's home directory. - -If a user has a ~/.xauth/import file, the user will only receive cookies from -users listed in the file. If there is no ~/.xauth/import file, the user will -accept cookies from any other user. - -If a user has a .xauth/export file, the user will only forward cookies to users -listed in the file. If there is no ~/.xauth/export file, and the invoking user -is not root, the user will forward cookies to any other user. If there is no ~ -/.xauth/export file, and the invoking user is root, the user will not forward -cookies to other users. - -Both the import and export files support wildcards (such as *). Both the import -and export files can be empty, signifying that no users are allowed. - -OPTIONS - -debug - - Print debug information. - -xauthpath=/path/to/xauth - - Specify the path the xauth program (it is expected in /usr/X11R6/bin/xauth, - /usr/bin/xauth, or /usr/bin/X11/xauth by default). - -systemuser=UID - - Specify the highest UID which will be assumed to belong to a "system" user. - pam_xauth will refuse to forward credentials to users with UID less than or - equal to this number, except for root and the "targetuser", if specified. - -targetuser=UID - - Specify a single target UID which is exempt from the systemuser check. - -EXAMPLES - -Add the following line to /etc/pam.d/su to forward xauth keys between users -when calling su: - -session optional pam_xauth.so - - -IMPLEMENTATION DETAILS - -pam_xauth will work only if it is used from a setuid application in which the -getuid() call returns the id of the user running the application, and for which -PAM can supply the name of the account that the user is attempting to assume. -The typical application of this type is su(1). The application must call both -pam_open_session() and pam_close_session() with the ruid set to the uid of the -calling user and the euid set to root, and must have provided as the PAM_USER -item the name of the target user. - -pam_xauth calls xauth(1) as the source user to extract the key for $DISPLAY, -then calls xauth as the target user to merge the key into the a temporary -database and later remove the database. - -pam_xauth cannot be told to not remove the keys when the session is closed. - -AUTHOR - -pam_xauth was written by Nalin Dahyabhai <nalin@redhat.com>, based on original -version by Michael K. Johnson <johnsonm@redhat.com>. - diff --git a/modules/pam_xauth/meson.build b/modules/pam_xauth/meson.build new file mode 120000 index 00000000..ba2e9b52 --- /dev/null +++ b/modules/pam_xauth/meson.build @@ -0,0 +1 @@ +../module-meson.build
\ No newline at end of file diff --git a/modules/pam_xauth/pam_xauth.8 b/modules/pam_xauth/pam_xauth.8 deleted file mode 100644 index 31c90745..00000000 --- a/modules/pam_xauth/pam_xauth.8 +++ /dev/null @@ -1,183 +0,0 @@ -'\" t -.\" Title: pam_xauth -.\" Author: [see the "AUTHOR" section] -.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/> -.\" Date: 05/07/2023 -.\" Manual: Linux-PAM Manual -.\" Source: Linux-PAM -.\" Language: English -.\" -.TH "PAM_XAUTH" "8" "05/07/2023" "Linux\-PAM" "Linux\-PAM Manual" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -pam_xauth \- PAM module to forward xauth keys between users -.SH "SYNOPSIS" -.HP \w'\fBpam_xauth\&.so\fR\ 'u -\fBpam_xauth\&.so\fR [debug] [xauthpath=\fI/path/to/xauth\fR] [systemuser=\fIUID\fR] [targetuser=\fIUID\fR] -.SH "DESCRIPTION" -.PP -The pam_xauth PAM module is designed to forward xauth keys (sometimes referred to as "cookies") between users\&. -.PP -Without pam_xauth, when xauth is enabled and a user uses the -\fBsu\fR(1) -command to assume another user\*(Aqs privileges, that user is no longer able to access the original user\*(Aqs X display because the new user does not have the key needed to access the display\&. pam_xauth solves the problem by forwarding the key from the user running su (the source user) to the user whose identity the source user is assuming (the target user) when the session is created, and destroying the key when the session is torn down\&. -.PP -This means, for example, that when you run -\fBsu\fR(1) -from an xterm session, you will be able to run X programs without explicitly dealing with the -\fBxauth\fR(1) -xauth command or ~/\&.Xauthority files\&. -.PP -pam_xauth will only forward keys if xauth can list a key connected to the $DISPLAY environment variable\&. -.PP -Primitive access control is provided by -~/\&.xauth/export -in the invoking user\*(Aqs home directory and -~/\&.xauth/import -in the target user\*(Aqs home directory\&. -.PP -If a user has a -~/\&.xauth/import -file, the user will only receive cookies from users listed in the file\&. If there is no -~/\&.xauth/import -file, the user will accept cookies from any other user\&. -.PP -If a user has a -\&.xauth/export -file, the user will only forward cookies to users listed in the file\&. If there is no -~/\&.xauth/export -file, and the invoking user is not -\fBroot\fR, the user will forward cookies to any other user\&. If there is no -~/\&.xauth/export -file, and the invoking user is -\fBroot\fR, the user will -\fInot\fR -forward cookies to other users\&. -.PP -Both the import and export files support wildcards (such as -\fI*\fR)\&. Both the import and export files can be empty, signifying that no users are allowed\&. -.SH "OPTIONS" -.PP -debug -.RS 4 -Print debug information\&. -.RE -.PP -xauthpath=/path/to/xauth -.RS 4 -Specify the path the xauth program (it is expected in -/usr/X11R6/bin/xauth, -/usr/bin/xauth, or -/usr/bin/X11/xauth -by default)\&. -.RE -.PP -systemuser=UID -.RS 4 -Specify the highest UID which will be assumed to belong to a "system" user\&. pam_xauth will refuse to forward credentials to users with UID less than or equal to this number, except for root and the "targetuser", if specified\&. -.RE -.PP -targetuser=UID -.RS 4 -Specify a single target UID which is exempt from the systemuser check\&. -.RE -.SH "MODULE TYPES PROVIDED" -.PP -Only the -\fBsession\fR -type is provided\&. -.SH "RETURN VALUES" -.PP -PAM_BUF_ERR -.RS 4 -Memory buffer error\&. -.RE -.PP -PAM_PERM_DENIED -.RS 4 -Permission denied by import/export file\&. -.RE -.PP -PAM_SESSION_ERR -.RS 4 -Cannot determine user name, UID or access users home directory\&. -.RE -.PP -PAM_SUCCESS -.RS 4 -Success\&. -.RE -.PP -PAM_USER_UNKNOWN -.RS 4 -User not known\&. -.RE -.SH "EXAMPLES" -.PP -Add the following line to -/etc/pam\&.d/su -to forward xauth keys between users when calling su: -.sp -.if n \{\ -.RS 4 -.\} -.nf -session optional pam_xauth\&.so - -.fi -.if n \{\ -.RE -.\} -.sp -.SH "IMPLEMENTATION DETAILS" -.PP -pam_xauth will work -\fIonly\fR -if it is used from a setuid application in which the -\fBgetuid\fR() call returns the id of the user running the application, and for which PAM can supply the name of the account that the user is attempting to assume\&. The typical application of this type is -\fBsu\fR(1)\&. The application must call both -\fBpam_open_session\fR() and -\fBpam_close_session\fR() with the ruid set to the uid of the calling user and the euid set to root, and must have provided as the PAM_USER item the name of the target user\&. -.PP -pam_xauth calls -\fBxauth\fR(1) -as the source user to extract the key for $DISPLAY, then calls xauth as the target user to merge the key into the a temporary database and later remove the database\&. -.PP -pam_xauth cannot be told to not remove the keys when the session is closed\&. -.SH "FILES" -.PP -~/\&.xauth/import -.RS 4 -XXX -.RE -.PP -~/\&.xauth/export -.RS 4 -XXX -.RE -.SH "SEE ALSO" -.PP -\fBpam.conf\fR(5), -\fBpam.d\fR(5), -\fBpam\fR(8) -.SH "AUTHOR" -.PP -pam_xauth was written by Nalin Dahyabhai <nalin@redhat\&.com>, based on original version by Michael K\&. Johnson <johnsonm@redhat\&.com>\&. diff --git a/modules/pam_xauth/pam_xauth.c b/modules/pam_xauth/pam_xauth.c index f3e2a40d..5e80b312 100644 --- a/modules/pam_xauth/pam_xauth.c +++ b/modules/pam_xauth/pam_xauth.c @@ -73,11 +73,6 @@ #define XAUTHDEF ".Xauthority" #define XAUTHTMP ".xauthXXXXXX" -/* Hurd compatibility */ -#ifndef PATH_MAX -#define PATH_MAX 4096 -#endif - /* Possible paths to xauth executable */ static const char * const xauthpaths[] = { #ifdef PAM_PATH_XAUTH @@ -92,14 +87,13 @@ static const char * const xauthpaths[] = { * given input on stdin, and storing any output it generates. */ static int run_coprocess(pam_handle_t *pamh, const char *input, char **output, - uid_t uid, gid_t gid, const char *command, ...) + uid_t uid, gid_t gid, const char *command, const char *argv[]) { int ipipe[2], opipe[2], i; char buf[LINE_MAX]; pid_t child; char *buffer = NULL; size_t buffer_size = 0; - va_list ap; struct sigaction newsa, oldsa; *output = NULL; @@ -139,9 +133,6 @@ run_coprocess(pam_handle_t *pamh, const char *input, char **output, } if (child == 0) { - /* We're the child. */ - size_t j; - const char *args[10] = {}; /* Drop privileges. */ if (setgid(gid) == -1) { @@ -181,18 +172,9 @@ run_coprocess(pam_handle_t *pamh, const char *input, char **output, PAM_MODUTIL_NULL_FD) < 0) { _exit(1); } - /* Convert the varargs list into a regular array of strings. */ - va_start(ap, command); - args[0] = command; - for (j = 1; j < PAM_ARRAY_SIZE(args) - 1; j++) { - args[j] = va_arg(ap, const char*); - if (args[j] == NULL) { - break; - } - } /* Run the command. */ DIAG_PUSH_IGNORE_CAST_QUAL; - execv(command, (char *const *) args); + execv(command, (char *const *) argv); DIAG_POP_IGNORE_CAST_QUAL; /* Never reached. */ _exit(1); @@ -215,9 +197,7 @@ run_coprocess(pam_handle_t *pamh, const char *input, char **output, tmp = realloc(buffer, buffer_size + i + 1); if (tmp == NULL) { /* Uh-oh, bail. */ - if (buffer != NULL) { - free(buffer); - } + free(buffer); close(opipe[0]); waitpid(child, NULL, 0); sigaction(SIGCHLD, &oldsa, NULL); /* restore old signal handler */ @@ -255,7 +235,7 @@ check_acl(pam_handle_t *pamh, const char *sense, const char *this_user, const char *other_user, int noent_code, int debug) { - char path[PATH_MAX]; + char *path = NULL; struct passwd *pwd; FILE *fp = NULL; int i, fd = -1, save_errno; @@ -271,14 +251,17 @@ check_acl(pam_handle_t *pamh, return PAM_SESSION_ERR; } /* Figure out what that file is really named. */ - i = snprintf(path, sizeof(path), "%s/.xauth/%s", pwd->pw_dir, sense); - if ((i >= (int)sizeof(path)) || (i < 0)) { + i = asprintf(&path, "%s/.xauth/%s", pwd->pw_dir, sense); + if (i < 0) { pam_syslog(pamh, LOG_ERR, - "name of user's home directory is too long"); + "cannot allocate path buffer for ~/.xauth/%s", + sense); return PAM_SESSION_ERR; } - if (pam_modutil_drop_priv(pamh, &privs, pwd)) + if (pam_modutil_drop_priv(pamh, &privs, pwd)) { + free(path); return PAM_SESSION_ERR; + } if (!stat(path, &st)) { if (!S_ISREG(st.st_mode)) errno = EINVAL; @@ -289,6 +272,7 @@ check_acl(pam_handle_t *pamh, if (pam_modutil_regain_priv(pamh, &privs)) { if (fd >= 0) close(fd); + free(path); return PAM_SESSION_ERR; } if (fd >= 0) { @@ -304,24 +288,20 @@ check_acl(pam_handle_t *pamh, } } if (fp) { - char buf[LINE_MAX], *tmp; + char *buf = NULL; + size_t n = 0; /* Scan the file for a list of specs of users to "trust". */ - while (fgets(buf, sizeof(buf), fp) != NULL) { - tmp = memchr(buf, '\r', sizeof(buf)); - if (tmp != NULL) { - *tmp = '\0'; - } - tmp = memchr(buf, '\n', sizeof(buf)); - if (tmp != NULL) { - *tmp = '\0'; - } + while (getline(&buf, &n, fp) != -1) { + buf[strcspn(buf, "\r\n")] = '\0'; if (fnmatch(buf, other_user, 0) == 0) { if (debug) { pam_syslog(pamh, LOG_DEBUG, "%s %s allowed by %s", other_user, sense, path); } + free(buf); fclose(fp); + free(path); return PAM_SUCCESS; } } @@ -330,7 +310,9 @@ check_acl(pam_handle_t *pamh, pam_syslog(pamh, LOG_DEBUG, "%s not listed in %s", other_user, path); } + free(buf); fclose(fp); + free(path); return PAM_PERM_DENIED; } else { /* Default to okay if the file doesn't exist. */ @@ -350,12 +332,19 @@ check_acl(pam_handle_t *pamh, path); } } + free(path); return noent_code; + case ENAMETOOLONG: + pam_syslog(pamh, LOG_ERR, + "error opening %s: %m", path); + free(path); + return PAM_SESSION_ERR; default: if (debug) { pam_syslog(pamh, LOG_DEBUG, "error opening %s: %m", path); } + free(path); return PAM_PERM_DENIED; } } @@ -515,16 +504,14 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, /* Figure out where the source user's .Xauthority file is. */ if (getenv(XAUTHENV) != NULL) { cookiefile = strdup(getenv(XAUTHENV)); - } else { - cookiefile = malloc(strlen(rpwd->pw_dir) + 1 + - strlen(XAUTHDEF) + 1); if (cookiefile == NULL) { retval = PAM_SESSION_ERR; goto cleanup; } - strcpy(cookiefile, rpwd->pw_dir); - strcat(cookiefile, "/"); - strcat(cookiefile, XAUTHDEF); + } else if (asprintf(&cookiefile, "%s/%s", rpwd->pw_dir, XAUTHDEF) < 0) { + cookiefile = NULL; + retval = PAM_SESSION_ERR; + goto cleanup; } if (debug) { pam_syslog(pamh, LOG_DEBUG, "reading keys from `%s'", @@ -542,8 +529,10 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, } if (run_coprocess(pamh, NULL, &cookie, getuid(), getgid(), + xauth, (const char *[]) { xauth, "-f", cookiefile, "nlist", display, - NULL) == 0) { + NULL}) == 0) { + char *cookiedata; #ifdef WITH_SELINUX char *context_raw = NULL; #endif @@ -553,31 +542,18 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, if (((cookie == NULL) || (strlen(cookie) == 0)) && (pam_str_skip_prefix(display, "localhost:") != NULL || pam_str_skip_prefix(display, "localhost/unix:") != NULL)) { - char *t, *screen; - size_t tlen, slen; + char hostname[HOST_NAME_MAX + 1]; /* Free the useless cookie string. */ - if (cookie != NULL) { - free(cookie); - cookie = NULL; - } - /* Allocate enough space to hold an adjusted name. */ - tlen = strlen(display) + LINE_MAX + 1; - t = calloc(1, tlen); - if (t != NULL) { - if (gethostname(t, tlen - 1) != -1) { - /* Append the protocol and then the - * screen number. */ - if (strlen(t) < tlen - 6) { - strcat(t, "/unix:"); - } - screen = strchr(display, ':'); - if (screen != NULL) { - screen++; - slen = strlen(screen); - if (strlen(t) + slen < tlen) { - strcat(t, screen); - } - } + free(cookie); + cookie = NULL; + if (gethostname(hostname, sizeof(hostname)) != -1) { + const char *screen; + char *t; + + /* Append protocol and screen number to host. */ + screen = display + strcspn(display, ":"); + if (asprintf(&t, "%s/unix%s", + hostname, screen) >= 0) { if (debug) { pam_syslog(pamh, LOG_DEBUG, "no key for `%s', " @@ -600,11 +576,11 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, } run_coprocess(pamh, NULL, &cookie, getuid(), getgid(), + xauth, (const char *[]) { xauth, "-f", cookiefile, - "nlist", t, NULL); + "nlist", t, NULL}); + free(t); } - free(t); - t = NULL; } } @@ -637,11 +613,14 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, #ifdef WITH_SELINUX if (is_selinux_enabled() > 0) { struct selabel_handle *ctx = selabel_open(SELABEL_CTX_FILE, NULL, 0); - if (ctx != NULL) { + if (!ctx) { + pam_syslog(pamh, LOG_WARNING, + "could not initialize SELinux labeling handle: %m"); + } else { if (selabel_lookup_raw(ctx, &context_raw, xauthority + sizeof(XAUTHENV), S_IFREG) != 0) { pam_syslog(pamh, LOG_WARNING, - "could not get SELinux label for '%s'", + "could not get SELinux label for '%s': %m", xauthority + sizeof(XAUTHENV)); } selabel_close(ctx); @@ -672,15 +651,19 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, /* Get a copy of the filename to save as a data item for * removal at session-close time. */ - free(cookiefile); - cookiefile = strdup(xauthority + sizeof(XAUTHENV)); + cookiedata = strdup(xauthority + sizeof(XAUTHENV)); + if (!cookiedata) { + retval = PAM_SESSION_ERR; + goto cleanup; + } /* Save the filename. */ - if (pam_set_data(pamh, DATANAME, cookiefile, cleanup) != PAM_SUCCESS) { + if (pam_set_data(pamh, DATANAME, cookiedata, cleanup) != PAM_SUCCESS) { pam_syslog(pamh, LOG_ERR, "error saving name of temporary file `%s'", - cookiefile); - unlink(cookiefile); + cookiedata); + unlink(cookiedata); + free(cookiedata); retval = PAM_SESSION_ERR; goto cleanup; } @@ -700,7 +683,6 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, if (asprintf(&d, "DISPLAY=%s", display) < 0) { pam_syslog(pamh, LOG_CRIT, "out of memory"); - cookiefile = NULL; retval = PAM_SESSION_ERR; goto cleanup; } @@ -731,21 +713,21 @@ pam_sm_open_session (pam_handle_t *pamh, int flags UNUSED, if (debug) { pam_syslog(pamh, LOG_DEBUG, "writing key `%s' to temporary file `%s'", - cookie, cookiefile); + cookie, cookiedata); } if (debug) { pam_syslog(pamh, LOG_DEBUG, "running \"%s %s %s %s %s\" as %lu/%lu", - xauth, "-f", cookiefile, "nmerge", "-", + xauth, "-f", cookiedata, "nmerge", "-", (unsigned long) tpwd->pw_uid, (unsigned long) tpwd->pw_gid); } run_coprocess(pamh, cookie, &tmp, tpwd->pw_uid, tpwd->pw_gid, - xauth, "-f", cookiefile, "nmerge", "-", NULL); + xauth, (const char *[]) { + xauth, "-f", cookiedata, "nmerge", "-", NULL}); /* We don't need to keep a copy of these around any more. */ - cookiefile = NULL; free(tmp); } cleanup: diff --git a/po/Linux-PAM.pot b/po/Linux-PAM.pot index 093e0e75..72959df9 100644 --- a/po/Linux-PAM.pot +++ b/po/Linux-PAM.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Linux-PAM 1.5.3\n" +"Project-Id-Version: Linux-PAM 1.7.0\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\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" @@ -18,11 +18,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -32,6 +33,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -41,6 +43,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -63,189 +66,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -253,45 +262,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -300,148 +309,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -449,36 +460,36 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "" diff --git a/po/Makefile.in.in b/po/Makefile.in.in deleted file mode 100644 index fabdc76c..00000000 --- a/po/Makefile.in.in +++ /dev/null @@ -1,454 +0,0 @@ -# Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2007, 2009-2010 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 -# License but which still want to provide support for the GNU gettext -# 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.18.3 -GETTEXT_MACRO_VERSION = 0.18 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - -SED = @SED@ -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datarootdir = @datarootdir@ -datadir = @datadir@ -localedir = @localedir@ -gettextsrcdir = $(datadir)/gettext/po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -# We use $(mkdir_p). -# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as -# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, -# @install_sh@ does not start with $(SHELL), so we add it. -# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined -# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake -# versions, $(mkinstalldirs) and $(install_sh) are unused. -mkinstalldirs = $(SHELL) @install_sh@ -d -install_sh = $(SHELL) @install_sh@ -MKDIR_P = @MKDIR_P@ -mkdir_p = @mkdir_p@ - -GMSGFMT_ = @GMSGFMT@ -GMSGFMT_no = @GMSGFMT@ -GMSGFMT_yes = @GMSGFMT_015@ -GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) -MSGFMT_ = @MSGFMT@ -MSGFMT_no = @MSGFMT@ -MSGFMT_yes = @MSGFMT_015@ -MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) -XGETTEXT_ = @XGETTEXT@ -XGETTEXT_no = @XGETTEXT@ -XGETTEXT_yes = @XGETTEXT_015@ -XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) -MSGMERGE = msgmerge -MSGMERGE_UPDATE = @MSGMERGE@ --update -MSGINIT = msginit -MSGCONV = msgconv -MSGFILTER = msgfilter - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -UPDATEPOFILES = @UPDATEPOFILES@ -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 \ -$(POFILES) $(GMOFILES) \ -$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -# Makevars gets inserted here. (Don't remove this line!) - -.SUFFIXES: -.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update - -.po.mo: - @echo "$(MSGFMT) -c -o $@ $<"; \ - $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ - -.po.gmo: - @lang=`echo $* | sed -e 's,.*/,,'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ - cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo - -.sin.sed: - sed -e '/^#/d' $< > t-$@ - mv t-$@ $@ - - -all: all-@USE_NLS@ - -all-yes: stamp-po -all-no: - -# Ensure that the gettext macros and this Makefile.in.in are in sync. -CHECK_MACRO_VERSION = \ - test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ - || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ - exit 1; \ - } - -# $(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, -# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent -# invocations of "make" will do nothing. This timestamp would not be necessary -# if updating the $(CATALOGS) would always touch them; however, the rule for -# $(POFILES) has been designed to not touch files that don't need to be -# changed. -stamp-po: $(srcdir)/$(DOMAIN).pot - @$(CHECK_MACRO_VERSION) - 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 -# have been downloaded. - -# 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. -# The determination of whether the package xyz is a GNU one is based on the -# heuristic whether some file in the top level directory mentions "GNU xyz". -# If GNU 'find' is available, we avoid grepping through monster files. -$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed - if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ - LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \ - else \ - LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ - fi; \ - } | grep -v 'libtool:' >/dev/null; then \ - package_gnu='GNU '; \ - else \ - package_gnu=''; \ - fi; \ - 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; \ - case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --msgid-bugs-address="$$msgid_bugs_address" \ - ;; \ - *) \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --package-name="$${package_gnu}@PACKAGE@" \ - --package-version='@VERSION@' \ - --msgid-bugs-address="$$msgid_bugs_address" \ - ;; \ - esac - test ! -f $(DOMAIN).po || { \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ - sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ - if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ - else \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - else \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - } - -# This rule has no dependencies: we don't need to update $(DOMAIN).pot at -# every "make" invocation, only create it when it is missing. -# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. -$(srcdir)/$(DOMAIN).pot: - $(MAKE) $(DOMAIN).pot-update - -# This target rebuilds a PO file if $(DOMAIN).pot has changed. -# 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$$//'`; \ - if test -f "$(srcdir)/$${lang}.po"; then \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ - cd $(srcdir) \ - && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ - *) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ - esac; \ - }; \ - else \ - $(MAKE) $${lang}.po-create; \ - fi - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common) Makevars.template; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - for file in Makevars; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -install-data-no: all -install-data-yes: all - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ - fi; \ - done; \ - done - -install-strip: install - -installdirs: installdirs-exec installdirs-data -installdirs-exec: -installdirs-data: installdirs-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi -installdirs-data-no: -installdirs-data-yes: - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - fi; \ - done; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: uninstall-exec uninstall-data -uninstall-exec: -uninstall-data: uninstall-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - for file in $(DISTFILES.common) Makevars.template; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -uninstall-data-no: -uninstall-data-yes: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - done; \ - done - -check: all - -info dvi ps pdf html tags TAGS ctags CTAGS ID: - -mostlyclean: - rm -f remove-potcdate.sed - rm -f stamp-poT - rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f stamp-po $(GMOFILES) - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: - $(MAKE) update-po - @$(MAKE) dist2 -# This is a separate target because 'update-po' must be executed before. -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; \ - for i in 0 1 2 3 4 5 6 7 8 9; do \ - if test -f $(srcdir)/ChangeLog.$$i; then \ - dists="$$dists ChangeLog.$$i"; \ - fi; \ - done; \ - if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ - for file in $$dists; do \ - if test -f $$file; then \ - cp -p $$file $(distdir) || exit 1; \ - else \ - cp -p $(srcdir)/$$file $(distdir) || exit 1; \ - fi; \ - done - -update-po: Makefile - $(MAKE) $(DOMAIN).pot-update - 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: - @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ - if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ - cd $(srcdir); \ - if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ - *) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ - esac; \ - }; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -$(DUMMYPOFILES): - -update-gmo: Makefile $(GMOFILES) - @: - -# Recreate Makefile by invoking config.status. Explicitly invoke the shell, -# because execution permission bits may not work on the current file system. -# Use @SHELL@, which is the shell determined by autoconf for the use by its -# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. -Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ - cd $(top_builddir) \ - && @SHELL@ ./config.status $(subdir)/$@.in po-directories - -force: - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po/Makevars b/po/Makevars deleted file mode 100644 index bd47dcdd..00000000 --- a/po/Makevars +++ /dev/null @@ -1,53 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = -E --keyword=_ --keyword=N_ - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Linux-PAM Project - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = https://github.com/linux-pam/linux-pam/issues - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = - -# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' -# context. Possible values are "yes" and "no". Set this to yes if the -# package uses functions taking also a message context, like pgettext(), or -# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. -USE_MSGCTXT = no - -# These options get passed to msgmerge. -# Useful options are in particular: -# --previous to keep previous msgids of translated messages, -# --quiet to reduce the verbosity. -MSGMERGE_OPTIONS = diff --git a/po/Rules-quot b/po/Rules-quot deleted file mode 100644 index 5931e539..00000000 --- a/po/Rules-quot +++ /dev/null @@ -1,47 +0,0 @@ -# Special Makefile rules for English message catalogs with quotation marks. - -DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot - -.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 - -.insert-header.po-update-en: - @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ - if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - ll=`echo $$lang | sed -e 's/@.*//'`; \ - LC_ALL=C; export LC_ALL; \ - cd $(srcdir); \ - if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "creation of $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -en@quot.insert-header: insert-header.sin - sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header - -en@boldquot.insert-header: insert-header.sin - sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header - -mostlyclean: mostlyclean-quot -mostlyclean-quot: - rm -f *.insert-header diff --git a/po/af.gmo b/po/af.gmo Binary files differdeleted file mode 100644 index 7fb8c5b0..00000000 --- a/po/af.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Afrikaans (http://www.transifex.com/projects/p/fedora/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Jy moet 'n korter wagwoord kies." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Jy moet 'n korter wagwoord kies." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Jy moet 'n korter wagwoord kies." diff --git a/po/am.gmo b/po/am.gmo Binary files differdeleted file mode 100644 index 29cf4af5..00000000 --- a/po/am.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Amharic (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "አጠሠያለ የá‹áˆˆá ቃሠመáˆáˆ¨áŒ¥ አለብህ." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "አጠሠያለ የá‹áˆˆá ቃሠመáˆáˆ¨áŒ¥ አለብህ." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "አጠሠያለ የá‹áˆˆá ቃሠመáˆáˆ¨áŒ¥ አለብህ." diff --git a/po/ar.gmo b/po/ar.gmo Binary files differdeleted file mode 100644 index e7523c79..00000000 --- a/po/ar.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-07-05 10:55+0000\n" "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" "Language-Team: Arabic <https://translate.fedoraproject.org/projects/linux-" @@ -22,11 +22,12 @@ msgstr "" "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Weblate 4.1.1\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "كلمة السر: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "كلمة سر %s الجديدة: " msgid "Current password: " msgstr "كلمة سر الجديدة: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "كلمة سر %s الجديدة: " msgid "New password: " msgstr "كلمة سر الجديدة: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,171 +72,177 @@ msgstr "" msgid "Password change has been aborted." msgstr "كلمة السر التي تم إدخالها مستخدمة Ø¨Ø§Ù„ÙØ¹Ù„. اختر كلمة سر أخرى." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "تسجيل الدخول:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "نجاØ" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "خطأ جسيم - إيقا٠Ùوري" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "الرمز غير موجود" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "خطأ ÙÙŠ Ø§Ù„ÙˆØØ¯Ø© النمطية للخدمة" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "خطأ بالنظام" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "خطأ ÙÙŠ الذاكرة الوسيطة" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "الإذن مرÙوض" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "ÙØ´Ù„ التصديق" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "صلاØÙŠØ§Øª غير كاÙية للوصول إلى بيانات التصديق" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "تعذر على خدمة التصديق استرجاع معلومات التصديق" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "المستخدم مجهول بالنسبة Ù„ÙˆØØ¯Ø© التصديق النمطية الأساسية" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "تم Ø§Ø³ØªÙ†ÙØ§Ø° Ø§Ù„ØØ¯ الأقصى Ù„Ù„Ù…ØØ§ÙˆÙ„Ø© بالنسبة لهذه الخدمة" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "لم يعد الرمز المميز للتصديق صالØÙ‹Ø§ØŒ مطلوب رمز مميز جديد" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "انتهت صلاØÙŠØ© ØØ³Ø§Ø¨ المستخدم" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "لا يمكن إنشاء/إزالة إدخال بالنسبة للجلسة Ø§Ù„Ù…ØØ¯Ø¯Ø©" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "لا يمكن لخدمة التصديق استرجاع صلاØÙŠØ§Øª المستخدم" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "صلاØÙŠØ§Øª المستخدم منتهية الصلاØÙŠØ©" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ÙØ´Ù„ تعيين صلاØÙŠØ§Øª المستخدم" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "لا يوجد بيانات خاصة Ø¨Ø§Ù„ÙˆØØ¯Ø§Øª النمطية" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "تم تمرير عنصر سيء إلى pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "خطأ ÙÙŠ Ø§Ù„Ù…ØØ§Ø¯Ø«Ø©" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "خطأ ÙÙŠ معالجة الرمز المميز للتصديق" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "لا يمكن استعادة معلومات التصديق" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Ù‚ÙÙ„ الرمز المميز للتصديق مشغول" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "تم تعطيل تقادم الرمز المميز للتصديق" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "ÙØ´Ù„ التØÙ‚Ù‚ الأولي بواسطة خدمة كلمة السر" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "يجب تجاهل القيمة الناتجة بواسطة إرسال PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Ø§Ù„ÙˆØØ¯Ø© النمطية غير Ù…Ø¹Ø±ÙˆÙØ©" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "انتهت صلاØÙŠØ© الرمز المميز للتصديق" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Ø§Ù„Ù…ØØ§Ø¯Ø«Ø© تنتظر Ø§Ù„ØØ¯Ø«" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "ÙŠØØªØ§Ø¬ التطبيق إلى استدعاء libpam مرة أخرى" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "خطأ PAM غير معروÙ" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...الوقت ÙŠÙ†ÙØ¯...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...عذرًا، انتهى الوقت!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "Ù…ØØ§Ø¯Ø«Ø© خاطئة (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -241,18 +250,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +273,45 @@ msgstr[4] "" msgstr[5] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "%a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "من %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "ÙÙŠ %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "تسجيل الدخول الأخير:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Ù…Ø±ØØ¨Ù‹Ø§ بك ÙÙŠ ØØ³Ø§Ø¨Ùƒ الجديد!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -315,154 +324,156 @@ msgstr[4] "" msgstr[5] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "مرات تسجيل دخول كثيرة جدًا لـ '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "لديك بريد جديد." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "لديك بريد جديد." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "لديك بريد قديم." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "لديك بريد." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "ليس لديك بريد ÙÙŠ مجلد %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "لديك بريد جديد ÙÙŠ مجلد %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "لديك بريد قديم ÙÙŠ مجلد %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "لديك بريد ÙÙŠ مجلد %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "كلمة السر التي تم إدخالها مستخدمة Ø¨Ø§Ù„ÙØ¹Ù„. اختر كلمة سر أخرى." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "كلمة السر التي تم إدخالها مستخدمة Ø¨Ø§Ù„ÙØ¹Ù„. اختر كلمة سر أخرى." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "لا ÙŠØµÙ„Ø ÙƒØ³ÙŠØ§Ù‚ أمان" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "لا ÙŠØµÙ„Ø ÙƒØ³ÙŠØ§Ù‚ أمان" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "تم تخصيص سياق الأمان %s" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "تم تخصيص سياق الأمان %s" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "ÙØ´Ù„ت تهيئة PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "ÙØ´Ù„ pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "تسجيل الدخول: ÙØ´Ù„ تشعيب: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "انتهت مدة صلاØÙŠØ© Ø§Ù„ØØ³Ø§Ø¨ الخاص بك؛ الرجاء الاتصال بمسؤول النظام" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "مطلوب منك تغيير كلمة السر على الÙور (Ù…ÙØ±ÙˆØ¶ بواسطة المسؤول)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "مطلوب منك تغيير كلمة السر على الÙور (كلمة السر قديمة جدًا)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -474,40 +485,40 @@ msgstr[4] "" msgstr[5] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "تعذر تغيير كلمة السر الخاصة بـ NIS." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "لم يتم إدخال كلمة السر" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "تعذر تغيير كلمة السر الخاصة بـ NIS." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "يجب عليك اختيار كلمة مرور أقصر." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "يجب اختيار كلمة سر أطول" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "يجب الانتظار ÙØªØ±Ø© أطول لتغيير كلمة السر" diff --git a/po/as.gmo b/po/as.gmo Binary files differdeleted file mode 100644 index 63eda1e8..00000000 --- a/po/as.gmo +++ /dev/null @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2013-04-10 02:40-0400\n" "Last-Translator: ngoswami <ngoswami@redhat.com>\n" "Language-Team: Assamese (http://www.transifex.com/projects/p/fedora/language/" @@ -23,11 +23,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦:" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -38,6 +39,7 @@ msgstr "নতà§à¦¨ %s গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦: " msgid "Current password: " msgstr "নতà§à¦¨ গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -47,6 +49,7 @@ msgstr "নতà§à¦¨ %s গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦: " msgid "New password: " msgstr "নতà§à¦¨ গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -70,171 +73,177 @@ msgstr "%s পà§à¦¨à¦ƒ লিখক" msgid "Password change has been aborted." msgstr "গà§à¦ªà§à¦¤ শবà§à¦¦ সলনি কৰা বাতিল কৰা হ'ল ।" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "পà§à§°à§±à§‡à¦¶:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "সফলতা" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "গà§à§°à§à¦¤à§à¦¬à¦ªà§‚à§°à§à¦£ à¦à§à¦² - অবিলমà§à¦¬ বনà§à¦§ কৰক" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "অংশ তà§à¦²à¦¿ লওà¦à¦¤à§‡ বিফল" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "পà§à§°à¦¤à¦¿à¦•ৃতি পোৱা ন'গ'ল" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "সেৱাৰ অংশত à¦à§à¦²" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "বà§à¦¯à§±à¦¸à§à¦¥à¦¾à¦ªà§à§°à¦£à¦¾à¦²à§€à§° à¦à§à¦²" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "সà§à¦®à§ƒà¦¤à¦¿à¦¶à¦•à§à¦¤à¦¿ পà§à§°à¦¶à¦®à¦•à§° à¦à§à¦²" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "আজà§à¦žà¦¾ নাই" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণত বিফল" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণৰ তথà§à¦¯ উপকà§à§°à¦® কৰিবলৈ পà§à§°à¦¶à¦‚সা পতà§à§°à§° অà¦à¦¾à§±" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণৰ সেৱাই পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণৰ তথà§à¦¯ উদà§à¦§à¦¾à§° কৰিব নোৱাৰিলে" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "অনà§à¦¤à§°à§à¦¨à¦¿à¦¹à¦¿à¦¤ পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণ অংশৰ বাবে বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾ অপৰিচিত" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "সেৱাৰ বাবে সৰà§à¦¬à¦¾à¦§à¦¿à¦• পà§à¦¨à¦ƒ চেষà§à¦Ÿà¦¾à§° সংখà§à¦¯à¦¾à¦“ আজৰাই দিয়া হ'ল" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণৰ পà§à§°à¦¤à§€à¦• চিহà§à¦¨ বৈধ নহয়; নতà§à¦¨ à¦à¦Ÿà¦¾à§° পà§à§°à§Ÿà§‹à¦œà¦¨" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à§° হিচাপ শেষ হ'ল" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "নিৰà§à¦¦à§à¦¦à¦¿à¦·à§à¦Ÿ অধিবেশনৰ à¦à¦Ÿà¦¾ নিবেশ বনাব/আà¦à¦¤à§°à¦¾à¦¬ নোৱাৰি" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à§° পà§à§°à¦¶à¦‚সা পতà§à§° পà§à§°à¦®à¦¾à¦£à§€à¦•ৰন সেৱাই উদà§à¦§à¦¾à§° কৰিব পৰা নাই" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à§° পà§à§°à¦¶à¦‚সা পতà§à§° অনà§à¦¤ হ'ল" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à§° পà§à§°à¦¶à¦‚সা পতà§à§° পà§à§°à¦¤à¦¿à¦·à§à¦ া কৰাত বিফল" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "কোনো অংশ নিৰà§à¦¦à§à¦¦à¦¿à¦·à§à¦Ÿ তথà§à¦¯ নাই" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item() লৈ বেয়া পদাৰà§à¦¥ আগবà§à§‹à§±à¦¾ হ'ল" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "সমà§à¦¬à¦¾à¦¦à§° à¦à§à¦²" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণ পà§à§°à¦¤à§€à¦• চিহà§à¦¨à§° পৰিবৰà§à¦¤à§à¦¤à¦¨à¦¤ (মেনিপà§à¦²à§‡à¦¶à¦¨) à¦à§à¦²" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণৰ তথà§à¦¯ উদà§à¦§à¦¾à§° কৰিব পৰা ন'গ'ল" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণ পà§à§°à¦¤à§€à¦• চিহà§à¦¨à§° লক বà§à¦¯à¦¸à§à¦¤" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণ পà§à§°à¦¤à§€à¦• চিহà§à¦¨à§° পà§à§°à¦£à¦¿ হোৱা নিষà§à¦•à§à§°à§€à§Ÿ কৰা হ'ল" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ সেৱাৰ দà§à¦¬à¦¾à§°à¦¾ পà§à§°à¦¾à§°à¦®à§à¦à¦¿à¦• পৰীকà§à¦·à¦¾ বিফল" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "PAM dispatch à§° দà§à¦¬à¦¾à§°à¦¾ পà§à§°à¦¤à§à¦¯à§à¦¤à§à¦¤à§°à§° মান আওকাণ কৰিব লাগে" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "অজà§à¦žà¦¾à¦¤ অংশ" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "পà§à§°à¦®à¦¾à¦£à§€à¦•ৰণৰ পà§à§°à¦¤à§€à¦• চিহà§à¦¨ পà§à§°à¦£à¦¿ হ'ল" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "সমà§à¦¬à¦¾à¦¦ কোনো ঘটনাৰ বাবে অপেকà§à¦·à¦¾ কৰিছে" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "অনà§à¦ªà§à§°à§Ÿà§‹à¦—ে আকৌ libpam ক মাতিব লাগে" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "অজà§à¦žà¦¾à¦¤ PAM à¦à§à¦²" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...সময় পাৰ হৈ গৈছে...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...কà§à¦·à¦®à¦¾ কৰিব, আপোনাৰ বাবে সময় অনà§à¦¤ হ'ল!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "à¦à§à¦² সমà§à¦¬à¦¾à¦¦ (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s বিফল: পà§à§°à¦¸à§à¦¥à¦¾à¦¨à§° কোড %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s বিফল: %d%s সঙà§à¦•েত ধৰা গ'ল" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s বিফল: অজà§à¦žà¦¾à¦¤ অৱসà§à¦¥à¦¾ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -242,18 +251,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "পà§à§°à§±à§‡à¦¶ বিফল শেহতীয়া বিফলতা -à§° পৰা\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "%u বিফল পà§à§°à§±à§‡à¦¶à§° বাবে হিচাপ লক কৰা হৈছে" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -261,45 +270,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s à§° পৰা" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s ত" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "শেহতীয়া পà§à§°à§±à§‡à¦¶:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "আপোনাৰ নতà§à¦¨ হিচাপলৈ সà§à¦¬à¦¾à¦—তম!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "শেহতীয়া পà§à§°à§±à§‡à¦¶ বিফল:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -308,153 +317,155 @@ msgstr[0] "শেহতীয়া সফল পà§à§°à§±à§‡à¦¶à§° পিছত %d msgstr[1] "শেহতীয়া সফল পà§à§°à§±à§‡à¦¶à§° পিছত %d বিফল হোৱা পà§à§°à§±à§‡à¦¶à§° চেষà§à¦Ÿà¦¾ চলোৱা হৈছিল ।" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "শেহতীয়া সফল পà§à§°à§±à§‡à¦¶à§° পিছত %d বিফল হোৱা পà§à§°à§±à§‡à¦¶à§° চেষà§à¦Ÿà¦¾ চলোৱা হৈছিল ।" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s' à§° বাবে বহà§à¦¤à§‹ পà§à§°à§±à§‡à¦¶ ।" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "আপোনাৰ নতà§à¦¨ ডাক আহিছে ।" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "আপোনাৰ নতà§à¦¨ ডাক আহিছে ।" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "আপেনাৰ ওচৰত পà§à§°à¦£à¦¿ ডাক আছে ।" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "আপোনাৰ ডাক আহিছে ।" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à§°à¦¤ আপোনাৰ কোনো ডাক নাই ।" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à§°à¦¤ আপোনাৰ নতà§à¦¨ ডাক আছে ।" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "%s ফোলডাৰত আপোনাৰ পà§à§°à¦£à¦¿ ডাক আছে ।" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à§°à¦¤ আপোনাৰ ডাক আছে ।" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "'%s' পঞà§à¦œà¦¿à¦•া সৃষà§à¦Ÿà¦¿ কৰা হৈছে ।" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "%s পঞà§à¦œà¦¿à¦•া সৃষà§à¦Ÿà¦¿ আৰৠআৰমà§à¦ কৰিব পৰা নাই ।" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ ইতিমধà§à¦¯à§‡ বà§à¦¯à§±à¦¹à§ƒà¦¤ । অনà§à¦¯ à¦à¦Ÿà¦¾ বাচি লওক ।" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "পাছৱাৰà§à¦¡ ইতিমধà§à¦¯à§‡ বà§à¦¯à§±à¦¹à¦¾à§° হৈছে।" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "অবিকলà§à¦ªà¦¿à¦¤ সà§à§°à¦•à§à¦·à¦¾à§° সনà§à¦¦à§°à§à¦ %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "বেলেগ à¦à¦Ÿà¦¾ সà§à§°à¦•à§à¦·à¦¾à§° à¦à§‚মিকা বা সà§à¦¤à§° নিবেশ কৰিব খোজে নেকি ?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "à¦à§‚মিকা: " -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "%s à¦à§‚মিকা বাবে অবিকলà§à¦ªà¦¿à¦¤ ধৰণ নাই\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "সà§à¦¤à§°: " -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "à¦à¦Ÿà¦¾ বৈধ সà§à§°à¦•à§à¦·à¦¾à§° সনà§à¦¦à§°à§à¦ নহয়" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "সà§à§°à¦•à§à¦·à¦¾à§° সনà§à¦¦à§°à§à¦ %s নিযà§à¦•à§à¦¤ কৰা হ'ল" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "চাবি নিৰà§à¦®à¦¾à¦£à§° সনà§à¦¦à§°à§à¦ %s নিযà§à¦•à§à¦¤ কৰা হ'ল" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM আৰমà§à¦ কৰাত বিফল\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() কৰোà¦à¦¤à§‡ বিফল\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "পà§à§°à§±à§‡à¦¶: forking ত বিফল: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "অà¦à¦¿à¦—মà§à¦¯à¦¤à¦¾à§° অনà§à¦®à¦¤à¦¿ (শেহতীয়া অà¦à¦¿à¦—মà§à¦¯à¦¤à¦¾ %ld ছেকেণà§à¦¡ আগতে) ।" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "আপোনাৰ হিচাপ অনà§à¦¤ হ'ল; অনà§à¦—à§à§°à¦¹ কৰি আপোনাৰ বà§à¦¯à§±à¦¾à¦¸à§à¦¥à¦¾à¦ªà§à§°à¦£à¦¾à¦²à§€à§° " -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "আপà§à¦¨à¦¿ আপোনাৰ গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ সলনি কৰাটো পà§à§°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ হৈ পৰিছে (ৰূটৰ দà§à¦¬à¦¾à§°à¦¾ বলবৎ)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "আপà§à¦¨à¦¿ আপোনাৰ গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ সলনি কৰাটো পà§à§°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ হৈ পৰিছে (গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ পà§à§°à¦£à¦¿ হ'ল)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -462,41 +473,41 @@ msgstr[0] "সকীয়নী: আপোনাৰ গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ %d msgstr[1] "সকীয়নী: আপোনাৰ গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ %d দিনত অনà§à¦¤ হ'ব" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "সকীয়নী: আপোনাৰ গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ %d দিনত অনà§à¦¤ হ'ব" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ সলনি কৰিব পৰা নহয় ।" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "কোনো গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ দিয়া হোৱা নাই" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ সলনি কৰিব পৰা নহয় ।" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "আপà§à¦¨à¦¿ ইয়াতকৈ à¦à¦Ÿà¦¾ দীঘল গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিব লাগিব" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "আপà§à¦¨à¦¿ ইয়াতকৈ à¦à¦Ÿà¦¾ দীঘল গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিব লাগিব" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s à§° বাবে গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ সলনি কৰা হৈছে ।" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "আপোনাৰ গà§à¦ªà§à¦¤à¦¶à¦¬à§à¦¦ সলনি কৰিবলৈ আপà§à¦¨à¦¿ আৰৠকিছৠপৰ অপেকà§à¦·à¦¾ কৰিব লাগিব" diff --git a/po/az.gmo b/po/az.gmo Binary files differdeleted file mode 100644 index d3f974e1..00000000 --- a/po/az.gmo +++ /dev/null @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM 1.4.0\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-04-25 00:40+0000\n" "Last-Translator: Alesker Abdullayev - FEDORA Azerbaijan <tech@abdullaeff." "com>\n" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.0.1\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "ÅžifrÉ™: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "Cari %s ÅŸifrÉ™niz: " msgid "Current password: " msgstr "Cari ÅŸifrÉ™niz: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "Yeni %s ÅŸifrÉ™niz: " msgid "New password: " msgstr "Yeni ÅŸifrÉ™niz: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,190 +68,196 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "daxil ol:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "UÄŸurlu" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritik xÉ™ta - tÉ™cili É™mÉ™liyyatı dayandırın" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Modul yüklÉ™nmÉ™di" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Simvol tapılmadı" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "XidmÉ™ti modulda xÉ™ta" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Sistem xÉ™tası" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "YaddaÅŸ qoruyucusunda xÉ™ta" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "İcazÉ™ rÉ™dd edildi" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "DoÄŸrulama uÄŸursuzluÄŸu" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" "DoÄŸrulama mÉ™lumatlarına daxil olmaq üçün yetÉ™rli sertifikatlar mövcud deyil" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "DoÄŸrulama xidmÉ™ti identifikasiya mÉ™lumatlarını bÉ™rpa edÉ™ bilmir" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "İstifadəçi É™sas identifikasiya modulu tÉ™rÉ™findÉ™n tanımlana bilmir" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Bağışlayın, vaxtınız bitdi!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -256,45 +265,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -303,148 +312,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -452,36 +463,36 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "" diff --git a/po/be.gmo b/po/be.gmo Binary files differdeleted file mode 100644 index 8e99428d..00000000 --- a/po/be.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Belarusian (http://www.transifex.com/projects/p/fedora/" @@ -21,11 +21,12 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +46,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,189 +69,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -258,45 +267,45 @@ msgstr[2] "" msgstr[3] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -307,148 +316,150 @@ msgstr[2] "" msgstr[3] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -458,39 +469,39 @@ msgstr[2] "" msgstr[3] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Ð’Ñ‹ павінны выбраць больш кароткі пароль." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Ð’Ñ‹ павінны выбраць больш кароткі пароль." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Ð’Ñ‹ павінны выбраць больш кароткі пароль." diff --git a/po/bg.gmo b/po/bg.gmo Binary files differdeleted file mode 100644 index dd6ce4bc..00000000 --- a/po/bg.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-12-20 08:00+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Bulgarian <https://translate.fedoraproject.org/projects/linux-" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.3.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Парола: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "Nastoyashta парола %s: " msgid "Current password: " msgstr "Nastoyashta парола: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "Ðова парола %s: " msgid "New password: " msgstr "Ðова парола: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -67,174 +70,180 @@ msgstr "Ðапишете пак %s" msgid "Password change has been aborted." msgstr "ПромÑната на паролата е прекратена." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "влизане:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "УÑпех" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Критична грешка - незабавно прекратÑване" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "ÐеуÑпех при зареждане на модул" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Ðе е намерен Ñимвол" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Грешка в обÑлужващ модул" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "СиÑтемна грешка" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Грешка в буферна памет" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Позволението отказано" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Грешка при удоÑтоверÑване" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" "ÐедоÑтатъчно данни за удоÑтоверÑване за доÑтъп до удоÑтоверителни данни" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "УÑлугата за удоÑтоверÑване не можа да извлече данни за удоÑтоверÑване" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Ðепознат потребител за Ð¿Ð¾Ð´Ð´ÑŠÑ€Ð¶Ð°Ñ‰Ð¸Ñ ÑƒÐ´Ð¾ÑтоверÑването модул" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "МакÑималниÑÑ‚ брой опити за уÑлугата беше изчерпан" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "УдоÑтоверителниÑÑ‚ токен вече не е валиден; необходим е нов" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "ПотребителÑкиÑÑ‚ акаунт е изтекъл" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Ðе мога да Ñъздам/премахна Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° зададената ÑеÑиÑ" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" "УдоÑтоверÑващата уÑлуга не може да извлече данните за удоÑтоверÑване на " "потребителÑ" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Данните за удоÑтоверÑване на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ Ñа Ñ Ð¸Ð·Ñ‚ÐµÐºÑŠÐ» Ñрок" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ÐеуÑпех при задаване данни за удоÑтоверÑване на потребител" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "ЛипÑват Ñпецифични за модула данни" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Грешен елемент, подаден към pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Грешка в диалога" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Грешка при манипулирането Ñ ÑƒÐ´Ð¾ÑÑ‚Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÐµÐ»Ð½Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "УдоÑтоверителната Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ може да бъде възÑтановена" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Заключването на удоÑÑ‚Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÐµÐ»Ð½Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½ е заето" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Следенето на възраÑтта на удоÑÑ‚Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÐµÐ»Ð½Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½ е забранено" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Предварителната проверка от уÑлугата парола не уÑпÑ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Върнатата ÑтойноÑÑ‚ трÑбва да бъде игнорирана от PAM dispatch" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Модулът е непознат" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Срокът на удоÑÑ‚Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÐµÐ»Ð½Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½ е изтекъл" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Диалогът чака Ñъбитие" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Приложението Ñе нуждае от повторно извикване на libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Ðепозната PAM грешка" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Времето изтича...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...СъжалÑваме, Вашето време изтече!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "погрешен разговор (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s Ñе провали: код на грешка %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s Ñе провали: уловен Ñигнал %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s Ñе провали: непознат ÑÑ‚Ð°Ñ‚ÑƒÑ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -243,18 +252,18 @@ msgstr "" "Usage: %s [--dir /път/към/директориÑта-на-tally] [--user потребителÑко_име] " "[--reset]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "ВлÑзъл ÐеуÑпехи ПоÑледен неуÑпех От\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Ðкаунтът е заключен поради %u неуÑпешни опита за влизане." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, fuzzy, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -262,45 +271,45 @@ msgstr[0] "(оÑтават %d мин. за отключване)" msgstr[1] "(оÑтават %d мин. за отключване)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(оÑтават %d мин. за отключване)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " от %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " на %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ПоÑледно влизане:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Добре дошли в Ð½Ð¾Ð²Ð¸Ñ Ð’Ð¸ акаунт!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "ПоÑледно неуÑпешно влизане:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -311,151 +320,153 @@ msgstr[1] "" "След поÑледното уÑпешно влизане, имаше %d неуÑпешни опита за влизане." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "След поÑледното уÑпешно влизане, имаше %d неуÑпешни опита за влизане." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Твърде много Ð²Ð»Ð¸Ð·Ð°Ð½Ð¸Ñ Ð·Ð° '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Имате нови пиÑма." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Имате нови пиÑма." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Имате Ñтари пиÑма." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Имате пиÑма." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "ÐÑмате пиÑма в папката %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Имате нови пиÑма в папка %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Имате Ñтари пиÑма в папка %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Имате пиÑма в папка %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Създаване на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Ðе мога да Ñъздам и наÑÑ‚Ñ€Ð¾Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Паролата вече е използвана. Изберете друга." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Паролата вече е използвана." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Подразбиращ Ñе контекÑÑ‚ за ÑигурноÑÑ‚ %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "ИÑкате ли да въведете различна Ñ€Ð¾Ð»Ñ Ð¸Ð»Ð¸ ниво?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ролÑ:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "ÐÑма подразбиращ Ñе тип за Ñ€Ð¾Ð»Ñ %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "ниво:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Ðевалиден контекÑÑ‚ за ÑигурноÑÑ‚." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Ðе може да бъде получен валиден контекÑÑ‚ за %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Зададен е контекÑÑ‚ за ÑигурноÑÑ‚ %s." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Зададен е key creation context %s." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM инициализациÑта не уÑпÑ\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() не уÑÐ¿Ñ \n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "вход: неуÑпех при Ñтартиране: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "ДоÑтъпът е предоÑтавен (поÑледниÑÑ‚ доÑтъп бе преди %ld Ñекунди)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" "Срокът на акаунта Ви е изтекъл; молÑ, Ñвържете Ñе Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора на " "ÑиÑтемата." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "ИзиÑква Ñе веднага да Ñмените паролата Ñи (изиÑкано от админиÑтратор)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "ИзиÑква Ñе веднага да Ñмените паролата Ñи (Ñрокът и изтича)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -463,37 +474,37 @@ msgstr[0] "Внимание: Ñрокът на паролата Ви изтичРmsgstr[1] "Внимание: Ñрокът на паролата Ви изтича Ñлед %d дни." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Внимание: паролата Ви ще изтече Ñлед %d дни." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS парола не може да бъде променена." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Ðе е предоÑтавена парола." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Паролата не е променена." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "ТрÑбва да изберете по-кратка парола." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "ТрÑбва да изберете по-дълга парола." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "СмÑна на паролата за %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "ТрÑбва да изчакате повече, за да промените Вашата парола." diff --git a/po/bn.gmo b/po/bn.gmo Binary files differdeleted file mode 100644 index 83588ba4..00000000 --- a/po/bn.gmo +++ /dev/null @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2012-04-10 04:36-0400\n" "Last-Translator: Mahay Alam Khan <mahayalamkhan@gmail.com>\n" "Language-Team: Bengali <info@ankur.org.bd>\n" @@ -27,11 +27,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "পাসওয়ারà§à¦¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -42,6 +43,7 @@ msgstr "নতà§à¦¨ %s পাসওয়ারà§à¦¡: " msgid "Current password: " msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -51,6 +53,7 @@ msgstr "নতà§à¦¨ %s পাসওয়ারà§à¦¡: " msgid "New password: " msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -74,171 +77,177 @@ msgstr "%s পà§à¦¨à¦°à¦¾à§Ÿ লিখà§à¦¨" msgid "Password change has been aborted." msgstr "পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ পà§à¦°à¦•à§à¦°à¦¿à§Ÿà¦¾ বাতিল করা হয়েছে।" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "লগ-ইন:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "সফল" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "গà§à¦°à§à¦¤à¦° সমসà§à¦¯à¦¾ - à¦à¦‡ মà§à¦¹à§‚রà§à¦¤à§‡ পরিতà§à¦¯à¦¾à¦— করা হবে" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "মডিউল লোড করতে বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "চিহà§à¦¨ পাওয়া যায়নি" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "পরিসেবা মডিউলে সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "সিসà§à¦Ÿà§‡à¦® সংকà§à¦°à¦¾à¦¨à§à¦¤ সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "মেমরি বাফার সংকà§à¦°à¦¾à¦¨à§à¦¤ সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "অনà§à¦®à¦¤à¦¿ পà§à¦°à¦¦à¦¾à¦¨ করা হয়নি" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "অনà§à¦®à§‹à¦¦à¦¨ বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "অনà§à¦®à§‹à¦¦à¦¨ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করার জনà§à¦¯ পরà§à¦¯à¦¾à¦ªà§à¦¤ পà§à¦°à¦®à¦¾à¦£ উপলবà§à¦§ নেই" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "অনà§à¦®à§‹à¦¦à¦¨ পরিসেবা দà§à¦¬à¦¾à¦°à¦¾ অনà§à¦®à§‹à¦¦à¦¨ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ উদà§à¦§à¦¾à¦° করা সমà§à¦à¦¬ হয়নি" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "পটà¦à§‚মিতে চলমান অনà§à¦®à§‹à¦¦à¦¨ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à§Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী পরিচিত নন।" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "পরিসেবায় উপলবà§à¦§ সরà§à¦¬à¦¾à¦§à¦¿à¦• পà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾à¦° সà§à¦¯à§‹à¦— সংখà§à¦¯à¦¾ সমাপà§à¦¤" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "অনà§à¦®à§‹à¦¦à¦¨à§‡à¦° টোকেন বৈধ নয়; নতà§à¦¨ টোকেন বà§à¦¯à¦¬à¦¹à¦¾à¦° করা আবশà§à¦¯à¦•" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী অà§à¦¯à¦¾à¦•াউনà§à¦Ÿà§‡à¦° মেয়াদ পূরà§à¦£ হয়েছে" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "সà§à¦¨à¦¿à¦°à§à¦¦à¦¿à¦·à§à¦Ÿ সেশানের জনà§à¦¯ কোনো à¦à¦¨à§à¦Ÿà§à¦°à¦¿ নিরà§à¦®à¦¾à¦£/অপসারণ করা সমà§à¦à¦¬ নয়" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "অনà§à¦®à§‹à¦¦à¦¨ পরিসেবা দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ পà§à¦°à¦®à¦¾à¦£ উদà§à¦§à¦¾à¦° করা সমà§à¦à¦¬ হয়নি" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর পরিচয়পà§à¦°à¦®à¦¾à¦£à§‡à¦° তথà§à¦¯à§‡à¦° মেয়াদ পূরà§à¦£ হয়েছে" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর পরিচয়পà§à¦°à¦®à¦¾à¦£à§‡à¦° তথà§à¦¯ নিরà§à¦§à¦¾à¦°à¦£ করতে বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "মডিউল সংকà§à¦°à¦¾à¦¨à§à¦¤ কোনো তথà§à¦¯ উপসà§à¦¥à¦¿à¦¤ নেই" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item()-ঠসঠিক মান পà§à¦°à§‡à¦°à¦¿à¦¤ হয়নি" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Conversation অরà§à¦¥à¦¾à§Ž তথà§à¦¯ বিনিময়কালীন সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "অনà§à¦®à§‹à¦¦à¦¨ টোকেন বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করতে সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "অনà§à¦®à§‹à¦¦à¦¨ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করতে বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "অনà§à¦®à§‹à¦¦à¦¨ টোকেনের লক বà§à¦¯à¦¸à§à¦¤" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "অনà§à¦®à§‹à¦¦à¦¨ টোকেনের মেয়াদ পূরà§à¦¤à§€ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ নিষà§à¦•à§à¦°à¦¿à§Ÿ" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "পাসওয়ারà§à¦¡ পরিসেবা দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à¦¾à¦°à¦®à§à¦à¦¿à¦• পরীকà§à¦·à¦¾ বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "উৎপনà§à¦¨ মান PAM dispatch দà§à¦¬à¦¾à¦°à¦¾ অগà§à¦°à¦¾à¦¹à§à¦¯ করা হবে" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "মডিউল অজানা" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "অনà§à¦®à§‹à¦¦à¦¨ টোকেনের মেয়াদ পূরà§à¦£ হয়েছে" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Conversation অরà§à¦¥à¦¾à§Ž তথà§à¦¯ বিনিময় পà§à¦°à¦•à§à¦°à¦¿à§Ÿà¦¾ à¦à¦•টি ইà¦à§‡à¦¨à§à¦Ÿà§‡à¦° অপেকà§à¦·à¦¾à§Ÿ রয়েছে" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন দà§à¦¬à¦¾à¦°à¦¾ পà§à¦¨à¦°à¦¾à§Ÿ libpam আরমà§à¦ করা আবশà§à¦¯à¦•" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "PAM সংকà§à¦°à¦¾à¦¨à§à¦¤ অজানা তà§à¦°à§à¦Ÿà¦¿" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...সময় সমাপà§à¦¤à¦¿à¦° পথে...⎠\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...দà§à¦ƒà¦–িত, সময় সমাপà§à¦¤!⎠\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "তà§à¦°à§à¦Ÿà¦¿à¦ªà§‚রà§à¦£ তথà§à¦¯à¦¬à¦¿à¦¨à¦¿à¦®à§Ÿ (%d)âŽ\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s বিফল: পà§à¦°à¦¸à§à¦¥à¦¾à¦¨à¦•ালীন কোড %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s বিফল: %d%s সিগনাল পà§à¦°à¦¾à¦ªà§à¦¤" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s বিফল: অজানা অবসà§à¦¥à¦¾ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -246,18 +255,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "লগ-ইন বিফলতা সরà§à¦¬à¦¶à§‡à¦· বিফলতা চিহà§à¦¨à¦¿à¦¤ সà§à¦¥à¦¾à¦¨ থেকে\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "%u বà§à¦¯à¦°à§à¦¥ লগ-ইনের ফলে অà§à¦¯à¦¾à¦•াউনà§à¦Ÿ লক করা হয়েছে" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -265,45 +274,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s থেকে" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s -র উপর" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "সরà§à¦¬à¦¶à§‡à¦· লগ-ইন:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "নতà§à¦¨ অà§à¦¯à¦¾à¦•াউনà§à¦Ÿà§‡ সà§à¦¬à¦¾à¦—তম!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "সরà§à¦¬à¦¶à§‡à¦· বিফল লগ-ইন:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -312,156 +321,158 @@ msgstr[0] "সরà§à¦¬à¦¶à§‡à¦· সফল লগ-ইনের পরে %d-টà msgstr[1] "সরà§à¦¬à¦¶à§‡à¦· সফল লগ-ইনের পরে %d-টি বà§à¦¯à¦°à§à¦¥ লগ-ইনের পà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾ করা হয়েছে।" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "সরà§à¦¬à¦¶à§‡à¦· সফল লগ-ইনের পরে %d-টি বà§à¦¯à¦°à§à¦¥ লগ-ইনের পà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾ করা হয়েছে।" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s'-র কà§à¦·à§‡à¦¤à§à¦°à§‡ অতà§à¦¯à¦¾à¦§à¦¿à¦• লগ-ইন" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "নতà§à¦¨ মেইল পà§à¦°à¦¾à¦ªà§à¦¤à¥¤" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "নতà§à¦¨ মেইল পà§à¦°à¦¾à¦ªà§à¦¤à¥¤" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "পà§à¦°à§‹à¦¨à§‹ মেইল রয়েছে।" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "মেইল রয়েছে।" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à¦°à§‡ কোনো মেইল উপসà§à¦¥à¦¿à¦¤ নেই।" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à¦°à§‡ নতà§à¦¨ মেইল উপসà§à¦¥à¦¿à¦¤à¥¤" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à¦°à§‡ পà§à¦°à§‹à¦¨à§‹ মেইল উপসà§à¦¥à¦¿à¦¤ রয়েছে।" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à¦°à§‡ মেইল উপসà§à¦¥à¦¿à¦¤ রয়েছে।" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "'%s' ডিরেকà§à¦Ÿà¦°à¦¿ নিরà§à¦®à¦¾à¦£ করা হচà§à¦›à§‡à¥¤" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ডিরেকà§à¦Ÿà¦°à¦¿ '%s' নিরà§à¦®à¦¾à¦£ ও আরমà§à¦ করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "পাসওয়ারà§à¦¡ পূরà§à¦¬à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়েছে। à¦à¦•টি পৃথক পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "পাসওয়ারà§à¦¡ পূরà§à¦¬à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়েছে। à¦à¦•টি পৃথক পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "ডিফলà§à¦Ÿ Security Context %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "à¦à¦¿à¦¨à§à¦¨ role অথবা level লিখতে ইচà§à¦›à§à¦• কি?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "role: " -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "role %s-র জনà§à¦¯ কোনো ডিফলà§à¦Ÿ type উপসà§à¦¥à¦¿à¦¤ নেই\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "level: " -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "বৈধ নিরাপতà§à¦¤à¦¾ সংকà§à¦°à¦¾à¦¨à§à¦¤ context নয়" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "Security Context %s ধারà§à¦¯ করা হয়েছে" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "কি নিরà§à¦®à¦¾à¦£à§‡à¦° Context %s ধারà§à¦¯ করা হয়েছে" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM আরমà§à¦ করতে বà§à¦¯à¦°à§à¦¥\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() করতে বà§à¦¯à¦°à§à¦¥\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "লগ-ইন: fork করতে বà§à¦¯à¦°à§à¦¥: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "পà§à¦°à¦¬à§‡à¦¶à¦¾à¦§à¦¿à¦•ার পà§à¦°à¦¦à¦¾à¦¨ করা হয়েছে (%ld পূরà§à¦¬à§‡ সরà§à¦¬à¦¶à§‡à¦· লগ-ইন করা হয়েছে)।" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "" "আপনার অà§à¦¯à¦¾à¦•াউনà§à¦Ÿà§‡à¦° মেয়াদপূরà§à¦£ হয়েছে; অনà§à¦—à§à¦°à¦¹ করে সিসà§à¦Ÿà§‡à¦® অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨à¦¿à¦¸à§à¦Ÿà§à¦°à§‡à¦Ÿà¦°à§‡à¦° সাথে " "যোগাযোগ করà§à¦¨à¥¤" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "আপনার পাসওয়ারà§à¦¡ à¦à¦‡ মà§à¦¹à§‚রà§à¦¤à§‡ পরিবরà§à¦¤à¦¨ করা আবশà§à¦¯à¦• (root দà§à¦¬à¦¾à¦°à¦¾ কারà§à¦¯à¦•রী)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "আপনার পাসওয়ারà§à¦¡ à¦à¦‡ মà§à¦¹à§‚রà§à¦¤à§‡ পরিবরà§à¦¤à¦¨ করা আবশà§à¦¯à¦• (password-র মেয়াদ পূরà§à¦£ হয়েছে)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -469,40 +480,40 @@ msgstr[0] "সতরà§à¦•বাণী: %d দিন পরে পাসওয়ঠmsgstr[1] "সতরà§à¦•বাণী: %d দিন পরে পাসওয়ারà§à¦¡à§‡à¦° মেয়াদপূরà§à¦£ হবে" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "সতরà§à¦•বাণী: %d দিন পরে পাসওয়ারà§à¦¡à§‡à¦° মেয়াদপূরà§à¦£ হবে" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করা সমà§à¦à¦¬ হয়নি।" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "কোনো পাসওয়ারà§à¦¡ উলà§à¦²à¦¿à¦–িত হয়নি" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করা সমà§à¦à¦¬ হয়নি।" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "আপনি à¦à¦•টি ছোট পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করতে হবে।" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "চিহà§à¦¨à¦¿à¦¤ পাসওয়ারà§à¦¡à§‡à¦° থেকে লমà§à¦¬à¦¾ পাসওয়ারà§à¦¡ উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করা হচà§à¦›à§‡à¥¤" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "কিছৠকাল পরে পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করা সমà§à¦à¦¬ হবে" diff --git a/po/bn_IN.gmo b/po/bn_IN.gmo Binary files differdeleted file mode 100644 index 60578a7e..00000000 --- a/po/bn_IN.gmo +++ /dev/null diff --git a/po/bn_IN.po b/po/bn_IN.po index c54a73fa..f3172b0b 100644 --- a/po/bn_IN.po +++ b/po/bn_IN.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2012-02-28 05:38-0500\n" "Last-Translator: runa <runabh@gmail.com>\n" "Language-Team: Bengali (India) <anubad@lists.ankur.org.in>\n" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "পাসওয়ারà§à¦¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "নতà§à¦¨ %s পাসওয়ারà§à¦¡: " msgid "Current password: " msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "নতà§à¦¨ %s পাসওয়ারà§à¦¡: " msgid "New password: " msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,171 +72,177 @@ msgstr "%s পà§à¦¨à¦°à¦¾à§Ÿ লিখà§à¦¨" msgid "Password change has been aborted." msgstr "পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨à§‡à¦° করà§à¦® পরিতà§à¦¯à¦¾à¦— করা হয়েছে।" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "লগ-ইন:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "সফল" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "গà§à¦°à§à¦¤à¦¬ সমসà§à¦¯à¦¾ - à¦à¦‡ মà§à¦¹à§‚রà§à¦¤à§‡ পরিতà§à¦¯à¦¾à¦— করা হবে" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "মডিউল লোড করতে বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "চিহà§à¦¨ পাওয়া যায়নি" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "পরিসেবা মডিউলে সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "সিসà§à¦Ÿà§‡à¦® সংকà§à¦°à¦¾à¦¨à§à¦¤ সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "মেমরি বাফার সংকà§à¦°à¦¾à¦¨à§à¦¤ সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "অনà§à¦®à¦¤à¦¿ পà§à¦°à¦¦à¦¾à¦¨ করা হয়নি" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "অনà§à¦®à§‹à¦¦à¦¨ বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "অনà§à¦®à§‹à¦¦à¦¨ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦°à¦¾à¦ªà§à¦¤ করার জনà§à¦¯ পরà§à¦¯à¦¾à¦ªà§à¦¤ পà§à¦°à¦®à¦¾à¦£ উপলবà§à¦§ নেই" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "অনà§à¦®à§‹à¦¦à¦¨ পরিসেবা দà§à¦¬à¦¾à¦°à¦¾ অনà§à¦®à§‹à¦¦à¦¨ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ উদà§à¦§à¦¾à¦° করা সমà§à¦à¦¬ হয়নি" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "পটà¦à§‚মিতে চলমান অনà§à¦®à§‹à¦¦à¦¨ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à§Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী পরিচিত নন।" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "পরিসেবায় উপলবà§à¦§ সরà§à¦¬à¦¾à¦§à¦¿à¦• পà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾à¦° সà§à¦¯à§‹à¦— সংখà§à¦¯à¦¾ সমাপà§à¦¤" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "অনà§à¦®à§‹à¦¦à¦¨à§‡à¦° টোকেন বৈধ নয়; নতà§à¦¨ টোকেন বà§à¦¯à¦¬à¦¹à¦¾à¦° করা আবশà§à¦¯à¦•" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী অà§à¦¯à¦¾à¦•াউনà§à¦Ÿà§‡à¦° মেয়াদ পূরà§à¦£ হয়েছে" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "সà§à¦¨à¦¿à¦°à§à¦¦à¦¿à¦·à§à¦Ÿ সেশানের জনà§à¦¯ কোনো à¦à¦¨à§à¦Ÿà§à¦°à¦¿ নিরà§à¦®à¦¾à¦£/অপসারণ করা সমà§à¦à¦¬ নয়" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "অনà§à¦®à§‹à¦¦à¦¨ পরিসেবা দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ পà§à¦°à¦®à¦¾à¦£ উদà§à¦§à¦¾à¦° করা সমà§à¦à¦¬ হয়নি" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর পরিচয়পà§à¦°à¦®à¦¾à¦£à§‡à¦° তথà§à¦¯à§‡à¦° মেয়াদ পূরà§à¦£ হয়েছে" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর পরিচয়পà§à¦°à¦®à¦¾à¦£à§‡à¦° তথà§à¦¯ নিরà§à¦§à¦¾à¦°à¦£ করতে বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "মডিউল সংকà§à¦°à¦¾à¦¨à§à¦¤ কোনো তথà§à¦¯ উপসà§à¦¥à¦¿à¦¤ নেই" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item()-ঠসঠিক মান পà§à¦°à§‡à¦°à¦¿à¦¤ হয়নি" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Conversation অরà§à¦¥à¦¾à§Ž তথà§à¦¯ বিনিময়কালীন সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "অনà§à¦®à§‹à¦¦à¦¨ টোকেন বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করতে সমসà§à¦¯à¦¾" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "অনà§à¦®à§‹à¦¦à¦¨ সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করতে বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "অনà§à¦®à§‹à¦¦à¦¨ টোকেনের লক বà§à¦¯à¦¸à§à¦¤" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "অনà§à¦®à§‹à¦¦à¦¨ টোকেনের মেয়াদ পূরà§à¦¤à§€ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ নিষà§à¦•à§à¦°à¦¿à§Ÿ" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "পাসওয়ারà§à¦¡ পরিসেবা দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à¦¾à¦°à¦®à§à¦à¦¿à¦• পরীকà§à¦·à¦¾ বà§à¦¯à¦°à§à¦¥" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "উৎপনà§à¦¨ মান PAM dispatch দà§à¦¬à¦¾à¦°à¦¾ অগà§à¦°à¦¾à¦¹à§à¦¯ করা হবে" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "মডিউল অজানা" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "অনà§à¦®à§‹à¦¦à¦¨ টোকেনের মেয়াদ পূরà§à¦£ হয়েছে" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Conversation অরà§à¦¥à¦¾à§Ž তথà§à¦¯ বিনিময় পà§à¦°à¦•à§à¦°à¦¿à§Ÿà¦¾ à¦à¦•টি ইà¦à§‡à¦¨à§à¦Ÿà§‡à¦° অপেকà§à¦·à¦¾à§Ÿ রয়েছে" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন দà§à¦¬à¦¾à¦°à¦¾ পà§à¦¨à¦°à¦¾à§Ÿ libpam আরমà§à¦ করা আবশà§à¦¯à¦•" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "PAM সংকà§à¦°à¦¾à¦¨à§à¦¤ অজানা তà§à¦°à§à¦Ÿà¦¿" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...সময় সমাপà§à¦¤à¦¿à¦° পথে...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...দà§à¦ƒà¦–িত, সময় সমাপà§à¦¤!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "তà§à¦°à§à¦Ÿà¦¿à¦ªà§‚রà§à¦£ তথà§à¦¯à¦¬à¦¿à¦¨à¦¿à¦®à§Ÿ (conversation) (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s বিফল: পà§à¦°à¦¸à§à¦¥à¦¾à¦¨à¦•ালীন কোড %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s বিফল: %d%s সিগনাল পà§à¦°à¦¾à¦ªà§à¦¤" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s বিফল: অজানা অবসà§à¦¥à¦¾ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -241,18 +250,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "লগ-ইন বিফলতা সরà§à¦¬à¦¶à§‡à¦· বিফলতা চিহà§à¦¨à¦¿à¦¤ সà§à¦¥à¦¾à¦¨ থেকে\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "%u বà§à¦¯à¦°à§à¦¥ লগ-ইনের ফলে অà§à¦¯à¦¾à¦•াউনà§à¦Ÿ লক করা হয়েছে" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -260,45 +269,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s থেকে" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s -র উপর" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "সরà§à¦¬à¦¶à§‡à¦· লগ-ইন:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "নতà§à¦¨ অà§à¦¯à¦¾à¦•াউনà§à¦Ÿà§‡ সà§à¦¬à¦¾à¦—তম!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "সরà§à¦¬à¦¶à§‡à¦· বিফল লগ-ইন:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -307,156 +316,158 @@ msgstr[0] "সরà§à¦¬à¦¶à§‡à¦· সফল লগ-ইনের পরে %d-টà msgstr[1] "সরà§à¦¬à¦¶à§‡à¦· সফল লগ-ইনের পরে %d-টি বà§à¦¯à¦°à§à¦¥ লগ-ইনের পà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾ করা হয়েছে।" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "সরà§à¦¬à¦¶à§‡à¦· সফল লগ-ইনের পরে %d-টি বà§à¦¯à¦°à§à¦¥ লগ-ইনের পà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾ করা হয়েছে।" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s'-র কà§à¦·à§‡à¦¤à§à¦°à§‡ অতà§à¦¯à¦¾à¦§à¦¿à¦• লগ-ইন" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "নতà§à¦¨ মেইল পà§à¦°à¦¾à¦ªà§à¦¤à¥¤" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "নতà§à¦¨ মেইল পà§à¦°à¦¾à¦ªà§à¦¤à¥¤" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "পà§à¦°à§‹à¦¨à§‹ মেইল রয়েছে।" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "মেইল রয়েছে।" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à¦°à§‡ কোনো মেইল উপসà§à¦¥à¦¿à¦¤ নেই।" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à¦°à§‡ নতà§à¦¨ মেইল উপসà§à¦¥à¦¿à¦¤à¥¤" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à¦°à§‡ পà§à¦°à§‹à¦¨à§‹ মেইল উপসà§à¦¥à¦¿à¦¤ রয়েছে।" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "%s ফোলà§à¦¡à¦¾à¦°à§‡ মেইল উপসà§à¦¥à¦¿à¦¤ রয়েছে।" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "'%s' ডিরেকà§à¦Ÿà¦°à¦¿ নিরà§à¦®à¦¾à¦£ করা হচà§à¦›à§‡à¥¤" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ডিরেকà§à¦Ÿà¦°à¦¿ '%s' নিরà§à¦®à¦¾à¦£ ও আরমà§à¦ করতে বà§à¦¯à¦°à§à¦¥à¥¤" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "পাসওয়ারà§à¦¡ পূরà§à¦¬à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়েছে। à¦à¦•টি পৃথক পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "পাসওয়ারà§à¦¡ পূরà§à¦¬à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়েছে। à¦à¦•টি পৃথক পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "ডিফলà§à¦Ÿ Security Context %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "à¦à¦¿à¦¨à§à¦¨ role অথবা level লিখতে ইচà§à¦›à§à¦• কি?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "role: " -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "role %s-র জনà§à¦¯ কোনো ডিফলà§à¦Ÿ type উপসà§à¦¥à¦¿à¦¤ নেই\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "level: " -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "বৈধ নিরাপতà§à¦¤à¦¾ সংকà§à¦°à¦¾à¦¨à§à¦¤ context নয়" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "Security Context %s ধারà§à¦¯ করা হয়েছে" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "কি নিরà§à¦®à¦¾à¦£à§‡à¦° Context %s ধারà§à¦¯ করা হয়েছে" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM আরমà§à¦ করতে বà§à¦¯à¦°à§à¦¥\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() করতে বà§à¦¯à¦°à§à¦¥\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "লগ-ইন: fork করতে বà§à¦¯à¦°à§à¦¥: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "পà§à¦°à¦¬à§‡à¦¶à¦¾à¦§à¦¿à¦•ার পà§à¦°à¦¦à¦¾à¦¨ করা হয়েছে (%ld পূরà§à¦¬à§‡ সরà§à¦¬à¦¶à§‡à¦· লগ-ইন করা হয়েছে)।" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "" "আপনার অà§à¦¯à¦¾à¦•াউনà§à¦Ÿà§‡à¦° মেয়াদপূরà§à¦£ হয়েছে; অনà§à¦—à§à¦°à¦¹ করে সিসà§à¦Ÿà§‡à¦® অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨à¦¿à¦¸à§à¦Ÿà§à¦°à§‡à¦Ÿà¦°à§‡à¦° সাথে " "যোগাযোগ করà§à¦¨à¥¤" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "আপনার পাসওয়ারà§à¦¡ à¦à¦‡ মà§à¦¹à§‚রà§à¦¤à§‡ পরিবরà§à¦¤à¦¨ করা আবশà§à¦¯à¦• (root দà§à¦¬à¦¾à¦°à¦¾ কারà§à¦¯à¦•রী)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "আপনার পাসওয়ারà§à¦¡ à¦à¦‡ মà§à¦¹à§‚রà§à¦¤à§‡ পরিবরà§à¦¤à¦¨ করা আবশà§à¦¯à¦• (password-র মেয়াদ পূরà§à¦£ হয়েছে)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -464,40 +475,40 @@ msgstr[0] "সতরà§à¦•বাণী: %d দিন পরে পাসওয়ঠmsgstr[1] "সতরà§à¦•বাণী: %d দিন পরে পাসওয়ারà§à¦¡à§‡à¦° মেয়াদপূরà§à¦£ হবে" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "সতরà§à¦•বাণী: %d দিন পরে পাসওয়ারà§à¦¡à§‡à¦° মেয়াদপূরà§à¦£ হবে" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করা সমà§à¦à¦¬ হয়নি।" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "কোনো পাসওয়ারà§à¦¡ উলà§à¦²à¦¿à¦–িত হয়নি" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করা সমà§à¦à¦¬ হয়নি।" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "আপনি à¦à¦•টি ছোট পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করতে হবে।" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "চিহà§à¦¨à¦¿à¦¤ পাসওয়ারà§à¦¡à§‡à¦° থেকে লমà§à¦¬à¦¾ পাসওয়ারà§à¦¡ উলà§à¦²à§‡à¦– করা আবশà§à¦¯à¦•" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করা হচà§à¦›à§‡à¥¤" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "কিছৠকাল পরে পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করা সমà§à¦à¦¬ হবে" diff --git a/po/boldquot.sed b/po/boldquot.sed deleted file mode 100644 index 4b937aa5..00000000 --- a/po/boldquot.sed +++ /dev/null @@ -1,10 +0,0 @@ -s/"\([^"]*\)"/“\1â€/g -s/`\([^`']*\)'/‘\1’/g -s/ '\([^`']*\)' / ‘\1’ /g -s/ '\([^`']*\)'$/ ‘\1’/g -s/^'\([^`']*\)' /‘\1’ /g -s/“â€/""/g -s/“/“[1m/g -s/â€/[0mâ€/g -s/‘/‘[1m/g -s/’/[0m’/g diff --git a/po/bs.gmo b/po/bs.gmo Binary files differdeleted file mode 100644 index eca00597..00000000 --- a/po/bs.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Bosnian (http://www.transifex.com/projects/p/fedora/language/" @@ -21,11 +21,12 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +46,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,189 +69,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -257,45 +266,45 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -305,148 +314,150 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -455,39 +466,39 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Morate odabrati kraću lozinku." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Morate odabrati kraću lozinku." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Morate odabrati kraću lozinku." diff --git a/po/ca.gmo b/po/ca.gmo Binary files differdeleted file mode 100644 index efe52ead..00000000 --- a/po/ca.gmo +++ /dev/null @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2021-07-22 00:54+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Catalan <https://translate.fedoraproject.org/projects/linux-" @@ -26,11 +26,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.7.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Contrasenya: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -40,6 +41,7 @@ msgstr "Contrasenya actual de %s: " msgid "Current password: " msgstr "Contrasenya actual: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,6 +51,7 @@ msgstr "Nova contrasenya de %s: " msgid "New password: " msgstr "Nova contrasenya: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,172 +74,178 @@ msgstr "Torneu a escriure %s" msgid "Password change has been aborted." msgstr "S'ha cancel·lat el canvi de contrasenya." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "inici de sessió:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Correcte" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Error greu - s'avortarà l'operació immediatament" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Ha fallat en carregar el mòdul" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "No es troba el sÃmbol" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Error en el mòdul de servei" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Error del sistema" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Error de la memòria intermèdia" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "PermÃs denegat" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Error d'autenticació" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" "No teniu suficients credencials per a accedir a les dades d'autenticació" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "El servei d'autenticació no pot recuperar la informació corresponent" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Usuari desconegut per al mòdul d'autenticació subjacent" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "S'ha exhaurit el nombre mà xim d'intents per al servei" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "El testimoni d'autenticació ja no és và lid; se'n necessita un de nou" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "El compte d'usuari ha vençut" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "No es pot crear/suprimir una entrada per a la sessió especificada" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "El servei d'autenticació no pot recuperar les credencials d'usuari" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Les credencials d'usuari han caducat" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "S'ha produït un error en definir les credencials d'usuari" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "No hi han dades especÃfiques del mòdul" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "S'ha transmès un element incorrecte a pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Error de conversa" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Error de manipulació del testimoni d'autenticació" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "No es pot recuperar la informació d'autenticació" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "El bloqueig del testimoni d'autenticació està ocupat" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "L'envelliment del testimoni d'autenticació està inhabilitat" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Error durant la comprovació preliminar del servei de contrasenyes" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "El lliurament de PAM hauria d'ignorar el valor de retorn" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "El mòdul és desconegut" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "El testimoni d'autenticació ha caducat" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "La conversa està esperant un esdeveniment" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "L'aplicació necessita cridar novament libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Error de PAM desconegut" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...S'acaba el temps...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...S'ha acabat el temps.\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "conversa errònia (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s ha fallat: codi de sortida %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s ha fallat: s'ha atrapat el senyal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s ha fallat: estat 0x%x desconegut" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -245,18 +254,18 @@ msgstr "" "Forma d’ús: %s: [--dir /directori/path/to/tally] [--user nom_usuari] [--" "reset]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Entrada Fallades Última fallada Des de\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "El compte està bloquejat a causa de %u inicis fallits de sessió." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +273,45 @@ msgstr[0] "(resten %d minut per desbloquejar)" msgstr[1] "(resten %d minuts per desbloquejar)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(resten %d minuts per desbloquejar)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %-d %b de %Y, %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " des de %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " a %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Últim inici de sessió:%s des de %s a %s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Benvingut al vostre nou compte!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Últim inici de sessió fallit:%s des de %s a %s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -315,154 +324,156 @@ msgstr[1] "" "reeixit." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "S'han produït %d intents fallits d'inici de sessió des de l'últim inici de " "sessió reeixit." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Hi havia massa inicis de sessió per a '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Teniu correu nou." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Teniu correu nou." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Teniu correu antic." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Teniu correu." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "No teniu cap correu a la carpeta %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Teniu nou correu a la carpeta %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Teniu correu antic a la carpeta %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Teniu correu a la carpeta %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Creant el directori '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "No s'ha pogut crear i inicialitzar el directori '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Aquesta contrasenya ja s'ha fet servir. Trieu-ne una altra." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "La contrasenya ja ha estat utilitzada." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "El context de seguretat predeterminat és %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Voleu introduir un rol o nivell diferent?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rol:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "No hi ha cap tipus predeterminat per al rol %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nivell:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Aquest no és un context de seguretat và lid." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "No s'ha pogut obtenir un context và lid per a %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "S'ha assignat el context de seguretat %s." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "S'ha assignat el context de creació de clau %s." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "s'ha produït un error en inicialitzar PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "s'ha produït un error en pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "inici de sessió: ha fallat la bifurcació: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "S'ha concedit l'accés (l'últim accés va ser fa %ld segons)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" "El vostre compte ha vençut; contacteu amb l'administrador del vostre sistema." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "Heu de canviar la contrasenya immediatament (us hi obliga l'administrador)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" "Heu de canviar la contrasenya immediatament (la contrasenya ha vençut)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -470,37 +481,37 @@ msgstr[0] "Atenció: la contrasenya venç d'aquà a %d dia." msgstr[1] "Atenció: la contrasenya venç d'aquà a %d dies." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Atenció: la contrasenya venç d'aquà a %d dies." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "No s'ha pogut canviar la contrasenya NIS." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "No s'ha proporcionat cap contrasenya." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "No s'ha canviat la contrasenya." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Heu de triar una contrasenya més curta." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Heu de triar una contrasenya més llarga." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "S'està canviant la contrasenya de %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Heu d'esperar més temps abans de canviar la contrasenya." diff --git a/po/cs.gmo b/po/cs.gmo Binary files differdeleted file mode 100644 index 4e7efec7..00000000 --- a/po/cs.gmo +++ /dev/null @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2023-01-24 18:20+0000\n" "Last-Translator: Josef Hruska <hrusjos@gmail.com>\n" "Language-Team: Czech <https://translate.fedoraproject.org/projects/linux-pam/" @@ -26,11 +26,12 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 4.15.1\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Heslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -40,6 +41,7 @@ msgstr "SouÄasné %s heslo: " msgid "Current password: " msgstr "SouÄasné heslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,6 +51,7 @@ msgstr "Nové %s heslo: " msgid "New password: " msgstr "Nové heslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,171 +74,177 @@ msgstr "Opakujte %s" msgid "Password change has been aborted." msgstr "ZmÄ›na hesla byla pÅ™eruÅ¡ena." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "login:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "ÚspÄ›ch" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritická chyba - okamžité ukonÄenÃ" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "NepodaÅ™ilo se nahrát modul" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbol nenalezen" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Chyba v modulu služby" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Systémová chyba" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Chyba alokace pamÄ›ti" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "PÅ™Ãstup zamÃtnut" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Selhánà autentizace" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "NedostateÄná oprávnÄ›nà pro pÅ™Ãstup k autentizaÄnÃm datům" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "AutentizaÄnà služba nemůže zÃskat informace pro autentizaci" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Uživatel nenà znám použitému autentizaÄnÃmu modulu" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "VyÄerpán maximálnà poÄet pokusů pro službu" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "AutentizaÄnà token již nenà platný; vyžadován nový" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Uživatelský úÄet vyprÅ¡el" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Pro zadané sezenà nelze vytvoÅ™it/odstranit záznam" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "AutentizaÄnà služba nemůže zÃskat údaje o oprávnÄ›nÃch uživatele" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Údaje o oprávnÄ›nÃch uživatele vyprÅ¡ely" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Chyba pÅ™i nastavenà údajů o oprávnÄ›nÃch uživatele" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Nelze najÃt data potÅ™ebná pro modul" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Funkci pam_*_item() byla pÅ™edána Å¡patná položka" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Chyba konverzace" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Chyba manipulace s autentizaÄnÃm tokenem" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "AutentizaÄnà informace nelze zÃskat" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "AutentizaÄnà token je uzamÄen" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Stárnutà autentizaÄnÃho tokenu vypnuto" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Selhánà pÅ™edběžné kontroly ve službÄ› hesla" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Návratová hodnota by mÄ›la být ignorována rozhodovacÃm mechanismem PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Neznámý modul" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "AutentizaÄnà token vyprÅ¡el" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Konverzace Äeká na událost" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Aplikace musà znovu zavolat libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Neznámá chyba PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Docházà Äas...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Promiňte, Äas vyprÅ¡el!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "nesprávná konverzace (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s selhal: návratový kód %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s selhal: dostal signál %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s selhal: neznámý kód stavu 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -244,18 +253,18 @@ msgstr "" "PoužitÃ: %s [--dir /cesta/k/tally-adresari] [--user uzivatelske_jmeno] [--" "legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "Login Selhánà Poslednà selhánà Od\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "ÚÄet je uzamÄen z důvodu %u neúspěšných pokusů o pÅ™ihlášenÃ." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +273,45 @@ msgstr[1] "(%d minuty zbývajà do odemÄenÃ)" msgstr[2] "(%d minut zbývá do odemÄenÃ)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minut zbývá do odemÄenÃ)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %d.%m.%Y %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " z %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " na %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Poslednà pÅ™ihlášenÃ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "VÃtejte na vaÅ¡em novém úÄtu!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Poslednà neúspěšné pÅ™ihlášenÃ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -312,148 +321,150 @@ msgstr[1] "Od poslednÃho úspěšného doÅ¡lo k %d neúspěšným pokusům o pÅ msgstr[2] "Od poslednÃho úspěšného doÅ¡lo k %d neúspěšným pokusům o pÅ™ihlášenÃ." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "Od poslednÃho úspěšného doÅ¡lo k %d neúspěšným pokusům o pÅ™ihlášenÃ." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "ProbÄ›hlo pÅ™ÃliÅ¡ mnoho pÅ™ihlášenà pro '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Nemáte žádnou novou poÅ¡tu." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Máte novou poÅ¡tu." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Máte starou poÅ¡tu." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Máte poÅ¡tu." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Nemáte žádnou poÅ¡tu ve složce %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Máte novou poÅ¡tu ve složce %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Máte starou poÅ¡tu ve složce %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Máte poÅ¡tu ve složce %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Vytvářenà adresáře '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "NezdaÅ™ilo se vytvoÅ™it a inicializovat adresář '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Heslo již bylo použito. Zvolte jiné." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Heslo již bylo použito." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Výchozà bezpeÄnostnà kontext je %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Chcete zadat jinou roli nebo úroveň?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "role:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Chybà výchozà typ pro roli %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "úroveň:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Toto nenà platný bezpeÄnostnà kontext." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "NepodaÅ™ilo se zÃskat platný kontext pro %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "BezpeÄnostnà kontext %s byl pÅ™iÅ™azen." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Kontext pro vytvářenà klÃÄů %s byl pÅ™idÄ›len." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "chyba pÅ™i inicializaci PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "chyba pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: chyba forku: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "PÅ™Ãstup byl povolen (poslednà pÅ™Ãstup pÅ™ed %ld vteÅ™inami)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Váš úÄet vyprÅ¡el; kontaktujte prosÃm svého správce systému." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Nynà musÃte zmÄ›nit své heslo (vynuceno administrátorem)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Nynà musÃte zmÄ›nit své heslo (heslo vyprÅ¡elo)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -462,37 +473,37 @@ msgstr[1] "VarovánÃ: VaÅ¡e heslo vypršà za %d dny." msgstr[2] "VarovánÃ: VaÅ¡e heslo vypršà za %d dnÃ." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "VarovánÃ: PoÄet dnà do vyprÅ¡enà hesla: %d" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS heslo se nepodaÅ™ilo zmÄ›nit." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Heslo nebylo zadáno." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Heslo nebylo zmÄ›nÄ›no." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "MusÃte zvolit kratšà heslo." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "MusÃte si zvolit delšà heslo." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "ZmÄ›na hesla pro %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Na zmÄ›nu svého hesla musÃte poÄkat déle." diff --git a/po/cy.gmo b/po/cy.gmo Binary files differdeleted file mode 100644 index 3d4a6966..00000000 --- a/po/cy.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Welsh (http://www.transifex.com/projects/p/fedora/language/" @@ -21,11 +21,12 @@ msgstr "" "11) ? 2 : 3;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +46,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,189 +69,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -258,45 +267,45 @@ msgstr[2] "" msgstr[3] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -307,148 +316,150 @@ msgstr[2] "" msgstr[3] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -458,39 +469,39 @@ msgstr[2] "" msgstr[3] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Rhaid i chi ddewis cyfrinair byrrach." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Rhaid i chi ddewis cyfrinair byrrach." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Rhaid i chi ddewis cyfrinair byrrach." diff --git a/po/da.gmo b/po/da.gmo Binary files differdeleted file mode 100644 index cb7d31fd..00000000 --- a/po/da.gmo +++ /dev/null @@ -7,13 +7,14 @@ # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata # scootergrisen <scootergrisen@gmail.com>, 2020. # Dmitry V. Levin <ldv@altlinux.org>, 2021. +# Alan Mortensen <alanmortensen.am@gmail.com>, 2024. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2021-07-22 00:54+0000\n" -"Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2024-03-19 18:57+0100\n" +"Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n" "Language-Team: Danish <https://translate.fedoraproject.org/projects/linux-" "pam/master/da/>\n" "Language: da\n" @@ -21,13 +22,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7.2\n" +"X-Generator: Poedit 3.0.1\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Adgangskode: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -37,6 +39,7 @@ msgstr "Nuværende %s adgangskode: " msgid "Current password: " msgstr "Nuværende adgangskode: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +49,7 @@ msgstr "Ny %s adgangskode: " msgid "New password: " msgstr "Ny adgangskode: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -68,190 +72,197 @@ msgstr "Genindtast %s" msgid "Password change has been aborted." msgstr "Ændring af adgangskode blev afbrudt." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "login:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Udført" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritisk fejl - afbryder omgÃ¥ende" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Kunne ikke indlæse modul" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbol ikke fundet" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Der opstod en fejl i tjenestemodul" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Systemfejl" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Fejl i hukommelsesbuffer" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Rettigheder nægtet" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Fejl ved godkendelse" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Utilstrækkelige oplysninger for at fÃ¥ adgang til godkendelsesdata" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Godkendelsestjenesten kan ikke hente godkendelsesoplysningerne" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Ukendt bruger for det underliggende godkendelsesmodul" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Antal forsøg pÃ¥ at fÃ¥ adgang til tjenesten er udløbet" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Godkendelses-token er ikke længere gyldig; en ny er pÃ¥krævet" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Brugerkontoen er udløbet" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Angivelsen til den angivne session kan ikke dannes/fjernes" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Godkendelsestjenesten kan ikke hente brugeroplysninger" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Brugeroplysningerne er udløbet" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Der opstod en fejl ved angivelse af brugeroplysninger" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Der findes ingen modulspecifikke data" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Ugyldigt objekt blev overført til pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Konversationsfejl" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Fejl ved manipulering af godkendelsestoken" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Godkendelsesoplysningerne kan ikke gendannes" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "LÃ¥s til godkendelsestoken er optaget" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Udløb af godkendelsestoken er deaktiveret" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Indledende kontrol af adgangskodetjenesten mislykkedes" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Returværdien bør ignoreres af PAM-afsendelse" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modul er ukendt" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Godkendelsestoken er udløbet" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Konversation venter pÃ¥ hændelse" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Programmet skal kalde libpam igen" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Ukendt PAM-fejl" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Tiden er ved at udløbe...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Din tid er desværre gÃ¥et!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "konversationsfejl (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s fejlede: afslutningskode %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s fejlede: fangede signal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s fejlede: ukendt status 0x%x" -#: modules/pam_faillock/main.c:130 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:131 +#, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -"Anvendelse: %s [--dir /sti/til/tally-mappe] [--user brugernavn] [--reset]\n" +"Anvendelse: %s [--dir /sti/til/tally-mappe] [--user brugernavn] [--reset] [--" +"legacy-output]\n" -#: modules/pam_faillock/main.c:181 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:182 +#, c-format msgid "Login Failures Latest failure From\n" -msgstr "Login Fejlende Sidste fejl Fra\n" +msgstr "Login Fejl Seneste fejl Fra\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Konto lÃ¥st pÃ¥ grund af %u fejlende logins." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -259,45 +270,45 @@ msgstr[0] "(%d minut tilbage hvor der kan lÃ¥ses op)" msgstr[1] "(%d minutter tilbage hvor der kan lÃ¥ses op)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minutter tilbage hvor der kan lÃ¥ses op)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " fra %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " pÃ¥ %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Sidste login:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Velkommen til din nye konto!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Sidste fejlende login:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -306,150 +317,151 @@ msgstr[0] "Der var %d fejlende loginforsøg siden sidste succesfulde login." msgstr[1] "Der var %d fejlende loginforsøg siden sidste succesfulde login." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "Der var %d fejlende loginforsøg siden sidste succesfulde login." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Der var for mange logins for '%s'." -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "Du har ny e-post." +msgstr "Der er ingen nye mails." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." -msgstr "Du har ny e-post." +msgstr "Der er nye mails." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." -msgstr "Du har gammel e-post." +msgstr "Der er gamle e-mails." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." -msgstr "Du har e-post." +msgstr "Der er mails." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." -msgstr "Du har ingen e-post i mappe %s." +msgstr "Der er ingen mails i mappen %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." -msgstr "Du har ny e-post i mappe %s." +msgstr "Der er nye mails i mappen %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." -msgstr "Du har gammel e-post i mappe %s." +msgstr "Der er gamle mails i mappen %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." -msgstr "Du har e-post i mappe %s." +msgstr "Der er mails i mappen %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Opretter mappe \"%s\"." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Kunne ikke oprette og initialisere mappe \"%s\"." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Adgangskoden er allerede blevet brugt. Vælg en anden." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Adgangskode er allerede i brug." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Standard sikkerhedskonteksten er %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Vil du angive en anden rolle eller niveau?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rolle:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Der er ikke nogen standardtype for rollen %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "niveau:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Der er ikke et gyldigt sikkerhedskontekst." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Der kunne ikke indhentes et gyldigt kontekst for %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Sikkerhedskontekst %s er blevet tildelt." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Nøgleoprettelseskonteksten %s er blevet tildelt." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "kunne ikke initialisere PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() mislykkedes\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: fejl ved forgrening: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Adgang er blevet givet (sidste adgang var for %ld sekunder siden)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Din konto er udløbet; kontakt venligst din systemadministrator." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "Du skal ændre din adgangskode omgÃ¥ende (gennemtvunget af administrator)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Du skal ændre din adgangskode omgÃ¥ende (adgangskoden er god gammel)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -457,113 +469,36 @@ msgstr[0] "Advarsel: Din adgangskode udløber om %d dag." msgstr[1] "Advarsel: Din adgangskode udløber om %d dage." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Advarsel: din adgangskode udløber om %d dage." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS-adgangskoden kunne ikke ændres." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Der er ikke angivet nogen adgangskode." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Adgangskoden er ikke blevet ændret." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Du skal vælge en kortere adgangskode." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Du skal vælge en længere adgangskode." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Ændrer adgangskode for %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Du skal vente længere for at ændre din adgangskode." - -#~ msgid "You have no mail." -#~ msgstr "Du har ingen post." - -#~ msgid "is the same as the old one" -#~ msgstr "er den samme som den gamle" - -#~ msgid "memory allocation error" -#~ msgstr "fejl under hukommelsesallokering" - -#~ msgid "is a palindrome" -#~ msgstr "det staves ens forfra og bagfra" - -#~ msgid "case changes only" -#~ msgstr "kun forskel i store/smÃ¥ bogstaver" - -#~ msgid "is too similar to the old one" -#~ msgstr "ligner for meget den gamle" - -#~ msgid "is too simple" -#~ msgstr "er for simpel" - -#~ msgid "is rotated" -#~ msgstr "er roteret" - -#~ msgid "not enough character classes" -#~ msgstr "ikke nok tegnklasser" - -#~ msgid "contains too many same characters consecutively" -#~ msgstr "indeholder for mange af de samme tegn" - -#~ msgid "contains too long of a monotonic character sequence" -#~ msgstr "indeholder en for lang sekvens af monotone tegn" - -#~ msgid "contains the user name in some form" -#~ msgstr "indeholder brugernavnet i en eller anden form" - -#~ msgid "BAD PASSWORD: %s" -#~ msgstr "DÃ…RLIG ADGANGSKODE: %s" - -#~ msgid "The account is temporarily locked (%ld seconds left)." -#~ msgstr "Kontoen er midlertidigt lÃ¥st (%ld sekunder tilbage)." - -#~ msgid "Authentication error" -#~ msgstr "Fejl ved godkendelse" - -#~ msgid "Service error" -#~ msgstr "Fejl ved tjeneste" - -#~ msgid "Unknown user" -#~ msgstr "Ukendt bruger" - -#~ msgid "Unknown error" -#~ msgstr "Ukendt fejl" - -#~ msgid "%s: Bad number given to --reset=\n" -#~ msgstr "%s: Der er angivet et forkert tal til --reset=\n" - -#~ msgid "%s: Unrecognised option %s\n" -#~ msgstr "%s: Ikke genkendt indstilling %s\n" - -#~ msgid "" -#~ "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#~ msgstr "" -#~ "%s: [--file rodfilnavn] [--user brugernavn] [--reset[=n]] [--quiet]\n" - -#~ msgid "%s: Can't reset all users to non-zero\n" -#~ msgstr "%s: Alle brugere kunne ikke nulstilles til ikke-nul\n" - -#~ msgid "" -#~ "%s: [-f rooted-filename] [--file rooted-filename]\n" -#~ " [-u username] [--user username]\n" -#~ " [-r] [--reset[=n]] [--quiet]\n" -#~ msgstr "" -#~ "%s: [-f rodfilnavn] [--file rodfilnavn]\n" -#~ " [-u brugernavn] [--user brugernavn]\n" -#~ " [-r] [--reset[=n]] [--quiet]\n" diff --git a/po/de.gmo b/po/de.gmo Binary files differdeleted file mode 100644 index 536fea82..00000000 --- a/po/de.gmo +++ /dev/null @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-12-06 09:19+0000\n" "Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n" "Language-Team: German <https://translate.fedoraproject.org/projects/linux-" @@ -23,11 +23,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.14.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Passwort: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "Geben Sie das aktuelle %s Passwort ein: " msgid "Current password: " msgstr "Geben Sie das aktuelle Passwort ein: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "Geben Sie ein neues %s Passwort ein: " msgid "New password: " msgstr "Geben Sie ein neues Passwort ein: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -68,175 +71,181 @@ msgstr "Neu eingeben %s" msgid "Password change has been aborted." msgstr "Passwort Änderung wurde abgebrochen." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "Login:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Erfolg" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritischer Fehler - sofortiger Abbruch" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Fehler beim Laden des Moduls" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbol nicht gefunden" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Fehler im Service-Modul" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Systemfehler" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Fehler beim Zwischenspeichern" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Berechtigung verweigert" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Fehler bei Authentifizierung" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" "Berechtigungsnachweis für Zugriff auf Authentifizierungsdaten nicht " "ausreichend" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" "Authentifizierungsdienst kann Authentifizierungsinformationen nicht abrufen" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Benutzer bei zu Grunde liegendem Authentifizierungsmodul nicht bekannt" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Maximale Anzahl an Versuchen für den Dienst erreicht" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Authentifizierungstoken ist nicht mehr gültig; neues erforderlich" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Benutzerkonto ist abgelaufen" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" "Erstellen/Entfernen eines Eintrags für die angegebene Sitzung nicht möglich" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Authentifizierungsdienst kann keine Benutzerberechtigung abrufen" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Benutzerberechtigung abgelaufen" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Fehler beim Festlegen der Benutzerberechtigung" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Keine modulspezifischen Daten vorhanden" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Ungültiges Element an pam_*_item() übergeben" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Kommunikationsfehler" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Fehler beim Ändern des Authentifizierungstoken" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Authentifizierungsinformationen können nicht wiederhergestellt werden" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Sperre für Authentifizierungstoken belegt" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Zeitablauf für Authentifizierungstoken deaktiviert" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Vorabtest durch Passwortdienst gescheitert" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Der Rückgabewert sollte von PAM-Dispatch ignoriert werden" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modul ist nicht bekannt" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Authentifizierungstoken abgelaufen" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Kommunikation wartet auf Ereignis" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Anwendung muss libpam wieder aufrufen" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Unbekannter PAM-Fehler" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Zeit läuft ab...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Ihre Zeit ist abgelaufen!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "fehlerhafte Kommunikation (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s schlug fehl: Fehlercode %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s schlug fehl: Signal %d%s erhalten" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s schlug fehl: Unbekannter Status 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -245,18 +254,18 @@ msgstr "" "Aufruf: %s [--dir /path/to/tally-Verzeichnis] [--user Benutzername] [--" "reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "Anmeldung Fehler Letzter Fehler Von\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Das Konto ist wegen %u fehlgeschlagener Anmelde-Versuche gesperrt." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +273,45 @@ msgstr[0] "(noch %d Minute zum Entsperren)" msgstr[1] "(noch %d Minuten zum Entsperren)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(noch %d Minuten zum Entsperren)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %A, den %d. %B %Y, %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " von %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " auf %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Letzte Anmeldung:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Willkommen in Ihrem neuen Konto!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Letzte fehlgeschlagene Anmeldung:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -313,149 +322,151 @@ msgstr[1] "" "Es gab %d fehlgeschlagene Versuche seit der letzten erfolgreichen Anmeldung." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Es gab %d fehlgeschlagene Versuche seit der letzten erfolgreichen Anmeldung." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Zu viele Anmeldungen für '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Sie haben keine neue E-Mail." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Sie haben neue Nachrichten." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Sie haben alte Nachrichten." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Sie haben Nachrichten." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Sie haben keine Nachrichten in %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Sie haben neue Nachrichten in %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Sie haben alte Nachrichten in %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Sie haben Nachrichten in %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Erstelle Verzeichnis '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Verzeichnis '%s' kann nicht erstellt und initialisiert werden." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Passwort wurde bereits verwendet. Wählen Sie ein anderes aus." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Das gleiche Passwort wurde bereits einmal verwendet." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Standard-Sicherheitskontext %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Wollen Sie eine andere Rolle oder Stufe eingeben?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "Funktion:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Keinen Standard-Typ für Rolle %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "Stufe:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Kein gültiger Sicherheitskontext." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Unfähig einen gültigen Kontext zu erhalten für %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Sicherheitskontext %s zugewiesen." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Schlüssel-Erzeugungskontext %s zugeordnet." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "Fehler beim Initialisieren von PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "Fehler bei pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "Anmeldung: Fehler bei Abspaltung: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Zugriff erlaubt (letzter Zugriff war vor %ld Sekunden)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Ihr Konto ist abgelaufen. Wenden Sie sich an den Systemadministrator." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Sie müssen Ihr Passwort sofort ändern (von root erzwungen)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Sie müssen Ihr Passwort sofort ändern (Passwortablauf)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -463,37 +474,37 @@ msgstr[0] "Warnung: Ihr Passwort läuft in %d Tag ab." msgstr[1] "Warnung: Ihr Passwort läuft in %d Tagen ab." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Warnung: Ihr Passwort läuft in %d Tagen ab." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Änderung des NIS-Passworts nicht möglich." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Kein Passwort angegeben." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Passwort nicht geändert." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Sie müssen ein kürzeres Passwort wählen." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Sie müssen ein längeres Passwort auswählen." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Ändern des Passworts für %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Sie können Ihr Passwort noch nicht ändern." diff --git a/po/de_CH.gmo b/po/de_CH.gmo Binary files differdeleted file mode 100644 index d05b8f55..00000000 --- a/po/de_CH.gmo +++ /dev/null diff --git a/po/de_CH.po b/po/de_CH.po index fceab0f2..05ddf717 100644 --- a/po/de_CH.po +++ b/po/de_CH.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: German (Switzerland) (http://www.transifex.com/projects/p/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Sie müssen ein kürzeres Passwort wählen." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Sie müssen ein kürzeres Passwort wählen." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Sie müssen ein kürzeres Passwort wählen." diff --git a/po/el.gmo b/po/el.gmo Binary files differdeleted file mode 100644 index e25c9cb4..00000000 --- a/po/el.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Greek <trans-el@lists.fedoraproject.org>\n" @@ -19,11 +19,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -33,6 +34,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -42,6 +44,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -64,189 +67,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -254,45 +263,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -301,148 +310,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -450,39 +461,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Î ÏÎπει να επιλÎξετε μικÏότεÏο κωδικό Ï€Ïόσβασης." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Î ÏÎπει να επιλÎξετε μικÏότεÏο κωδικό Ï€Ïόσβασης." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Î ÏÎπει να επιλÎξετε μικÏότεÏο κωδικό Ï€Ïόσβασης." diff --git a/po/en@boldquot.header b/po/en@boldquot.header deleted file mode 100644 index fedb6a06..00000000 --- a/po/en@boldquot.header +++ /dev/null @@ -1,25 +0,0 @@ -# All this catalog "translates" are quotation characters. -# The msgids must be ASCII and therefore cannot contain real quotation -# characters, only substitutes like grave accent (0x60), apostrophe (0x27) -# and double quote (0x22). These substitutes look strange; see -# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html -# -# This catalog translates grave accent (0x60) and apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019). -# It also translates pairs of apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019) -# and pairs of quotation mark (0x22) to -# left double quotation mark (U+201C) and right double quotation mark (U+201D). -# -# When output to an UTF-8 terminal, the quotation characters appear perfectly. -# When output to an ISO-8859-1 terminal, the single quotation marks are -# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to -# grave/acute accent (by libiconv), and the double quotation marks are -# transliterated to 0x22. -# When output to an ASCII terminal, the single quotation marks are -# transliterated to apostrophes, and the double quotation marks are -# transliterated to 0x22. -# -# This catalog furthermore displays the text between the quotation marks in -# bold face, assuming the VT100/XTerm escape sequences. -# diff --git a/po/en@quot.header b/po/en@quot.header deleted file mode 100644 index a9647fc3..00000000 --- a/po/en@quot.header +++ /dev/null @@ -1,22 +0,0 @@ -# All this catalog "translates" are quotation characters. -# The msgids must be ASCII and therefore cannot contain real quotation -# characters, only substitutes like grave accent (0x60), apostrophe (0x27) -# and double quote (0x22). These substitutes look strange; see -# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html -# -# This catalog translates grave accent (0x60) and apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019). -# It also translates pairs of apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019) -# and pairs of quotation mark (0x22) to -# left double quotation mark (U+201C) and right double quotation mark (U+201D). -# -# When output to an UTF-8 terminal, the quotation characters appear perfectly. -# When output to an ISO-8859-1 terminal, the single quotation marks are -# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to -# grave/acute accent (by libiconv), and the double quotation marks are -# transliterated to 0x22. -# When output to an ASCII terminal, the single quotation marks are -# transliterated to apostrophes, and the double quotation marks are -# transliterated to 0x22. -# diff --git a/po/eo.gmo b/po/eo.gmo Binary files differdeleted file mode 100644 index 8eb7cc21..00000000 --- a/po/eo.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2021-02-05 00:40+0000\n" "Last-Translator: Carmen Bianca Bakker <carmen@carmenbianca.eu>\n" "Language-Team: Esperanto <https://translate.fedoraproject.org/projects/linux-" @@ -21,11 +21,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.4.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Pasvorto: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "Aktuala %s pasvorto: " msgid "Current password: " msgstr "Aktuala pasvorto: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +46,7 @@ msgstr "Nova %s pasvorto: " msgid "New password: " msgstr "Nova pasvorto: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,189 +69,195 @@ msgstr "Retajpu %s" msgid "Password change has been aborted." msgstr "PasvortoÅanÄo ĉesis." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "saluto:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Sukceso" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritika eraro - tuja ĉeso" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Malsukcesis Åargi modulon" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Ne trovis simbolon" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Sistema eraro" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Permeso rifuzita" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "AÅtentiga malsukceso" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Nesufiĉaj salutiloj por atingi aÅtentigajn datumojn" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Nekonata PAM-eraro" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, fuzzy, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -256,45 +265,45 @@ msgstr[0] "(restas %d minutoj por malÅlosi)" msgstr[1] "(restas %d minutoj por malÅlosi)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(restas %d minutoj por malÅlosi)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %e-a de %b %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " de %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " sur %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Lasta saluto: %s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Bonvenon al via nova konto!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Lasta malsukcesa saluto: %s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -303,149 +312,151 @@ msgstr[0] "Estis %d malsukcesa salutprovo ekde la lasta sukcesa saluto." msgstr[1] "Estis %d malsukcesaj salutprovoj ekde la lasta sukcesa saluto." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "Estis %d malsukcesaj salutprovoj ekde la lasta sukcesa saluto." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Estis tro multaj salutoj por '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Vi havas novan poÅton." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Vi havas novan poÅton." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Vi havas malnovan poÅton." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Vi havas poÅton." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Vi havas neniun poÅton en dosierujo %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Vi havas novan poÅton en dosierujo %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Vi havas malnovan poÅton en dosierujo %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Vi havas poÅton en dosierujo %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Kreante dosierujon '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Pasvorto jam uzita. Elektu alian." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Pasvorto jam uzita." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -453,37 +464,37 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Vi devas elekti pli mallongan pasvorton." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Vi devas elekti pli longan pasvorton." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "" diff --git a/po/es.gmo b/po/es.gmo Binary files differdeleted file mode 100644 index b06cdb3a..00000000 --- a/po/es.gmo +++ /dev/null @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-10-18 15:19+0000\n" "Last-Translator: Emilio Herrera <ehespinosa57@gmail.com>\n" "Language-Team: Spanish <https://translate.fedoraproject.org/projects/linux-" @@ -30,11 +30,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.14.1\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Contraseña: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -44,6 +45,7 @@ msgstr "Contraseña %s actual: " msgid "Current password: " msgstr "Contraseña actual: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -53,6 +55,7 @@ msgstr "Nueva %s contraseña: " msgid "New password: " msgstr "Nueva contraseña: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -75,174 +78,180 @@ msgstr "Vuelva a escribir %s" msgid "Password change has been aborted." msgstr "Se ha abortado el cambio de contraseña." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "nombre de usuario:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Éxito" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Error crÃtico: cancelación inmediata" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Error al cargar el módulo" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "SÃmbolo no encontrado" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Error en el módulo de servicios" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Error del sistema" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Error de buffer de memoria" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Permiso denegado" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Fallo de autenticación" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Credenciales insuficientes para acceder a los datos de autenticación" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" "El servicio de autenticación no puede recuperar la información de " "autenticación" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Usuario desconocido para el módulo de autenticación subyacente" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Se ha agotado el número máximo de reintentos para el servicio" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "El testigo de autenticación ya no es válido; necesitará uno nuevo" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "La cuenta del usuario ha caducado" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "No es posible crear o eliminar una entrada de la sesión especificada" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" "El servicio de autenticación no puede recuperar las credenciales del usuario" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Las credenciales del usuario han caducado" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Error al definir las credenciales del usuario" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "No hay datos especÃficos del módulo presentes" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Elemento incorrecto enviado a pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Error de conversación" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Error de manipulación del testigo de autenticación" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "No es posible recuperar la información de autenticación" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "El testigo de autenticación parece ocupado" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Antigüedad del testigo de autenticación inhabilitada" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Error de comprobación preliminar del servicio de contraseña" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "El valor devuelto debe ser omitido por el expedidor PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Módulo desconocido" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Testigo de autenticación caducado" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "La conversación está esperando el evento" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "La aplicación debe llamar a libpam de nuevo" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Error desconocido de PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...El tiempo se está agotando...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Lo sentimos, el tiempo se ha agotado.\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "conversación incorrecta (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s fallido: código de salida %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s fallido: señal capturada %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s fallido: estado desconocido 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -251,18 +260,18 @@ msgstr "" "Usage: %s [--dir /ruta/al/directorio-de-conteo] [--user nombre-de-usuario] " "[--reset]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Fallo de Ingresos Ultimo fallo desde\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "La cuenta está bloqueada debido a %u inicios de sesión fallidos." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -270,45 +279,45 @@ msgstr[0] "(%d minuto restante para el desbloqueo)" msgstr[1] "(%d minutos restantes para el desbloqueo)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minutos restantes para el desbloqueo)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " de %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " en %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Último inicio de sesión:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "¡Bienvenido a su nueva cuenta!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Último inicio de sesión fallido:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -318,140 +327,142 @@ msgstr[1] "" "Hubo %d intentos de logueo fallidos desde el último logueo exitoso. " #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "Hubo %d intentos de logueo fallidos desde el último logueo exitoso. " -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Hubo demasiados inicios de sesión para \"%s\"." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Tiene correo nuevo." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Tiene correo nuevo." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Tiene correo antiguo." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Tiene correo." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "No tiene correo en la carpeta %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Tiene correo nuevo en la carpeta %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Tiene correo antiguo en la carpeta %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Tiene correo en la carpeta %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Creando directorio '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "No se pudo crear e inicializar el directorio '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "La contraseña ya se ha utilizado. Seleccione otra." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "La contraseña ya se ha utilizado. Seleccione otra." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Contexto de Seguridad Predeterminado %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "¿Desea introducir un nivel o función diferente?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "función:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "No hay tipo por defecto para la función %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nivel:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "No es un contexto de seguridad válido." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "No se pudo obtener un contexto válido para %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Contexto de seguridad %s asignado." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Contexto de creación de clave %s asignado." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "error al iniciar PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "error en pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "inicio de sesión: error en horquilla: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Acceso permitido (el último acceso fué hace %ld segundos)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "" "La cuenta ha caducado, póngase en contacto con el administrador del sistema" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " @@ -459,13 +470,13 @@ msgid "" msgstr "" "Debe cambiar la contraseña inmediatamente (obligado por el administrador)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "Debe cambiar la contraseña inmediatamente (la contraseña ha caducado)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -473,40 +484,40 @@ msgstr[0] "Advertencia: la contraseña caducará dentro de %d dÃa" msgstr[1] "Advertencia: la contraseña caducará dentro de %d dÃas" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "Advertencia: la contraseña caducará dentro de %d dÃas" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "No es posible cambiar la contraseña NIS." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "No se ha proporcionado ninguna contraseña" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "No es posible cambiar la contraseña NIS." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Debes elegir una contraseña más corta." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Debe elegir una contraseña más larga" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Cambiando la contraseña de %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Debe esperar más tiempo para cambiar la contraseña" diff --git a/po/et.gmo b/po/et.gmo Binary files differdeleted file mode 100644 index eb719b98..00000000 --- a/po/et.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-06-21 23:18+0000\n" "Last-Translator: H A <contact+fedora@hen.ee>\n" "Language-Team: Estonian <https://translate.fedoraproject.org/projects/linux-" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.13\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Parool: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "Uus %s parool: " msgid "Current password: " msgstr "Uus parool: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "Uus %s parool: " msgid "New password: " msgstr "Uus parool: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,189 +72,195 @@ msgstr "Kirjuta uuesti %s" msgid "Password change has been aborted." msgstr "Paroolivahetus katkestatud." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Edukas" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Mooduli laadimine nurjus" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Sümbolit ei leitud" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Süsteemi viga" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Juurepääs keelatud" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Autentimine nurjus" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Kasutajakonto on aegunud" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Tundmatu moodul" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Tundmatu PAM-i viga" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Aeg hakkab otsa saama...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Kahjuks on su aeg otsas!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "vigane vestlus (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -259,45 +268,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -306,151 +315,153 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Sul ei ole posti kaustas %s." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Sul ei ole posti kaustas %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Sul on uus post kaustas %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Sul on vanu poste kaustas %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Sul on poste kaustas %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "loon kataloogi '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Parooli on juba kasutatud. Vali uus parool." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "Parooli on juba kasutatud. Vali uus parool." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "roll:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "tase:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "Su konto on aegunud; palun kontakteeru oma süsteemiadministraatoriga." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -458,40 +469,40 @@ msgstr[0] "Hoiatus: su parool aegub %d päeva pärast" msgstr[1] "Hoiatus: su parool aegub %d päeva pärast" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "Hoiatus: su parool aegub %d päeva pärast" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "Parooli on juba kasutatud. Vali uus parool." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "Parooli on juba kasutatud. Vali uus parool." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Peate valima lühema parooli." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Sa pead valima pikema parooli" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Sa pead valima pikema parooli" diff --git a/po/eu.gmo b/po/eu.gmo Binary files differdeleted file mode 100644 index 97527f7b..00000000 --- a/po/eu.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2012-12-24 08:54-0500\n" "Last-Translator: Asier Iturralde Sarasola <asier.iturralde@gmail.com>\n" "Language-Team: Basque (http://www.transifex.com/projects/p/fedora/language/" @@ -21,11 +21,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Pasahitza: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "%s Pasahitz berria: " msgid "Current password: " msgstr "%s Pasahitz berria: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "%s Pasahitz berria: " msgid "New password: " msgstr "Pasahitz berria: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -67,189 +70,195 @@ msgstr "Idatzi berriz %s" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Sistemaren errorea" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -257,45 +266,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -304,148 +313,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "maila:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -453,39 +464,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Pasahitz laburragoa aukeratu behar duzu." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Pasahitz laburragoa aukeratu behar duzu." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Pasahitz laburragoa aukeratu behar duzu." diff --git a/po/fa.gmo b/po/fa.gmo Binary files differdeleted file mode 100644 index 476cb279..00000000 --- a/po/fa.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Persian (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,234 +68,240 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -300,187 +309,189 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "شما باید رمز عبور کوتاهتری انتخاب کنید." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "شما باید رمز عبور کوتاهتری انتخاب کنید." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "شما باید رمز عبور کوتاهتری انتخاب کنید." diff --git a/po/fi.gmo b/po/fi.gmo Binary files differdeleted file mode 100644 index 8a79199f..00000000 --- a/po/fi.gmo +++ /dev/null @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-11-15 18:19+0000\n" "Last-Translator: Jan Kuparinen <copper_fin@hotmail.com>\n" "Language-Team: Finnish <https://translate.fedoraproject.org/projects/linux-" @@ -29,11 +29,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.14.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Salasana: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -43,6 +44,7 @@ msgstr "Nykyinen %s salasana: " msgid "Current password: " msgstr "Nykyinen salasana: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -52,6 +54,7 @@ msgstr "Uusi %s salasana: " msgid "New password: " msgstr "Uusi salasana: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -74,171 +77,177 @@ msgstr "Kirjoita uudelleen %s" msgid "Password change has been aborted." msgstr "Salasanan vaihtaminen keskeytettiin." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "sisäänkirjautuminen:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Onnistui" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kriittinen virhe - välitön keskeytys" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Moduulin lataus epäonnistui" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbolia ei löydetty" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Virhe palvelumoduulissa" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Järjestelmävirhe" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Muistipuskurivirhe" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Ei käyttöoikeutta" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Tunnistautumisvirhe" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Riittämätön valtuustieto tunnistautumistietojen saamiseksi" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Tunnistautumispalvelu ei pääse tunnistautumistietoihin" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Käyttäjä tuntematon taustajärjestelmän tunnistautumismoduulille" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Kaikki palvelun uudelleenyritykset käytetty" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Tunnistautumislipuke ei ole enää kelvollinen, tarvitaan uusi" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Käyttäjätili on vanhentunut" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Valitun istunnon merkintää ei voida tehdä/poistaa" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Tunnistautumispalvelu ei pääse käyttäjän valtuustietoihin" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Käyttäjän valtuustiedot vanhentuneet" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Käyttäjän valtuustiedon antaminen ei onnistunut" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Moduuli riippuvaista tietoa ei ole läsnä" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Väärä tieto välitettiin pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Keskusteluvirhe" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Tunnistautumislipukkeen käsittelyvirhe" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Tunnistautumistietoja ei voida palauttaa" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Tunnistautumislipukkeen lukko varattu" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Tunnistautumislipukkeen vanhentuminen otettu pois käytöstä" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Salasanapalvelun alustava tarkistus ei onnistunut" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "PAM-välittäjän tulisi hylätä paluuarvo" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Tuntematon moduuli" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Tunnistautumislipuke vanhentunut" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Keskustelussa odotetaan tapahtumaa" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Sovelluksen tarvitsee kutsua uudelleen libpam:ia" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Tuntematon PAM-virhe" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Aika on loppumassa...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Aikasi on loppunut!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "virheellinen keskustelu (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s epäonnistui: loppukoodi %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s epäonnistui: otettiin kiinni signaali %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s epäonnistui: tuntematon tila 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -247,18 +256,18 @@ msgstr "" "Käyttö: %s: [--dir /polku/missä/tally-hakemisto] [--user käyttäjätunnus] [--" "reset][--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "Tunnus Epäonnistuneita Viimeisin Koneelta\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Käyttäjätili on lukittu %u epäonnistuneen kirjautumisen vuoksi." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -266,45 +275,45 @@ msgstr[0] "(%d minuutti jäljellä avaamiseen)" msgstr[1] "(%d minuuttia jäljellä avaamiseen)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minuuttia jäljellä avaamiseen)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " koneelta %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " päätteellä %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Viimeinen kirjautuminen:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Tervetuloa uudella käyttäjätilillä!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Viimeinen epäonnistunut kirjautuminen:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -317,150 +326,152 @@ msgstr[1] "" "%d kertaa." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Edellisen onnistuneen kirjautumisen jälkeen kirjautuminen on epäonnistunut " "%d kertaa." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Liian monta kirjautumista käyttäjälle '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Sinulle ei ole uutta postia." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Sinulle on uutta postia." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Sinulla on vanha posti." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Sinulle on postia." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Sinulla ei ole postia kansiossa %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Sinulla on postia kansiossa %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Sinulla on vanhaa postia kansiossa %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Sinulla on postia kansiossa %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Luodaan hakemisto â€%sâ€." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Hakemistoa â€%s†ei voida luoda eikä alustaa." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Salasana on jo käytetty. Valitse toinen." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Salasana on jo käytetty." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Oletustietoturvaympäristö on %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Haluatko syöttää eri roolin tai tason?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rooli:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Roolilla %s ei ole oletustyyppiä." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "taso:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Ei kelvollinen tietoturvaympäristö." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Kelvollista sisältöä %s:lle ei pystytty saamaan." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Tietoturvaympäristö %s asetettiin." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Avaimenluontiympäristö %s asetettiin." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM:in valmistelu epäonnistui\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() kutsu epäonnistui\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "sisäänkirjautuminen: virhe haarautumisessa: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Pääsy sallittu (edellinen kirjautuminen %ld sekuntia sitten)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Käyttäjätilisi on vanhentunut; ota yhteyttä järjestelmän ylläpitäjään." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Salasanasi täytyy vaihtaa heti (pääkäyttäjän vaatimus)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Salasanasi täytyy vaihtaa heti (salasana vanhentunut)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -468,37 +479,37 @@ msgstr[0] "Varoitus: salasanasi vanhentuu %d päivän kuluttua." msgstr[1] "Varoitus: salasanasi vanhentuu %d päivän kuluttua." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Varoitus: salasanasi vanhentuu %d päivän kuluttua." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS-salasanaa ei voitu vaihtaa." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Et antanut salasanaa." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Salasanaa ei vaihdettu." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Sinun on valittava lyhyempi salasana." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Sinun tulee valita pidempi salasana." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Vaihdetaan käyttäjän %s salasana." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Sinun täytyy odottaa kauemmin vaihtaaksesi salasanasi." diff --git a/po/fr.gmo b/po/fr.gmo Binary files differdeleted file mode 100644 index ecd8f482..00000000 --- a/po/fr.gmo +++ /dev/null @@ -13,13 +13,15 @@ # Julien Humbert <julroy67@gmail.com>, 2020. # Dmitry V. Levin <ldv@altlinux.org>, 2020. # Jérôme Fenal <jfenal@free.fr>, 2021. +# Damien Pou <dampato+linux@ik.me>, 2024. +# Léane GRASSER <leane.grasser@proton.me>, 2024. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2021-08-18 09:04+0000\n" -"Last-Translator: Jérôme Fenal <jfenal@free.fr>\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2024-06-27 08:36+0000\n" +"Last-Translator: Léane GRASSER <leane.grasser@proton.me>\n" "Language-Team: French <https://translate.fedoraproject.org/projects/linux-" "pam/master/fr/>\n" "Language: fr\n" @@ -27,13 +29,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.7.2\n" +"X-Generator: Weblate 5.5.5\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Mot de passe : " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -43,6 +46,7 @@ msgstr "Mot de passe %s actuel : " msgid "Current password: " msgstr "Mot de passe actuel : " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -52,6 +56,7 @@ msgstr "Nouveau %s mot de passe : " msgid "New password: " msgstr "Nouveau mot de passe : " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -74,200 +79,206 @@ msgstr "Retapez %s" msgid "Password change has been aborted." msgstr "Le changement de mot de passe a été annulé." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "login :" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Succès" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Erreur critique - abandon immédiat" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Échec de chargement du module" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbole non trouvé" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Erreur dans le module de service" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Erreur système" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Erreur du tampon mémoire" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Autorisation refusée" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" -msgstr "Échec de l’authentification" +msgstr "Échec de l'authentification" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -"Informations d’identification insuffisantes pour accéder aux données " -"d’authentification" +"Informations d'identification insuffisantes pour accéder aux données " +"d'authentification" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -"Le service d’authentification n’a pas pu récupérer les informations " -"d’authentification" +"Le service d'authentification n'a pas pu récupérer les informations " +"d'authentification" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" -msgstr "Utilisateur inconnu par le module d’authentification sous-jacent" +msgstr "Utilisateur inconnu par le module d'authentification sous-jacent" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Nombre maximum de tentatives épuisées pour le service" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -"Le jeton d’authentification n’est plus valide ; un nouveau jeton est requis" +"Le jeton d'authentification n'est plus valide ; un nouveau jeton est requis" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" -msgstr "Le compte de l’utilisateur a expiré" +msgstr "Le compte de l'utilisateur a expiré" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Impossible de créer/supprimer une entrée pour la session spécifiée" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -"Le service d’authentification n’a pas pu récupérer les informations " -"d’identification de l’utilisateur" +"Le service d'authentification n'a pas pu récupérer les informations " +"d'identification de l'utilisateur" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" -msgstr "Informations d’identification de l’utilisateur expirées" +msgstr "Informations d'identification de l'utilisateur expirées" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -"Échec lors de la définition des informations d’identification de " -"l’utilisateur" +"Échec lors de la définition des informations d'identification de " +"l'utilisateur" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Aucune donnée spécifique au module présente" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Élément incorrect transmis à pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Erreur de conversation" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" -msgstr "Erreur de manipulation du jeton d’authentification" +msgstr "Erreur de manipulation du jeton d'authentification" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" -msgstr "Impossible de récupérer les informations d’authentification" +msgstr "Impossible de récupérer les informations d'authentification" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" -msgstr "Jeton d’authentification occupé" +msgstr "Jeton d'authentification occupé" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" -msgstr "Péremption du jeton d’authentification désactivée" +msgstr "Péremption du jeton d'authentification désactivée" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Échec du contrôle préliminaire par le service de mot de passe" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "La valeur retournée devrait être ignorée par la répartition PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Module inconnu" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" -msgstr "Le jeton d’authentification a expiré" +msgstr "Le jeton d'authentification a expiré" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" -msgstr "Conversation en attente d’évènement" +msgstr "Conversation en attente d'évènement" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" -msgstr "L’application doit à nouveau appeler libpam" +msgstr "L'application doit à nouveau appeler libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Erreur PAM inconnue" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Temps bientôt écoulé...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Votre temps est épuisé !\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "conversation erronnée (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s échec : code de sortie %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s échec : signal capté %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s échec : statut 0x inconnu%x" -#: modules/pam_faillock/main.c:130 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:131 +#, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -"Utilisation : %s [--dir /chemin/vers/dossier-tally] [--user nom " -"d’utilisateur] [--reset]\n" +"Utilisation : %s [--dir /chemin/vers/dossier-tally] [--user nom " +"d'utilisateur] [--reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:182 +#, c-format msgid "Login Failures Latest failure From\n" -msgstr "Connexion Échecs Dernier échec De\n" +msgstr "Connexion Échecs Dernier échec De\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Le compte est temporairement verrouillé dû aux %u connexions échouées." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -275,45 +286,45 @@ msgstr[0] "(%d minute restante pour déverrouiller)" msgstr[1] "(%d minutes restantes pour déverrouiller)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minutes restantes pour déverrouiller)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %A %e %B %Y à %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " de %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " sur %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Dernière connexion :%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Bienvenue sur votre nouveau compte !" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Dernière connexion échoué : %s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -326,155 +337,156 @@ msgstr[1] "" "réussie." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Il y a eu %d tentatives de connexion échouées depuis la dernière connexion " "réussie." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Trop de connexions pour « %s »." -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "Vous avez un nouveau message." +msgstr "Vous n'avez pas reçu de nouveau courrier." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." -msgstr "Vous avez un nouveau message." +msgstr "Vous avez reçu du courrier." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." -msgstr "Vous avez un ancien message." +msgstr "Vous avez du courrier en attente." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." -msgstr "Vous avez des messages." +msgstr "Vous avez du courrier." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." -msgstr "Vous n’avez aucun message dans le dossier %s." +msgstr "Vous n'avez aucun e-mail dans le dossier %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." -msgstr "Vous avez un nouveau message dans le dossier %s." +msgstr "Vous avez reçu du courrier dans le dossier %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." -msgstr "Vous avez un ancien message dans le dossier %s." +msgstr "Vous avez du courrier en attente dans le dossier %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." -msgstr "Vous avez des messages dans le dossier %s." +msgstr "Vous avez du courrier dans le dossier %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Création du répertoire « %s »." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." -msgstr "Impossible de créer et d’initialiser le répertoire « %s »." +msgstr "Impossible de créer et d'initialiser le répertoire « %s »." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Mot de passe déjà utilisé. Choisissez-en un autre." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Mot de passe déjà utilisé." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Le contexte de sécurité par défaut est %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Voulez-vous entrer un niveau ou un rôle différent ?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rôle :" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." -msgstr "Il n’y a aucun type par défaut pour le rôle %s." +msgstr "Il n'y a aucun type par défaut pour le rôle %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "niveau :" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." -msgstr "Ceci n’est pas un contexte de sécurité valide." +msgstr "Ceci n'est pas un contexte de sécurité valide." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." -msgstr "Impossible d’obtenir un contexte valide pour %s." +msgstr "Impossible d'obtenir un contexte valide pour %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Le contexte de sécurité %s a été attribué." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Le contexte de création de clés %s a été attribué." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" -msgstr "échec de l’initialisation de PAM\n" +msgstr "échec de l'initialisation de PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "échec de pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login : échec du clonage : %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." -msgstr "L’accès a été accordé (dernier accès il y a %ld secondes)." +msgstr "L'accès a été accordé (dernier accès il y a %ld secondes)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" "Votre compte a expiré ; veuillez contacter votre administrateur système." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "Vous devez changer votre mot de passe immédiatement (imposé par " -"l’administrateur)." +"l'administrateur)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" "Vous devez changer votre mot de passe immédiatement (mot de passe expiré)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -482,37 +494,37 @@ msgstr[0] "Attention : votre mot de passe expirera dans %d jour." msgstr[1] "Attention : votre mot de passe expirera dans %d jours." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Attention : votre mot de passe expirera dans %d jours." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." -msgstr "Le mot de passe NIS n’a pas pu être changé." +msgstr "Le mot de passe NIS n'a pas pu être changé." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." -msgstr "Aucun mot de passe n’a été fourni." +msgstr "Aucun mot de passe n'a été fourni." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." -msgstr "Le mot de passe n’a pas été modifié." +msgstr "Le mot de passe n'a pas été modifié." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Vous devez choisir un mot de passe plus court." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Vous devez choisir un mot de passe plus long." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Changement du mot de passe pour %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "" "Vous devez attendre plus longtemps afin de pouvoir changer votre mot de " diff --git a/po/ga.gmo b/po/ga.gmo Binary files differdeleted file mode 100644 index 36924913..00000000 --- a/po/ga.gmo +++ /dev/null @@ -6,38 +6,40 @@ # leftmostcat <leftmostcat@gmail.com>, 2012 # leftmostcat <leftmostcat@gmail.com>, 2012-2013 # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata +# Aindriu Mac Giolla Eoin <aindriu80@gmail.com>, 2024. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2013-09-10 02:14-0400\n" -"Last-Translator: leftmostcat <leftmostcat@gmail.com>\n" -"Language-Team: Irish (http://www.transifex.com/projects/p/fedora/language/" -"ga/)\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2024-08-08 15:41+0000\n" +"Last-Translator: Aindriu Mac Giolla Eoin <aindriu80@gmail.com>\n" +"Language-Team: Irish <https://translate.fedoraproject.org/projects/linux-pam/" +"master/ga/>\n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " "4);\n" -"X-Generator: Zanata 3.8.3\n" +"X-Generator: Weblate 5.6.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Focal faire: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 -#, fuzzy, c-format +#, c-format msgid "Current %s password: " -msgstr "Focal faire %s nua: " +msgstr "Focal faire reatha %s: " #: libpam/pam_get_authtok.c:43 -#, fuzzy msgid "Current password: " -msgstr "Focal faire nua: " +msgstr "Pasfhocal reatha: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -47,6 +49,7 @@ msgstr "Focal faire %s nua: " msgid "New password: " msgstr "Focal faire nua: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,468 +69,458 @@ msgid "Retype %s" msgstr "Iontráil %s arÃs" #: libpam/pam_get_authtok.c:183 libpam/pam_get_authtok.c:263 -#, fuzzy msgid "Password change has been aborted." -msgstr "Tobscoireadh athrú focail faire." +msgstr "Cuireadh deireadh le hathrú pasfhocail." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "logáil isteach:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "D'éirigh leis" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Earráid chriticiúil - tobscor láithreach" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Theip ar luchtú modúil" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Siombail gan aimsiú" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Earráid i modúl seirbhÃse" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Earráid chórais" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Earráid mhaolán cuimhne" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "DiúltaÃodh cead" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Teip fÃordheimhnithe" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "NÃl cead agat sonraà fhÃordheimhnithe a rochtain" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" "Nà féidir leis an tseirbhÃs fhÃordheimhnithe faisnéis fhÃordheimhnithe a " "fháil" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "NÃl aithne ar an úsáideoir ag an modúl fÃordheimhnithe bunúsach" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "LÃon uasta na hatrialacha don tseirbhÃs Ãdithe" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" "NÃl an ceadchomhartha fÃordheimhnithe bailà a thuilleadh; ceann nua de dhÃth" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Chuaigh an cuntas úsáideora as feidhm" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Nà féidir iontráil don tseirbhÃs sonraithe a dhéanamh/bhaint" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" "Nà féidir leis an tseirbhÃs fhÃordheimhnithe dintiúir úsáideora a fháil" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Chuaigh dintiúir úsáideora as feidhm" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Theip ar shocrú dintiúir úsáideora" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "NÃl aon sonraà shainiúil don mhodúl ann" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Tugadh drochmhÃr do pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Earráid chomhrá" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Earráid ionramháil an cheadchomhartha fÃordheimhnithe" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Nà féidir faisnéis fhÃordheimhnithe a fháil ar ais" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Tá glas an cheadchomhartha fÃordheimhnithe gnóthach" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "DÃchumasaÃodh dul in aois cheadchomharthaà fÃordheimhnithe" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Theip ar réamhsheiceáil ag an tseirbhÃs fhocail faire" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Ba chóir don seoladh PAM neamhaird a dhéanamh ar an luach fillte" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Tá an modúl anaithnid" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Chuaigh an ceadchomhartha fÃordheimhnithe as feidhm" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Tá an comhrá ag fanacht le teagmhas" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Nà mór don fheidhmchlár libpam a ghlaoch arÃs" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Earráid PAM anaithnid" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Tá am ag imeacht...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Tá brón orm, tá do chuid ama imithe!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "comhrá earráideach (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "Theip %s: cód scortha %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "Theip %s: fuarthas comhartha %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "Theip %s: stádas anaithnid 0x%x" -#: modules/pam_faillock/main.c:130 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:131 +#, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -"%s: [--file ainm-comhad-le-fréamh] [--user úsáideoir] [--reset[=u]]\n" -"[--quiet]\n" +"Úsáid: %s [--dir /path/to/tally-directory] [--ainm úsáideora] [--athshocrú] " +"[--legacy-aschur]\n" -#: modules/pam_faillock/main.c:181 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:182 +#, c-format msgid "Login Failures Latest failure From\n" -msgstr "Logáil isteach Teipeanna Teip is déanaà Ó\n" +msgstr "Logála Teipeanna An teip is déanaà Ó\n" -#: modules/pam_faillock/pam_faillock.c:404 -#, fuzzy, c-format +#: modules/pam_faillock/pam_faillock.c:416 +#, c-format msgid "The account is locked due to %u failed logins." -msgstr "Cuireadh an cuntas faoi ghlas mar gheall ar %u logáil isteach teipthe" +msgstr "Tá an cuntas glasáilte mar gheall ar theip %u ar logáil isteach." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" +msgstr[0] "(%d nóiméad fágtha le dÃghlasáil)" +msgstr[1] "(%d nóiméid fágtha le dÃghlasáil)" +msgstr[2] "(%d nóiméid fágtha le dÃghlasáil)" +msgstr[3] "(%d nóiméid fágtha le dÃghlasáil)" +msgstr[4] "(%d nóiméid fágtha le dÃghlasáil)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" -msgstr "" +msgstr "(%d nóiméad fágtha le dÃghlasáil)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %e %b %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " ó %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " ar %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Logáil isteach is déanaÃ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Fáilte go dtà do chuntas nua!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Logáil isteach teipthe is déanaÃ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" "There were %d failed login attempts since the last successful login." -msgstr[0] "" -"Bhà %d iarracht logála isteach teipthe ann ón logáil isteach is déanaà a\n" -"d'éirigh leis." +msgstr[0] "Theip ar %d iarracht logáil isteach ón logáil isteach dheireanach." msgstr[1] "" -"Bhà %d iarracht logála isteach teipthe ann ón logáil isteach is déanaà a\n" -"d'éirigh leis." +"Theip ar %d iarrachtaà logáil isteach ón logáil isteach dheireanach." msgstr[2] "" -"Bhà %d iarracht logála isteach teipthe ann ón logáil isteach is déanaà a\n" -"d'éirigh leis." +"Theip ar %d iarrachtaà logáil isteach ón logáil isteach dheireanach." msgstr[3] "" -"Bhà %d n-iarracht logála isteach teipthe ann ón logáil isteach is déanaÃ\n" -"a d'éirigh leis." +"Theip ar %d iarrachtaà logáil isteach ón logáil isteach dheireanach." msgstr[4] "" -"Bhà %d iarracht logála isteach teipthe ann ón logáil isteach is déanaà a\n" -"d'éirigh leis." +"Theip ar %d iarrachtaà logáil isteach ón logáil isteach dheireanach." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." -msgstr "" -"Bhà %d iarracht logála isteach teipthe ann ón logáil isteach is déanaà a\n" -"d'éirigh leis." +msgstr "Theip ar %d iarracht logáil isteach ón logáil isteach dheireanach." -#: modules/pam_limits/pam_limits.c:1269 -#, fuzzy, c-format +#: modules/pam_limits/pam_limits.c:1424 +#, c-format msgid "There were too many logins for '%s'." -msgstr "An iomarca logálacha isteach do '%s'." +msgstr "Bhà an iomarca logáil isteach le haghaidh '%s'." -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "Tá post nua agat." +msgstr "NÃl aon rÃomhphost nua agat." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Tá post nua agat." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Tá seanphost agat." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Tá post agat." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "NÃl aon phost agat i bhfillteán %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Tá post nua agat i bhfillteán %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Tá seanphost agat i bhfillteán %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Tá post agat i bhfillteán %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Comhadlann '%s' á cruthú." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Nà féidir comhadlann '%s' a chruthú agus a thúsú." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Úsáidtear an focal faire cheana. Roghnaigh ceann eile." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Úsáidtear an focal faire cheana." -#: modules/pam_selinux/pam_selinux.c:172 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:174 +#, c-format msgid "The default security context is %s." -msgstr "Comhthéacs Réamhshocraithe Slándála %s\n" +msgstr "Is é %s an comhthéacs slándála réamhshocraithe." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "An bhfuil fonn ort ról nó leibhéal difriúil a iontráil?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ról:" -#: modules/pam_selinux/pam_selinux.c:193 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:195 +#, c-format msgid "There is no default type for role %s." -msgstr "NÃl aon chineál réamhshocraithe ann do ról %s\n" +msgstr "NÃl aon chineál réamhshocraithe le haghaidh ról %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "leibhéal:" -#: modules/pam_selinux/pam_selinux.c:259 -#, fuzzy +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." -msgstr "Nà comhthéacs bailà slándála é" +msgstr "Nà comhthéacs bailà slándála é seo." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." -msgstr "" +msgstr "NÃorbh fhéidir comhthéacs bailà do %s a fháil." -#: modules/pam_selinux/pam_selinux.c:639 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:641 +#, c-format msgid "Security context %s has been assigned." -msgstr "Sannadh Comhthéacs Slándála %s" +msgstr "Comhthéacs slándála %s sannta." -#: modules/pam_selinux/pam_selinux.c:655 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:657 +#, c-format msgid "Key creation context %s has been assigned." -msgstr "Sannadh Comhthéacs Chruthú Eochracha %s" +msgstr "Tá comhthéacs cruthú eochrach %s sannta." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "theip ar thúsú PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "theip ar pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "logáil isteach: theip ar dhéanamh foirc: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 -#, fuzzy, c-format +#: modules/pam_timestamp/pam_timestamp.c:385 +#, c-format msgid "Access has been granted (last access was %ld seconds ago)." -msgstr "Bronnadh rochtain (bhà an rochtain is déanaà %ld soicind ó shin)." +msgstr "Tugadh rochtain (bhà an rochtain dheireanach %ld soicind ó shin)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 -#, fuzzy +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." -msgstr "" -"Chuaigh do chuntas as feidhm; déan téagmháil le do riarthóir córais, le do " -"thoil" +msgstr "Tá do chuntas imithe in éag; déan teagmháil le do riarthóir córais." -#: modules/pam_unix/pam_unix_acct.c:238 -#, fuzzy +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." -msgstr "Nà mór duit d'fhocal faire a athrú láithreach (forfheidhmÃtear fréamh)" +msgstr "" +"Iarrtar ort do phasfhocal a athrú láithreach (curtha i bhfeidhm ag an " +"riarthóir)." -#: modules/pam_unix/pam_unix_acct.c:244 -#, fuzzy +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -"Nà mór duit d'fhocal faire a athrú láithreach (chuaigh focal faire in aos)" +"Iarrtar ort do phasfhocal a athrú láithreach (an pasfhocal imithe in éag)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 -#, fuzzy, c-format +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 +#, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." -msgstr[0] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d lá" -msgstr[1] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d lá" -msgstr[2] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d lá" -msgstr[3] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d lá" -msgstr[4] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d lá" +msgstr[0] "Rabhadh: rachaidh do phasfhocal in éag i gceann %d lá." +msgstr[1] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d laethanta." +msgstr[2] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d laethanta." +msgstr[3] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d laethanta." +msgstr[4] "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d laethanta." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 -#, fuzzy, c-format +#: modules/pam_unix/pam_unix_acct.c:283 +#, c-format msgid "Warning: your password will expire in %d days." -msgstr "Rabhadh: rachaidh d'fhocal faire as feidhm i gceann %d lá" +msgstr "Rabhadh: rachaidh do phasfhocal in éag i gceann %d lá." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NÃorbh fhéidir focal faire NIS a athrú." -#: modules/pam_unix/pam_unix_passwd.c:554 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." -msgstr "NÃor soláthraÃodh aon fhocal faire" +msgstr "NÃor soláthraÃodh aon phasfhocal." -#: modules/pam_unix/pam_unix_passwd.c:555 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." -msgstr "NÃorbh fhéidir focal faire NIS a athrú." +msgstr "NÃor athraÃodh an pasfhocal." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Nà mór duit pasfhocal nÃos giorra a roghnú." -#: modules/pam_unix/pam_unix_passwd.c:576 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." -msgstr "Caithfidh tú focal faire nÃos faide a roghnú" +msgstr "Caithfidh tú pasfhocal nÃos faide a roghnú." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Focal faire %s á athrú." -#: modules/pam_unix/pam_unix_passwd.c:713 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." -msgstr "Caithfidh tú fanacht nÃos faide chun d'fhocal faire a athrú" +msgstr "Caithfidh tú fanacht nÃos faide chun do phasfhocal a athrú." #, fuzzy #~ msgid "You have no mail." diff --git a/po/gl.gmo b/po/gl.gmo Binary files differdeleted file mode 100644 index 64dad0ec..00000000 --- a/po/gl.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Galician (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Debes escoller un contrasinal máis curto." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Debes escoller un contrasinal máis curto." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Debes escoller un contrasinal máis curto." diff --git a/po/gu.gmo b/po/gu.gmo Binary files differdeleted file mode 100644 index 97a493f4..00000000 --- a/po/gu.gmo +++ /dev/null @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2013-04-14 08:16-0400\n" "Last-Translator: sweta <swkothar@redhat.com>\n" "Language-Team: Gujarati <trans-gu@lists.fedoraproject.org>\n" @@ -23,11 +23,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "પાસવરà«àª¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -38,6 +39,7 @@ msgstr "નવો %s પાસવરà«àª¡: " msgid "Current password: " msgstr "નવો પાસવરà«àª¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -47,6 +49,7 @@ msgstr "નવો %s પાસવરà«àª¡: " msgid "New password: " msgstr "નવો પાસવરà«àª¡: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -70,171 +73,177 @@ msgstr "%s ને પà«àª¨:ટાઇપ કરો" msgid "Password change has been aborted." msgstr "પાસવરà«àª¡ બદલાવનો અંત આવેલ છે." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "પà«àª°àªµà«‡àª¶:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "સફળતા" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "જટિલ àªà«‚લ - તà«àª°àª‚ત બંધ કરો" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "મોડà«àª¯à«àª² લાવવામાં નિષà«àª«àª³" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "સંજà«àªžàª¾ મળી નહિં" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "સેવા મોડà«àª¯à«àª²àª®àª¾àª‚ àªà«‚લ" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "સિસà«àªŸàª® àªà«‚લ" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "મેમરી બફર àªà«‚લ" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "પરવાનગી નામંજૂર" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ નિષà«àª«àª³àª¤àª¾" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ માહિતી વાપરવા માટે અપૂરતી પરવાનગીઓ" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ સેવા સતà«àª¤àª¾àª§àª¿àª•રણ જાણકારી મેળવી શકે નહિં" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ મોડà«àª¯à«àª²àª¥à«€ વપરાશકરà«àª¤àª¾ અજà«àªžàª¾àª¤ છે" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "સેવા માટે મહતà«àª¤àª® પà«àª°àª¯àª¾àª¸à«‹ કરà«àª¯àª¾" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ ટોકન લાંબા સમય સà«àª§à«€ માનà«àª¯ નથી; àªàª• નવà«àª‚ જરૂરી છે" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "વપરાશકરà«àª¤àª¾ ખાતà«àª‚ નિવૃતà«àª¤ થયà«àª‚" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "સà«àªªàª·à«àªŸ થયેલ સતà«àª° માટે પà«àª°àªµà«‡àª¶ બનાવી શકતા નથી/દૂર કરી શકતા નથી" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ સેવા વપરાશકરà«àª¤àª¾ પરવાનગીઓ પà«àª°àª¾àªªà«àª¤ કરી શકતી નથી" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "વપરાશકરà«àª¤àª¾ પરવાનગીઓ નિવૃતà«àª¤ થઈ" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "વપરાશકરà«àª¤àª¾ પરવાનગીઓ સà«àª¯à«‹àªœàª¿àª¤ કરવામાં નિષà«àª«àª³àª¤àª¾" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "કોઈ મોડà«àª¯à«àª² લગતી માહિતી હાજર નથી" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item() ને ખરાબ વસà«àª¤à« પસાર થઈ" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "વારà«àª¤àª¾àª²àª¾àªª àªà«‚લ" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ ટોકન મેનીપà«àª¯à«àª²à«‡àª¶àª¨ àªà«‚લ" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ જાણકારી પà«àª¨àªƒàªªà«àª°àª¾àªªà«àª¤ કરી શકાશે નહિં" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ ટોકન તાળà«àª‚ વà«àª¯àª¸à«àª¤" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ ટોકન વયમરà«àª¯àª¾àª¦àª¾ નિષà«àª•à«àª°àª¿àª¯ કરાયેલ" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "પાસવરà«àª¡ સેવા મારફતે પà«àª°àª¾àª¥àª®àª¿àª• ચકાસણી નિષà«àª«àª³" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "પાછી મળતી કિંમત PAM ડિસà«àªªà«‡àªš દà«àªµàª¾àª°àª¾ અવગણવામાં આવવી જોઈàª" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "મોડà«àª¯à«àª² અજà«àªžàª¾àª¤ છે" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "સતà«àª¤àª¾àª§àª¿àª•રણ ટોકન નિવૃતà«àª¤ થયà«àª‚" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "વારà«àª¤àª¾àª²àª¾àªª ઘટના માટે રાહ જોઈ રહà«àª¯à«‹ છે" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "કારà«àª¯àª•à«àª°àª®àª¨à«‡ libpam ફરીથી બોલાવવાની જરૂર છે" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "અજà«àªžàª¾àª¤ PAM àªà«‚લ" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...સમય ચાલà«àª¯à«‹ જઈ રહà«àª¯à«‹ છે...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...માફ કરજો, તમારો સમય સમાપà«àª¤ થયો!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "કà«àª·àª¤àª¿àª¯à«àª•à«àª¤ વારà«àª¤àª¾àª²àª¾àªª (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s નિષà«àª«àª³: બહાર નીકળà«àª¯àª¾àª¨à«‹ કોડ %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s નિષà«àª«àª³: મળેલ સંકેત %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s નિષà«àª«àª³: અજà«àªžàª¾àª¤ પરિસà«àª¥àª¿àª¤àª¿ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -242,18 +251,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "પà«àª°àªµà«‡àª¶ ઠતે માંથી તાજેતરની નિષà«àª«àª³àª¤àª¾àª¨à«‡ નિષà«àª«àª³ કરે છે\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "%u પà«àª°àªµà«‡àª¶à«‹ ને નિષà«àª«àª³ કરે છે તે દરમà«àª¯àª¾àª¨ ખાતાને તાળૠમારેલ છે" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -261,45 +270,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s તરફથી" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s પર" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "છેલà«àª²à«‹ પà«àª°àªµà«‡àª¶:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "તમારા નવા ખાતામાં તમારà«àª‚ સà«àªµàª¾àª—ત છે!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "છેલà«àª²à«‹ નિષà«àª«àª³ થયેલ પà«àª°àªµà«‡àª¶:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -308,153 +317,155 @@ msgstr[0] "છેલà«àª²à«‡ સફળ પà«àª°àªµà«‡àª¶ સà«àª§à«€ પà«àª msgstr[1] "છેલà«àª²à«‡ સફળ પà«àª°àªµà«‡àª¶ સà«àª§à«€ પà«àª°àªµà«‡àª¶àª¨à«‹ પà«àª°àª¯àª¤à«àª¨à«‹ કરવામાં %d નિષà«àª«àª³ થયેલ હતà«." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "છેલà«àª²à«‡ સફળ પà«àª°àªµà«‡àª¶ સà«àª§à«€ પà«àª°àªµà«‡àª¶àª¨àª¾àª‚ પà«àª°àª¯àª¤à«àª¨à«‹ કરવામાં %d નિષà«àª«àª³ થયેલ હતà«." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s' માટે ઘણા બધા પà«àª°àªµà«‡àª¶à«‹." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "તમારી પાસે નવો મેઈલ છે." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "તમારી પાસે નવો મેઈલ છે." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "તમારી પાસે જૂનો મેઈલ છે." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "તમારી પાસે મેઈલ છે." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "તમારી પાસે ફોલà«àª¡àª° %s માં કોઈ મેઈલ નથી." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "તમારી પાસે ફોલà«àª¡àª° %s માં નવો મેઈલ છે." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "તમારી પાસે ફોલà«àª¡àª° %s માં જૂનો મેઈલ છે." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "તમારી પાસે ફોલà«àª¡àª° %s માં મેઈલ છે." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "ડિરેકà«àªŸàª°à«€ '%s' બનાવી રહà«àª¯àª¾ છીàª." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ડિરેકà«àªŸàª°à«€ '%s' ને શરૂ કરવામાં અને બનાવવામાં અસમરà«àª¥." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "પાસવરà«àª¡ પહેલાથી જ વપરાઈ ગયેલ છે. બીજો પસંદ કરો." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "પાસવરà«àª¡àª¨à«‡ વાપરી દેવામાં આવà«àª¯à«‹ છે." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "મૂળàªà«‚ત સà«àª°àª•à«àª·àª¾ સંદરà«àª %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "શà«àª‚ તમે અલગ àªà«‚મિકા કે સà«àª¤àª° દાખલ કરવા ઈચà«àª›à«‹ છો?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "àªà«‚મિકા:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "àªà«‚મિકા %s માટે કોઈ મૂળàªà«‚ત પà«àª°àª•ાર નથી\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "સà«àª¤àª°:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "માનà«àª¯ સà«àª°àª•à«àª·àª¾ સંદરà«àª નથી" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "સà«àª°àª•à«àª·àª¾ સંદરà«àª %s સોંપાયેલ" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "કી બનાવટ સંદરà«àª %s સોંપાયેલ" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM નો આરંઠકરવામાં નિષà«àª«àª³\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() કરવામાં નિષà«àª«àª³\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "પà«àª°àªµà«‡àª¶: ફોરà«àª•માં નિષà«àª«àª³: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "પà«àª°àªµà«‡àª¶àª¨à«€ મંજૂરી આપેલ છે (છેલà«àª²à«‹ પà«àª°àªµà«‡àª¶ ઠ%ld સેકંડો પહેલા હતો)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "તમારà«àª‚ ખાતà«àª‚ નિવૃતà«àª¤ થઈ ગયà«àª‚ છે; મહેરબાની કરીને તમારા સિસà«àªŸàª® સંચાલકનો સંપરà«àª• કરો" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "તમારે તમારો પાસવરà«àª¡ તà«àª°àª‚ત જ બદલવાની જરૂર છે (root દબાણ કરેલ)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "તમારે તમારો પાસવરà«àª¡ તà«àª°àª‚ત જ બદલવાની જરૂર છે (પાસવરà«àª¡ વયમરà«àª¯àª¾àª¦àª¿àª¤ કરાયેલ)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -462,40 +473,40 @@ msgstr[0] "ચેતવણી: તમારો પાસવરà«àª¡ %d દિઠmsgstr[1] "ચેતવણી: તમારો પાસવરà«àª¡ %d દિવસોમાં નિવૃતà«àª¤ થઈ જશે" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "ચેતવણી: તમારો પાસવરà«àª¡ %d દિવસોમાં નિવૃતà«àª¤ થઈ જશે" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS પાસવરà«àª¡ બદલી શકà«àª¯àª¾ નહિં." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "કોઈ પાસવરà«àª¡ પૂરો પડાયેલ નથી" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS પાસવરà«àª¡ બદલી શકà«àª¯àª¾ નહિં." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "તમારે ટૂંકા પાસવરà«àª¡àª¨à«‡ પસંદ કરવો આવશà«àª¯àª• છે." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "તમારે લાંબો પાસવરà«àª¡ જ પસંદ કરવો જોઈàª" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s માટે પાસવરà«àª¡ બદલવાનà«àª‚." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "તમારો પાસવરà«àª¡ બદલવા માટે તમારે લાંબો સમય રાહ જોવી જ પડશે" diff --git a/po/he.gmo b/po/he.gmo Binary files differdeleted file mode 100644 index a2c76f7d..00000000 --- a/po/he.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2023-02-17 14:20+0000\n" "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" "Language-Team: Hebrew <https://translate.fedoraproject.org/projects/linux-" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 4.15.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "ססמה: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "ססמת %s × ×•×›×—×™×ª: " msgid "Current password: " msgstr "ססמה × ×•×›×—×™×ª: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "ססמת %s חדשה: " msgid "New password: " msgstr "ססמה חדשה: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -67,171 +70,177 @@ msgstr "להקליד ×ת %s מחדש" msgid "Password change has been aborted." msgstr "×©×™× ×•×™ ססמה בוטל." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "×›× ×™×¡×”:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "הצליח" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "שגי××” קריטית - ביטול מידי" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "×˜×¢×™× ×ª המודול × ×›×©×œ×”" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "הסמל ×œ× × ×ž×¦×" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "שגי××” במודול השירות" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "שגי×ת מערכת" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "שגי×ת ×ž×›×œ× ×–×™×›×¨×•×Ÿ" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "ההרש××” × ×“×—×ª×”" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "כשל ב×ימות" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "×ין מספיק הרש×ות כדי לגשת ×œ× ×ª×•× ×™ ×”×ימות" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "שירות ×”×ימות ×œ× ×™×›×•×œ לקבל ×ת פרטי ×”×ימות" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "המשתמש ×œ× ×ž×•×›×¨ למודול ×”×ימות התומך" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "מספר ×”× ×™×¡×™×•× ×•×ª מחדש המרבי × ×•×¦×œ במלו×ו עבור השירות" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "×סימון ×”×ימות ××™× ×• תקף עוד, × ×“×¨×© ×חד חדש" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "חשבון משתמש פג" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "×œ× × ×™×ª×Ÿ ליצור/להסיר רשומה להפעלה ×©×¦×•×™× ×”" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "שירות ×”×ימות ×œ× ×™×›×•×œ לקבל פרטי גישה של משתמשי×" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "תוקף פרטי הגישה של המשתמש פג" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "הגדרת פרטי הגישה של המשתמש × ×›×©×œ×”" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "×œ× ×§×™×™×ž×™× × ×ª×•× ×™× ×ž×¡×•×™×ž×™× ×œ×ž×•×“×•×œ" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "פריט פסול הועבר ×ל to pam_*_item()‎" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "שגי×ת דיון" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "שגי×ת טיפול ב×סימון ×ימות" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "×œ× × ×™×ª×Ÿ לשחזר ×ת פרטי ×”×ימות" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "× ×¢×™×œ×ª ×סימון ×”×ימות עסוקה" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "×”×ª×™×™×©× ×•×ª ×סימון ×ימות מושבתת" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "בדיקת ×”×§×“× × ×›×©×œ×” על ידי שירות הססמ×ות" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "הערך החוזר ×מור לזכות מהתעלמות על ידי שילוח ×”Ö¾PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "המודול ×œ× ×™×“×•×¢" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "תוקף ×סימון ×”×ימות פג" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "הדיון ממתין ל×ירוע" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "×”×™×™×©×•× ×¦×¨×™×š ×œ×§×¨×•× ×œÖ¾libpam שוב" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "שגי×ת PAM ×œ× ×ž×•×›×¨×ª" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...הזמן עומד להיגמר...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...סליחה, ×–×ž× ×š עבר!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "דיון שגוי (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s × ×›×©×œ: קוד היצי××” %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s × ×›×©×œ: × ×ª×¤×¡ ×”×ות %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s × ×›×©×œ: מצב ×œ× ×™×“×•×¢ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -240,18 +249,18 @@ msgstr "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "×›× ×™×¡×” ×›×©×œ×™× ×›×©×œ ×חרון מ×ת\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "החשבון × × ×¢×œ בעקבות %u × ×™×¡×™×•× ×•×ª התחברות ×©× ×›×©×œ×•." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -259,45 +268,45 @@ msgstr[0] "(× ×•×ª×¨×” דקה לשחרור)" msgstr[1] "(× ×•×ª×¨×• %d דקות לשחרור)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(× ×•×ª×¨×• %d דקות לשחרור)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " מהמ×רח %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " על גבי %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "×›× ×™×¡×” ××—×¨×•× ×”:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "ברוך בו×ך ×œ×—×©×‘×•× ×š החדש!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "×›× ×™×¡×” כושלת ××—×¨×•× ×”:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -306,148 +315,150 @@ msgstr[0] "×”×™×” × ×™×¡×™×•×Ÿ התחברות %d ×©× ×›×©×œ מ××– ×”×”×ª×—×‘×¨× msgstr[1] "היו %d × ×™×¡×™×•× ×•×ª התחברות ×©× ×›×©×œ×• מ××– ההתחברות ×”××—×¨×•× ×” שהצליחה." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "היו %d × ×™×¡×™×•× ×•×ª התחברות ×©× ×›×©×œ×• מ××– ההתחברות ×”××—×¨×•× ×” שהצליחה." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "יותר מדי פעילויות ×›× ×™×¡×” עבור ‚%s’." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "×ין לך דו×ר." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "יש לך דו×ר חדש." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "יש לך דו×ר ישן." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "יש לך דו×ר." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "×ין לך דו×״ל בתיקייה %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "יש לך דו×״ל חדש בתיקייה %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "יש לך דו×״ל ישן בתיקייה %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "יש לך דו×״ל בתיקייה %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "התיקייה ‚%s’ × ×•×¦×¨×ª." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "×œ× × ×™×ª×Ÿ ליצור ול×תחל ×ת התיקייה ‚%s’." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "כבר × ×¢×©×” שימוש בססמה. × × ×œ×‘×—×•×¨ ב×חרת." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "כבר × ×¢×©×” שימוש בססמה ×”×–×ת." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "הקשר ×”×בטחה כבררת מחדל ×”×•× %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "×ž×¢× ×™×™×Ÿ ×ותך ×œ×ž×œ× ×ª×¤×§×™×“ ×ו רמה ×©×•× ×™×?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "תפקיד:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "×ין סוג בררת מחדל לתפקיד %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "רמה:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "×–×” ×œ× ×”×§×©×¨ ×בטחה ×ª×§× ×™." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "×œ× × ×™×ª×Ÿ לקבל הקשר ×ª×§× ×™ עבור %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "הקשר ×”×בטחה %s הוקצה." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "הקשר יצירת המפתח %s הוקצה." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "×”×תחול של PAM × ×›×©×œ\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item()‎ × ×›×©×œ\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "×›× ×™×¡×”: פיצול × ×›×©×œ: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "×”×•×¢× ×§×” גישה (×”×›× ×™×¡×” ×”××—×¨×•× ×” הייתה ×œ×¤× ×™ %ld ×©× ×™×•×ª)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "תוקף ×—×©×‘×•× ×š פג, × × ×œ×™×¦×•×¨ קשר ×¢× ×”× ×”×œ×ª המערכת שלך." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "עליך ×œ×©× ×•×ª ×ת ססמתך מיידית (דרישת ×”× ×”×œ×ª המערכת)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "עליך ×œ×©× ×•×ª ×ת ססמתך מיידית (תוקף הססמה פג)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -455,37 +466,37 @@ msgstr[0] "×זהרה: הססמה שלך תפוג מחר." msgstr[1] "×זהרה: הססמה שלך תפוג תוך %d ימי×." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "×זהרה: הססמה שלך תפוג תוך %d ימי×." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "×œ× ×”×™×” × ×™×ª×Ÿ ×œ×©× ×•×ª ססמת NIS." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "×œ× ×¡×•×¤×§×” ססמה." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "הססמה ×œ× ×”×•×—×œ×¤×”." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "עליך לבחור סיסמה קצרה יותר." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "עליך לבחור ססמה ×רוכה יותר." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "הססמה עבור %s מוחלפת." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "עליך להמתין זמן רב יותר כדי להחליף ×ת ססמתך." diff --git a/po/hi.gmo b/po/hi.gmo Binary files differdeleted file mode 100644 index e6cd05db..00000000 --- a/po/hi.gmo +++ /dev/null @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-03-06 23:59+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Hindi <https://translate.fedoraproject.org/projects/linux-pam/" @@ -24,11 +24,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 3.11.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "शबà¥à¤¦à¤•ूट: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -39,6 +40,7 @@ msgstr "नया %s password: " msgid "Current password: " msgstr "नया password: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -48,6 +50,7 @@ msgstr "नया %s password: " msgid "New password: " msgstr "नया password: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,171 +74,177 @@ msgstr "फिर टाइप करें %s" msgid "Password change has been aborted." msgstr "कूटशबà¥à¤¦ परिवरà¥à¤¤à¤¨ छोड़ा गया." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "लॉगिन:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "सफल" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "गंà¤à¥€à¤° तà¥à¤°à¥à¤Ÿà¤¿ - ततà¥à¤•ाल छोड़ें" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "मॉडà¥à¤¯à¥‚ल लोड करने में विफल" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "संकेत नहीं मिला" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "सेवा मॉडà¥à¤¯à¥‚ल में तà¥à¤°à¥à¤Ÿà¤¿" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "सिसà¥à¤Ÿà¤® तà¥à¤°à¥à¤Ÿà¤¿" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "सà¥à¤®à¥ƒà¤¤à¤¿ बफर तà¥à¤°à¥à¤Ÿà¤¿" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "अनà¥à¤®à¤¤à¤¿ मनाही" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ विफलता" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ आंकड़ा की पहà¥à¤à¤š में अपरà¥à¤¯à¤¾à¤ªà¥à¤¤ शà¥à¤°à¥‡à¤¯" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ सेवा सतà¥à¤¯à¤¾à¤ªà¤¨ सूचना नहीं हासिल कर सकता है" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "उपयोकà¥à¤¤à¤¾ अंतरà¥à¤¨à¤¿à¤¹à¤¿à¤¤ सतà¥à¤¯à¤¾à¤ªà¤¨ मॉडà¥à¤¯à¥‚ल से परिचित नहीं हैं" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "सेवा के लिठअधिकतम संखà¥à¤¯à¤¾ में फिर कोशिश करना समापà¥à¤¤ कर चà¥à¤•ा है" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ टोकन अब वैध नहीं है; नया जरूरी है" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "उपयोकà¥à¤¤à¤¾ खाता की अवधि समापà¥à¤¤ हो चà¥à¤•ी है" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "विशेष सतà¥à¤° के लिठà¤à¤• पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ नहीं बना/हटा सकता है" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ सेवा उपयोकà¥à¤¤à¤¾ शà¥à¤°à¥‡à¤¯ फिर हासिल नहीं कर सकता है" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "उपयोकà¥à¤¤à¤¾ शà¥à¤°à¥‡à¤¯ समापà¥à¤¤" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "विफल जमावट उपयोकà¥à¤¤à¤¾ शà¥à¤°à¥‡à¤¯" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "कोई मॉडà¥à¤¯à¥‚ल विशेष आंकड़ा मौजूद है" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "खराब मद pam_*_item() में à¤à¥‡à¤œà¤¾ गया" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "रूपांतरक तà¥à¤°à¥à¤Ÿà¤¿" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ टोकन मैनिपà¥à¤²à¥‡à¤¶à¤¨ तà¥à¤°à¥à¤Ÿà¤¿" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ सूचना फिर हासिल नहीं किया जा सकता है" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ टोकन लॉक वà¥à¤¯à¤¸à¥à¤¤" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ टोकन à¤à¤œà¤¿à¤‚ग निषà¥à¤•à¥à¤°à¤¿à¤¯" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "शबà¥à¤¦à¤•ूट सेवा के दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤• जांच पूरी" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "लौटाठमान को PAM डिसà¥à¤ªà¥ˆà¤š के दà¥à¤µà¤¾à¤°à¤¾ अनदेखा किया जाना चाहिà¤" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "मॉडà¥à¤¯à¥‚ल अनजान है" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "सतà¥à¤¯à¤¾à¤ªà¤¨ टोकन समापà¥à¤¤" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "रूपांतरण घटना के पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾à¤°à¤¤" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— के libpam फिर आहà¥à¤µà¤¾à¤¨ जरूरी" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "अनजान PAM तà¥à¤°à¥à¤Ÿà¤¿" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...समय समापà¥à¤¤ हो रहा है...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...कà¥à¤·à¤®à¤¾ करें, आपका समय समापà¥à¤¤ हो गया!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "अनियमित बातचीत (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s विफल: निकास कोड %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s विफल: संकेत घेरा %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s विफल: अनजान सà¥à¤¥à¤¿à¤¤à¤¿ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -243,18 +252,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Login Failures Latest failure From\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "खाता %u विफल लॉगिन के कारण लॉक" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -262,45 +271,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s से" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s पर" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "अंतिम लॉगिन:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "नठखाता में आपका सà¥à¤µà¤¾à¤—त है!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "अंतिम लॉगिन विफल:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -309,153 +318,155 @@ msgstr[0] "%d विफल लॉगिन पà¥à¤°à¤¯à¤¾à¤¸ था अंतठmsgstr[1] "%d विफल लॉगिन पà¥à¤°à¤¯à¤¾à¤¸ थे अंतिम सफल लॉगिन के बाद." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "%d विफल लॉगिन पà¥à¤°à¤¯à¤¾à¤¸ थे अंतिम सफल लॉगिन के बाद." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s' के लिठबहà¥à¤¤ लॉगिन." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "आपके लिठनया मेल है." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "आपके लिठनया मेल है." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "आपके पास पà¥à¤°à¤¾à¤¨à¤¾ मेल है." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "आपके पास मेल है." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "आपके पास %s फोलà¥à¤¡à¤° में कोई मेल नहीं है." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "आपके लिठ%s फोलà¥à¤¡à¤° में नया मेल है." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "आपके लिठ%s फोलà¥à¤¡à¤° में पà¥à¤°à¤¾à¤¨à¤¾ मेल है." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "आपके लिठ%s फोलà¥à¤¡à¤° में मेल है." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•ा '%s' बना रहा है." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•ा '%s' बनाने और आरंठकरने में असमरà¥à¤¥." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "शबà¥à¤¦à¤•ूट को पहले ही बदला जा चà¥à¤•ा है. दूसरा चà¥à¤¨à¥‡à¤‚." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "शबà¥à¤¦à¤•ूट पà¥à¤°à¤¯à¥‹à¤— हो चूका है. दूसरा चà¥à¤¨à¥‡à¤‚ " -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "तयशà¥à¤¦à¤¾ सà¥à¤°à¤•à¥à¤·à¤¾ संदरà¥à¤ %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "कà¥à¤¯à¤¾ आप à¤à¤¿à¤¨à¥à¤¨ à¤à¥‚मिका या सà¥à¤¤à¤° दाखिल करना चाहेंगे?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "à¤à¥‚मिका: " -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "à¤à¥‚मिका %s के लिठकोई तयशà¥à¤¦à¤¾ पà¥à¤°à¤•ार नहीं\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "सà¥à¤¤à¤°: " -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "à¤à¤• वैध सà¥à¤°à¤•à¥à¤·à¤¾ संदरà¥à¤ नहीं" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "सà¥à¤°à¤•à¥à¤·à¤¾ संदरà¥à¤ %s नियत" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "कà¥à¤‚जी निरà¥à¤®à¤¾à¤£ संदरà¥à¤ %s नियत" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM को आरंठकरने में विफल\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() में विफल\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "लॉगिन: विफल फोरà¥à¤•िंग: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "पहà¥à¤à¤š दिया गया (last access was %ld seconds ago)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "आपका खाता समापà¥à¤¤ हो चà¥à¤•ा है; कृपया अपने सिसà¥à¤Ÿà¤® पà¥à¤°à¤¶à¤¾à¤¸à¤• को संपरà¥à¤• करें" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "आपके लिठअपना शबà¥à¤¦à¤•ूट ततà¥à¤•ाल बदलना जरूरी है (रूट पà¥à¤¨à¤°à¥à¤¬à¤²à¤¿à¤¤)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "आपके लिठअपना शबà¥à¤¦à¤•ूट ततà¥à¤•ाल बदलना जरूरी है (शबà¥à¤¦à¤•ूट à¤à¤œà¥à¤¡)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -463,40 +474,40 @@ msgstr[0] "चेतावनी: आपका शबà¥à¤¦à¤•ूट %d दिठmsgstr[1] "चेतावनी: आपका शबà¥à¤¦à¤•ूट %d दिन में समापà¥à¤¤ हो जायेगा" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "चेतावनी: आपका शबà¥à¤¦à¤•ूट %d दिनों में समापà¥à¤¤ हो जायेगा" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS शबà¥à¤¦à¤•ूट बदला नहीं जा सका." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "कोई कूटशबà¥à¤¦ नहीं दिया गया है" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS शबà¥à¤¦à¤•ूट बदला नहीं जा सका." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "आपको à¤à¤• छोटा पासवरà¥à¤¡ चà¥à¤¨à¤¨à¤¾ होगा।" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "आपको जरूर à¤à¤• लंबा शबà¥à¤¦à¤•ूट चà¥à¤¨à¤¨à¤¾ चाहिà¤" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s के लिठकूटशबà¥à¤¦ बदल रहा है" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "आपको अपना शबà¥à¤¦à¤•ूट बदलने के लिठलंबी पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾ करनी होगी" diff --git a/po/hr.gmo b/po/hr.gmo Binary files differdeleted file mode 100644 index 8f153ef3..00000000 --- a/po/hr.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-12-25 09:20+0000\n" "Last-Translator: Gogo Gogsi <linux.hr@protonmail.com>\n" "Language-Team: Croatian <https://translate.fedoraproject.org/projects/linux-" @@ -22,11 +22,12 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.15\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Lozinka: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "Trenutna %s lozinka: " msgid "Current password: " msgstr "Trenutna lozinka: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "Nova %s lozinka: " msgid "New password: " msgstr "Nova lozinka: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -67,171 +70,177 @@ msgstr "Ponovno upiÅ¡ite %s" msgid "Password change has been aborted." msgstr "Promjena lozinke je prekinuta." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "prijava:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "UspjeÅ¡no" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "KritiÄna greÅ¡ka - trenutan prekid" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "GreÅ¡ka pri uÄitavanju modula" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Simbol nije pronaÄ‘en" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "GreÅ¡ka u modulu usluge" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "GreÅ¡ka sustava" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "GreÅ¡ka meÄ‘uspremnika memorije" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Pristup odbijen" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "GreÅ¡ka ovjere" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Nedovoljne ovlasti za pristup podacima ovjere" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Usluga ovjere ne može dohvatiti informacije ovjere" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Korisnik nije poznat temeljnom modulu ovjere" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "IskoriÅ¡ten najveći dopuÅ¡teni broj pokuÅ¡aja za uslugu" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Token ovjere viÅ¡e nije valjan, potreban je novi" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "KorisniÄki raÄun je istekao" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Nemoguće stvoriti/ukloniti stavku za odabranu sesiju" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Usluga ovjere ne može dohvatiti korisniÄke podatke" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "KorisniÄki podaci su istekli" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "GreÅ¡ka pri postavljanju korisniÄkih podataka" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Podaci odreÄ‘eni za module nisu prisutni" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "LoÅ¡a stavka je proslijeÄ‘ena prema pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "GreÅ¡ka razgovora" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Manipulacijska greÅ¡ka tokena ovjere" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Nemoguće je vratiti informacije ovjere" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Zauzeto zakljuÄavanje tokena ovjere" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Zastarijevanje tokena ovjere onemogućeno" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Preliminarna provjera od strane usluge lozinke nije uspjela" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Povratnu vrijednost bi PAM dispaÄer trebao zanemariti" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modul nije poznat" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Modul ovjere je istekao" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Razgovor Äeka za dogaÄ‘aj" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Aplikacija treba ponovno pozvati libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Nepoznata PAM greÅ¡ka" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Vrijeme istjeÄe...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Nažalost, vaÅ¡e je vrijeme isteklo!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "pogreÅ¡an razgovor (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s neuspjelo: izlazni kôd %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s neuspjelo: uhvaćen signal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s neuspjelo: nepoznati status 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -240,18 +249,18 @@ msgstr "" "Upotreba: %s [--dir /putanja/do/tally-direktorija] [--user korisniÄko ime] " "[--reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "Prijava Neuspjesi Posljedni neuspjeh Od\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "RaÄun je zakljuÄan zbog %u neuspjelih prijava." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -260,45 +269,45 @@ msgstr[1] "(%d minute preostale za prijavu)" msgstr[2] "(%d minuta preostale za prijavu)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minuta preostalo za otkljuÄavanje)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " od %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " na %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Posljednja prijava:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "DobrodoÅ¡li u vaÅ¡ novi raÄun!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Posljednja neuspjela prijava:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -311,138 +320,140 @@ msgstr[2] "" "Nakon posljednje uspjeÅ¡ne prijave bilo je %d neuspjelih pokuÅ¡aja prijave." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Nakon posljednje uspjeÅ¡ne prijave, bilo je %d neuspjelih pokuÅ¡aja prijave." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "PreviÅ¡e prijava za '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Nemate novu e-poÅ¡tu." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Imate novu e-poÅ¡tu." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Imate staru e-poÅ¡tu." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Imate e-poÅ¡tu." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Nemate e-poÅ¡tu u mapi %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Imate novu e-poÅ¡tu u mapi %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Imate staru e-poÅ¡tu u mapi %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Imate e-poÅ¡tu u mapi %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Stvaranje direktorija '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Stvaranje i pokretanje direktorija '%s' nije uspjelo." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Lozinka je već koriÅ¡tena. Odaberite neku drugu." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Lozinka se već korsiti." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Zadani sigurnosni sadržaj je %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Želite li unijeti drugu namjenu ili razinu?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "namjena:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Nema zadane vrste za namjenu %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "razina:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Ovo nije zadani sigurnosni sadržaj." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Valjani sadržaj za %s ne može se dobiti." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Sigurnosni sadržaj za %s nije dodijeljen." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Sadržaj stvaranja kljuÄa %s je dodijeljen." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "neuspjelo pokretanje PAM-a\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "neuspjelo pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "prijava: greÅ¡ka pri raÄvanju: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Pristup je dopuÅ¡ten (Posljednja prijava je bila prije %ld sekunde)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "VaÅ¡ raÄun je istekao; kontaktirajte svojeg administratora sustava." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." @@ -450,13 +461,13 @@ msgstr "" "Od vas je zatraženo da odmah promijenite svoju lozinku (zahtjev od strane " "administratora)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" "Od vas je zatraženo da odmah promijenite svoju lozinku (lozinka je istekla)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -465,37 +476,37 @@ msgstr[1] "Upozorenje: vaÅ¡a lozinka će isteći za %d dana." msgstr[2] "Upozorenje: vaÅ¡a lozinka će isteći za %d dana." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Upozorenje: vaÅ¡a lozinka će isteći za %d dana." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS lozinku nije moguće promijeniti." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Lozinka nije navedena." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Lozinka nije promijenjena." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Morate odabrati kraću lozinku." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Morate odabrati dužu lozinku." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Promjena lozinke za %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Morate priÄekati duže za promjenu lozinke." diff --git a/po/hu.gmo b/po/hu.gmo Binary files differdeleted file mode 100644 index 16ea34cb..00000000 --- a/po/hu.gmo +++ /dev/null @@ -10,13 +10,14 @@ # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata # Dmitry V. Levin <ldv@altlinux.org>, 2020. # Balázs Meskó <meskobalazs@mailbox.org>, 2021. +# Balázs Úr <balazs@urbalazs.hu>, 2023. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2021-02-10 19:40+0000\n" -"Last-Translator: Balázs Meskó <meskobalazs@mailbox.org>\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2023-09-27 20:35+0000\n" +"Last-Translator: Balázs Úr <balazs@urbalazs.hu>\n" "Language-Team: Hungarian <https://translate.fedoraproject.org/projects/linux-" "pam/master/hu/>\n" "Language: hu\n" @@ -24,13 +25,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.2\n" +"X-Generator: Weblate 5.0.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Jelszó: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -40,6 +42,7 @@ msgstr "Jelenlegi %s jelszó: " msgid "Current password: " msgstr "Jelenlegi jelszó: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,463 +52,469 @@ msgstr "Új %s jelszó: " msgid "New password: " msgstr "Új jelszó: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " -msgstr "Ismét az új %s jelszó: " +msgstr "Új %s jelszó újra megadása: " #: libpam/pam_get_authtok.c:49 msgid "Retype new password: " -msgstr "Ismét az új jelszó: " +msgstr "Új jelszó újra megadása: " #: libpam/pam_get_authtok.c:50 msgid "Sorry, passwords do not match." -msgstr "Sajnálom, de a jelszavak nem egyeznek." +msgstr "Elnézést, a jelszavak nem egyeznek." #: libpam/pam_get_authtok.c:143 libpam/pam_get_authtok.c:245 #, c-format msgid "Retype %s" -msgstr "Ismét %s" +msgstr "%s újra megadása" #: libpam/pam_get_authtok.c:183 libpam/pam_get_authtok.c:263 -#, fuzzy msgid "Password change has been aborted." -msgstr "Jelszó változtatás elvetve." +msgstr "A jelszó megváltoztatása meg lett szakÃtva." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" -msgstr "belépÅ‘:" +msgstr "bejelentkezés:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" -msgstr "Sikerült" +msgstr "Sikeres" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" -msgstr "Kritikus hiba - azonnali leállás" +msgstr "Kritikus hiba – azonnali megszakÃtás" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" -msgstr "A modul betöltése sikertelen" +msgstr "Nem sikerült betölteni a modult" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "A szimbólum nem található" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" -msgstr "Hiba a szervizmodulban" +msgstr "Hiba a szolgáltatásmodulban" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Rendszerhiba" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Memóriapuffer-hiba" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Engedély megtagadva" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "HitelesÃtési hiba" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" -msgstr "Elégtelen azonosÃtó adat a hitelesÃtési adatok eléréséhez" +msgstr "Elégtelen hitelesÃtési adatok a hitelesÃtési adatok eléréséhez" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" -msgstr "A hitelesÃtési szolgáltatás nem tudja lekérni a hitelesÃtési adatokat" +msgstr "" +"A hitelesÃtési szolgáltatás nem tudja lekérni a hitelesÃtési információkat" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" -msgstr "Az alsóbb szintű hitelesÃtési modul nem ismeri a felhasználót" +msgstr "A felhasználó nem ismert az alapjául szolgáló hitelesÃtési modulhoz" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" -msgstr "" -"Elérte a szolgáltatás által engedélyezett újrapróbálkozások maximális számát" +msgstr "KimerÃtette a szolgáltatás újrapróbálkozásainak legnagyobb számát" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" -msgstr "A hitelesÃtési token már nem érvényes; újra van szükség" +msgstr "A hitelesÃtési token már nem érvényes, újra van szükség" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" -msgstr "Felhasználói azonosÃtó lejárt" +msgstr "A felhasználói fiók lejárt" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" -msgstr "Nem készÃthetÅ‘/törölhetÅ‘ bejegyzés az adott munkamenethez" +msgstr "Nem készÃthetÅ‘ vagy törölhetÅ‘ bejegyzés az adott munkamenethez" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -"A hitelesÃtÅ‘ szolgáltatás nem tudja lekérni a felhasználó hitelesÃtÅ‘ adatait" +"A hitelesÃtési szolgáltatás nem tudja lekérni a felhasználó hitelesÃtési " +"adatait" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" -msgstr "A felhasználó hitelesÃtÅ‘ adatai lejártak" +msgstr "A felhasználó hitelesÃtési adatai lejártak" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" -msgstr "Hiba a felhasználó hitelesÃtÅ‘ adatainak beállÃtása közben" +msgstr "Hiba a felhasználó hitelesÃtési adatainak beállÃtásakor" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Nem található modulspecifikus adat" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" -msgstr "Rossz elem lett átadva a pam_*_item() számára" +msgstr "Hibás elem lett átadva a pam_*_item() számára" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" -msgstr "Kommunikációs hiba" +msgstr "Beszélgetési hiba" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" -msgstr "HitelesÃtÅ‘ tokenkezelés hiba" +msgstr "HitelesÃtési token módosÃtási hiba" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" -msgstr "A hitelesÃtÅ‘ adatok nem állÃthatók helyre" +msgstr "A hitelesÃtési információk nem állÃthatók helyre" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" -msgstr "HitelesÃtÅ‘ token zár foglalt" +msgstr "A hitelesÃtési token zárolása foglalt" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" -msgstr "HitelesÃtÅ‘ token lejárat kikapcsolva" +msgstr "A hitelesÃtési token öregÃtése letiltva" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" -msgstr "A jelszószolgáltatás elÅ‘zetes ellenÅ‘rzésén megbukott" +msgstr "Nem sikerült a jelszószolgáltatás elÅ‘zetes ellenÅ‘rzése" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" -msgstr "A PAM elosztónak a visszatérési értéket figyelmen kÃvül kell hagynia" +msgstr "" +"A PAM-kézbesÃtésnek figyelmen kÃvül kell hagynia a visszatérési értéket" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "A modul ismeretlen" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" -msgstr "A hitelesÃtÅ‘ token lejárt" +msgstr "A hitelesÃtési token lejárt" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" -msgstr "A kommunikáció egy eseményre várakozik" +msgstr "A beszélgetés egy eseményre várakozik" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Az alkalmazásnak újra meg kell hÃvnia a libpam modult" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Ismeretlen PAM hiba" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" -msgstr "...Fogy az idÅ‘...\n" +msgstr "…Fogy az idő…\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" -msgstr "...Sajnos lejárt az idÅ‘!\n" +msgstr "…Elnézést, az idÅ‘ lejárt!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "hibás beszélgetés (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" -msgstr "%s hiba: kilépÅ‘ kód %d" +msgstr "a(z) %s sikertelen: kilépési kód: %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" -msgstr "%s hiba: %d%s jelzés érzékelve" +msgstr "a(z) %s sikertelen: %d%s szignál fogadva" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" -msgstr "%s hiba: 0x%x ismeretlen állapot" +msgstr "a(z) %s sikertelen: ismeretlen állapot: 0x%x" -#: modules/pam_faillock/main.c:130 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:131 +#, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -"%s: [--file rooted-fájlnév] [--user használó] [--reset[=n]] [--quiet]\n" +"Használat: %s [--dir /útvonal/az/összesÃtÅ‘-könyvtárhoz] [--user " +"felhasználónév] [--reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:182 +#, c-format msgid "Login Failures Latest failure From\n" -msgstr "Belépés Hibák Utolsó hibák Innen\n" +msgstr "Bejelentkezés Hibák Utolsó hiba Honnan\n" -#: modules/pam_faillock/pam_faillock.c:404 -#, fuzzy, c-format +#: modules/pam_faillock/pam_faillock.c:416 +#, c-format msgid "The account is locked due to %u failed logins." -msgstr "Felhasználói azonosÃtó zárolva, többszöri, %u sikertelen belépés miatt" +msgstr "A fiók zárolva van %u sikertelen bejelentkezés miatt." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "(%d perc van hátra a feloldáshoz)" +msgstr[1] "(%d perc van hátra a feloldáshoz)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" -msgstr "" +msgstr "(%d perc van hátra a feloldáshoz)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" -msgstr " %Y. %b %e, %a %H:%M:%S %Z" +msgstr " %Y. %b. %-e., %a. %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " innen: %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" -msgstr ", %.*s" +msgstr " ekkor: %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" -msgstr "Utolsó belépés:%s%s%s" +msgstr "Utolsó bejelentkezés:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" -msgstr "Üdvözöljük az új felhasználói azonosÃtójával!" +msgstr "Üdvözöljük az új fiókjában!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" -msgstr "Utolsó sikertelen belépés:%s %s %s" +msgstr "Utolsó sikertelen bejelentkezés:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" "There were %d failed login attempts since the last successful login." -msgstr[0] "%d sikertelen belépés kÃsérlet volt az utolsó sikeres belépés óta." -msgstr[1] "%d sikertelen belépés kÃsérlet volt az utolsó sikeres belépés óta." +msgstr[0] "" +"%d sikertelen bejelentkezési kÃsérlet volt az utolsó sikeres bejelentkezés " +"óta." +msgstr[1] "" +"%d sikertelen bejelentkezési kÃsérlet volt az utolsó sikeres bejelentkezés " +"óta." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." -msgstr "%d sikertelen belépés kÃsérlet volt az utolsó sikeres belépés óta." +msgstr "" +"%d sikertelen bejelentkezési kÃsérlet volt az utolsó sikeres bejelentkezés " +"óta." -#: modules/pam_limits/pam_limits.c:1269 -#, fuzzy, c-format +#: modules/pam_limits/pam_limits.c:1424 +#, c-format msgid "There were too many logins for '%s'." -msgstr "Túl sok bejelentkezés \"%s\" részérÅ‘l." +msgstr "Túl sok bejelentkezés történt „%s†részérÅ‘l." -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "Új levele érkezett." +msgstr "Nincs új levele." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Új levele érkezett." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Régebbi levelei vannak." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." -msgstr "Önnek levele van." +msgstr "Levele van." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." -msgstr "%s mappában nincs levél." +msgstr "Nincs levele a(z) %s mappában." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." -msgstr "%s mappában új levél van." +msgstr "Új levele van a(z) %s mappában." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." -msgstr "%s mappában régi levél van." +msgstr "Régi levelei vannak a(z) %s mappában." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." -msgstr "%s mappában levelek vannak." +msgstr "Levelei vannak a(z) %s mappában." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." -msgstr "\"%s\" mappa létrehozása." +msgstr "A(z) „%s†könyvtár létrehozása." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." -msgstr "„%s†mappa nem hozható létre és állÃtható be." +msgstr "Nem lehet létrehozni és elÅ‘készÃteni a(z) „%s†könyvtárat." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." -msgstr "A jelszót már használta. Válasszon másikat." +msgstr "A jelszó már használatban van. Válasszon másikat." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." -msgstr "A jelszót már használta. Válasszon másikat." +msgstr "A jelszó már használatban van." -#: modules/pam_selinux/pam_selinux.c:172 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:174 +#, c-format msgid "The default security context is %s." -msgstr "Alapértelemezett %s biztonsági környezet\n" +msgstr "Az alapértelmezett biztonsági környezet a(z) %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" -msgstr "KÃván más szerepet vagy szintet megadni?" +msgstr "Szeretne más szerepet vagy szintet megadni?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "szerep:" -#: modules/pam_selinux/pam_selinux.c:193 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:195 +#, c-format msgid "There is no default type for role %s." -msgstr "Nincs alapértelmezett tÃpus %s szerephez\n" +msgstr "Nincs alapértelmezett tÃpus a(z) %s szerephez." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "szint:" -#: modules/pam_selinux/pam_selinux.c:259 -#, fuzzy +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." -msgstr "Nem érvényes biztonsági környezet" +msgstr "Ez nem érvényes biztonsági környezet." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." -msgstr "" +msgstr "A(z) %s érvényes környezetét nem sikerült megszerezni." -#: modules/pam_selinux/pam_selinux.c:639 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:641 +#, c-format msgid "Security context %s has been assigned." -msgstr "%s biztonsági környezet hozzárendelve" +msgstr "A(z) %s biztonsági környezet hozzá lett rendelve." -#: modules/pam_selinux/pam_selinux.c:655 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:657 +#, c-format msgid "Key creation context %s has been assigned." -msgstr "%s kulcskészÃtÅ‘ környezet hozzárendelve" +msgstr "A(z) %s kulcslétrehozási környezet hozzá lett rendelve." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" -msgstr "PAM inicializálása sikertelen\n" +msgstr "nem sikerült a PAM elÅ‘készÃtése\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" -msgstr "pam_set_item() meghiúsult\n" +msgstr "a pam_set_item() sikertelen\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" -msgstr "bejelentkezés: elágazás hiba: %m" +msgstr "bejelentkezés: elágaztatási hiba: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 -#, fuzzy, c-format +#: modules/pam_timestamp/pam_timestamp.c:385 +#, c-format msgid "Access has been granted (last access was %ld seconds ago)." -msgstr "Hozzáférés megadva (utolsó hozzáférés %ld másodperce volt)." +msgstr "Hozzáférés engedélyezve (az utolsó hozzáférés %ld másodperce volt)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 -#, fuzzy +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." -msgstr "" -"A felhasználói azonosÃtó érvényessége lejárt; kérem keresse meg a " -"rendszergazdát" +msgstr "A fiókja lejárt. Vegye fel a kapcsolatot a rendszergazdával." -#: modules/pam_unix/pam_unix_acct.c:238 -#, fuzzy +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -"Azonnal meg kell változtatnia a jelszavát (rendszergazda által erÅ‘ltetve)" +"Azonnal meg kell változtatnia a jelszavát (rendszergazda által kényszerÃtve)." -#: modules/pam_unix/pam_unix_acct.c:244 -#, fuzzy +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." -msgstr "Azonnal meg kell változtatnia a jelszavát (a jelszó elévült)" +msgstr "Azonnal meg kell változtatnia a jelszavát (a jelszó lejárt)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 -#, fuzzy, c-format +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 +#, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." -msgstr[0] "Figyelmeztetés: a jelszava %d nap múlva lejár" -msgstr[1] "Figyelmeztetés: a jelszava %d nap múlva lejár" +msgstr[0] "Figyelmeztetés: a jelszava %d nap múlva lejár." +msgstr[1] "Figyelmeztetés: a jelszava %d nap múlva lejár." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 -#, fuzzy, c-format +#: modules/pam_unix/pam_unix_acct.c:283 +#, c-format msgid "Warning: your password will expire in %d days." -msgstr "Figyelmeztetés: a jelszava %d nap múlva lejár" +msgstr "Figyelmeztetés: a jelszava %d nap múlva lejár." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." -msgstr "NIS jelszót nem sikerült módosÃtani." +msgstr "A NIS jelszót nem sikerült megváltoztatni." -#: modules/pam_unix/pam_unix_passwd.c:554 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." -msgstr "Nincs jelszó megadva" +msgstr "Nem lett jelszó megadva." -#: modules/pam_unix/pam_unix_passwd.c:555 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." -msgstr "NIS jelszót nem sikerült módosÃtani." +msgstr "A jelszó nem lett megváltoztatva." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." -msgstr "Egy rövidebb jelszót kell választania." +msgstr "Rövidebb jelszót kell választania." -#: modules/pam_unix/pam_unix_passwd.c:576 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." -msgstr "Válasszon hosszabb jelszót" +msgstr "Hosszabb jelszót kell választania." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s jelszavának megváltoztatása." -#: modules/pam_unix/pam_unix_passwd.c:713 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." -msgstr "Tovább kell várnia mÃg megváltoztathatja a jelszavát" +msgstr "Tovább kell várnia a jelszava megváltoztatásához." #, fuzzy #~ msgid "You have no mail." diff --git a/po/ia.gmo b/po/ia.gmo Binary files differdeleted file mode 100644 index 9246e2e7..00000000 --- a/po/ia.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2012-12-17 05:00-0500\n" "Last-Translator: Nik Kalach <nik.kalach@inbox.ru>\n" "Language-Team: Interlingua <trans-ia@lists.fedoraproject.org>\n" @@ -21,11 +21,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Contrasigno: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "Nove %s contrasigno: " msgid "Current password: " msgstr "Nove contrasigno: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "Nove %s contrasigno: " msgid "New password: " msgstr "Nove contrasigno: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -68,175 +71,181 @@ msgstr "Retypa %s" msgid "Password change has been aborted." msgstr "Cambiamento de contrasigno abortate." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "conto:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Successo" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Error critic - abandono immediate" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Insuccesso de cargar un modulo" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbolo non trovate" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Error in le modulo de servicio" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Error de systema" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Error de buffer de memoria" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Permission denegate" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Fallimento de authentication" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Credentiales insufficiente pro acceder a datos de authentication" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" "Le servicio de authentication non pote recuperar le information de " "authentication" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Usator es incognite pro le modulo de authentication subjacente" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Il ha superate le numero maxime de tentativas pro le servicio" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" "Le token de authentication non es jam valide; un nove token es necessari" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Le conto del usator ha perimite" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Impossibile de crear o eliminar un entrata pro le session specificate" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" "Le servicio de authentication non pote obtener le credentiales del usator" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Credentiales del usator perimite" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Insuccesso al definition de credentiales de usator" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Nulle datos specific del modulo es presente" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Elemento incorrecte passate a pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Error de conversation" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Error de manipulation del token de authentication" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Impossibile de recuperar le information de authentication" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Le token de authentication pare occupate" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Peremption del token de authentication disactivate" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Insuccesso del controlo preliminar per le servicio de contrasignos" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Le valor restitute debe esser ignorate per le repartitor PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modulo incognite" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Le token de authentication ha perimite" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Conversation in expectation de un evento" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Le application debe appellar a libpam de nove" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Error incognite de PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Le tempore es perimente...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Le tempore ha perimite!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "conversation erronee (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s fallite: codice de exito %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s fallite: signal capturate %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s fallite: stato incognite 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -244,18 +253,18 @@ msgid "" msgstr "" "%s: [--file percurso-integre] [--user usator] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Conto Fallimentos Ultime fallimento De\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "Le conto es blocate a causa de %u insuccessos al authentication" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -263,45 +272,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " de %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " via %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Ultime connexion:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Benvenite al nove conto!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Ultime connexion fallite:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -312,154 +321,156 @@ msgstr[1] "" "Il esseva %d insuccessos de initiar le session desde le ultime connexion." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Il esseva %d insuccessos a initiar le session desde le ultime connexion." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "Troppo de connexiones pro '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Il ha nove currero." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Il ha nove currero." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Il ha currero vetule." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Il ha currero." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Il non ha necun curreros in le dossier %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Il ha nove currero in le dossier %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Il ha currero vetule in le dossier %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Il ha currero in le dossier %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Creation del directorio '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Impossibile de crear e de initiar le directorio '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Le contrasigno jam se ha utilisate. Selige un altere." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Le contrasigno se ha jam usate." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "Contexto de securitate predefinite %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Velle tu introducer un rolo e nivello differente?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rolo:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "Necun typo predefinite pro le rolo %s\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nivello:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "Contexto de securitate incorrecte" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "Contexto de securitate %s attribuite" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "Contexto de creation de clave %s attribuite" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "error al initiar PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "error in pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "apertura de session: insuccesso de autoclonage: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Accesso permittite (le ultime accesso eveniva ante %ld secundas)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "Le conto ha perimite; contacte le administrator del systema" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Le administrator necessita le cambiamento immediate del contrasigno." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "Le contrasigno es troppo vetule e debe esser cambiate immediatemente." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -467,41 +478,41 @@ msgstr[0] "Advertimento: le contrasigno perimera in %d die" msgstr[1] "Advertimento: le contrasigno perimera in %d dies" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "Advertimento: le contrasigno perimera in %d dies" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Le contrasigno NIS non pote esser cambiate." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "Necun contrasigno fornite" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "Le contrasigno NIS non pote esser cambiate." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Selige un contrasigno plus longe" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Selige un contrasigno plus longe" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Cambiamento del contrasigno pro %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Attende ancora pro cambiar le contrasigno" diff --git a/po/id.gmo b/po/id.gmo Binary files differdeleted file mode 100644 index 3c09a45f..00000000 --- a/po/id.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2013-04-22 01:07-0400\n" "Last-Translator: sentabi\n" "Language-Team: Indonesian <trans-id@lists.fedoraproject.org>\n" @@ -20,43 +20,44 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " -msgstr "Sandi:" +msgstr "Kata Sandi: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " -msgstr "" +msgstr "Kata sandi %s saat ini: " #: libpam/pam_get_authtok.c:43 -#, fuzzy msgid "Current password: " -msgstr "Sandi:" +msgstr "Kata sandi saat ini: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 -#, fuzzy, c-format +#, c-format msgid "New %s password: " -msgstr "Sandi:" +msgstr "Kata sandi %s baru: " #: libpam/pam_get_authtok.c:46 -#, fuzzy msgid "New password: " -msgstr "Sandi:" +msgstr "Kata sandi baru: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " -msgstr "" +msgstr "Ketik ulang kata sandi %s baru: " #: libpam/pam_get_authtok.c:49 msgid "Retype new password: " -msgstr "" +msgstr "Ketik ulang kata sandi baru: " #: libpam/pam_get_authtok.c:50 msgid "Sorry, passwords do not match." -msgstr "Maaf, sandi yang anda masukkan tidak sama." +msgstr "Maaf, kata sandi yang Anda masukkan tidak sama." #: libpam/pam_get_authtok.c:143 libpam/pam_get_authtok.c:245 #, c-format @@ -64,430 +65,438 @@ msgid "Retype %s" msgstr "Ketik ulang %s" #: libpam/pam_get_authtok.c:183 libpam/pam_get_authtok.c:263 -#, fuzzy msgid "Password change has been aborted." -msgstr "Pergantian sandi digagalkan." +msgstr "Pergantian kata sandi telah digugurkan." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" -msgstr "Masuk:" +msgstr "log masuk:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Berhasil" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" -msgstr "Kesalahan kritis - Langsung ditunda" +msgstr "Kesalahan kritis - digugurkan seketika" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Gagal memuat modul" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Simbol tidak ditemukan" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" -msgstr "Kesalahan di servis modul" +msgstr "Kesalahan di modul layanan" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Kesalahan sistem" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" -msgstr "Kesalahan buffer memory" +msgstr "Kesalahan penyangga memori" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Izin ditolak" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Otentikasi gagal" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" -msgstr "Tidak cukup hak akses untuk mengakses data" +msgstr "Tidak cukup kredensial untuk mengakses data otentikasi" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" -msgstr "Servis otentikasi tidak mendapatkan info otentikasi" +msgstr "Layanan otentikasi tidak bisa mendapatkan info otentikasi" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" -msgstr "Pengguna tidak dikenal oleh modul otentikasi" +msgstr "Pengguna tidak dikenal oleh modul otentikasi yang mendasari" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Sudah melebihi batas percobaan servis" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" -msgstr "Token otentikasi tidak valid, dibutuhkan otentikasi yang baru" +msgstr "Token otentikasi tidak valid lagi, dibutuhkan yang baru" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Akun pengguna sudah berakhir" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Tidak dapat membuat/menghapus entri untuk sesion" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Otentikasi servis tidak mendapat kredential pengguna" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Kredential pengguna telah berakhir" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Gagal dalam mengkonfigurasi izin pengguna" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Tidak ada modul yang ditampilkan" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Kesalahan item diteruskan ke pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" -msgstr "Terjadi kesalahan percakapan " +msgstr "Kesalahan percakapan" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" -msgstr "Kesalahan di token otentikasi " +msgstr "Kesalahan manipulasi token otentikasi" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Informasi otentikasi tidak dapat dikembalikan" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Kunci otentikasi sedang sibuk" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Batas token otentikasi tidak aktif" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" -msgstr "" +msgstr "Gagal pemeriksaan awal oleh layanan kata sandi" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" -msgstr "" +msgstr "Nilai balikan mesti diabaikan oleh dispatch PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" -msgstr "" +msgstr "Modul tak dikenal" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" -msgstr "" +msgstr "Token otentikasi kedaluwarsa" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" -msgstr "" +msgstr "Percakapan sedang menunggu kejadian" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" -msgstr "" +msgstr "Aplikasi perlu memanggil libpam lagi" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" -msgstr "" - -#: libpam_misc/misc_conv.c:34 +msgstr "Kesalahan PAM yang tak dikenal" + +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" -msgstr "" +msgstr "...Waktu hampir habis...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" -msgstr "" +msgstr "...Maaf, waktu Anda habis!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" -msgstr "" +msgstr "percakapan yang ada kesalahan (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" -msgstr "" +msgstr "%s gagal: kode keluar %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" -msgstr "" +msgstr "%s gagal: menangkap sinyal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" -msgstr "" +msgstr "%s gagal: status tak dikenal 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" +"Cara pakai: %s [--dir /path/ke/direktori-tally] [--user nama_pengguna] [--" +"reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." -msgstr "" +msgstr "Akun dikunci karena %u log masuk yang gagal." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" -msgstr[0] "" +msgstr[0] "(%d menit tersisa untuk membuka kunci)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" -msgstr "" +msgstr "(%d menit tersisa untuk membuka kunci)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" -msgstr "" +msgstr " %a %e %b %Y %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" -msgstr "" +msgstr " dari %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" -msgstr "" +msgstr " pada %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" -msgstr "" +msgstr "Log masuk terakhir:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" -msgstr "" +msgstr "Selamat datang ke akun baru Anda!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" -msgstr "" +msgstr "Log masuk gagal terakhir:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" "There were %d failed login attempts since the last successful login." msgstr[0] "" +"Ada %d upaya log masuk yang gagal sejak log masuk sukses yang terakhir." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." -msgstr "" +msgstr "Ada %d upaya log masuk yang gagal sejak log masuk sukses terakhir." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." -msgstr "" +msgstr "Ada terlalu banyak log masuk bagi '%s'." -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "Anda menerima surel baru." +msgstr "Anda tidak punya surat baru." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Anda menerima surel baru." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." -msgstr "Anda memiliki surel lama" +msgstr "Anda memiliki surel lama." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." -msgstr "Anda menerima surel" +msgstr "Anda memiliki surel." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Anda tidak memiliki surel di folder %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Anda memiliki surel baru di folder %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Anda memiliki email lama di folder %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." -msgstr "" +msgstr "Anda memiliki surel di folder %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Membuat direktori '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Tidak dapat membuat direktori '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Sandi sudah digunakan sebelumnya. Pilih sandi yang lain." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Sandi sudah digunakan." -#: modules/pam_selinux/pam_selinux.c:172 -#, fuzzy, c-format +#: modules/pam_selinux/pam_selinux.c:174 +#, c-format msgid "The default security context is %s." -msgstr "Konteks sekuriti tidak benar." +msgstr "Konteks keamanan baku adalah %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Apakah anda mau menambah izin atau level yang berbeda?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "Sebagai:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." -msgstr "" +msgstr "Tidak ada tipe baku bagi peran %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "Level:" -#: modules/pam_selinux/pam_selinux.c:259 -#, fuzzy +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." -msgstr "Konteks sekuriti tidak benar." +msgstr "Ini bukan konteks keamanan yang benar." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." -msgstr "" +msgstr "Konteks yang valid bagi %s tidak bisa diperoleh." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." -msgstr "" +msgstr "Konteks keamanan %s telah ditugaskan." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." -msgstr "" +msgstr "Konteks pembuatan kunci %s telah ditugaskan." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" -msgstr "" +msgstr "gagal menginisialisasi PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" -msgstr "" +msgstr "gagal untuk pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" -msgstr "" +msgstr "log masuk: kegagalan fork: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "Sandi sudah digunakan." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "Sandi sudah digunakan." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Anda harus memilih kata sandi yang lebih pendek." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Anda harus memilih kata sandi yang lebih pendek." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." -msgstr "" +msgstr "Mengubah kata sandi untuk %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Anda harus memilih kata sandi yang lebih pendek." diff --git a/po/insert-header.sin b/po/insert-header.sin deleted file mode 100644 index b26de01f..00000000 --- a/po/insert-header.sin +++ /dev/null @@ -1,23 +0,0 @@ -# Sed script that inserts the file called HEADER before the header entry. -# -# At each occurrence of a line starting with "msgid ", we execute the following -# commands. At the first occurrence, insert the file. At the following -# occurrences, do nothing. The distinction between the first and the following -# occurrences is achieved by looking at the hold space. -/^msgid /{ -x -# Test if the hold space is empty. -s/m/m/ -ta -# Yes it was empty. First occurrence. Read the file. -r HEADER -# Output the file's contents by reading the next line. But don't lose the -# current line while doing this. -g -N -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} diff --git a/po/is.gmo b/po/is.gmo Binary files differdeleted file mode 100644 index 63e65154..00000000 --- a/po/is.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/fedora/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Þú verður að velja styttri lykilorð." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Þú verður að velja styttri lykilorð." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Þú verður að velja styttri lykilorð." diff --git a/po/it.gmo b/po/it.gmo Binary files differdeleted file mode 100644 index 56e4e6f7..00000000 --- a/po/it.gmo +++ /dev/null @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2021-07-22 00:54+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Italian <https://translate.fedoraproject.org/projects/linux-" @@ -27,11 +27,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.7.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Password: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -41,6 +42,7 @@ msgstr "Password attuale %s: " msgid "Current password: " msgstr "Password attuale: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -50,6 +52,7 @@ msgstr "Nuova password %s: " msgid "New password: " msgstr "Nuova password: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -72,175 +75,181 @@ msgstr "Reimmettere %s" msgid "Password change has been aborted." msgstr "Modifica della password terminata." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "login:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Successo" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Errore critico - interruzione immediata" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Caricamento del modulo non riuscito" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Simbolo non trovato" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Errore nel modulo di servizio" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Errore di sistema" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Errore buffer memoria" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Permesso negato" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Autenticazione non riuscita" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Credenziali insufficienti per accedere ai dati di autenticazione" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" "Il servizio di autenticazione non è in grado di recuperare le informazioni " "di autenticazione" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Utente sconosciuto al modulo di autenticazione sottostante" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Superato il numero massimo di tentativi per il servizio" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Token di autenticazione non più valido; ne è richiesto uno nuovo" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Account utente scaduto" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Impossibile creare/rimuovere una voce per la sessione specificata" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" "Il servizio di autenticazione non è in grado di recuperare le credenziali " "utente" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Credenziali utente scadute" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Impostazione delle credenziali utente non riuscita" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Dati specifici del modulo non presenti" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Elemento errato passato a pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Errore di conversazione" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Errore manipolazione token di autenticazione" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Impossibile ripristinare informazioni di autenticazione" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Blocco token di autenticazione occupato" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Invecchiamento del token di autenticazione disabilitato" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Controllo preliminare del servizio password non riuscito" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Il valore restituito dovrebbe essere ignorato dal dispatch PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modulo sconosciuto" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Token di autenticazione scaduto" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Conversazione in attesa di un evento" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "L'applicazione richiede una nuova chiamata a libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Errore PAM sconosciuto" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Il tempo sta per scadere...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Tempo scaduto!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "conversazione errata (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s non riuscita: codice d'uscita %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s non riuscita: intercettato il segnale %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s non riuscita: stato sconosciuto 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -248,18 +257,18 @@ msgid "" msgstr "" "Uso: %s [--dir /path/to/tally-directory] [--user nomeutente] [--reset]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Accesso Errori Ultimi errori Da\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Account bloccato a causa di %u accessi non riusciti." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -267,45 +276,45 @@ msgstr[0] "(%d minuto rimanenti per sbloccare)" msgstr[1] "(%d minuti rimanenti per sbloccare)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minuti rimanenti per sbloccare)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %e %b %Y %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " da %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " su %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Ultimo accesso:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Benvenuti nel nuovo account!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Ultimo accesso non riuscito:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -316,139 +325,141 @@ msgstr[1] "" "Dall'ultimo accesso si sono verificati %d tentativi non riusciti di accesso." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Dall'ultimo accesso si sono verificati %d tentativi non riusciti di accesso." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Sono stati effettuati troppi accessi per «%s»." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Ci sono nuove email." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Ci sono nuove email." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Ci sono email vecchie." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Ci sono email." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "La cartella %s non contiene alcuna email." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "La cartella %s contiene nuove email." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "La cartella %s contiene vecchie email." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "La cartella %s contiene email." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Creazione della directory «%s»." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Impossibile creare e inizializzare la directory «%s»." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Password già utilizzata, sceglierne un'altra." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "La password è stata già utilizzata." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Il contesto di sicurezza predefinito è %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Immettere un ruolo o livello differente?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ruolo:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Nessun tipo predefinito per il ruolo %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "livello:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Non è un contesto di sicurezza valido." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Impossibile ottenere un contesto valido per %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Contesto di sicurezza %s assegnato." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Contesto di creazione chiave %s assegnato." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "impossibile inizializzare PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "Impossibile eseguire pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: fork non riuscita: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Accesso permesso (l'ultimo accesso risale a %ld secondi fa)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Account scaduto; contattare l'amministratore di sistema." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." @@ -456,12 +467,12 @@ msgstr "" "È richiesta la modifica immediata della password (imposto " "dall'amministratore)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "È richiesta la modifica immediata della password (password scaduta)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -469,37 +480,37 @@ msgstr[0] "Avviso: la password scadrà tra %d giorno." msgstr[1] "Avviso: la password scadrà tra %d giorni." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Avviso: la password scadrà tra %d giorni." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Impossibile modificare la password NIS." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Nessuna password fornita." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "La password non è stata modificata." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Scegliere una password più corta." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Scegliere una password più lunga." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Cambio password per %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Attendere ancora per cambiare la password." diff --git a/po/ja.gmo b/po/ja.gmo Binary files differdeleted file mode 100644 index da496eba..00000000 --- a/po/ja.gmo +++ /dev/null @@ -9,13 +9,13 @@ # Tomoyuki KATO <tomo@dream.daynight.jp>, 2012 # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata # Dmitry V. Levin <ldv@altlinux.org>, 2020. -# Tomohiro KATO <tomop@teamgedoh.net>, 2021. +# Tomohiro KATO <tomop@teamgedoh.net>, 2021, 2024. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2021-12-08 21:16+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2024-09-04 03:38+0000\n" "Last-Translator: Tomohiro KATO <tomop@teamgedoh.net>\n" "Language-Team: Japanese <https://translate.fedoraproject.org/projects/linux-" "pam/master/ja/>\n" @@ -24,13 +24,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.9.1\n" +"X-Generator: Weblate 5.7.1\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "パスワード: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -40,6 +41,7 @@ msgstr "ç¾åœ¨ã®%sパスワード: " msgid "Current password: " msgstr "ç¾åœ¨ã®ãƒ‘スワード: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,6 +51,7 @@ msgstr "æ–°ã—ã„%sパスワード: " msgid "New password: " msgstr "æ–°ã—ã„パスワード: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,235 +74,242 @@ msgstr "%s ã‚’å†å…¥åŠ›ã—ã¦ä¸‹ã•ã„" msgid "Password change has been aborted." msgstr "ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰å¤‰æ›´ã‚’ä¸æ–ã—ã¾ã—ãŸã€‚" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "ãƒã‚°ã‚¤ãƒ³:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "æˆåŠŸ" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "致命的エラー - 峿™‚䏿¢" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "モジュールã®ãƒãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸ" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "シンボルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "サービスモジュールã®ã‚¨ãƒ©ãƒ¼" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "システムエラー" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "メモリーãƒãƒƒãƒ•ァエラー" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "許å¯ãŒã‚りã¾ã›ã‚“" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "èªè¨¼å¤±æ•—" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "èªè¨¼ãƒ‡ãƒ¼ã‚¿ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã«ã¯è³‡æ ¼æƒ…å ±ãŒä¸å……分ã§ã™" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "èªè¨¼ã‚µãƒ¼ãƒ“スãŒèªè¨¼æƒ…å ±ã‚’æ¤œç´¢ã§ãã¾ã›ã‚“" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "基礎ã¨ãªã‚‹èªè¨¼ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’知らãªã„ユーザー" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "ã‚µãƒ¼ãƒ“ã‚¹ã®æœ€å¤§è©¦è¡Œå›žæ•°ã«é”ã—ã¾ã—ãŸ" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ã¯ã‚‚ã¯ã‚„有効ã§ã¯ã‚りã¾ã›ã‚“。新ã—ã„èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ãŒå¿…è¦ã§ã™" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "ユーザーアカウントã¯å¤±åйã—ã¾ã—ãŸ" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "指定ã—ãŸã‚»ãƒƒã‚·ãƒ§ãƒ³ã«å¯¾ã™ã‚‹ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’作æˆ/削除ã§ãã¾ã›ã‚“" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "èªè¨¼ã‚µãƒ¼ãƒ“スãŒãƒ¦ãƒ¼ã‚¶ãƒ¼è³‡æ ¼èªå®šã‚’検索ã§ãã¾ã›ã‚“" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "ãƒ¦ãƒ¼ã‚¶ãƒ¼è³‡æ ¼èªå®šã®å¤±åй" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ãƒ¦ãƒ¼ã‚¶ãƒ¼è³‡æ ¼èªå®šã®è¨å®šã«å¤±æ•—ã—ã¾ã—ãŸ" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "モジュール固有データãŒã‚りã¾ã›ã‚“" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item()ã«æ¸¡ã•れãŸä¸æ£é …ç›®" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "会話エラー" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³æ“作エラー" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "èªè¨¼æƒ…å ±ã‚’å›žå¾©ã§ãã¾ã›ã‚“" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ã‚’ãƒãƒƒã‚¯ä¸ã§ã™" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ã‚¨ãƒ¼ã‚¸ãƒ³ã‚°ãŒç„¡åйã§ã™" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "パスワードサービスã«ã‚ˆã‚‹äºˆå‚™ãƒã‚§ãƒƒã‚¯ã«å¤±æ•—ã—ã¾ã—ãŸ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "戻り値㯠PAM タスク指åã«ã‚ˆã‚Šç„¡è¦–ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "モジュールãŒä¸æ˜Žã§ã™" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "èªè¨¼ãƒˆãƒ¼ã‚¯ãƒ³ã®æœ‰åŠ¹æœŸé™åˆ‡ã‚Œã§ã™" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "会話ã¯ã‚¤ãƒ™ãƒ³ãƒˆã‚’å¾…ã£ã¦ã„ã¾ã™" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "アプリケーションã¯libpamã‚’å†ã³å‘¼ã³å‡ºã™å¿…è¦ãŒã‚りã¾ã™" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "䏿˜Žãª PAM エラー" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...時間ãŒåˆ‡ã‚Œã‹ã‹ã£ã¦ã„ã¾ã™...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...時間切れã§ã™ã€‚\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "誤ã£ãŸä¼šè©±(%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s 失敗: 終了コード %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s 失敗: シグナルをã‚ャッム%d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s 失敗: 䏿˜ŽãªçŠ¶æ…‹ 0x%x" -#: modules/pam_faillock/main.c:130 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:131 +#, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -"使用法: %s [--dir /path/to/tally-directory] [--user username] [--reset]\n" +"使用法: %s [--dir /path/to/tally-directory] [--user username] [--reset][--" +"legacy-output]\n" -#: modules/pam_faillock/main.c:181 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:182 +#, c-format msgid "Login Failures Latest failure From\n" -msgstr "ãƒã‚°ã‚¤ãƒ³ 失敗。最後ã®å¤±æ•—㯠以下ã§ç™ºç”Ÿ\n" +msgstr "ãƒã‚°ã‚¤ãƒ³ 失敗 最終日時 接続元\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "%u 回ã®ãƒã‚°ã‚¤ãƒ³å¤±æ•—ã«ã‚ˆã‚Šã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯ãƒãƒƒã‚¯ã•れã¾ã—ãŸã€‚" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "(ãƒãƒƒã‚¯è§£é™¤ã¾ã§ %d 分)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(ãƒãƒƒã‚¯è§£é™¤ã¾ã§æ®‹ã‚Š %d 分)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %Y/%m/%d (%a) %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " ホスト:%.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " 端末:%.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "最終ãƒã‚°ã‚¤ãƒ³:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "æ–°ã—ã„アカウントã¸ã‚ˆã†ã“ã!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "最後ã®å¤±æ•—ãƒã‚°ã‚¤ãƒ³:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -307,187 +317,188 @@ msgid_plural "" msgstr[0] "æœ€å¾Œã®æ£ã—ã„ãƒã‚°ã‚¤ãƒ³ã®å¾Œã« %d 回ã®ãƒã‚°ã‚¤ãƒ³è©¦è¡Œå¤±æ•—ãŒã‚りã¾ã™ã€‚" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "æœ€å¾Œã®æ£ã—ã„ãƒã‚°ã‚¤ãƒ³ã®å¾Œã« %d 回ã®ãƒã‚°ã‚¤ãƒ³ã®è©¦è¡Œå¤±æ•—ãŒã‚りã¾ã™ã€‚" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "'%s'ã®ãƒã‚°ã‚¤ãƒ³å›žæ•°ãŒå¤šã™ãŽã¾ã™ã€‚" -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "æ–°ã—ã„メールãŒã‚りã¾ã™ã€‚" +msgstr "æ–°ã—ã„メールã¯ã‚りã¾ã›ã‚“。" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "æ–°ã—ã„メールãŒã‚りã¾ã™ã€‚" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "å¤ã„メールãŒã‚りã¾ã™ã€‚" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "メールãŒã‚りã¾ã™ã€‚" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "フォルダ%sã«ãƒ¡ãƒ¼ãƒ«ãŒã‚りã¾ã›ã‚“。" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "フォルダ%sã«æ–°ã—ã„メールãŒã‚りã¾ã™ã€‚" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "フォルダ%sã«å¤ã„メールãŒã‚りã¾ã™ã€‚" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "フォルダ%sã«ãƒ¡ãƒ¼ãƒ«ãŒã‚りã¾ã™ã€‚" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "ディレクトリ '%s' を作æˆã—ã¦ã„ã¾ã™ã€‚" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ディレクトリ %s ã®ä½œæˆãƒ»åˆæœŸåŒ–ãŒã§ãã¾ã›ã‚“。" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" "パスワードã¯ã™ã§ã«ä½¿ç”¨ã•れã¦ã„ã¾ã™ã€‚ 別ã®ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚’é¸æŠžã—ã¦ãã ã•ã„。" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "パスワードã¯ã™ã§ã«ä½¿ç”¨ã•れã¦ã„ã¾ã™ã€‚" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "デフォルトセã‚ュリティコンテã‚スト㯠%s ã§ã™ã€‚" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "ç•°ãªã‚‹ãƒãƒ¼ãƒ«åˆã¯ãƒ¬ãƒ™ãƒ«ã‚’入力ã—ã¾ã™ã‹?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ãƒãƒ¼ãƒ«:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "ãƒãƒ¼ãƒ« %s ã«ã¯ãƒ‡ãƒ•ォルトタイプãŒã‚りã¾ã›ã‚“。" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "レベル:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "有効ãªã‚»ã‚ュリティコンテã‚ストã§ã¯ã‚りã¾ã›ã‚“。" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "%s ã®æœ‰åйãªã‚»ã‚ュリティコンテã‚ストをå–å¾—ã§ãã¾ã›ã‚“。" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "ã‚»ã‚ュリティコンテã‚スト %s ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "ã‚ー作æˆã‚³ãƒ³ãƒ†ã‚スト %s ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã—ãŸã€‚" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAMã®åˆæœŸåŒ–ã«å¤±æ•—ã—ã¾ã—ãŸ\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item()ã«å¤±æ•—ã—ã¾ã—ãŸ\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "ãƒã‚°ã‚¤ãƒ³: fork失敗: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "アクセスãŒè¨±å¯ã•れã¾ã—ãŸï¼ˆæœ€å¾Œã®ã‚¢ã‚¯ã‚»ã‚¹ã¯ %ld ç§’å‰ï¼‰ã€‚" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "アカウントã¯å¤±åйã—ã¦ã„ã¾ã™ã€‚システム管ç†è€…ã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "パスワードを直ã¡ã«å¤‰æ›´ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™(管ç†è€…ã«ã‚ˆã‚‹å¼·åˆ¶)。" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "パスワードを直ã¡ã«å¤‰æ›´ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™(パスワード失効)。" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "è¦å‘Š: パスワード㯠%d æ—¥ã§å¤±åйã—ã¾ã™ã€‚" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "è¦å‘Š: パスワード㯠%d æ—¥ã§å¤±åйã—ã¾ã™ã€‚" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS パスワードを変更ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "パスワードãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã›ã‚“。" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "パスワードを変更ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "よりçŸã„ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "より長ã„ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s 用ã®ãƒ‘スワードを変更ã—ã¦ã„ã¾ã™ã€‚" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "パスワードを変更ã™ã‚‹ã«ã¯ã‚ˆã‚Šé•·ã„時間ã®çµŒéŽãŒå¿…è¦ã§ã™ã€‚" diff --git a/po/ka.gmo b/po/ka.gmo Binary files differdeleted file mode 100644 index 93a49d32..00000000 --- a/po/ka.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-11-13 09:19+0000\n" "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n" "Language-Team: Georgian <https://translate.fedoraproject.org/projects/linux-" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.14.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "პáƒáƒ áƒáƒšáƒ˜: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "%s-ის áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜: " msgid "Current password: " msgstr "მიმდინáƒáƒ ე პáƒáƒ áƒáƒšáƒ˜: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "%s-ის áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜: " msgid "New password: " msgstr "áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -67,171 +70,177 @@ msgstr "ხელáƒáƒ®áƒšáƒ შეიყვáƒáƒœáƒ”თ %s" msgid "Password change has been aborted." msgstr "პáƒáƒ áƒáƒšáƒ˜áƒ¡ შეცვლის პრáƒáƒªáƒ”დურრგáƒáƒ£áƒ¥áƒ›áƒ“áƒ." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ ებელი:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "წáƒáƒ მáƒáƒ¢áƒ”ბული" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "კრიტიკული შეცდáƒáƒ›áƒ - დáƒáƒ£áƒ§áƒáƒ•ნებელი გáƒáƒ£áƒ¥áƒ›áƒ”ბáƒ" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "მáƒáƒ“ულის ჩáƒáƒ¢áƒ•ირთვრვერმáƒáƒ®áƒ”რხდáƒ" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "სიმბáƒáƒšáƒ ვერმáƒáƒ˜áƒ«áƒ”ბნáƒ" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "შეცდáƒáƒ›áƒ სერვისის მáƒáƒ“ულში" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "სისტემური შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "მეხსიერების ბუფერის შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "წვდáƒáƒ›áƒ უáƒáƒ ყáƒáƒ¤áƒ˜áƒšáƒ˜áƒ" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ მáƒáƒœáƒáƒªáƒ”მებთáƒáƒœ წვდáƒáƒ›áƒ˜áƒ¡áƒáƒ—ვის áƒáƒ áƒáƒ¡áƒáƒ™áƒ›áƒáƒ ისი უფლებები გáƒáƒ¥áƒ•თ" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ სერვისს áƒáƒ შეუძლირáƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ ინფáƒáƒ მáƒáƒªáƒ˜áƒ˜áƒ¡ მიღებáƒ" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "მáƒáƒ›áƒ“ევნრáƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ მáƒáƒ“ულისთვის მáƒáƒ›áƒ®áƒ›áƒáƒ ებელი უცნáƒáƒ‘იáƒ" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "სერვისის გáƒáƒ¨áƒ•ების ცდების მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ ი რáƒáƒáƒ“ენáƒáƒ‘რგáƒáƒ®áƒáƒ ჯულიáƒ" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ კáƒáƒ“ი áƒáƒ¦áƒáƒ მუშáƒáƒáƒ‘ს. გáƒáƒ˜áƒ დებáƒáƒ— áƒáƒ®áƒáƒšáƒ˜" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ ებლის ვáƒáƒ“რგáƒáƒ¡áƒ£áƒšáƒ˜áƒ" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "მითითებული სესიის ჩáƒáƒœáƒáƒ¬áƒ”რის შექმნის/წáƒáƒ¨áƒšáƒ˜áƒ¡ შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ სერვისს áƒáƒ შეუძლირმáƒáƒ›áƒ®áƒ›áƒáƒ ებლისრდრპáƒáƒ áƒáƒšáƒ˜áƒ¡ მიღებáƒ" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ ებელი áƒáƒœ პáƒáƒ áƒáƒšáƒ˜ ვáƒáƒ“áƒáƒ’áƒáƒ¡áƒ£áƒšáƒ˜áƒ" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ ებლის áƒáƒœ პáƒáƒ áƒáƒšáƒ˜áƒ¡ დáƒáƒ§áƒ”ნების შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "მáƒáƒ“ულის სáƒáƒ™áƒ£áƒ—áƒáƒ ი მáƒáƒœáƒáƒªáƒ”მები áƒáƒ áƒáƒ სებáƒáƒ‘ს" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item()-ს áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ელემენტი გáƒáƒ“áƒáƒ”ცáƒ" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "სáƒáƒ£áƒ‘რის შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ კáƒáƒ“ის მáƒáƒœáƒ˜áƒžáƒ£áƒšáƒ˜áƒ ების შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ ინფáƒáƒ მáƒáƒªáƒ˜áƒ˜áƒ¡ áƒáƒ¦áƒ“გენის შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ კáƒáƒ“ის ბლáƒáƒ™áƒ˜ დáƒáƒ™áƒáƒ•ებულიáƒ" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ კáƒáƒ“ის ვáƒáƒ“ის გáƒáƒ¡áƒ•ლრგáƒáƒ›áƒáƒ თულიáƒ" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "პáƒáƒ áƒáƒšáƒ˜áƒ¡ წინáƒáƒ¡áƒ¬áƒáƒ ი შემáƒáƒ¬áƒ›áƒ”ბის შეცდáƒáƒ›áƒ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "დáƒáƒ‘რუნებული ნიშვნელáƒáƒ‘რიგნáƒáƒ ირებული უნდრიყáƒáƒ¡ PAM dispatch-ის მიერ" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "მáƒáƒ“ული უცნáƒáƒ‘იáƒ" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "áƒáƒ•თენტიკáƒáƒªáƒ˜áƒ˜áƒ¡ კáƒáƒ“ი ვáƒáƒ“áƒáƒ’áƒáƒ¡áƒ£áƒšáƒ˜áƒ" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "სáƒáƒ£áƒ‘áƒáƒ ი მáƒáƒ•ლენáƒáƒ¡ ელáƒáƒ“ებáƒ" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "áƒáƒžáƒšáƒ˜áƒ™áƒáƒªáƒ˜áƒáƒ¡ libpam-ის თáƒáƒ•იდáƒáƒœ გáƒáƒ¨áƒ•ებრსáƒáƒ˜áƒ დებáƒ" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "PAM-ის უცნáƒáƒ‘ი შეცდáƒáƒ›áƒ" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...დრრგáƒáƒ“ის...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...უკáƒáƒªáƒ áƒáƒ•áƒáƒ“, თქვენი დრრგáƒáƒ•იდáƒ!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "შეცდáƒáƒ›áƒ˜áƒ—ი სáƒáƒ£áƒ‘áƒáƒ ი (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s-ის შეცდáƒáƒ›áƒ: გáƒáƒ›áƒáƒ¡áƒ•ლის კáƒáƒ“ი %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s-ის შეცდáƒáƒ›áƒ: გáƒáƒ“áƒáƒáƒ”რილი სიგნáƒáƒšáƒ˜ %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s-ის შეცდáƒáƒ›áƒ: უცნáƒáƒ‘იბ სტáƒáƒ¢áƒ£áƒ¡áƒ˜ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -240,63 +249,63 @@ msgstr "" "გáƒáƒ›áƒáƒ§áƒ”ნებáƒ: %s [--dir /ბილიკი/tally-ის-სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ემდე] [--user მáƒáƒ›áƒ®áƒ›áƒáƒ ებელი] " "[--reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ ებელი შეცდáƒáƒ›áƒ”ბი ბáƒáƒšáƒáƒ¨áƒ”ცდáƒáƒ›áƒ სáƒáƒ˜áƒ“áƒáƒœ\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "áƒáƒœáƒ’áƒáƒ იში დáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ %u áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ცდის შემდეგ." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "(გáƒáƒœáƒ‘ლáƒáƒ™áƒ•მდე დáƒáƒ ჩენილირ%d წთ)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(გáƒáƒœáƒ‘ლáƒáƒ™áƒ•áƒáƒ›áƒ“ე დáƒáƒ ჩენილირ%d წთ)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s-დáƒáƒœ" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s-ზე" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ბáƒáƒšáƒ შესვლáƒ: %s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "კეთილი იყáƒáƒ¡ თქვენი მáƒáƒ‘რძáƒáƒ”ბრáƒáƒ®áƒáƒš áƒáƒœáƒ’áƒáƒ იშში!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "ბáƒáƒšáƒ წáƒáƒ უმáƒáƒ¢áƒ”ბელი ცდáƒ: %s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -306,188 +315,190 @@ msgstr[0] "" "ცდáƒ." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "ბáƒáƒšáƒ წáƒáƒ მáƒáƒ¢áƒ”ბული შემáƒáƒ¡áƒ•ლის შემდეგ დáƒáƒ¤áƒ˜áƒ¥áƒ¡áƒ˜áƒ ებულირშემáƒáƒ¡áƒ•ლის %d წáƒáƒ უმáƒáƒ¢áƒ”ბელი " "ცდáƒ." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ ებელი %s გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებáƒáƒ“რმეტისმეტáƒáƒ“ ხშირáƒáƒ“." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "áƒáƒ®áƒáƒšáƒ˜ ელფáƒáƒ¡áƒ¢áƒ áƒáƒ მáƒáƒ’სვლიáƒáƒ—." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "თქვენ გáƒáƒ¥áƒ•თ áƒáƒ®áƒáƒšáƒ˜ წერილი." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "თქვენ გáƒáƒ¥áƒ•თ ძველი წერილი." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "თქვენ გáƒáƒ¥áƒ•თ ფáƒáƒ¡áƒ¢áƒ." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში %s ფáƒáƒ¡áƒ¢áƒ áƒáƒ áƒáƒ." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში %s გáƒáƒ¥áƒ•თ áƒáƒ®áƒáƒšáƒ˜ ელ-ფáƒáƒ¡áƒ¢áƒ." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში %s ძველი ფáƒáƒ¡áƒ¢áƒ გáƒáƒ¥áƒ•თ." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში %s გáƒáƒ¥áƒ•თ ფáƒáƒ¡áƒ¢áƒ." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "'%s' დირექტáƒáƒ იის შექმნáƒ." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის (%s) შექმნისრდრინიციáƒáƒšáƒ˜áƒ–áƒáƒªáƒ˜áƒ˜áƒ¡ შეცდáƒáƒ›áƒ." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "პáƒáƒ áƒáƒšáƒ˜ უკვე იყრგáƒáƒ›áƒáƒ§áƒ”ნებული. სხვრსცáƒáƒ“ეთ." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "პáƒáƒ áƒáƒšáƒ˜ უკვე იყრგáƒáƒ›áƒáƒ§áƒ”ნებული." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "უსáƒáƒ¤áƒ თხáƒáƒ”ბის ნáƒáƒ’ულისხმევი კáƒáƒœáƒ¢áƒ”ქსტირ%s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "გნებáƒáƒ•თ სხვრრáƒáƒšáƒ˜áƒ¡ áƒáƒœ დáƒáƒœáƒ˜áƒ¡ შეყვáƒáƒœáƒ?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "რáƒáƒšáƒ˜:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "რáƒáƒšáƒ˜áƒ¡áƒ—ვის %s ნáƒáƒ’ულისხმევი ტიპი áƒáƒ áƒáƒ სებáƒáƒ‘ს." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "დáƒáƒœáƒ”:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "უსáƒáƒ¤áƒ თხáƒáƒ”ბის áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი კáƒáƒœáƒ¢áƒ”ქსტი." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "%s-ის სწáƒáƒ ი კáƒáƒœáƒ¢áƒ”ქსტის მიღების შეცდáƒáƒ›áƒ." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "უსáƒáƒ¤áƒ თხáƒáƒ”ბის კáƒáƒœáƒ¢áƒ”ქსტი %s áƒáƒ®áƒšáƒ მიმáƒáƒ’რებულიáƒ." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "გáƒáƒ¡áƒáƒ¦áƒ”ბის შექმნის კáƒáƒœáƒ¢áƒ”ქსტი %s áƒáƒ®áƒáƒš მიმáƒáƒ’რებულიáƒ." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM-ის ინიციáƒáƒšáƒ˜áƒ–áƒáƒªáƒ˜áƒ˜áƒ¡ შეცდáƒáƒ›áƒ\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_tem()-ის შეცდáƒáƒ›áƒ\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "შესვლáƒ: %m-ის áƒáƒ®áƒáƒšáƒ˜ áƒáƒ¡áƒšáƒ˜áƒ¡ გáƒáƒ¨áƒ•ების შეცდáƒáƒ›áƒ" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "წვდáƒáƒ›áƒ მიღებულირ(ბáƒáƒšáƒ წვდáƒáƒ›áƒ %ld წáƒáƒ›áƒ˜áƒ¡ წინ)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "áƒáƒœáƒ’áƒáƒ იში ვáƒáƒ“áƒáƒ’áƒáƒ¡áƒ£áƒšáƒ˜áƒ; დáƒáƒ£áƒ™áƒáƒ•შირდით თქვენს სისტემურáƒáƒ“მინისტრáƒáƒ¢áƒáƒ ს." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "სáƒáƒáƒ˜áƒ áƒáƒ თქვენი პáƒáƒ áƒáƒšáƒ˜ áƒáƒ®áƒšáƒáƒ•ე შეცვáƒáƒšáƒáƒ— (მითითებულირáƒáƒ“მინისტრáƒáƒ¢áƒáƒ ის მიერ)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "სáƒáƒáƒ˜áƒ áƒáƒ თქვენი პáƒáƒ áƒáƒšáƒ˜áƒ¡ დáƒáƒ£áƒ§áƒáƒ•ნებლივ შეცვლრ(პáƒáƒ áƒáƒšáƒ˜ ვáƒáƒ“áƒáƒ’áƒáƒ¡áƒ£áƒšáƒ˜áƒ)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "გáƒáƒ¤áƒ თხილებáƒ: თქვენს პáƒáƒ áƒáƒšáƒ¡ ვáƒáƒ“რ%d დღეში გáƒáƒ£áƒ•áƒ." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "გáƒáƒ¤áƒ თხილებáƒ: თქვენს პáƒáƒ áƒáƒšáƒ¡ ვáƒáƒ“რ%d დღეში გáƒáƒ£áƒ•áƒ." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS პáƒáƒ áƒáƒšáƒ˜áƒ¡ შეცვლრშეუძლებელიáƒ." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "პáƒáƒ áƒáƒšáƒ˜ áƒáƒ იქნრმითითებული." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "პáƒáƒ áƒáƒšáƒ˜ áƒáƒ შეცვლილáƒ." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "უნდრáƒáƒ˜áƒ ჩიáƒáƒ— უფრრმáƒáƒ™áƒšáƒ” პáƒáƒ áƒáƒšáƒ˜." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "თქვენ უნდრáƒáƒ˜áƒ ჩიáƒáƒ— უფრრგრძელი პáƒáƒ áƒáƒšáƒ˜." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s-ის პáƒáƒ áƒáƒšáƒ˜áƒ¡ შეცვლáƒ." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "პáƒáƒ áƒáƒšáƒ˜áƒ¡ შესáƒáƒªáƒ•ლელáƒáƒ“ კიდევ უნდრმáƒáƒ˜áƒ—მინáƒáƒ—." diff --git a/po/kk.gmo b/po/kk.gmo Binary files differdeleted file mode 100644 index 39279e14..00000000 --- a/po/kk.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-12-07 16:19+0000\n" "Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n" "Language-Team: Kazakh <https://translate.fedoraproject.org/projects/linux-" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.14.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "%s үшін ағымдағы пароль: " msgid "Current password: " msgstr "Ðғымдағы пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "%s үшін жаңа пароль: " msgid "New password: " msgstr "үшін жаңа пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -67,173 +70,179 @@ msgstr "%s қайта енгізіңіз" msgid "Password change has been aborted." msgstr "Парольді өзгертуден Ð±Ð°Ñ Ñ‚Ð°Ñ€Ñ‚Ñ‹Ð»Ð´Ñ‹." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "тіркелгі:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Сәтті" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Қатаң қате - ұзамай-ақ шығу" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Модульді жүктеу мүмкін емеÑ" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Таңба табылмады" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Қызмет модулінде қате" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Жүйелік қате" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Жады буфер қатеÑÑ–" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Ð Ò±Ò›Ñат жоқ" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Шындылықты текÑеру қатеÑÑ–" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" "Шындылықты текÑеру мәліметтерге қол жеткізу үшін тіркелгі ақпараты " "жеткілікÑіз" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Шындылықты текÑеру қызметі мәліметтерді жүктей алмады" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Пайдаланушы шындылықты текÑеру қызметіне белгіÑіз" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Қызмет үшін анықталған талаптар Ñаны біткен" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Шындылықты текÑеру маркері бұдан былай қате; жаңаÑÑ‹ керек" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Пайдаланушы тіркелгіÑінің мерзімі аÑқталған" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "КөрÑетілген ÑеÑÑÐ¸Ñ Ò¯ÑˆÑ–Ð½ жазбаны жаÑау/өшіру мүмкін емеÑ" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Шындылықты текÑеру қызметі пайдаланушының мәліметтерін жүктей алмады" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Пайдаланушы тіркелгіÑінің мерзімі аÑқталған" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Пайдаланушы мәліметін орнату мүмкін емеÑ" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Модуль үшін керек ақпарат жоқ болып тұр" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item() құрамында қате Ñлемент берілген" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Сұхбат қатеÑÑ–" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Шындылықты текÑеру маркерімен әрекет өткізу қатеÑÑ–" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Шындылықты текÑеру ақпаратын қайтару мүмкін емеÑ" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Шындылықты текÑеру маркерінің оқшаулауы Ð±Ð¾Ñ ÐµÐ¼ÐµÑ" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Шындылықты текÑеру маркерінің мерзіммен шектеу Ñөндірілген" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Парольдерді текÑеру қызметі алдын-ала текÑеруду өткізе алмады" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Қайтарылған мәнді PAM-ға берілген кезде елемеу керек" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Модуль белгіÑіз" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Шындылықты текÑеру маркерінің мерзімі аÑқталған" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Сұхбат үрдіÑÑ– оқиғаны күтіп тұр" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Бағдарлама libpam-ды қайтадан шақыруы керек" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "БелгіÑіз PAM қатеÑÑ–" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Уақытыңыз бітіп барады...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Кешіріңіз, Ñіздің уақытыңыз бітті!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "қате Ñұхбат (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s қатеÑÑ–: шығу коды %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s қатеÑÑ–: алынған Ñигнал %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s қатеÑÑ–: белгіÑіз қалып-күйі 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -242,63 +251,63 @@ msgstr "" "Қолданылуы: %s: [--dir /tally-бумаÑына/дейінгі/жол] [--user пайдаланушы] [--" "reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "Пайдаланушы аты СәтÑіз кіру Ñаны Соңғы қате Қайдан\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Тіркелгі %u рет қате кіру талабы Ñалдарынан бұғатталды." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "(бұғатты шешуге дейін %d минут қалды)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(бұғатты шешуге дейін %d минут қалды)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " қайдан: %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " қайда: %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Соңғы рет жүйеге кіру:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Жаңа тіркелгңізіге қош келдіңіз!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Соңғы ÑәтÑіз жүйеге кіру талабы:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -306,185 +315,187 @@ msgid_plural "" msgstr[0] "Соңғы Ñәтті жүйеге кіру реттен кейін %d қате талап болған." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "Соңғы Ñәтті жүйеге кіру реттен кейін %d қате талап болған." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "\"%s\" үшін жүйеге кіру талап Ñаны тым көп." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Сізде жаңа пошта жоқ." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Сізде жаңа поштаңыз бар." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Сізде еÑкі поштаңыз бар." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Сізде пошта бар." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Сізде %s бумаÑында пошта жоқ." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Сізде %s бумаÑында жаңа поштаңыз бар." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Сізде %s бумаÑында еÑкі поштаңыз бар." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Сізде %s бумаÑында поштаңыз бар." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "'%s' бумаÑын жаÑау." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "'%s' бумаÑын жаÑау мүмкін емеÑ." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Пароль оÑыған дейін қолданған. БаÑқаÑын таңдаңыз." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Пароль оÑыған дейін қолданылған." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "БаÑтапқы қауіпÑіздік контекÑті %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "БаÑқа роль не деңгейді енгізуді қалайÑыз ба?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ролі:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "%s ролі үшін баÑтапқы түрі көрÑетілмеген." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "деңгейі:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Ð”Ò±Ñ€Ñ‹Ñ Ò›Ð°ÑƒÑ–Ð¿Ñіздік контекÑті емеÑ." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "%s үшін жарамды контекÑтті алу мүмкін емеÑ." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "%s қауіпÑіздік контекÑті тағайындалды." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "%s кілттерді жаÑау қауіпÑіздік контекÑті тағайындалды." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM-ды Ñ–Ñке қоÑу мүмкін емеÑ\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() орындау мүмкін емеÑ\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: үрдіÑті баÑтау мүмкін емеÑ: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Ð Ò±Ò›Ñат раÑталған (Ñоңғы қатынау %ld Ñекунд бұрын болған)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Тіркелгіңіздің мерзімі аÑқталған; жүйелік әкімшіңізге хабарлаÑыңыз." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Сізге пароліңізді қазір ауыÑтыру керек (әкімші мәжбүрлеген)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Сізге пароліңізді қазір ауыÑтыру керек (парольдің мерзімі аÑқталған)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "ЕÑкерту: Ñіздің пароліңіздің мерзімі %d күнде бітеді." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "ЕÑкерту: Ñіздің пароліңіздің мерзімі %d күнде бітеді." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS паролін өзгерту мүмкін емеÑ." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Пароль көрÑетілмеді." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Пароль өзгертілмеді." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Сіз қыÑқа парольді таңдауыңыз керек." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Сізге ұзынырақ парольді таңдау керек." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s үшін парольді өзгерту." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Пароліңізді өзгерті үшін біраз күтуіңіз керек." diff --git a/po/km.gmo b/po/km.gmo Binary files differdeleted file mode 100644 index ee7497e8..00000000 --- a/po/km.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-29 07:00-0500\n" "Last-Translator: Tomáš Mráz <tmraz@fedoraproject.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -21,11 +21,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "ពាក្យសម្ងាážáŸ‹Â ៖ " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "ពាក្យ​សម្ងាážáŸ‹ %s ážáŸ’មី ៖" msgid "Current password: " msgstr "ពាក្យ​សម្ងាážáŸ‹ ážáŸ’មី ៖" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "ពាក្យ​សម្ងាážáŸ‹ %s ážáŸ’មី ៖" msgid "New password: " msgstr "ពាក្យ​សម្ងាážáŸ‹ ážáŸ’មី ៖" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -68,171 +71,177 @@ msgstr "" msgid "Password change has been aborted." msgstr "ពាក្យសម្ងាážáŸ‹â€‹ážáŸ’រូវ​បាន​ប្រើ​រួច​ហើយ ។ សូម​ជ្រើស​មួយ​ទៀážÂ ។" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "ចូល ៖" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "ជោគជáŸáž™" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "កំហុស​ធ្ងន់ធ្ងរ - បោះបង់ភ្លាមៗ" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "រក​មិន​ឃើញ​និមិážáŸ’ážâ€‹ážŸáž‰áŸ’ញា" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "កំហុស​នៅ​ក្នុង​ម៉ូឌុល​សáŸážœáž¶" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "កំហុស​ប្រពáŸáž“្ធ" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "កំហុស​សážáž·â€‹áž”ណ្ដោះ​អាសន្ន" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "សិទ្ធិ​ážáŸ’រូវ​បាន​បដិសáŸáž’" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "បរាជáŸáž™â€‹áž€áŸ’នុង​ការ​ផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវ" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "លិážáž·ážâ€‹ážŸáž˜áŸ’គាល់​មិន​គ្រប់គ្រាន់ដើម្បី​ចូល​ដំណើរ​ការ​ទិន្ននáŸáž™â€‹ážŠáŸ‚ល​មាន​ការ​ផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវ" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "អ្នក​ប្រើ មិន​ស្គាល់​ម៉ូឌុលផ្ទៀងផ្ទាážáŸ‹â€‹áž—áž¶áž–ážáŸ’រឹមážáŸ’រូវមូលដ្ឋាន" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "គណនី​អ្នក​ប្រើ​បាន​ផុážâ€‹áž€áŸ†ážŽážáŸ‹â€‹áž ើយ" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "មិន​អាច​បង្កើហឬ យក​ធាážáž»â€‹áž˜áž½áž™â€‹áž…áŸáž‰ សម្រាប់សមáŸáž™â€‹ážŠáŸ‚ល​បាន​បញ្ជាក់" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "សáŸážœáž¶â€‹áž•្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវ មិន​អាច​ទៅ​យក​លិážáž·ážâ€‹ážŸáž˜áŸ’គាល់របស់អ្នក​ប្រើ" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "លិážáž·ážâ€‹ážŸáž˜áŸ’គាល់របស់​អ្នក​ប្រើ​បាន​ផុážâ€‹áž€áŸ†ážŽážáŸ‹" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "បរាជáŸáž™â€‹áž€áŸ’នុង​ការ​កំណážáŸ‹â€‹áž›áž·ážáž·ážâ€‹ážŸáž˜áŸ’គាល់របស់អ្នក​ប្រើ" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "គ្មាន​ម៉ូឌុល​ទិន្ននáŸáž™áž‡áž¶áž€áŸ‹áž›áž¶áž€áŸ‹â€‹ážáŸ’រូវបង្ហាញ" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "បាន​ហុច​ធាážáž»áž˜áž·áž“​ល្អ​ទៅ​ឲ្យ to pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "កំហុស​សន្ទនា" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "កំហុស​រៀបចំ​ážáž¼ážáž¹áž“​ផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវ" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "áž–áŸážáŸŒáž˜áž¶áž“​ផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវ​មិន​អាច​ážáŸ’រូវ​យកបាន​វិញ" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "ការ​ចាក់សោ​ážáž¼ážáž¹áž“​ផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវកំពុង​ជាប់​រវល់" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "ភាព​ចាស់​របស់​ážáž¼ážáž¹áž“​ផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវ មិនបាន​អនុញ្ញាáž" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "ការពិនិážáŸ’យ​មើលដំបូង​ដោយ​សáŸážœáž¶â€‹áž–ាក្យ​សម្ងាážáŸ‹â€‹áž”ាន​បរាជáŸáž™" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "ážáž˜áŸ’លៃ​ážáŸ’រឡប់​គួរážáŸ’រូវ​បាន​មិនអើពើ​ដោយ​ការ​បញ្ជូន PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "មិន​ស្គាល់​ម៉ូឌុល" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "ážáž¼ážáž¹áž“ផ្ទៀងផ្ទាážáŸ‹â€‹áž—ាព​ážáŸ’រឹមážáŸ’រូវ​បាន​ផុážâ€‹áž€áŸ†ážŽážáŸ‹" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "ការ​សន្ទនា​កំពុង​រង់ចាំ​ព្រឹážáŸ’ážáž·áž€áž¶ážšážŽáŸ" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "កម្មវិធី​ážáŸ’រូវ​ážáŸ‚​ហៅ libpam ម្ដង​ទៀáž" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "មិន​ស្គាល់​កំហុស PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...អស់​ពáŸáž›...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...សូម​ទោស អ្នក​អស់​ពáŸáž›â€‹áž ើយ !\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "សន្ទនាច្រឡំ (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -240,63 +249,63 @@ msgid "" msgstr "" "%s ៖ [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " ពី %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " លើ %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ចូល​ចុងក្រោយ ៖%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "សូម​ស្វាគមនáŸâ€‹áž˜áž€â€‹áž€áž¶áž“់​គណនី​ážáŸ’មី​របស់​អ្នក !" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -304,194 +313,196 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "មាន​ការ​ចូល​ច្រើន​ពáŸáž€â€‹ážŸáž˜áŸ’រាប់ '%s' ។" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "អ្នក​មាន​សំបុážáŸ’រ​ážáŸ’មី ។" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "អ្នក​មាន​សំបុážáŸ’រ​ážáŸ’មី ។" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "អ្នក​មាន​សំបុážáŸ’រ​ចាស់ ។" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "អ្នក​មាន​សំបុážáŸ’រ ។" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "អ្នក​គ្មានសំបុážáŸ’រនៅ​ក្នុង​ážáž %s ។" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "អ្នក​មាន​សំបុážáŸ’រ​ážáŸ’មី​នៅ​ក្នុង​ážáž %s ។" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "អ្នក​មាន​សំបុážáŸ’រ​ចាស់​នៅ​ក្នុង​ážáž %s ។" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "អ្នក​មាន​សំបុážáŸ’រ​នៅ​ក្នុង​ážáž %s ។" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "ពាក្យសម្ងាážáŸ‹â€‹ážáŸ’រូវ​បាន​ប្រើ​រួច​ហើយ ។ សូម​ជ្រើស​មួយ​ទៀážÂ ។" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "ពាក្យសម្ងាážáŸ‹â€‹ážáŸ’រូវ​បាន​ប្រើ​រួច​ហើយ ។ សូម​ជ្រើស​មួយ​ទៀážÂ ។" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "មិន​មែន​ជា​បរិបទ​សុវážáŸ’ážáž·áž—ាព​ážáŸ’រឹមážáŸ’រូវ​មួយឡើយ" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "មិន​មែន​ជា​បរិបទ​សុវážáŸ’ážáž·áž—ាព​ážáŸ’រឹមážáŸ’រូវ​មួយឡើយ" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "បរិបទ​សុវážáŸ’ážáž·áž—áž¶áž– %s បាន​ផ្ដល់​ážáž˜áŸ’លៃ​" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "បរិបទ​សុវážáŸ’ážáž·áž—áž¶áž– %s បាន​ផ្ដល់​ážáž˜áŸ’លៃ​" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "បាន​បរាជáŸáž™â€‹áž€áŸ’នុង​ការ​ចាប់ផ្ដើម PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "បាន​បរាជáŸáž™ pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "ចូល ៖ ចម្លង​ážáŸ’លួន​ឯង​មិន​បាន​ជោគជáŸáž™Â ៖ %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "គណនី​របស់​អ្នក​បាន​ផុážáž€áŸ†ážŽážáŸ‹â€‹áž ើយ សូម​ទាក់ទង​អ្នក​គ្រប់គ្រង​ប្រពáŸáž“្ធ​របស់​អ្នក" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "អ្នក​ážáŸ’រូវ​ážáŸ‚​ផ្លាស់ប្ដូរ​ពាក្យសម្ងាážáŸ‹â€‹ážšáž”ស់​អ្នក​ឥឡូវ​នáŸáŸ‡ (root បាន​ចáŸáž‰â€‹áž”ញ្ជា)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "អ្នក​ážáŸ’រូវ​ážáŸ‚​ផ្លាស់ប្ដូរ​ពាក្យសម្ងាážáŸ‹â€‹ážšáž”ស់​អ្នក​ឥឡូវ​នáŸáŸ‡ (ពាក្យសម្ងាážáŸ‹â€‹áž…ាស់​ហើយ)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "មិន​អាច​ផ្លាស់ប្ដូរ​ពាក្យសម្ងាážáŸ‹ NIS បាន​ឡើយ ។" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "មិន​បាន​ផ្ដល់​ពាក្យសម្ងាážáŸ‹" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "មិន​អាច​ផ្លាស់ប្ដូរ​ពាក្យសម្ងាážáŸ‹ NIS បាន​ឡើយ ។" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "អ្នកážáŸ’រូវážáŸ‚ជ្រើសរើសពាក្យសម្ងាážáŸ‹ážáŸ’លី។" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "អ្នក​ážáŸ’រូវ​ážáŸ‚​ជ្រើស​ពាក្យសម្ងាážáŸ‹â€‹ážœáŸ‚ង​ជាង​នáŸáŸ‡" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "អ្នក​ážáŸ’រូវ​ážáŸ‚​រង់ចាំ​បន្ážáž·áž… ដើម្បី​ផ្លាស់ប្ដូរ​ពាក្យសម្ងាážáŸ‹â€‹ážšáž”ស់​អ្នក" diff --git a/po/kn.gmo b/po/kn.gmo Binary files differdeleted file mode 100644 index a1022d3e..00000000 --- a/po/kn.gmo +++ /dev/null @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2013-04-15 04:49-0400\n" "Last-Translator: shanky <prasad.mvs@gmail.com>\n" "Language-Team: Kannada (http://www.transifex.com/projects/p/fedora/language/" @@ -23,11 +23,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "ಗà³à²ªà³à²¤à²ªà²¦: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -38,6 +39,7 @@ msgstr "ಹೊಸ %sಗà³à²ªà³à²¤à²ªà²¦: " msgid "Current password: " msgstr "ಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -47,6 +49,7 @@ msgstr "ಹೊಸ %sಗà³à²ªà³à²¤à²ªà²¦: " msgid "New password: " msgstr "ಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -70,171 +73,177 @@ msgstr "%s ಅನà³à²¨à³ ಮರಳಿ ನಮೂದಿಸಿ" msgid "Password change has been aborted." msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಬದಲಾವಣೆಯನà³à²¨à³ ಸà³à²¥à²—ಿತಗೊಳಿಸಲಾಗಿದೆ." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "ಲಾಗಿನà³:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "ಯಶಸà³à²¸à³" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "ಸಂದಿಗà³à²§ ದೋಷ - ತಕà³à²·à²£ ಸà³à²¥à²—ಿತಗೊಳಿಸà³" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "ಮಾಡà³à²¯à³‚ಲನà³à²¨à³ ಲೋಡೠಮಾಡಲೠವಿಫಲವಾಗಿದೆ" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "ಸಂಜà³à²žà³† ಪತà³à²¤à³†à²¯à²¾à²—ಿಲà³à²²" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "ಸೇವಾ ಮಾಡà³à²¯à³‚ಲಿನಲà³à²²à²¿ ದೋಷ" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "ವà³à²¯à²µà²¸à³à²¥à³†à²¯ ದೋಷ" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "ಮೆಮೊರಿ ಬಫರೠದೋಷ" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "ಅನà³à²®à²¤à²¿à²¯à²¨à³à²¨à³ ನಿರಾಕರಿಸಲಾಗಿದೆ" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "ದೃಢೀಕರಣವೠವಿಫಲಗೊಂಡಿದೆ" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "ದೃಢೀಕರಣ ದತà³à²¤à²¾à²‚ಶವನà³à²¨à³ ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à²²à³ ರà³à²œà³à²µà²¾à²¤à³ ಸಾಕಷà³à²Ÿà³ ಇಲà³à²²" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "ದೃಢೀಕರಣ ಸೇವೆಯೠದೃಢೀಕರಣ ಮಾಹಿತಿಯನà³à²¨à³ ಹಿಂಪಡೆಯಲೠಆಗà³à²¤à³à²¤à²¿à²²à³à²²" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "ಕೆಳಗಿರà³à²µ ದೃಢೀಕರಣ ಮಾಡà³à²¯à³‚ಲಿಗೆ ಬಳಕೆದಾರನ ಬಗà³à²—ೆ ತಿಳಿದಿಲà³à²²à³à²²" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "ಸೇವೆಗಾಗಿನ ಗರಿಷà³à²Ÿ ಸಂಖà³à²¯à³†à²¯ ಪà³à²¨à²°à³ ಪà³à²°à²¯à²¤à³à²¨à²—ಳೆಲà³à²²à²¾ ಖಾಲಿಯಾಗಿವೆ" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "ದೃಢೀಕರಣ ಸಂಕೇತವೠಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ; ಹೊಸದೊಂದರ ಅಗತà³à²¯à²µà²¿à²¦à³†" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "ಬಳಕೆದಾರ ಖಾತೆಯೠಅವಧಿ ಅಂತà³à²¯à²µà²¾à²—ಿದೆ" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "ನಿಗದಿತ ಸೆಶನà³à²¨à²¿à²—ೆ ಒಂದೠನಮೂದನà³à²¨à³ ಮಾಡಲà³/ತೆಗೆದà³à²¹à²¾à²•ಲೠಆಗà³à²¤à³à²¤à²¿à²²à³à²²" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "ದೃಢೀಕರಣ ಸೇವೆಗೆ ಬಳಕೆದಾರನ ರà³à²œà³à²µà²¾à²¤à³à²—ಳನà³à²¨à³ ಹಿಂಪಡೆಯಲೠಆಗà³à²¤à³à²¤à²¿à²²à³à²²" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "ಬಳಕೆದಾರ ರà³à²œà³à²µà²¾à²¤à³à²—ಳ ಅವಧಿ ಅಂತà³à²¯à²—ೊಂಡಿದೆ" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ಬಳಕೆದಾರ ರà³à²œà³à²µà²¾à²¤à³à²—ಳನà³à²¨à³ ಸಂಯೋಜಿಸà³à²µà²²à³à²²à²¿ ವಿಫಲತೆ" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "ಮಾಡà³à²¯à³‚ಲೠನಿಶà³à²šà²¿à²¤ ದತà³à²¤à²¾à²‚ಶವೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item() ಗೆ ಒಂದೠಕೆಟà³à²Ÿ ಅಂಶವನà³à²¨à³ ರವಾನಿಸಲಾಗಿದೆ" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "ಸಂವಾದಾತà³à²®à²• ದೋಷ" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "ದೃಢೀಕರಣ ಸಂಕೇತದ ಕà³à²¶à²² ನಿರà³à²µà²¹à²£à³†à²¯à²²à³à²²à²¿à²¨ ದೋಷ" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "ದೃಢೀಕರಣ ಮಾಹಿತಿಯನà³à²¨à³ ಮರà³à²—ಳಿಸಲೠಆಗà³à²µà³à²¦à²¿à²²à³à²²" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "ದೃಢೀಕರಣ ಸಂಕೇತ ಲಾಕೠಕಾರà³à²¯à²®à²—à³à²¨à²µà²¾à²—ಿದೆ" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "ದೃಢೀಕರಣ ಸಂಕೇತದ ಕಾಲಾವಧಿ ಮೀರà³à²µà³à²¦à²¨à³à²¨à³ ಅಶಕà³à²¤à²—ೊಳಿಸಲಾಗಿದೆ" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಸೇವೆಯ ಪà³à²°à²¾à²¥à²®à²¿à²• ಪರೀಕà³à²·à³†à²—ಳೠವಿಫಲಗೊಂಡಿವೆ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "ಮರಳà³à²µ ಮೌಲà³à²¯à²µà²¨à³à²¨à³ PAM ರವಾನೆಯಿಂದ ಅಲಕà³à²·à²¿à²¸à²¬à³‡à²•à³" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "ಮಾಡà³à²¯à³‚ಲೠತಿಳಿದಿಲà³à²²" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "ದೃಢೀಕರಣ ಸಂಕೇತದ ಅವಧಿ ಅಂತà³à²¯à²—ೊಂಡಿದೆ" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "ಸಂವಾದವೠಕಾರà³à²¯à²•à³à²°à²®à²•à³à²•ಾಗಿ ಕಾಯà³à²¤à³à²¤à²¿à²¦à³†" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "ಅನà³à²µà²¯à²µà³ libpam ಅನà³à²¨à³ ಪà³à²¨à²ƒ ಕರೆಯಬೇಕಿದೆ" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "ಗೊತà³à²¤à²¿à²°à²¦ PAM ದೋಷ" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...ಸಮಯ ಸರಿಯà³à²¤à³à²¤à²¿à²¦à³†...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...ಕà³à²·à²®à²¿à²¸à²¿, ನಿಮà³à²® ಸಮಯ ಮà³à²—ಿಯಿತà³!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "ದೋಷಪೂರಿತ ಸಂವಾದ (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s ವಿಫಲಗೊಂಡಿದೆ: ನಿರà³à²—ಮಿಸಲೠಸಂಜà³à²žà³† %d " -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s ವಿಫಲಗೊಂಡಿದೆ: ಹಿಡಿಯಲಾದ ಸೂಚನೆ %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s ವಿಫಲಗೊಂಡಿದೆ: ಗೊತà³à²¤à²¿à²°à²¦ ಸà³à²¥à²¿à²¤à²¿ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -242,63 +251,63 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "ಪà³à²°à²µà³‡à²¶ ವಿಫಲತೆಗಳೠಇತà³à²¤à³€à²šà²¿à²¨ ವಿಫಲತೆ ಇಂದ\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "ವಿಫಲಗೊಂಡ %u ಪà³à²°à²µà³‡à²¶à²—ಳಿಂದಾಗಿ ಖಾತೆಯನà³à²¨à³ ಲಾಕೠಮಾಡಲಾಗà³à²¤à³à²¤à²¿à²¦à³†" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s ನಿಂದ" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s ನಲà³à²²à²¿" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ಕೊನೆಯ ಲಾಗಿನà³:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "ನಿಮà³à²® ಹೊಸ ಖಾತೆಗೆ ಸà³à²¸à³à²µà²¾à²—ತ!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "ಕೊನೆಯ ಲಾಗಿನà³:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -306,195 +315,197 @@ msgid_plural "" msgstr[0] "ಕೊನೆಯ ಬಾರಿಯ ಯಶಸà³à²µà²¿ ಪà³à²°à²µà³‡à²¶à²¦ ನಂತರ %d ವಿಫಲಗೊಂಡ ಪà³à²°à²¯à²¤à³à²¨à²—ಳಿವೆ." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "ಕೊನೆಯ ಬಾರಿಯ ಯಶಸà³à²µà²¿ ಪà³à²°à²µà³‡à²¶à²¦ ನಂತರ %d ಪà³à²°à²µà³‡à²¶à²¦ ಪà³à²°à²¯à²¤à³à²¨à²—ಳೠವಿಫಲಗೊಂಡಿದೆ." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s'ಗಾಗಿ ಬಹಳಷà³à²Ÿà³ ಲಾಗಿನà³à²¨à³à²—ಳà³." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "ನಿಮಗಾಗಿ ಹೊಸ ಮೈಲೠಇದೆ." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "ನಿಮಗಾಗಿ ಹೊಸ ಮೈಲೠಇದೆ." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "ನಿಮಗಾಗಿ ಹಳೆ ಮೈಲೠಇದೆ." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "ನಿಮಗಾಗಿ ಮೈಲೠಇದೆ." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "%s ಫೋಲà³à²¡à²°à²¿à²¨à²²à³à²²à²¿ ನಿಮಗಾಗಿ ಯಾವà³à²¦à³† ಮೈಲೠಇಲà³à²²." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "%s ಫೋಲà³à²¡à²°à²¿à²¨à²²à³à²²à²¿ ನಿಮಗಾಗಿ ಹೊಸ ಮೈಲೠಇದೆ." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "%s ಫೋಲà³à²¡à²°à²¿à²¨à²²à³à²²à²¿ ನಿಮಗಾಗಿ ಹಳೆ ಮೈಲೠಇದೆ." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "%s ಫೋಲà³à²¡à²°à²¿à²¨à²²à³à²²à²¿ ನಿಮಗಾಗಿ ಮೈಲೠಇದೆ." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "ಕೋಶ '%s' ಅನà³à²¨à³ ರಚಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ಕೋಶ '%s' ಅನà³à²¨à³ ರಚಿಸಲೠಹಾಗೠಆರಂà²à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²µà³ ಈಗಾಗಲೆ ಬಳಸಲà³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†. ಬೇರೊಂದನà³à²¨à³ ಬಳಸಿ." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಈಗಾಗಲೆ ಬಳಸಲಾಗಿದೆ." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "ಡೀಫಾಲà³à²Ÿà³â€ ಸà³à²°à²•à³à²·à²¤à²¾ ಸನà³à²¨à²¿à²µà³‡à²¶ %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "ನೀವೠನೀವೠಬೇರೊಂದೠಪಾತà³à²° ಅಥವ ಮಟà³à²Ÿà²µà²¨à³à²¨à³ ದಾಖಲಿಸಲೠಇಚà³à²›à²¿à²¸à³à²¤à³à²¤à³€à²°?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ಪಾತà³à²°:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "%s ಪಾತà³à²°à²•à³à²•ಾಗಿ ಯಾವà³à²¦à³† ಡೀಫಾಲà³à²Ÿà³â€ ಬಗೆ ಇಲà³à²²\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "ಮಟà³à²Ÿ:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "ಸಮಂಜಸವಾದ ಸà³à²°à²•à³à²·à²¤à²¾ ಸನà³à²¨à²¿à²µà³‡à²¶ ಅಲà³à²²" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "ಸà³à²°à²•à³à²·à²¤à²¾ ಸನà³à²¨à²¿à²µà³‡à²¶ %s ವನà³à²¨à³ ನಿಯೋಜಿಸಲಾಗಿದೆ" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "ಕೀಲಿ ನಿರà³à²®à²¾à²£ ಸನà³à²¨à²¿à²µà³‡à²¶ %s ವನà³à²¨à³ ನಿಯೋಜಿಸಲಾಗಿದೆ" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM ಅನà³à²¨à³ ಆರಂà²à²¿à²¸à³à²µà²²à³à²²à²¿à²¨ ವಿಫಲತೆ\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() ಮಾಡà³à²µà²²à³à²²à²¿ ವಿಫಲತೆ\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "ಲಾಗಿನà³: ಫೋರà³à²•ಿಂಗೠಮಾಡà³à²µà²²à³à²²à²¿ ವಿಫಲತೆ:%m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" "ಅನà³à²®à²¤à²¿à²¯à²¨à³à²¨à³ ನೀಡಲಾಗಿದೆ (ಕೊನೆಯ ಬಾರಿಗೆ %ld ಸೆಕೆಂಡà³à²—ಳ ಹಿಂದೆ ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à²²à²¾à²—ಿತà³à²¤à³)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "ನಿಮà³à²® ಖಾತೆಯ ಅವಧಿ ಅಂತà³à²¯à²—ೊಂಡಿದೆ; ದಯವಿಟà³à²Ÿà³ ನಿಮà³à²® ಗಣಕ ವà³à²¯à²µà²¸à³à²¥à²¾à²ªà²•ರನà³à²¨à³ ಸಂಪರà³à²•ಿಸಿ" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "ನೀವೠಈ ಕೂಡಲೆ ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಿಸà³à²µ ಅಗತà³à²¯à²µà²¿à²¦à³† (ಮೂಲದಿಂದ ಒತà³à²¤à²¾à²¯à²¿à²¤à²µà²¾à²—ಿದೆ)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "" "ನೀವೠಈ ಕೂಡಲೆ ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಿಸà³à²µ ಅಗತà³à²¯à²µà²¿à²¦à³† (ಗà³à²ªà³à²¤à²ªà²¦à²µà³ ಬಹಳ ಹಳೆಯದಾಗಿದೆ)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "ಎಚà³à²šà²°à²¿à²•ೆ: ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²¦ ವಾಯಿದೆಯೠ%d ದಿನಗಳ ನಂತರ ತೀರಿಹೋಗà³à²¤à³à²¤à²¦à³†" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "ಎಚà³à²šà²°à²¿à²•ೆ: %d ದಿನಗಳಲà³à²²à²¿ ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²¦ ಅವಧಿ ಅಂತà³à²¯à²—ೊಳà³à²³à³à²¤à³à²¤à²¦à³†" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²à³à²²." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "ಯಾವà³à²¦à³‡ ಗà³à²ªà³à²¤à²ªà²¦ ನೀಡಲಾಗಿಲà³à²²" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²à³à²²." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "ನೀವೠಕಡಿಮೆ ಪಾಸà³â€Œà²µà²°à³à²¡à³ ಅನà³à²¨à³ ಆರಿಸಬೇಕà³." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "ನೀವೠಒಂದೠಉದà³à²¦à²µà²¾à²¦ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಬೇಕà³" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s ಗಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲಾಗà³à²¤à³à²¤à²¿à²¦à³†." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠನೀವೠಬಹಳ ಸಮಯ ಕಾಯಬೇಕà³" diff --git a/po/ko.gmo b/po/ko.gmo Binary files differdeleted file mode 100644 index be272149..00000000 --- a/po/ko.gmo +++ /dev/null @@ -8,14 +8,14 @@ # eukim <eukim@redhat.com>, 2012 # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata # simmon <simmon@nplob.com>, 2021. -# Seong-ho Cho <darkcircle.0426@gmail.com>, 2021, 2022, 2023. -# ê¹€ì¸ìˆ˜ <simmon@nplob.com>, 2022, 2023. +# Seong-ho Cho <darkcircle.0426@gmail.com>, 2021, 2022, 2023, 2024. +# ê¹€ì¸ìˆ˜ <simmon@nplob.com>, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2023-04-23 04:20+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2024-10-02 05:38+0000\n" "Last-Translator: ê¹€ì¸ìˆ˜ <simmon@nplob.com>\n" "Language-Team: Korean <https://translate.fedoraproject.org/projects/linux-" "pam/master/ko/>\n" @@ -24,39 +24,42 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15.2\n" +"X-Generator: Weblate 5.7.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " -msgstr "암호: " +msgstr "비밀번호: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " -msgstr "현재 %s ì‚¬ìš©ìž ë¹„ë°€ë²ˆí˜¸: " +msgstr "현재 %s 비밀번호: " #: libpam/pam_get_authtok.c:43 msgid "Current password: " msgstr "현재 비밀번호: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " -msgstr "ì‹ ê·œ %s ì‚¬ìš©ìž ë¹„ë°€ë²ˆí˜¸: " +msgstr "ì‹ ê·œ %s 비밀번호: " #: libpam/pam_get_authtok.c:46 msgid "New password: " msgstr "ì‹ ê·œ 비밀번호: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " -msgstr "ì‹ ê·œ %s 비밀번호 재 ìž…ë ¥: " +msgstr "ì‹ ê·œ %s 비밀번호 ìž¬ìž…ë ¥: " #: libpam/pam_get_authtok.c:49 msgid "Retype new password: " -msgstr "ì‹ ê·œ 비밀번호 재 ìž…ë ¥: " +msgstr "ì‹ ê·œ 비밀번호 ìž¬ìž…ë ¥: " #: libpam/pam_get_authtok.c:50 msgid "Sorry, passwords do not match." @@ -65,177 +68,183 @@ msgstr "죄송하지만, 비밀번호가 ì¼ì¹˜í•˜ì§€ 않습니다." #: libpam/pam_get_authtok.c:143 libpam/pam_get_authtok.c:245 #, c-format msgid "Retype %s" -msgstr "%sì„(를) 다시 ìž…ë ¥í•˜ì„¸ìš”" +msgstr "%s를 다시 ìž…ë ¥í•˜ì„¸ìš”" #: libpam/pam_get_authtok.c:183 libpam/pam_get_authtok.c:263 msgid "Password change has been aborted." -msgstr "비밀번호 ë³€ê²½ì„ ì·¨ì†Œí–ˆìŠµë‹ˆë‹¤." +msgstr "비밀번호 ë³€ê²½ì´ ì¤‘ë‹¨ë˜ì—ˆìŠµë‹ˆë‹¤." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "로그ì¸:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "성공" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "치명ì ì¸ ì˜¤ë¥˜ - 즉시 중지" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "모듈 불러오기 실패" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" -msgstr "ì‹¬ë³¼ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ" +msgstr "기호를 ì°¾ì„ ìˆ˜ ì—†ìŒ" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "서비스 모듈ì—서 오류 ë°œìƒ" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "시스템 오류" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "메모리 ë²„í¼ ì˜¤ë¥˜" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "권한 부여 ê±°ë¶€" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "ì¸ì¦ 실패" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "ì¸ì¦ ìžë£Œ ì ‘ê·¼ì— ë¶ˆì¶©ë¶„í•œ ì¸ì¦ ì •ë³´" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "ì¸ì¦ 서비스ì—서 ì¸ì¦ ì •ë³´ë¥¼ ê°€ì ¸ì˜¬ 수 없습니다" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "기본 ì¸ì¦ 모듈ì—서 알 수 없는 사용ìž" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "서비스 ìž¬ì‹œë„ ìµœëŒ€ 횟수를 넘었습니다" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" -msgstr "ì¸ì¦ í† í°ì´ ë” ì´ìƒ 올바르지 않습니다. 새 ì¸ì¦ í† í°ì´ 필요합니다" +msgstr "ì¸ì¦ í† í°ì´ ë” ì´ìƒ ìœ íš¨í•˜ì§€ 않습니다. 새로운 ì¸ì¦ í† í°ì´ 필요합니다" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" -msgstr "ì‚¬ìš©ìž ê³„ì • ìœ íš¨ ê¸°ê°„ì´ ì§€ë‚¨" +msgstr "ì‚¬ìš©ìž ê³„ì •ì´ ë§Œë£Œë˜ì—ˆìŠµë‹ˆë‹¤" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "ì§€ì •ëœ ì„¸ì…˜ì„ ìœ„í•œ í•ëª©ì„ ìƒì„±/ì œê±° í• ìˆ˜ 없습니다" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "ì¸ì¦ 서비스ì—서 ì‚¬ìš©ìž ì¸ì¦ ì •ë³´ë¥¼ ê°€ì ¸ì˜¬ 수 없습니다" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" -msgstr "ì‚¬ìš©ìž ì¸ì¦ ìœ íš¨ ê¸°ê°„ì´ ì§€ë‚¬ìŠµë‹ˆë‹¤" +msgstr "ì‚¬ìš©ìž ì¸ì¦ 만료ë¨" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ì‚¬ìš©ìž ì¸ì¦ ì„¤ì • 실패" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "ëª¨ë“ˆì— í•´ë‹¹í•˜ëŠ” ë°ì´í„°ê°€ 없습니다" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item()ì— ìž˜ëª»ëœ í•ëª©ì„ ì „ë‹¬í–ˆìŠµë‹ˆë‹¤" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" -msgstr "대화 오류" +msgstr "ì •ë³´êµí™˜ 오류" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" -msgstr "ì¸ì¦ í† í° ì²˜ë¦¬ 오류" +msgstr "ì¸ì¦ í† í° ì¡°ìž‘ 오류" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "ì¸ì¦ ì •ë³´ë¥¼ ë³µêµ¬í• ìˆ˜ 없습니다" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "ì¸ì¦ í† í° ìž ê¸ˆ 사용 중" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" -msgstr "ì¸ì¦ í† í° ê¸°í•œ 사용 안함" +msgstr "ì¸ì¦ í† í° ê¸°í•œì´ ë¹„í™œì„±í™”ë©ë‹ˆë‹¤" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" -msgstr "비밀번호 서비스ì—서 ì‚¬ì „ 검사 실패" +msgstr "비밀번호 서비스ì—서 ì‚¬ì „ 검사 실패함" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" -msgstr "PAM ì •ë³´ ì „ì†¡ì‹œ 반환 ê°’ì€ ë¬´ì‹œí•´ì•¼ 합니다" +msgstr "반환 ê°’ì€ PAM ì „ì†¡ì— ì˜í•´ 무시ë©ë‹ˆë‹¤" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "ëª¨ë“ˆì„ ì•Œ 수 ì—†ìŒ" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "ì¸ì¦ í† í° ìœ íš¨ ê¸°ê°„ì´ ì§€ë‚¨" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" -msgstr "ì´ë²¤íЏ 처리 ê³¼ì •ì„ ê¸°ë‹¤ë¦¬ëŠ” 중입니다" +msgstr "ì •ë³´êµí™˜ì„ 위해 ì´ë²¤íŠ¸ë¥¼ 대기 중입니다" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "프로그램ì—서 libpamì„ ë‹¤ì‹œ 불러와야 합니다" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "알 수 없는 PAM 오류" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...ì‹œê°„ì´ ì´‰ë°•í•©ë‹ˆë‹¤...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...미안합니다, ì‹œê°„ì´ ë‹¤ ë˜ì—ˆìŠµë‹ˆë‹¤!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" -msgstr "ìž˜ëª»ëœ ì¸ì¦ ì²˜ë¦¬ê³¼ì • (%d)\n" +msgstr "ìž˜ëª»ëœ ì •ë³´êµí™˜ (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" -msgstr "%s 실패: 종료 코드 %d" +msgstr "%s 실패함: 종료 코드 %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s 실패함: ì‹œê·¸ë„ ë°œìƒ %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s 실패함: 알 수 없는 ìƒíƒœ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -244,251 +253,253 @@ msgstr "" "사용법: %s [--dir /path/to/tally-directory] [--user <사용ìžì´ë¦„>] [--reset] " "[--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "ë¡œê·¸ì¸ ì‹¤íŒ¨íšŸìˆ˜ 최근 실패 ì ‘ê·¼ 호스트\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "로그ì¸ì— %u번 실패하여 ê³„ì •ì´ ìž ê²¼ìŠµë‹ˆë‹¤." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "(ìž ê¸ˆ í•´ì œê¹Œì§€ %dë¶„ 남았습니다)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(ìž ê¸ˆ í•´ì œê¹Œì§€ %dë¶„ 남았습니다)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" -msgstr " %Yë…„ %b %eì¼ (%a) %H:%M:%S %Z" +msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*sì—서" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*sì—" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" -msgstr "마지막 로그ì¸:%s%s%s" +msgstr "최근 로그ì¸:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" -msgstr "새 ê³„ì •ì— ì˜¤ì‹ ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤!" +msgstr "ì‹ ê·œ ê³„ì •ì— ì˜¤ì‹ ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" -msgstr "마지막 실패한 로그ì¸:%s%s%s" +msgstr "최근 실패한 로그ì¸:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" "There were %d failed login attempts since the last successful login." -msgstr[0] "마지막 ë¡œê·¸ì¸ í›„ ë¡œê·¸ì¸ ì‹œë„를 %d번 실패했습니다." +msgstr[0] "최근 ë¡œê·¸ì¸ í›„ ë¡œê·¸ì¸ ì‹œë„를 %d번 실패했습니다." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." -msgstr "마지막 ë¡œê·¸ì¸ í›„ ë¡œê·¸ì¸ ì‹œë„를 %d번 실패했습니다." +msgstr "최근 ë¡œê·¸ì¸ í›„ ë¡œê·¸ì¸ ì‹œë„를 %d번 실패했습니다." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." -msgstr "'%s' ê³„ì •ì— ë„ˆë¬´ ë§Žì´ ë¡œê·¸ì¸í–ˆìŠµë‹ˆë‹¤." +msgstr "'%s' ê³„ì •ì— ë„ˆë¬´ ë§Žì€ ë¡œê·¸ì¸ ì‹œë„ê°€ 있었습니다." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "새 ì „ìžë©”ì¼ì´ 없습니다." +msgstr "ì‹ ê·œ ì „ìžìš°íŽ¸ì´ ì—†ìŠµë‹ˆë‹¤." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." -msgstr "새 ì „ìžë©”ì¼ì´ 있습니다." +msgstr "ì‹ ê·œ ì „ìžìš°íŽ¸ì´ ìžˆìŠµë‹ˆë‹¤." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." -msgstr "ì˜¤ëž˜ëœ ì „ìžë©”ì¼ì´ 있습니다." +msgstr "ì˜¤ëž˜ëœ ì „ìžìš°íŽ¸ì´ ìžˆìŠµë‹ˆë‹¤." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." -msgstr "ì „ìžë©”ì¼ì´ 있습니다." +msgstr "ì „ìžìš°íŽ¸ì´ ìžˆìŠµë‹ˆë‹¤." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." -msgstr "%s í´ë”ì— ì „ìžë©”ì¼ì´ 없습니다." +msgstr "%s í´ë”ì— ì „ìžìš°íŽ¸ì´ ì—†ìŠµë‹ˆë‹¤." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." -msgstr "%s í´ë”ì— ì‹ ê·œ ì „ìžë©”ì¼ì´ 있습니다." +msgstr "%s í´ë”ì— ì‹ ê·œ ì „ìžìš°íŽ¸ì´ ìžˆìŠµë‹ˆë‹¤." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." -msgstr "%s í´ë”ì— ì˜¤ëž˜ëœ ì „ìžë©”ì¼ì´ 있습니다." +msgstr "%s í´ë”ì— ì˜¤ëž˜ëœ ì „ìžìš°íŽ¸ì´ ìžˆìŠµë‹ˆë‹¤." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." -msgstr "%s í´ë”ì— ì „ìžë©”ì¼ì´ 있습니다." +msgstr "%s í´ë”ì— ì „ìžìš°íŽ¸ì´ ìžˆìŠµë‹ˆë‹¤." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "ë””ë ‰í† ë¦¬ '%s'를 ìƒì„± 중." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ë””ë ‰í† ë¦¬ '%s'를 ìƒì„±í•˜ê³ 초기화 í• ìˆ˜ ì—†ìŒ." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "ì´ë¯¸ ì‚¬ìš©í•˜ê³ ìžˆëŠ” 비밀번호입니다. 다른 ê²ƒì„ ì‚¬ìš©í•˜ì„¸ìš”." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "ì´ë¯¸ ì‚¬ìš©í•˜ê³ ìžˆëŠ” 비밀번호입니다." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." -msgstr "기본 보안 컨í…스트는 %s 입니다." +msgstr "기본 보안 ë¬¸ë§¥ì€ %s 입니다." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "다른 ì—í• ë˜ëŠ” ìˆ˜ì¤€ì„ ìž…ë ¥í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ì—í• :" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "%s ì—í• ì˜ ê¸°ë³¸ê°’ 형ì‹ì´ 없습니다." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "수준:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." -msgstr "ì ì ˆí•œ 보안 컨í…스트가 아닙니다." +msgstr "ì´ëŠ” ìœ íš¨í•œ 보안 ë¬¸ë§¥ì´ ì•„ë‹™ë‹ˆë‹¤." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." -msgstr "%sì˜ ì ì ˆí•œ 컨í…스트를 ê°€ì ¸ì˜¬ 수 없습니다." +msgstr "%s를 위한 ìœ íš¨í•œ ë¬¸ë§¥ì„ ê°€ì ¸ì˜¬ 수 없습니다." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." -msgstr "%s 보안 컨í…스트를 í• ë‹¹í–ˆìŠµë‹ˆë‹¤." +msgstr "보안 문맥 %sê°€ í• ë‹¹ë˜ì—ˆìŠµë‹ˆë‹¤." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." -msgstr "%s 키 ìƒì„± 컨í…스트를 í• ë‹¹í–ˆìŠµë‹ˆë‹¤." +msgstr "키 ìƒì„± 문맥 %sê°€ í• ë‹¹ë˜ì—ˆìŠµë‹ˆë‹¤." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" -msgstr "PAM 초기화 실패\n" +msgstr "PAM ì´ˆê¸°í™”ì— ì‹¤íŒ¨í•¨\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" -msgstr "pam_set_item() 실패\n" +msgstr "pam_set_item() ì‹¤íŒ¨ì— ì‹¤íŒ¨í•¨\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" -msgstr "로그ì¸: í¬í¬ 작업 실패: %m" +msgstr "로그ì¸: í¬í‚¹ 실패: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." -msgstr "ì ‘ê·¼ì„ í—ˆìš©í•©ë‹ˆë‹¤ (마지막 ì ‘ê·¼: %ld ì´ˆ ì „)." +msgstr "ì ‘ê·¼ì´ í—ˆìš©ë˜ì—ˆìŠµë‹ˆë‹¤ (최종 ì ‘ê·¼ì€ %ld ì´ˆ ì „ ì´ì—ˆìŠµë‹ˆë‹¤)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." -msgstr "ê³„ì • ìœ íš¨ ê¸°ê°„ì´ ì§€ë‚¬ìŠµë‹ˆë‹¤. 시스템 관리ìžì—게 문ì˜í•˜ì‹ì‹œì˜¤." +msgstr "ë‹¹ì‹ ì˜ ê³„ì •ì´ ë§Œë£Œë˜ì—ˆìŠµë‹ˆë‹¤; 시스템 관리ìžì—게 ì—°ë½í•˜ì„¸ìš”." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." -msgstr "비밀번호를 즉시 바꾸어야 합니다 (ê´€ë¦¬ìž ê°•ì œ 사í•)." +msgstr "ë‹¹ì‹ ì˜ ë¹„ë°€ë²ˆí˜¸ë¥¼ 긴급히 변경해야 합니다 (ê´€ë¦¬ìž ê°•ì œ 사í•)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." -msgstr "비밀번호를 즉시 바꾸어야 합니다 (암호 기간 만료)." +msgstr "ë‹¹ì‹ ì˜ ë¹„ë°€ë²ˆí˜¸ë¥¼ 긴급히 변경해야 합니다. (비밀번호가 만료ë˜ì—ˆìŠµë‹ˆë‹¤)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." -msgstr[0] "ê²½ê³ : 비밀번호는 %dì¼ í›„ ìœ íš¨ ê¸°ê°„ì´ ë납니다." +msgstr[0] "ê²½ê³ : 비밀번호는 %dì¼ í›„ ìœ íš¨ ê¸°ê°„ì´ ë§Œë£Œë©ë‹ˆë‹¤." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." -msgstr "ê²½ê³ : 비밀번호는 %dì¼ í›„ ìœ íš¨ ê¸°ê°„ì´ ë납니다." +msgstr "ê²½ê³ : ë‹¹ì‹ ì˜ ë¹„ë°€ë²ˆí˜¸ëŠ” %dì¼ ë‚´ì— ìœ íš¨ ê¸°ê°„ì´ ë§Œë£Œë©ë‹ˆë‹¤." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." -msgstr "NIS 비밀번호는 변경 í• ìˆ˜ 없습니다." +msgstr "NIS 비밀번호는 변경 ë 수 없습니다." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." -msgstr "비밀번호를 ìž…ë ¥í•˜ì§€ 않았습니다." +msgstr "ì–´ë–¤ 비밀번호를 ì œê³µë˜ì§€ 않았습니다." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." -msgstr "비밀번호를 변경하지 않았습니다." +msgstr "비밀번호가 변경ë˜ì§€ 않았습니다." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." -msgstr "ë” ì§§ì€ ë¹„ë°€ë²ˆí˜¸ë¥¼ ì„¤ì •í•´ì•¼ 합니다." +msgstr "ë” ì§§ì€ ë¹„ë°€ë²ˆí˜¸ë¥¼ ì„ íƒí•´ì•¼ 합니다." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." -msgstr "ë” ê¸´ 비밀번호를 ì„¤ì •í•´ì•¼ 합니다." +msgstr "ë” ê¸´ 비밀번호를 ì„ íƒí•´ì•¼ 합니다." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." -msgstr "%s를 위한 비밀번호 변경하기." +msgstr "%s를 위한 비밀번호 변경 중." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." -msgstr "ìžì‹ ì˜ ë¹„ë°€ë²ˆí˜¸ë¥¼ ë³€ê²½í•˜ë ¤ë©´ 조금 ë” ê¸°ë‹¤ë ¤ì•¼ 합니다." +msgstr "ë‹¹ì‹ ì˜ ë¹„ë°€ë²ˆí˜¸ë¥¼ ë³€ê²½í•˜ë ¤ë©´ 조금 ë” ê¸°ë‹¤ë ¤ì•¼ 합니다." #~ msgid "You have no mail." #~ msgstr "ì „ìžë©”ì¼ì´ 없습니다." diff --git a/po/kw_GB.gmo b/po/kw_GB.gmo Binary files differdeleted file mode 100644 index 7bfbe7ea..00000000 --- a/po/kw_GB.gmo +++ /dev/null diff --git a/po/kw_GB.po b/po/kw_GB.po index bbf32b3c..81f76ff0 100644 --- a/po/kw_GB.po +++ b/po/kw_GB.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM 1.2.1\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Cornish (United Kingdom)\n" @@ -19,11 +19,12 @@ msgstr "" "3\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -33,6 +34,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -42,6 +44,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -64,189 +67,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -256,45 +265,45 @@ msgstr[2] "" msgstr[3] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -453,36 +464,36 @@ msgstr[2] "" msgstr[3] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "" diff --git a/po/ky.gmo b/po/ky.gmo Binary files differdeleted file mode 100644 index 92ed503b..00000000 --- a/po/ky.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Kirgyz (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,234 +68,240 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -300,187 +309,189 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Сиз кыÑка Ñөздү тандоо керек." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Сиз кыÑка Ñөздү тандоо керек." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Сиз кыÑка Ñөздү тандоо керек." diff --git a/po/lt.gmo b/po/lt.gmo Binary files differdeleted file mode 100644 index 17541aa1..00000000 --- a/po/lt.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Lithuanian (http://www.transifex.com/projects/p/fedora/" @@ -21,11 +21,12 @@ msgstr "" "%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +46,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,189 +69,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -257,45 +266,45 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -305,148 +314,150 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -455,39 +466,39 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Turite pasirinkti trumpesnį slaptažodį." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Turite pasirinkti trumpesnį slaptažodį." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Turite pasirinkti trumpesnį slaptažodį." diff --git a/po/lv.gmo b/po/lv.gmo Binary files differdeleted file mode 100644 index 0bfd1ffb..00000000 --- a/po/lv.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Latvian (http://www.transifex.com/projects/p/fedora/language/" @@ -21,11 +21,12 @@ msgstr "" "2);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +46,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,189 +69,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -257,45 +266,45 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -305,148 +314,150 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -455,39 +466,39 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Jums jÄizvÄ“las Ä«sÄka parole." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Jums jÄizvÄ“las Ä«sÄka parole." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Jums jÄizvÄ“las Ä«sÄka parole." diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 00000000..bfd0937d --- /dev/null +++ b/po/meson.build @@ -0,0 +1,15 @@ +if not find_program('gettext', required: get_option('i18n')).found() + subdir_done() +endif + +i18n = import('i18n') +i18n.gettext( + meson.project_name(), + preset: 'glib', + data_dirs: '.', + args: [ + '--copyright-holder=Linux-PAM Project', + '--msgid-bugs-address=https://github.com/linux-pam/linux-pam/issues', + '--package-version=1.7.0', + ], +) diff --git a/po/mk.gmo b/po/mk.gmo Binary files differdeleted file mode 100644 index 0199a746..00000000 --- a/po/mk.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/fedora/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Мора да изберете пократка лозинка." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Мора да изберете пократка лозинка." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Мора да изберете пократка лозинка." diff --git a/po/ml.gmo b/po/ml.gmo Binary files differdeleted file mode 100644 index ca5e541d..00000000 --- a/po/ml.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2013-04-15 01:55-0400\n" "Last-Translator: Ani Peter <apeter@redhat.com>\n" "Language-Team: Malayalam <discuss@lists.smc.org.in>\n" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "അടയാളവാകàµà´•àµ: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "à´ªàµà´¤à´¿à´¯ %s അടയാളവാകàµà´•àµ: " msgid "Current password: " msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµ: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +46,7 @@ msgstr "à´ªàµà´¤à´¿à´¯ %s അടയാളവാകàµà´•àµ: " msgid "New password: " msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµ: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -67,171 +70,177 @@ msgstr "%s വീണàµà´Ÿàµà´‚ ടൈപàµà´ªàµ ചെയàµà´¯àµà´•" msgid "Password change has been aborted." msgstr "അടയാളവാകàµà´•ൠമാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤àµàµ നിരàµâ€à´¤àµà´¤à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "ലോഗിനàµâ€:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "വിജയിചàµà´šàµ" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "à´—àµà´°àµà´¤à´°à´®à´¾à´¯ പിശകൠ- ഉടനàµâ€ അവസാനിപàµà´ªà´¿à´•àµà´•àµà´•" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "മൊഡàµà´¯àµ‚à´³àµâ€ à´²à´àµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "à´šà´¿à´¹àµà´¨à´‚ à´²à´àµà´¯à´®à´¾à´¯à´¿à´²àµà´²" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "സരàµâ€à´µàµ€à´¸àµ മൊഡàµà´¯àµ‚ളിലàµâ€ പിഴവàµ" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "സിസàµà´±àµà´±à´®à´¿à´²àµâ€ പിഴവàµ" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "മെമàµà´®à´±à´¿ ബഫറിലàµâ€ പിശകàµ" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´²àµà´²" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "ആധികാരികത ഉറപàµà´ªà´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പിശകàµ" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "ആധികാരികത ഉറപàµà´ªà´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ മതിയായ ഡേറàµà´±à´¾ à´²à´àµà´¯à´®à´¾à´²àµà´²" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "ആധികാരികത ഉറപàµà´ªà´¾à´•àµà´•àµà´¨àµà´¨ സരàµâ€à´µàµ€à´¸à´¿à´¨àµ, ആവശàµà´¯à´®àµà´³à´³ വിവരങàµà´™à´³àµâ€ à´²à´àµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ ഓഥനàµà´±à´¿à´•àµà´•േഷനàµâ€ മൊഡàµà´¯àµ‚ളിലàµâ€ ഉപയോകàµà´¤à´¾à´µàµàµ à´²à´àµà´¯à´®à´²àµà´²" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "സരàµâ€à´µàµ€à´¸àµ ഇനി à´²à´àµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´¤à´²àµà´²" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "ഓഥനàµà´±à´¿à´•àµà´•േഷനàµâ€ ടോകàµà´•à´¨àµà´±àµ† കാലാവധി à´•à´´à´¿à´žàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ; à´ªàµà´¤à´¿à´¯à´¤àµ നലàµâ€à´•àµà´•" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† à´…à´•àµà´•ൌണàµà´Ÿà´¿à´¨àµà´±àµ† കാലാവധി അവസാനിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ സെഷനൠആവശàµà´¯à´®àµà´³à´³ à´Žà´¨àµâ€à´Ÿàµà´°à´¿ ഉണàµà´Ÿà´¾à´•àµà´•àµà´µà´¾à´¨àµ‹ നീകàµà´•àµà´µà´¾à´¨àµ‹ സാധàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´²àµà´²" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "ഓഥനàµà´±à´¿à´•àµà´•േഷനàµâ€ സരàµâ€à´µàµ€à´¸à´¿à´¨àµ ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† വിവരങàµà´™à´³àµâ€ à´²à´àµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† ആനàµà´•ൂലàµà´¯à´™àµà´™à´³àµà´Ÿàµ† കാലാവധി അവസാനിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ ആനàµà´•ൂലàµà´¯à´™àµà´™à´³àµâ€ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "മൊഡàµà´¯àµ‚à´³àµâ€ à´…à´¨àµà´¸à´°à´¿à´šàµà´šàµà´³à´³ ഡേറàµà´± à´²à´àµà´¯à´®à´²àµà´²" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item()-ലേകàµà´•ൠതെറàµà´±à´¾à´¯ വസàµà´¤àµ നലàµâ€à´•ിയിരികàµà´•àµà´¨àµà´¨àµ" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "സംവാദതàµà´¤à´¿à´²àµà´³à´³ പിശകàµ" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "à´“à´«à´¨àµà´±à´¿à´•àµà´•േഷനàµâ€ ടോകàµà´•à´¨àµâ€ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പിശകàµ" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "ഓഥനàµà´±à´¿à´•àµà´•േഷനàµâ€ വിവരം വീണàµà´Ÿàµ†à´Ÿàµà´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "ഓഥനàµà´±à´¿à´•àµà´•േഷനàµâ€ ടോകàµà´•à´¨àµâ€ ലോകàµà´•ൠഉപയോഗതàµà´¤à´¿à´²à´¾à´£àµ" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "ഓഥനàµà´±à´¿à´•àµà´•േഷനàµâ€ ടോകàµà´•à´¨àµâ€ à´à´œà´¿à´™àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ രഹിതമാണàµ" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "അടയാളവാകàµà´•ൠസരàµâ€à´µàµ€à´¸à´¿à´¨àµà´±àµ† ആദàµà´¯à´¤àµà´¤àµ† പരിശോധന പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "തിരികെ നലàµâ€à´•àµà´¨àµà´¨ മൂലàµà´²àµà´¯à´‚ PAM à´¡à´¿à´¸àµà´ªà´¾à´šàµà´šàµ അവഗണികàµà´•േണàµà´Ÿà´¤à´¾à´•àµà´¨àµà´¨àµ" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "മൊഡàµà´¯àµ‚à´³àµâ€ à´²à´àµà´¯à´®à´²àµà´²" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "ഓഥനàµà´±à´¿à´•àµà´•േഷനàµâ€ ടോകàµà´•à´¨àµà´±àµ† കാലാവധി അവസാനിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "സംവാദം ഒരൠഇവനàµà´±à´¿à´¨à´¾à´¯à´¿ കാതàµà´¤à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€à´•àµà´•ൠവീണàµà´Ÿàµà´‚ libpam ആവശàµà´¯à´®àµà´£àµà´Ÿàµ" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "അപരിചിതമായ PAM പിശകàµ" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...സമയപരിധി അവസാനികàµà´•àµà´¨àµà´¨àµ...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...à´•àµà´·à´®à´¿à´•àµà´•ണം, നിങàµà´™à´³àµà´Ÿàµ† സമയം à´•à´´à´¿à´žàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "തെറàµà´±à´¾à´¯ സംവാദം (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s പരാâ€à´œà´¯à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ: %d à´Žà´¨àµà´¨ കോഡിലàµâ€ നിനàµà´¨àµà´‚ à´ªàµà´±à´¤àµà´¤àµ à´•à´Ÿà´•àµà´•àµà´•" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s പരാâ€à´œà´¯à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ: %d%s സിഗàµà´¨à´²àµâ€ à´²à´àµà´¯à´®à´¾à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s പരാâ€à´œà´¯à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ: അപരിചിതമായ 0x%x നിലവാരം" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -239,18 +248,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Login Failures Latest failure From\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "%u പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿ ലോഗിനàµà´•à´³àµâ€ കാരണം à´…à´•àµà´•ൌണàµà´Ÿàµ താലàµâ€à´•àµà´•ാലികമായി പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -258,45 +267,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s-à´²àµâ€ നിനàµà´¨àµà´‚" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s-à´²àµâ€" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "അവസാനം ലോഗിനàµâ€ ചെയàµà´¤à´¤àµ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "നിങàµà´™à´³àµà´Ÿàµ† à´ªàµà´¤à´¿à´¯ à´…à´•àµà´•ൌണàµà´Ÿà´¿à´²àµ‡à´•àµà´•ൠസàµà´µà´¾à´—തം!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "അവസാനം ലോഗിനàµâ€ ചെയàµà´¤à´¤àµàµ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -305,155 +314,157 @@ msgstr[0] "ശരിയായി അവസാനം ലോഗിനàµâ€ ചെ msgstr[1] "ശരിയായി അവസാനം ലോഗിനàµâ€ ചെയàµà´¤ ശേഷം %d തവണ ലോഗിനàµâ€ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "ശരിയായി അവസാനം ലോഗിനàµâ€ ചെയàµà´¤ ശേഷം %d തവണ ലോഗിനàµâ€ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s'-നൠഅനവധി ലോഗിനàµà´•à´³àµâ€." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "നിങàµà´™à´³àµâ€à´•àµà´•ൠപàµà´¤à´¿à´¯ മെയിലàµâ€ ഉണàµà´Ÿàµ." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "നിങàµà´™à´³àµâ€à´•àµà´•ൠപàµà´¤à´¿à´¯ മെയിലàµâ€ ഉണàµà´Ÿàµ." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "നിങàµà´™à´³àµâ€à´•àµà´•ൠപഴയ മെയിലàµâ€ ഉണàµà´Ÿàµ." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "നിങàµà´™à´³àµâ€à´•àµà´•ൠമെയിലàµâ€ ഉണàµà´Ÿàµ." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "%s ഫോളàµâ€à´¡à´±à´¿à´²àµâ€ നിങàµà´™à´³àµâ€à´•àµà´•ൠമെയിലàµâ€ ഇലàµà´²." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "%s ഫോളàµâ€à´¡à´±à´¿à´²àµâ€ നിങàµà´™à´³àµâ€à´•àµà´•ൠപàµà´¤à´¿à´¯ മെയിലàµâ€ ഉണàµà´Ÿàµ." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "%s ഫോളàµâ€à´¡à´±à´¿à´²àµâ€ നിങàµà´™à´³àµâ€à´•àµà´•ൠപഴയ മെയിലàµâ€ ഉണàµà´Ÿàµ." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "%s ഫോളàµâ€à´¡à´±à´¿à´²àµâ€ നിങàµà´™à´³àµâ€à´•àµà´•ൠമെയിലàµâ€ ഉണàµà´Ÿàµ." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "'%s' ഡയറകàµà´Ÿà´±à´¿ ഉണàµà´Ÿà´¾à´•àµà´•àµà´¨àµà´¨àµ." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "%s ഡയറകàµà´Ÿà´±à´¿ ഉണàµà´Ÿà´¾à´•àµà´•àµà´µà´¾à´¨àµà´‚ ആരംà´à´¿à´•àµà´•àµà´µà´¾à´¨àµà´‚ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "അടയാളവാകàµà´•ൠനിലവിലàµâ€ ഉപയോഗിതàµà´¤à´¿à´²àµà´³àµà´³à´¤à´¾à´£àµ. മറàµà´±àµŠà´¨àµà´¨àµ നലàµâ€à´•àµà´•." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "രഹസàµà´¯à´µà´¾à´•àµà´•ൠനിലവിലàµâ€ ഉപയോഗിചàµà´šà´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ സെകàµà´¯àµ‚à´°à´¿à´±àµà´±à´¿ കോണàµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "നിങàµà´™à´³àµâ€à´•àµà´•àµàµ മറàµà´±àµŠà´°àµ ജോലി à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ നില നലàµâ€à´•ണമോ?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ജോലി:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "%s ജോലിയàµà´•àµà´•àµàµ à´¸àµà´µà´¤à´µàµ‡à´¯àµà´³àµà´³ തരം à´²à´àµà´¯à´®à´²àµà´²\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "നില: " -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "ശരിയായ സെകàµà´¯àµ‚à´°à´¿à´±àµà´±à´¿ കോണàµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ à´…à´²àµà´²" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "%s à´Žà´¨àµà´¨ സെകàµà´¯àµ‚à´°à´¿à´±àµà´±à´¿ കോണàµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ നലàµâ€à´•ിയിരികàµà´•àµà´¨àµà´¨àµ" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "കീ ഉണàµà´Ÿà´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കോണàµâ€à´Ÿàµ†à´•àµà´¸àµà´±àµà´±àµ ആയ %s നലàµâ€à´•ിയിരികàµà´•àµà´¨àµà´¨àµ" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM ആരംà´à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പരാജയം\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പരാജയം\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: ഫോരàµâ€à´•àµà´•ൠചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പരാജയം: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "à´…à´¨àµà´µà´¾à´¦à´‚ നലàµâ€à´•ിയിരികàµà´•àµà´¨àµà´¨àµ (à´’à´Ÿàµà´µà´¿à´²àµâ€ à´ªàµà´°à´µàµ‡à´¶à´¿à´šàµà´šà´¤àµàµ %ld സെകàµà´•à´¨àµâ€à´¡àµà´•à´³àµâ€à´•àµà´•àµàµ à´®àµà´®àµà´ªà´¾à´£àµàµ)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "" "നിങàµà´™à´³àµà´Ÿàµ† à´…à´•àµà´•ൌണàµà´Ÿà´¿à´¨àµà´±àµ† കാലാവധി അവസാനിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ; ദയവായി സിസàµà´±àµà´±à´‚ à´…à´¡àµà´®à´¿à´¨à´¿à´¸àµà´Ÿàµà´°àµ‡à´±àµà´±à´±àµà´®à´¾à´¯à´¿ " "ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´•" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "നിങàµà´™à´³àµà´Ÿàµ† അടയാളവാകàµà´•ൠഉടനെ മാറàµà´±àµ‡à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ (root enforced)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "നിങàµà´™à´³àµà´Ÿàµ† അടയാളവാകàµà´•ൠഉടനെ മാറàµà´±àµ‡à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ (അടയാളവാകàµà´•ൠമാറàµà´±àµà´¨àµà´¨à´¤à´¿à´¨àµ സമയമായി)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -461,40 +472,40 @@ msgstr[0] "à´®àµà´¨àµà´¨à´±à´¿à´¯à´¿à´ªàµà´ªàµ: നിങàµà´™à´³àµà´Ÿàµ† msgstr[1] "à´®àµà´¨àµà´¨à´±à´¿à´¯à´¿à´ªàµà´ªàµ: നിങàµà´™à´³àµà´Ÿàµ† അടയാളവാകàµà´•à´¿à´¨àµà´±àµ† കാലാവധി %d ദിവസതàµà´¤à´¿à´¨àµà´³àµà´³à´¿à´²àµâ€ അവസാനികàµà´•àµà´¨àµà´¨àµ" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "à´®àµà´¨àµà´¨à´±à´¿à´¯à´¿à´ªàµà´ªàµ: നിങàµà´™à´³àµà´Ÿàµ† അടയാളവാകàµà´•à´¿à´¨àµà´±àµ† കാലാവധി %d ദിവസതàµà´¤à´¿à´¨àµà´³àµà´³à´¿à´²àµâ€ അവസാനികàµà´•àµà´¨àµà´¨àµ" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS അടയാളവാകàµà´•ൠമാറàµà´±àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´¿à´²àµà´²." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "അടയാളവാകàµà´•ൠനലàµâ€à´•ിയിടàµà´Ÿà´¿à´²àµà´²" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS അടയാളവാകàµà´•ൠമാറàµà´±àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´¿à´²àµà´²." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "നിങàµà´™àµ¾ ഒരൠഹàµà´°à´¸àµà´µ പാസàµâ€Œà´µàµ‡à´¡àµ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•ണം." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "ഇതിലàµà´‚ വലിയ അടയാളവാകàµà´•ൠതിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s-à´¨àµà´³à´³ അടയാളവാകàµà´•ൠമാറàµà´±àµà´¨àµà´¨àµ." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "നിങàµà´™à´³àµà´Ÿàµ† അടയാളവാകàµà´•ൠമാറàµà´±àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ ഇനിയàµà´‚ കാതàµà´¤à´¿à´°à´¿à´•àµà´•േണàµà´Ÿà´¤à´¾à´£àµ." diff --git a/po/mn.gmo b/po/mn.gmo Binary files differdeleted file mode 100644 index f7964fa3..00000000 --- a/po/mn.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Mongolian (http://www.transifex.com/projects/p/fedora/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Та богино нууц үг Ñонгох Ñ‘Ñтой." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Та богино нууц үг Ñонгох Ñ‘Ñтой." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Та богино нууц үг Ñонгох Ñ‘Ñтой." diff --git a/po/mr.gmo b/po/mr.gmo Binary files differdeleted file mode 100644 index 8fa51112..00000000 --- a/po/mr.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2013-05-03 03:46-0400\n" "Last-Translator: sandeeps <sshedmak@redhat.com>\n" "Language-Team: Marathi (http://www.transifex.com/projects/p/fedora/language/" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "नवीन गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ %s: " msgid "Current password: " msgstr "नवीन गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "नवीन गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ %s: " msgid "New password: " msgstr "नवीन गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,171 +72,177 @@ msgstr "%s पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा" msgid "Password change has been aborted." msgstr "परवलीचा शबà¥à¤¦ रदà¥à¤¦ केले." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "दाखलन:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "यश" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "गंà¤à¥€à¤° तà¥à¤°à¥à¤Ÿà¥€ - लगेच रदà¥à¤¦ करा" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "विà¤à¤¾à¤— दाखल करणà¥à¤¯à¤¾à¤¸ अपयशी" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "बोधचिनà¥à¤¹ आढळले नाही" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "सेवा विà¤à¤¾à¤— अंतरà¥à¤—त तà¥à¤°à¥à¤Ÿà¥€ आढळली" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ तà¥à¤°à¥à¤Ÿà¥€" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "सà¥à¤®à¥ƒà¤¤à¥€ बफर तà¥à¤°à¥à¤Ÿà¥€" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "परवानगी नाही" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ अपयश" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ माहिती करीता पà¥à¤°à¤µà¥‡à¤¶à¤¸à¤¾à¤ ी अपà¥à¤°à¥‡ शà¥à¤°à¥‡à¤¯" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ सेवा अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ माहिती पà¥à¤°à¤¾à¤ªà¥à¤¤ करू शकले नाही" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "अंतरà¥à¤à¥‚तीय अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ विà¤à¤¾à¤— करीता वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ ओळख पटली नाही" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "सेवा करीताचे कमाल पà¥à¤¨à¥à¤¹à¤ªà¥à¤°à¤¾à¤°à¤‚ठसंखà¥à¤¯à¤¾ संपले" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ टोकन यापà¥à¤¢à¥‡ वैध नाही; नवीन आवशà¥à¤¯à¤• आहे" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "वापरकरà¥à¤¤à¤¾ खाते कालबाहà¥à¤¯ à¤à¤¾à¤²à¥‡" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "निरà¥à¤¦à¥‡à¤¶à¥€à¤¤ सतà¥à¤° करीता नोंदणी बनवू/काढून टाकू शकत नाही" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ सेवा वापरकरà¥à¤¤à¤¾ शà¥à¤°à¥‡à¤¯ पà¥à¤°à¤¾à¤ªà¥à¤¤ करू शकत नाही" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "वापरकरà¥à¤¤à¤¾ शà¥à¤°à¥‡à¤¯ कालबाहà¥à¤¯ à¤à¤¾à¤²à¥‡" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "वापरकरà¥à¤¤à¤¾ शà¥à¤°à¥‡à¤¯ सà¥à¤¥à¤¾à¤ªà¥€à¤¤ करतेवेळी अपयशी à¤à¤¾à¤²à¥‡" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "विà¤à¤¾à¤— निरà¥à¤¦à¥‡à¤¶à¥€à¤¤ माहिती उपलबà¥à¤§ नाही" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item() करीता अयोगà¥à¤¯ घटक पाठविले गेले" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "संवाद तà¥à¤°à¥à¤Ÿà¥€" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ टोकन सदोष तà¥à¤°à¥à¤Ÿà¥€" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ माहिती पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¾à¤ªà¥à¤¤ केली जाऊ शकत नाही" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ टोकन कà¥à¤²à¥‚प वà¥à¤¯à¤¸à¥à¤¥ आहे" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ टोकन कालबाहà¥à¤¯à¤¤à¤¾ अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ केले गेले" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ सेवा करीता पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤• तपास अपयशी" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "PAM ने रिटरà¥à¤¨ मà¥à¤²à¥à¤¯ करीता दà¥à¤°à¥à¤²à¤•à¥à¤· केले पाहिजे" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "विà¤à¤¾à¤— अपरिचीत आहे" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "अधिपà¥à¤°à¤®à¤¾à¤£à¤¨ टोकन कालबाहà¥à¤¯ à¤à¤¾à¤²à¥‡" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "संवाद घटनाचà¥à¤¯à¤¾ पà¥à¤°à¤¤à¤¿à¤•à¥à¤·à¥‡à¤¤ आहे" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास libpam ची आवशà¥à¤šà¤•ता आहे" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "अपरिचीत PAM तà¥à¤°à¥à¤Ÿà¥€" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...वेळ फारच कमी आहे...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...माफ करा, तà¥à¤®à¤šà¥€ वेळ समापà¥à¤¤ à¤à¤¾à¤²à¥€ आहे!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "सदोषीत संवाद (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s अपयशी: à¤à¤•à¥à¤œà¥€à¤Ÿ कोड %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s अपयशी: संकेत %d%s पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s अपयशी: अपरिचीत सà¥à¤¥à¤¿à¤¤à¥€ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -241,18 +250,18 @@ msgid "" msgstr "" "%s: [--file रूटेड-फाइलनाव] [--user वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ नाव] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "पà¥à¤°à¤µà¥‡à¤¶ अपयशी अलिकडील अपयश पासून\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "%u अपयशी पà¥à¤°à¤µà¥‡à¤¶ मà¥à¤³à¥‡ खाते कà¥à¤²à¥‚पबंद केले" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -260,45 +269,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s पासून" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s वरील" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "शेवटचे दाखलन:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "नवीन खातà¥à¤¯à¤¾à¤µà¤° सà¥à¤µà¤¾à¤—त आहे!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "शेवटचे अपयशी दाखलन:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -307,153 +316,155 @@ msgstr[0] "शेवटचे यशसà¥à¤µà¥€ पà¥à¤°à¤µà¥‡à¤¶ पासू msgstr[1] "शेवटचे यशसà¥à¤µà¥€ पà¥à¤°à¤µà¥‡à¤¶ पासून %d अपयशी पà¥à¤°à¤µà¥‡à¤¶ पà¥à¤°à¤¯à¤¤à¥à¤¨ आढळले गेले." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "शेवटचे यशसà¥à¤µà¥€ पà¥à¤°à¤µà¥‡à¤¶ पासून %d अपयशी पà¥à¤°à¤µà¥‡à¤¶ पà¥à¤°à¤¯à¤¤à¥à¤¨ आढळले." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s' करीता à¤à¤•ापेकà¥à¤·à¤¾ जासà¥à¤¤ पà¥à¤°à¤µà¥‡à¤¶." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "नवीन मेल पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "नवीन मेल पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤¾à¤²à¥‡." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "जà¥à¤£à¥‡ मेल आढळले गेले." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "मेल आढळले गेले." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "संचयीका %s अंतरà¥à¤—त मेल आढळले नाही." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "संचयीका %s अंतरà¥à¤—त नवीन मेल आढळले." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "संचयीका %s अंतरà¥à¤—त जà¥à¤£à¥‡ मेल आढळले." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "संचयीका %s अंतरà¥à¤—त मेल आढळले गेले." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "संचयीका '%s' बनवित आहे." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "डिरेकà¥à¤Ÿà¥à¤°à¥€ '%s' बनवणà¥à¤¯à¤¾à¤¸ व पà¥à¤°à¤¾à¤°à¤‚ठकरणà¥à¤¯à¤¾à¤¸ अशकà¥à¤¯." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "हà¥à¤¯à¤¾ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦à¤šà¤¾ आधीच वापर à¤à¤¾à¤²à¤¾ आहे. दà¥à¤¸à¤°à¤¾ निवडा." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "पासवरà¥à¤¡ आधिपासूनच वापरले आहे." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "मà¥à¤²à¤à¥‚त सà¥à¤°à¤•à¥à¤·à¤¾ संदरà¥à¤ %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ अनà¥à¤¯ à¤à¥‚मिका किंवा सà¥à¤¤à¤° पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करायला आवडेल?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "à¤à¥‚मिका:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "à¤à¥‚मिका %s करीता मà¥à¤²à¤à¥‚त पà¥à¤°à¤•ार आढळले नाही\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "सà¥à¤¤à¤°:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "वैध सà¥à¤°à¤•à¥à¤·à¤¾ संदरà¥à¤ नाही" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "सà¥à¤°à¤•à¥à¤·à¤¾ संदरà¥à¤ %s लागू केले गेले" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "कि निरà¥à¤®à¤¾à¤£ संदरà¥à¤ %s लागू केले गेले" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM आरंà¤à¤£à¥à¤¯à¤¾à¤¤ अपयशी\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करणà¥à¤¯à¤¾à¤¸ अपयशी\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "दाखलन: विà¤à¤¾à¤œà¤¨ अपयशी: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "पà¥à¤°à¤µà¥‡à¤¶ सà¥à¤µà¥€à¤•ारले (शेवटचा पà¥à¤°à¤µà¥‡à¤¶ %ld सेकंद पूरà¥à¤µà¥€ आढळला)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "तà¥à¤®à¤šà¥‡ खाते बंद à¤à¤¾à¤²à¥‡ आहे, कृपया तà¥à¤®à¤šà¥à¤¯à¤¾ संगणक वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•ाकडे जा" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "तà¥à¤®à¤šà¤¾ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ ततà¥à¤•ाळ बदलणà¥à¤¯à¤¾à¤šà¥€ आवशà¥à¤¯à¤•ता आहे (रूट वापरा)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "तà¥à¤®à¤šà¤¾ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ ततà¥à¤•ाळ बदलणà¥à¤¯à¤¾à¤šà¥€ आवशà¥à¤¯à¤•ता आहे (गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ जà¥à¤¨à¤¾ आहे)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -461,40 +472,40 @@ msgstr[0] "सावधानता: तà¥à¤®à¤šà¥‡ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ msgstr[1] "सावधानता: तà¥à¤®à¤šà¥‡ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ %d दिवस अंतरà¥à¤—त कालबाहà¥à¤¯ होईल" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "सावधानता: तà¥à¤®à¤šà¥‡ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ %d दिवसात कालबाहà¥à¤¯ होईल" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ बदलविले जाऊ शकत नाही." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ दिलेला नाही" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ बदलविले जाऊ शकत नाही." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "आपण लहान संकेतशबà¥à¤¦ निवडणे आवशà¥à¤¯à¤• आहे." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "तà¥à¤®à¥à¤¹à¥€ मोठा गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ निवडला पाहीजे" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s करीता गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ बदलवित आहे." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "तà¥à¤®à¤šà¤¾ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ बदलणà¥à¤¯à¤¾à¤¸à¤¾à¤ ी तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ बराच वेळ वाट पहावी लागेल" diff --git a/po/ms.gmo b/po/ms.gmo Binary files differdeleted file mode 100644 index 4f653a19..00000000 --- a/po/ms.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-29 07:01-0500\n" "Last-Translator: Tomáš Mráz <tmraz@fedoraproject.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "(semasa) katalaluan UNIX:" msgid "Current password: " msgstr "(semasa) katalaluan UNIX:" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, fuzzy, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "(semasa) katalaluan UNIX:" msgid "New password: " msgstr "(semasa) katalaluan UNIX:" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, fuzzy, c-format msgid "Retype new %s password: " @@ -68,234 +71,240 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -303,187 +312,189 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Anda mesti memilih kata laluan yang lebih pendek." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Anda mesti memilih kata laluan yang lebih pendek." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Menukar katalaluan untuk %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Anda mesti memilih kata laluan yang lebih pendek." diff --git a/po/my.gmo b/po/my.gmo Binary files differdeleted file mode 100644 index 9271d74e..00000000 --- a/po/my.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Burmese (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,234 +68,240 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -300,187 +309,189 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "သင်á€á€…်ဦးပá€á€¯á€™á€á€¯á€á€á€¯á€á€±á€¬á€„်းသောစကားá€á€¾á€€á€ºá€€á€á€¯á€›á€½á€±á€¸á€á€»á€šá€ºá€›á€•ါမည်á‹" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "သင်á€á€…်ဦးပá€á€¯á€™á€á€¯á€á€á€¯á€á€±á€¬á€„်းသောစကားá€á€¾á€€á€ºá€€á€á€¯á€›á€½á€±á€¸á€á€»á€šá€ºá€›á€•ါမည်á‹" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "သင်á€á€…်ဦးပá€á€¯á€™á€á€¯á€á€á€¯á€á€±á€¬á€„်းသောစကားá€á€¾á€€á€ºá€€á€á€¯á€›á€½á€±á€¸á€á€»á€šá€ºá€›á€•ါမည်á‹" diff --git a/po/nb.gmo b/po/nb.gmo Binary files differdeleted file mode 100644 index bfb5fc6d..00000000 --- a/po/nb.gmo +++ /dev/null @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-05-17 18:48+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Norwegian BokmÃ¥l <https://translate.fedoraproject.org/" @@ -24,11 +24,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.0.4\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Passord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -38,6 +39,7 @@ msgstr "NÃ¥værende %s-passord: " msgid "Current password: " msgstr "NÃ¥værende passord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -47,6 +49,7 @@ msgstr "Nytt %s-passord: " msgid "New password: " msgstr "Nytt passord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,189 +72,195 @@ msgstr "Skriv %s pÃ¥ nytt" msgid "Password change has been aborted." msgstr "Bytte av passord avbrutt." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "logg inn:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Utført" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritisk feil - avbryter straks" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Klarte ikke Ã¥ laste modul" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbol ikke funnet" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Feil i tjenestemodul" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Systemfeil" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Minnebufferfeil" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Tillatelse avvist" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Autentiseringsfeil" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Utilstrekkelige rettigheter for tilgang til autentiseringsinformasjon" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Autentiseringstjenesten kan ikke hente autentiseringsinformasjon" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Bruker ukjent for autentiseringsmodul" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Maksimalt antall forsøk er overskredet for tjenesten" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Autentiseringsjide ikke lenger gyldig; ny kode kreves" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Brukerkonto er utløpt" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Kan ikke opprette/fjerne en oppføring for den valgte økten" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Autentiseringstjenesten kan ikke hente brukerrettigheter" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Brukerrettigheter utløpt" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Feil under definisjon av brukerrettigheter" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Nei modulspesifikk informasjon finnes" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Ugyldig oppføring angitt for pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Dialogfeil" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Manipulasjonsfeil for autentiseringskode" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Autentiseringsinformasjon kan ikke gjenopprettes" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "LÃ¥sing av autentiseringskode opptatt" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Tidsbegrensning av autentiseringskode deaktivert" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Passordtjenestens innledende kontroll mislyktes" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Resultatverdien bør ignoreres av PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modulen er ukjent" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Autentiseringskode utløpt" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Dialogen venter pÃ¥ hendelse" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Programmet mÃ¥ spørre libpam pÃ¥ nytt" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Ukjent PAM-feil" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Tiden er i ferd med utløpe..\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Beklager, tiden er utløpt!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "mislykket dialog (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s feilet: sluttkode %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s feilet: fikk signal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s feilet: ukjent status 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "Bruk: %s [--dir /sti/til/tally-mappe] [--user brukernavn] [--reset]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Brukernavn Feil Siste feil Fra\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Konto lÃ¥st som følge av %u mislykkede innlogginger." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, fuzzy, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -259,45 +268,45 @@ msgstr[0] "(%d minutter igjen til Ã¥ lÃ¥se opp)" msgstr[1] "(%d minutter igjen til Ã¥ lÃ¥se opp)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minutter igjen til Ã¥ lÃ¥se opp)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " fra %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " pÃ¥ %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Siste innlogging:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Velkommen til din nye konto!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Siste feilede innlogging:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -308,150 +317,152 @@ msgstr[1] "" "Det har vært %d feilede innloggingsforsøk siden siste innlogging uten feil." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Det har vært %d feilede innloggingsforsøk siden siste innlogging uten feil." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "For mange innlogginger for «%s»." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Du har fÃ¥tt ny e-post." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Du har fÃ¥tt ny e-post." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Du har ulest e-post." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Du har fÃ¥tt e-post." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Du har ingen e-post i mappen %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Du har ny e-post i mappen %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Du har ulest e-post i mappen %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Du har e-post i mappen %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Oppretter katalog «%s»." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Kan ikke lage og initiere katalog «%s»." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Passordet er allerede benyttet. Velg et annet." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Passordet har allerede vært brukt." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Forvalgt sikkerhetskontekst er %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Vil du angi en annen rolle eller nivÃ¥?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rolle:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Ingen forvalgt type for rollen %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nivÃ¥:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Dette er ikke en gyldig sikkerhetskontekst." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Kunne ikke innhente gyldig kontekst for %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Sikkerhetskontekst «%s» tilordnet." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Kontekst «%s» for oppretting av nøkkel tilordnet." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "kunne ikke initialisere PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "kunne ikke pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: feil under forgrening: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Tilgang innvilget (siste tilgang var for %ld sekunder siden)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Din konto er utløpt; kontakt systemadministratoren din." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Du mÃ¥ straks endre passordet ditt (pÃ¥krevd av administrator)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Du mÃ¥ straks endre passordet ditt (passordet har utløpt)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -459,37 +470,37 @@ msgstr[0] "Advarsel: Passordet ditt utløper om %d dag." msgstr[1] "Advarsel: Passordet ditt utløper om %d dager." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Advarsel: Passordet ditt utløper om %d dager." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS-passord kunne ikke endres." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Inget passord har blitt angitt." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Passordet kunne ikke endres." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Du mÃ¥ velge et kortere passord." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Du mÃ¥ velge et lengre passord." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Endrer passord for %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Du mÃ¥ vente lenger før du kan endre passordet ditt." diff --git a/po/ne.gmo b/po/ne.gmo Binary files differdeleted file mode 100644 index 3971dd00..00000000 --- a/po/ne.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Nepali (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "तपाईंले छोटो पासवरà¥à¤¡ छानà¥à¤¨à¥ परà¥à¤›à¥¤" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "तपाईंले छोटो पासवरà¥à¤¡ छानà¥à¤¨à¥ परà¥à¤›à¥¤" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "तपाईंले छोटो पासवरà¥à¤¡ छानà¥à¤¨à¥ परà¥à¤›à¥¤" diff --git a/po/nl.gmo b/po/nl.gmo Binary files differdeleted file mode 100644 index 81f85a05..00000000 --- a/po/nl.gmo +++ /dev/null @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2021-07-22 00:54+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Dutch <https://translate.fedoraproject.org/projects/linux-pam/" @@ -28,11 +28,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.7.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Wachtwoord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -42,6 +43,7 @@ msgstr "Huidig %s wachtwoord: " msgid "Current password: " msgstr "Huidig wachtwoord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -51,6 +53,7 @@ msgstr "Nieuw %s wachtwoord: " msgid "New password: " msgstr "Nieuw wachtwoord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -73,172 +76,178 @@ msgstr "Voer %s opnieuw in" msgid "Password change has been aborted." msgstr "Wachtwoord wijzigen is afgebroken." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "gebruikersnaam:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Succes" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritieke fout – onmiddellijk afbreken" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Laden van module mislukt" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbool niet gevonden" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Fout in servicemodule" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Systeemfout" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Fout in geheugenbuffer" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Toegang geweigerd" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Authenticatiefout" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Onvoldoende legitimatie voor toegang tot authenticatiedata" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Authenticatieservice kan geen authenticatie-informatie ophalen" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Gebruiker onbekend bij de onderliggende authenticatiemodule" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Maximum aantal herhaalpogingen voor service overschreden" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Authenticatie-token is niet langer geldig; nieuwe is vereist" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Gebruikersaccount is verlopen" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Kan een ingang niet aanmaken/verwijderen voor de opgegeven sessie" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" "Authenticatieservice kan geen legitimatiegegevens van gebruiker ophalen" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Legitimatiegegevens van gebruiker verlopen" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Fout tijdens het instellen van legitimatiegegevens van gebruiker" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Geen modulespecifieke data aanwezig" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Onjuist item doorgegeven aan pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Conversatiefout" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Fout bij manipulatie van authenticatie-token" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Authenticatie-informatie kan niet worden hersteld" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Vergrendeling van authenticatie-token is bezig" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Veroudering van authenticatie-token is uitgeschakeld" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Voorlopige controle door de wachtwoordservice is mislukt" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "PAM-dispatch dient de teruggegeven waarde te negeren" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Module is onbekend" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Authenticatie-token is verlopen" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Conversatie wacht op een gebeurtenis" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Toepassing moet libpam nogmaals aanroepen" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Onbekende PAM-fout" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "…De tijd raakt op…\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "…Sorry, uw tijd is verlopen!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "foutieve conversatie (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s is mislukt: afsluitcode %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s is mislukt: signaal %d%s ontvangen" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s is mislukt: onbekende status 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -247,18 +256,18 @@ msgstr "" "Gebruik: %s [--dir /pad/naar/tally-directory] [--user gebruikersnaam] [--" "reset]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Aanmelding Mislukte Laatst mislukte Van\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Het account is vergrendeld wegens %u mislukte aanmeldingen." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -266,45 +275,45 @@ msgstr[0] "(nog %d minuut om te ontgrendelen)" msgstr[1] "(nog %d minuten om te ontgrendelen)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(nog %d minuten om te ontgrendelen)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %e %b %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " van %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " op %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Laatste aanmelding:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Welkom bij je nieuwe account!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Laatste mislukte aanmeldpoging:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -315,151 +324,153 @@ msgstr[1] "" "Er waren %d mislukte aanmeldpogingen sinds de laatste succesvolle aanmelding." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Er waren %d mislukte aanmeldpogingen sinds de laatste succesvolle aanmelding." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Te veel aanmeldingen voor '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Je hebt nieuwe e-mail." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Je hebt nieuwe e-mail." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Je hebt oude e-mail." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Je hebt e-mail." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Je hebt geen e-mail in map %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Je hebt nieuwe e-mail in map %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Je hebt oude e-mail in map %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Je hebt e-mail in map %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Aanmaken van map '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Niet in staat om map '%s' aan te maken." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Wachtwoord is al eens gebruikt. Kies een ander wachtwoord." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Wachtwoord is al eens gebruikt." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "De standaard beveiligingscontext is %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Wil je een andere rol of een ander niveau invoeren?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rol:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Er is geen standaardtype voor rol %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "niveau:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Dit is geen geldige beveiligingscontext." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Een geldige context voor %s kon niet worden verkregen." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Beveiligingscontext %s is toegewezen." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Sleutelaanmaakcontext %s is toegewezen." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "initialiseren van PAM is mislukt\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() is mislukt\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "aanmelding: beginnen van nieuw proces mislukt: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Toegang is verleend (laatste toegang was %ld seconden geleden)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Je account is verlopen; neem contact op met je systeembeheerder." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "Je moet onmiddellijk je wachtwoord wijzigen (op last van systeembeheerder)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Je moet onmiddellijk je wachtwoord wijzigen (wachtwoord is verouderd)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -467,37 +478,37 @@ msgstr[0] "Waarschuwing: je wachtwoord zal binnen %d dag verlopen." msgstr[1] "Waarschuwing: je wachtwoord zal binnen %d dagen verlopen." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Waarschuwing: je wachtwoord zal binnen %d dagen verlopen." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS-wachtwoord kon niet worden gewijzigd." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Geen wachtwoord opgegeven." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Het wachtwoord is niet gewijzigd." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Je moet een korter wachtwoord kiezen." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Je moet een langer wachtwoord kiezen." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Veranderen van wachtwoord voor %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Je moet langer wachten om je wachtwoord te wijzigen." diff --git a/po/nn.gmo b/po/nn.gmo Binary files differdeleted file mode 100644 index 53862251..00000000 --- a/po/nn.gmo +++ /dev/null @@ -5,13 +5,14 @@ # Translators: # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata # Andreas-Johann Ø Ulvestad <aj@aju.no>, 2021. +# Adaline Simonian <adalinesimonian@gmail.com>, 2024. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2021-01-18 22:36+0000\n" -"Last-Translator: Andreas-Johann Ø Ulvestad <aj@aju.no>\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2024-05-02 21:36+0000\n" +"Last-Translator: Adaline Simonian <adalinesimonian@gmail.com>\n" "Language-Team: Norwegian Nynorsk <https://translate.fedoraproject.org/" "projects/linux-pam/master/nn/>\n" "Language: nn\n" @@ -19,13 +20,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.4.2\n" +"X-Generator: Weblate 5.5.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Passord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -35,6 +37,7 @@ msgstr "Noverande %s-passord: " msgid "Current password: " msgstr "Noverande passord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +47,7 @@ msgstr "Nytt %s-passord: " msgid "New password: " msgstr "Nytt passord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,189 +70,197 @@ msgstr "Skriv %s pÃ¥ nytt" msgid "Password change has been aborted." msgstr "Skifte av passord vart avbrote." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "logg inn:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Utføyrd" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kristisk feil - avbryt med ein gong" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Klarte ikkje Ã¥ laste modul" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Fann ikkje symbol" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Feil i tenestemodul" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Systemfeil" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Minnebufferfeil" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Nekta tilgang" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Autentiseringsfeil" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Utilstrekkelege rettar for tilgang til informasjon om autentisering" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Teneste for autentisering kan ikkje hente informasjon om autentisering" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Brukar udkjend for autentiseringsmodul" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Maks tal pÃ¥ forsøk er overskride for tenesta" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Autentiseringspollett er ikkje lenger gyldig; ny kode kravd" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Brukarkonto er utgÃ¥tt" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Kan ikkje opprette/fjerne oppføring for vald økt" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Autentiseringsteneste kan ikkje hente brukarrettar" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Brukarrettar er utløpt" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Feil under definering av brukarrettar" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Ingen modulspesifikk data finst" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Ugyldig oppføring spesifisert for pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Dialogfeil" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Manipulasjonsfeil for autentiseringspollett" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Autentiseringsinformasjon kan ikkje bli gjenoppretta" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "LÃ¥sing av autentiseringskode er oppteken" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Tidsavgrensing for autentiseringspollett er deaktivert" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Posstordtenesta sin innledande kontroll feila" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Resultatverdien bør bli ignorert av PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modulen er ukjend" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Autentiseringspollett er utgÃ¥tt" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Dialogen ventar pÃ¥ hending" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Programmet mÃ¥ spørre libpam pÃ¥ ny" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Ukjend PAM-feil" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Tida held pÃ¥ Ã¥ gÃ¥ ut...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Beklagar, tida er gÃ¥tt ut\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "mislykka dialog (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s feila: sluttkode %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s feila: fekk signal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s feila: ukjend status 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" -msgstr "Bruk: %s [--dir /sti/til/tally-mappe] [--user brukarnamn] [--reset]\n" +msgstr "" +"Bruk: %s [--dir /sti/til/tally-mappe] [--user brukarnamn] [--reset] [--" +"legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Konto er lÃ¥st som følgje av %u mislukka innloggingar." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, fuzzy, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -256,45 +268,45 @@ msgstr[0] "(%d minutt stÃ¥r att for Ã¥ lÃ¥se opp)" msgstr[1] "(%d minutt stÃ¥r att for Ã¥ lÃ¥se opp)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minutt stÃ¥r att for Ã¥ lÃ¥se opp)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " frÃ¥ %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " pÃ¥ %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Siste innlogging:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Velkommen til din nye konto!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Siste feila innlogging:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -305,150 +317,151 @@ msgstr[1] "" "Det har vore %d feila innloggingsforsøk utan feil sidan førre innlogging." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Det har vore %d feila innloggingsforsøk sidan sist innlogging utan feil." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "For mange innlogginga for «%s»." -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "Du har fÃ¥tt ny e-post." +msgstr "Du har ikkje fÃ¥tt nokon ny e-post." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Du har fÃ¥tt ny e-post." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Du har ulest e-post." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Du har fÃ¥tt e-post." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Du har ingan e-post i mappen %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Du har ny e-post i mappa %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Du har ulest e-post i mappa %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Du har e-post i mappa %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Opprettar kataloge «%s»." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Kan ikkje lage og initiere katalog «%s»." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Passord er allereie nytta. Vel eit anna." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Passordet har allereie vore brukt." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Forehandvald sikkerheitskontekst er %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Vil du angje ei anna rolle eller nivÃ¥?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rolle:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Inga førehandvald type for rolla %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nivÃ¥:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Dette er ikkje gyldig sikkerheitskontekst." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Kunne ikkje innhente gyldig kontekst for %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Sikkerheitskontekst «%s» tilordna." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Kontekst «%s» for oppretting av nøkkel er tilordna." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "Kunne ikkje initiere PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "kunne ikkje pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: feil under forgreining: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Tilgang innvilga (siste tilgang var for %ld sekund sidan)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Kontoen din er utløpt; kontakt systemadministratoren din." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Du mÃ¥ straks endre passordet ditt (kravd av administrator)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Du mÃ¥ straks endre passordet ditt (passordet har utløpt)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -456,37 +469,37 @@ msgstr[0] "Advarsel: Passordet ditt utløper om %d dag." msgstr[1] "Advarsel: Passordet ditt utløper om %d dagar." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Varsel: Passordet ditt gÃ¥r ut om %d dagar." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS-passord kunne ikkje bli endra." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Inga passord er blitt angjeve." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Passordet kunne ikkje bli endra." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Du mÃ¥ velje eit kortare passord." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Du mÃ¥ velje eit kortare passord." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Skiftar passord for %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Du mÃ¥ vente lengre før du kan skifte passordet ditt." diff --git a/po/or.gmo b/po/or.gmo Binary files differdeleted file mode 100644 index fef87521..00000000 --- a/po/or.gmo +++ /dev/null @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-04-13 22:40+0000\n" "Last-Translator: Ankit Behera <proneon267@gmail.com>\n" "Language-Team: Odia <https://translate.fedoraproject.org/projects/linux-pam/" @@ -24,11 +24,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 3.11.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "ପàରବà‡à¬¶ ସଙàକà‡à¬¤: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -38,6 +39,7 @@ msgstr "ସାମàପàରତିକ %s ପàରବà‡à¬¶ ସଙàକà‡à¬¤: msgid "Current password: " msgstr "ସାମàପàରତିକ ପàରବà‡à¬¶ ସଙàକà‡à¬¤: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -47,6 +49,7 @@ msgstr "ନà‚ତନ %s ପàରବà‡à¬¶ ସଙàକà‡à¬¤: " msgid "New password: " msgstr "ନà‚ତନ ପàରବà‡à¬¶ ସଙàକà‡à¬¤: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,171 +72,177 @@ msgstr "%sକà ପàନରàବାର ଟାଇପ କରନàତà" msgid "Password change has been aborted." msgstr "ପàରବà‡à¬¶ ସଙàକà‡à¬¤ ପରିବରàତàତନକà ପàରତààŸà¬¾à¬–ାନ କରାଯାଇଛି।" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "ଲଗଇନ:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "ସଫଳତା" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "ଗàରàତର ତàƒà¬Ÿà¬¿ - à¬à¬¹à¬¾ ବିଷàŸà¬°à‡ ଶà€à¬˜àର ଜଣାନàତà" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "à¬à¬•କାଂଶକà ଧାରଣ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "ପàରତà€à¬• ମିଳିଲା ନାହିà¬" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "ସà‡à¬¬à¬¾ à¬à¬•à¬•à¬¾à¬‚à¬¶à¬°à‡ à¬¤àƒà¬Ÿà¬¿" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "ତନàତàର ତàƒà¬Ÿà¬¿" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "ସàମàƒà¬¤à¬¿ ସଞàà¬šàŸ à¬¤àƒà¬Ÿà¬¿" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "ଅନàମତି ଅସàବà€à¬•àƒà¬¤" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ବିଫଳ" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ତଥàଯକà ଅà¬à¬¿à¬—ମ କରିବା ପାଇଠଅଯà‡à¬¥à¬·àଟ ପàରମାଣ ପତàର" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ସà‡à¬¬à¬¾ ବàˆà¬§à¬¿à¬•ରଣ ସà‚ଚନା ପàନରàଦàଧାର କରିପାରିବ ନାହିà¬" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "ନିମàନଲିଖିତ ବàˆà¬§à¬¿à¬•ରଣ à¬à¬•କାଂଶକà ଜଣା ନ ଥିବା ଚାଳକ" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "ସà‡à¬¬à¬¾ ପାଇଠସରàବାଧିକ ସଂଖàଯକ ପàନଃପàରଚà‡à¬·àଟା ପà‚ରàଣàଣ ମାତàà¬°à¬¾à¬°à‡ à¬¸à¬®à¬¾à¬ªàତ ହà‹à¬‡à¬¯à¬¾à¬‡à¬›à¬¿" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ଟà‹à¬•ନ ଆଉ à¬à¬¬à‡ ବàˆà¬§ ନàହà‡à¬; ଗà‹à¬Ÿà¬¿à¬ ନà‚ତନ ଟà‹à¬•ନ ଆବଶàଯକ" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "ଚାଳକ ହିସାବ ଖାତା ଅଚଳ ହà‹à¬‡à¬¯à¬¾à¬‡à¬›à¬¿" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "ଉଲàଲà‡à¬–ିତ ଅଧିବà‡à¬¶à¬¨ ପାଇଠଗà‹à¬Ÿà¬¿à¬ ପàରବିଷàଟି ପàରସàତàତ/ଅପସାରଣ କରିପାରିବ ନାହିà¬" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ସà‡à¬¬à¬¾ ଚାଳକ ପàରମାଣ ପତàର ମାନଙàକà ପàନରàଦàଧାର କରିପାରିବ ନାହିà¬" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "ଚାଳକ ପàରମାଣ ପତàର ଅଚଳ ହà‹à¬‡à¬¯à¬¾à¬‡à¬›à¬¿" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ଚାଳକ ପàରମାଣ ପତàର ବିନàଯାସ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "କàŒà¬£à¬¸à¬¿ à¬à¬•କାଂଶ ନିରàଦàଦିଷàଟ ତଥàଯ ନାହିà¬" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "ଖରାପ ବସàତàକà pam_*_item() କà ପଠାଯାଇଛି" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "କଥà‹à¬ªà¬•ଥନ ତàƒà¬Ÿà¬¿" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ଟà‹à¬•ନ ବàଯବହାର କàŒà¬¶à¬³ à¬¸à¬¾à¬§à¬¨à¬°à‡ à¬¤àƒà¬Ÿà¬¿" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ସà‚ଚନା ପàନରàଲାଠକରିପାରିବ ନାହିà¬" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ଟà‹à¬•ନ ତାଲା ବàଯସàତ ଅଛି" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ଟà‹à¬•ନ କାଳ ବରàଦàଧନ ପàରକàରିàŸà¬¾à¬•à ନିଷàକàà¬°à¬¿àŸ à¬•à¬°à¬¾à¬¯à¬¾à¬‡à¬›à¬¿" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "ପàରବà‡à¬¶ ସଙàକà‡à¬¤ ସà‡à¬¬à¬¾ ଦàବାରା ପàରାଥମିକ ପରà€à¬•àଷଣ ବିଫଳ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "ଫà‡à¬°à¬¸àତ ମà‚ଲàଯକà PAM ପàରà‡à¬°à¬£ ଦàବାରା ଆଗàରହàଯ କରାଯାଇଛି" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "à¬à¬•କାଂଶଟି ଅଜଣା ଅଟà‡" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "ବàˆà¬§à¬¿à¬•ରଣ ଟà‹à¬•ନ ଅଚଳ ହà‹à¬‡à¬¯à¬¾à¬‡à¬›à¬¿" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "କଥà‹à¬ªà¬•ଥନ ଘଟଣା ପାଇଠଅପà‡à¬•àଷା କରàଅଛି" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "ପàରàŸà‹à¬— libpam କà ପàନରàବାର ଆହàବାନ କରିବା ଦରକାର" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "ଅଜଣା PAM ତàƒà¬Ÿà¬¿" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...à¬¸à¬®àŸ à¬¸à¬®à¬¾à¬ªàତ ହà‡à¬‰à¬›à¬¿...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...କàଷମା କରିବà‡, ଆପଣଙàକ à¬¸à¬®àŸ à¬¸à¬®à¬¾à¬ªàତ ହà‹à¬‡à¬¯à¬¾à¬‡à¬›à¬¿!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "ତàƒà¬Ÿà¬¿à¬ªà‚ରàଣàଣ କଥà‹à¬ªà¬•ଥନ (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s ବିଫଳ: %d ସଙàକà‡à¬¤à¬°à ପàରସàଥାନ କରàଅଛି" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s ବିଫଳ: %d%s ସଙàକà‡à¬¤ ପାଇଲା" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s ବିଫଳ: ଅଜଣା ଅବସàଥିତି 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -241,18 +250,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "ଲଗଇନ ବିଫଳତାର ନà‚ତନତମ ବିଫଳତା ରà\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "%u ବିଫଳତା ଲଗଇନ କାରଣରà ଖାତା ଅପରିବରàତàତନଶà€à¬³ ହà‹à¬‡à¬¯à¬¾à¬‡à¬›à¬¿à¥¤" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -260,45 +269,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s ରà" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s ରà‡" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ଅନàତିମ ଲଗଇନ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "ଆପଣଙàକ ନà‚ତନ à¬–à¬¾à¬¤à¬¾à¬°à‡ à¬†à¬ªà¬£à¬™àକ ସàବାଗତ!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "ଅନàତିମ ବିଫଳ ଲଗଇନ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -307,150 +316,152 @@ msgstr[0] "ଅନàତିମ ସଫଳ ଲଗଇନ ପରଠାରà %d ଟଠmsgstr[1] "ଅନàତିମ ସଫଳ ଲଗଇନ ପରଠାରà %d ଟି ବିଫଳ ଲଗଇନ ପàରଚà‡à¬·àଟା କରାଯାଇଛି।" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "ଅନàତିମ ସଫଳ ଲଗଇନ ପରଠାରà %d ଟି ବିଫଳ ଲଗଇନ ପàରଚà‡à¬·àଟା କରାଯାଇଛି।" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "'%s' ପାଇଠଅତàଯଧିକ ସଂଖàଯକ ଲଗଇନ ହà‹à¬‡à¬›à¬¿à¥¤" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "ଆପଣଙàକ ପାଇଠଗà‹à¬Ÿà¬¿à¬ ନà‚ଆ ଚିଠି ଆସିଛି।" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "ଆପଣଙàକ ପାଇଠଗà‹à¬Ÿà¬¿à¬ ନà‚ଆ ଚିଠି ଆସିଛି।" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "ଆପଣଙàକ à¬¨à¬¿à¬•à¬Ÿà¬°à‡ à¬—à‹à¬Ÿà¬¿à¬ ପàରàଣା ଚିଠି ଅଛି।" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "ଆପଣଙàକ à¬¨à¬¿à¬•à¬Ÿà¬°à‡ à¬šà¬¿à¬ à¬¿ ଅଛି।" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "ଆପଣଙàକ à¬¨à¬¿à¬•à¬Ÿà¬°à‡ %s ଫà‹à¬²à¬¡à¬°à¬°à‡ କàŒà¬£à¬¸à¬¿ ଚିଠି ନାହିà¬à¥¤" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "ଆପଣଙàକ à¬¨à¬¿à¬•à¬Ÿà¬°à‡ %s ଫà‹à¬²à¬¡à¬°à¬°à‡ ନà‚ଆ ଚିଠି ଅଛି।" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "ଆପଣଙàକ à¬¨à¬¿à¬•à¬Ÿà¬°à‡ %s ଫà‹à¬²à¬¡à¬°à¬°à‡ ପàରàଣା ଚିଠି ଅଛି।" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "ଆପଣଙàକ à¬¨à¬¿à¬•à¬Ÿà¬°à‡ %s ଫà‹à¬²à¬¡à¬°à¬°à‡ ଚିଠି ଅଛି।" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "ଡ଼ିରà‡à¬•àଟà‹à¬°à€ '%s' ନିରàମାଣ କରàଅଛି." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ଡ଼ିରà‡à¬•àଟà‹à¬°à€ '%s'କà ନିରàମାଣ à¬à¬¬à¬‚ ପàରାରମàà¬ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬…à¬¸à¬®à¬°àଥ।" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "ପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬Ÿà¬¿ ପà‚ରàବରà ବàଯବହàƒà¬¤ ହà‡à¬‰à¬›à¬¿à¥¤ ଅନàଯ ଗà‹à¬Ÿà¬¿à¬ ପàରବà‡à¬¶ ସଙàକà‡à¬¤ ଚàŸà¬¨ କରନàତà।" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "ପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬•à ପà‚ରàବରà ବààŸà¬¬à¬¹à¬¾à¬° କରାଯାଇଛି।" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "ପà‚ରàବନିରàଦàଧାରିତ ସàରକàଷା ପàରସଙàଗ ହà‡à¬‰à¬›à¬¿ %s।" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "ଆପଣ à¬à¬¿à¬¨àନ à¬à¬• à¬à‚ମିକା କିମàବା ସàତର à¬à¬°à¬£ କରିବା ପାଇଠଚାହàà¬à¬›à¬¨àତି କି?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "à¬à‚ମିକା:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "à¬à‚ମିକା %s ପାଇଠକàŒà¬£à¬¸à¬¿ ପà‚ରàବନିରàଦàଧାରିତ ପàରକାର ନାହିà¬à¥¤" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "ସàତର:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "à¬à¬¹à¬¾ ଗà‹à¬Ÿà¬¿à¬ ବàˆà¬§ ସàରକàଷା ପàରସଙàଗ ନàହà‡à¬à¥¤" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "%s ପାଇଠà¬à¬• ବàˆà¬§ ପàରସଙàଗ ହାସଲ ହà‹à¬‡ ପାରିଲା ନାହିà¬à¥¤" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "%s ସàରକàଷା ପàରସଙàଗ ନàଯସàତ କରାଯାଇଛି।" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "à¬•à€ à¬¨à¬¿à¬°àମାଣ ପàରସଙàଗ %s ନàଯସàତ କରାଯାଇଛି।" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM କà ପàରାରମàà¬à¬¿à¬•àƒà¬¤ à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "ଲଗଇନ: fork à¬•à¬°à¬¿à¬¬à¬¾à¬°à‡ à¬¬à¬¿à¬«à¬³: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "ପàରବà‡à¬¶ ଗàରହଣà€àŸ ହà‹à¬‡à¬›à¬¿ (ପà‚ରàବ ପàରବà‡à¬¶ ହà‹à¬‡à¬¥à¬¿à¬²à¬¾ %ld ସà‡à¬•ଣàଡ ପà‚ରàବରà)।" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "ଆପଣଙàକର ଖାତା ଅଚଳ ହà‹à¬‡à¬¯à¬¾à¬‡à¬›à¬¿; ଦàŸà¬¾à¬•ରି ଆପଣଙàକର ତନàତàର ପàରଶାସକଙàକ ସହିତ ଯà‹à¬—ାଯà‹à¬— କରନàତà।" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "ଆପଣ ଆପଣଙàକର ପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬•à ଯଥାଶà€à¬˜àର ବଦଳାଇବା ଆବଶàଯକ (ରàଟà ହà‡à¬¬à¬¾ ବାଧàଯତାମà‚ଳକ)।" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" "ଆପଣ ଆପଣଙàକର ପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬•à ଯଥାଶà€à¬˜àର ବଦଳାଇବା ଆବଶàଯକ (ପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬° ବàˆà¬§à¬¤à¬¾ ସରି ଯାଇଛି)।" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -458,37 +469,37 @@ msgstr[0] "ଚà‡à¬¤à¬¾à¬¬à¬¨à€: ଆପଣଙàକ ପàରବà‡à¬¶ ସଙà msgstr[1] "ଚà‡à¬¤à¬¾à¬¬à¬¨à€: ଆପଣଙàକ ପàରବà‡à¬¶ ସଙàକà‡à¬¤ %d à¬¦à¬¿à¬¨à¬°à‡ à¬…à¬•à¬¾à¬®à¬¿ ହà‹à¬‡à¬¯à¬¿à¬¬à¥¤" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "ଚà‡à¬¤à¬¾à¬¬à¬¨à€: ଆପଣଙàକ ପàରବà‡à¬¶ ସଙàକà‡à¬¤ %d à¬¦à¬¿à¬¨à¬°à‡ à¬…à¬•à¬¾à¬®à¬¿ ହà‹à¬‡à¬¯à¬¿à¬¬à¥¤" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS ପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬•à ବଦଳାଇ ହà‡à¬²à¬¾ ନାହିà¬à¥¤" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "କàŒà¬£à¬¸à¬¿ ପàରବà‡à¬¶ ସଙàକà‡à¬¤ ପàରଦାନ କରାଯାଇ ନାହିà¬à¥¤" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "ପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬•à ପରିବରàତàତନ କରା ଯାଇ ନାହିà¬à¥¤" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "ଆପଣ ଗà‹à¬Ÿà¬¿à¬ ଛà‹à¬Ÿ ପàରବà‡à¬¶ ସଙàକà‡à¬¤ ଚàŸà¬¨ କରିବା ଉଚିତ।" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "ଆପଣ ଗà‹à¬Ÿà¬¿à¬ ଲମàବା ପàରବà‡à¬¶ ସଙàକà‡à¬¤ ଚàŸà¬¨ କରିବା ଉଚିତ।" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s ପାଇଠପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬•à ବଦଳାଉଛି." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "ପàରବà‡à¬¶ ସଙàକà‡à¬¤à¬•à ବଦଳାଇବା ପାଇଠଆପଣ ଅଧିକ à¬¸à¬®àŸ à¬…à¬ªà‡à¬•àଷା କରିବା ଉଚିତ।" diff --git a/po/pa.gmo b/po/pa.gmo Binary files differdeleted file mode 100644 index 858fbcd9..00000000 --- a/po/pa.gmo +++ /dev/null @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2023-03-14 02:20+0000\n" "Last-Translator: A S Alam <amanpreet.alam@gmail.com>\n" "Language-Team: Punjabi <https://translate.fedoraproject.org/projects/linux-" @@ -24,11 +24,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 4.15.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "ਪਾਸਵਰਡ: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -38,6 +39,7 @@ msgstr "ਮੌਜੂਦਾ %s ਪਾਸਵਰਡ: " msgid "Current password: " msgstr "ਮੌਜੂਦਾ ਪਾਸਵਰਡ: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -47,6 +49,7 @@ msgstr "ਨਵਾਂ %s ਪਾਸਵਰਡ: " msgid "New password: " msgstr "ਨਵਾਂ ਪਾਸਵਰਡ: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,171 +72,177 @@ msgstr "ਮà©à©œ-ਲਿਖੋ %s" msgid "Password change has been aborted." msgstr "ਪਾਸਵਰਡ ਤਬਦੀਲੀ ਅਧੂਰੀ ਛੱਡੀ ਗਈ।" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "ਲਾਗਇਨ:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "ਸਫ਼ਲ" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "ਗੰà¨à©€à¨° ਗਲਤੀ - ਫ਼ੌਰੀ ਅਧੂਰਾ ਛੱਡਿਆ" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "ਮੈਡਿਊਲ ਲੋਡ ਕਰਨ ਵਿੱਚ ਫੇਲ" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "ਨਿਸ਼ਾਨ ਨਹੀਂ ਮਿਲਿਆ" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "ਸੇਵਾ ਮੈਡੀਊਲ ਵਿੱਚ ਗਲਤੀ" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "ਸਿਸਟਮ ਗਲਤੀ" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "ਮੈਮੋਰੀ ਬਫ਼ਰ ਗਲਤੀ" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "ਅਧਿਕਾਰ ਪਾਬੰਦੀ" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "ਪਰਮਾਣਕਿਤਾ ਫੇਲ" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਡਾਟਾ ਵਰਤਣ ਲਈ ਲੋੜੀਂਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਸਰਵਿਸ ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਜਾਣਕਾਰੀ ਪà©à¨°à¨¾à¨ªà¨¤ ਨਹੀਂ ਕਰ ਸਕਦੀ" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਮੈਡਿਊਲ ਲਈ ਵਰਤੋਂਕਾਰ ਬਾਰੇ ਕà©à¨ ਪਤਾ ਨਹੀਂ" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "ਸਰਵਿਸ ਲਈ ਵੱਧ-ਤੋਂ-ਵੱਧ ਕੋਸ਼ਿਸ਼ਾਂ ਕਰਨ ਦੀ ਹੱਦ ਟੱਪੀ ਗਈ" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਟੋਕਨ ਦੀ ਮਿਆਦ ਪà©à©±à¨— ਚà©à©±à¨•à©€ ਹੈ, ਨਵੇਂ ਦੀ ਲੋੜ ਹੈ" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "ਵਰਤੋਂਕਾਰ ਖਾਤੇ ਦੀ ਮਿਆਦ ਪà©à©±à¨— ਚà©à©±à¨•à©€ ਹੈ" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "ਖਾਸ ਸ਼ੈਸ਼ਨ ਲਈ ਇੱਕ à¨à¨‚ਟਰੀ ਬਣਾ/ਹਟਾ ਨਹੀਂ ਸਕਦਾ" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਸਰਵਿਸ ਵਰਤੋਂਕਾਰ ਸਨਦਾਂ ਪà©à¨°à¨¾à¨ªà¨¤ ਨਹੀਂ ਕਰ ਸਕਦੀ ਹੈ" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "ਵਰਤੋਂਕਾਰ ਸਨਦਾਂ ਦੀ ਮਿਆਦ ਪà©à©±à¨—à©€ ਹੈ" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ਵਰਤੋਂਕਾਰ ਸਨਦਾਂ ਸੈਟਿੰਗ ਅਸਫ਼ਲ ਹੈ" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "ਕੋਈ ਮੈਡਿਊਲ ਸੰਬੰਧੀ ਡਾਟਾ ਮੌਜੂਦ ਨਹੀਂ ਹੈ" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "ਗਲਤ ਇਕਾਈਆਂ pam_*_item() ਨੂੰ ਪਾਸ ਕੀਤੀਆਂ ਹਨ" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "ਤਬਦੀਲੀ ਗਲਤੀ" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਟੋਕਨ ਸੋਧ ਗਲਤੀ" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਜਾਣਕਾਰੀ ਰਿਕਵਰ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਟੋਕਨ ਲਾਕ ਬਿਜ਼ੀ ਹੈ" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "ਪà©à¨°à¨®à¨¾à¨£à¨¿à¨•ਤਾ ਟੋਕਨ à¨à¨œà¨¿à©°à¨— ਅਸਮਰੱਥ ਹੈ" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "ਪਾਸਵਰਡ ਸਰਵਿਸ ਵਲੋਂ ਮà©à©±à¨¢à¨²à©€ ਜਾਂਚ ਫੇਲà©à¨¹ ਹੋਈ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "ਰਿਟਰਨ ਮà©à©±à¨² PAM ਡਿਸਪੈਚ ਦà©à¨†à¨°à¨¾ ਅਣਡਿੱਠਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "ਮੈਡੀਊਲ ਅਣਜਾਣ ਹੈ" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "ਪਰਮਾਣਕਿਤਾ ਟੋਕਨ ਦੀ ਮਿਆਦ ਪà©à©±à¨— ਚà©à©±à¨•à©€ ਹੈ" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "ਗੱਲਬਾਤ ਕਿਸੇ ਘਟਨਾ ਦੀ ਉਡੀਕ ਵਿੱਚ ਹੈ" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "ਕਾਰਜ ਲਈ ਫਿਰ libpam ਨੂੰ ਕਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "ਅਣਜਾਣ PAM ਗਲਤੀ" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...ਸਮਾਂ ਸਮਾਪਤ ਹੋ ਰਿਹਾ ਹੈ...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...ਅਫਸੋਸ, ਤà©à¨¹à¨¾à¨¡à¨¾ ਸਮਾਂ ਸਮਾਪਤ ਹੋ ਗਿਆ ਹੈ!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "ਗਲਤ ਗੱਲ (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s ਫੇਲ ਹੋਇਆ: ਕੋਡ %d ਨਾਲ ਬੰਦ ਹੋ ਗਿਆ" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s ਫੇਲ ਹੋ ਗਿਆ: ਸਿਗਨਲ %d%s ਮਿਲਿਆ" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s ਫੇਲ ਹੋਇਆ: ਅਣਪਛਾਤੀ ਸਥਿਤੀ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -242,18 +251,18 @@ msgstr "" "ਵਰਤੋੰ: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "ਲਾਗਇਨ ਫੇਲà©à¨¹ ਸਠਤੋੰ ਆਖਰੀ ਫੇਲà©à¨¹ ਇਸ ਤੋੰ\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "%u ਫੇਲà©à¨¹ ਹੋਠਲਾਗਇਨਾਂ ਕਰਕੇ ਖਾਤਾ ਲਾਕ ਕੀਤਾ ਹੈ।" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -261,45 +270,45 @@ msgstr[0] "(ਅਣਲਾਕ ਕਰਨ ਲਈ %d ਮਿੰਟ ਬਚੇ ਹਨ)" msgstr[1] "(ਅਣਲਾਕ ਕਰਨ ਲਈ %d ਮਿੰਟ ਬਚੇ ਹਨ)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(ਅਣਲਾਕ ਕਰਨ ਲਈ %d ਮਿੰਟ ਬਚੇ ਹਨ)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s ਤੋਂ" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s ਉੱਤੇ" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ਪਿਛਲਾ ਲਾਗਇਨ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "ਤà©à¨¹à¨¾à¨¡à©‡ ਨਵੇਂ ਖਾਤੇ ਵਿੱਚ ਜੀ ਆਇਆਂ ਨੂੰ!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "ਆਖਰੀ ਫੇਲ ਹੋਇਆ ਲਾਗਇਨ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -308,148 +317,150 @@ msgstr[0] "ਪਿਛਲੇ ਕਾਮਯਾਬ ਲਾਗਇਨ ਤੋਂ ਬਾਠmsgstr[1] "ਪਿਛਲੇ ਕਾਮਯਾਬ ਲਾਗਇਨ ਤੋਂ ਬਾਅਦ %d ਫੇਲà©à¨¹ ਲਾਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ ਸਨ।" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "ਪਿਛਲੇ ਕਾਮਯਾਬ ਲਾਗਇਨ ਤੋਂ ਬਾਅਦ %d ਫੇਲà©à¨¹ ਲਾਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ ਸਨ।" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "'%s' ਲਈ ਬਹà©à¨¤ ਸਾਰੇ ਲਾਗਇਨ ਕੀਤੇ ਗਠਸਨ।" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "ਤà©à¨¹à¨¾à¨¡à©‡ ਲਈ ਕੋਈ ਨਵੀੰ ਈਮੇਲ ਨਹੀਂ ਹੈ।" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "ਤà©à¨¹à¨¾à¨¡à©€ ਨਵੀਂ ਮੇਲ ਹੈ।" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "ਤà©à¨¹à¨¾à¨¡à©€ ਪà©à¨°à¨¾à¨£à©€ ਮੇਲ ਹੈ।" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "ਤà©à¨¹à¨¾à¨¡à©€ ਮੇਲ ਹੈ।" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "ਫੋਲਡਰ %s ਵਿੱਚ ਤà©à¨¹à¨¾à¨¡à©€ ਕੋਈ ਮੇਲ ਨਹੀਂ ਹੈ।" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "ਫੋਲਡਰ %s ਵਿੱਚ ਤà©à¨¹à¨¾à¨¡à©€ ਨਵੀਂ ਮੇਲ ਹੈ।" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "ਫੋਲਡਰ %s ਵਿੱਚ ਤà©à¨¹à¨¾à¨¡à©€ ਪà©à¨°à¨¾à¨£à©€ ਮੇਲ ਹੈ।" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "ਫੇਲਡਰ %s ਵਿੱਚ ਤà©à¨¹à¨¾à¨¡à©€ ਮੇਲ ਹੈ।" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "ਡਾਇਰੈਕਟਰੀ '%s' ਬਣਾਈ ਜਾ ਰਹੀ ਹੈ।" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ਡਾਇਰੈਕਟਰੀ '%s' ਨੂੰ ਬਣਾਉਣ ਅਤੇ ਸ਼à©à¨°à©‚ ਕਰਨ ਵਿੱਚ ਅਸਮਰਥ।" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "ਪਾਸਵਰਡ ਪਹਿਲਾਂ ਵੀ ਵਰਤਿਆ ਗਿਆ ਹੈ। ਵੱਖਰਾ ਚà©à¨£à©‹à¥¤" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "ਪਾਸਵਰਡ ਪਹਿਲਾਂ ਹੀ ਵਰਤਿਆ ਜਾ ਚà©à©±à¨•ਾ ਹੈ।" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "ਮੂਲ ਸà©à¨°à©±à¨–ਿਆ ਪਰਸੰਗ %s ਹੈ।" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "ਕੀ ਤà©à¨¸à©€à¨‚ ਵੱਖਰਾ ਰੋਲ ਜਾਂ ਲੈਵਲ ਦੇਣਾ ਚਾਹà©à©°à¨¦à©‡ ਹੋ?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "ਰੋਲ:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "ਰੋਲ %s ਲਈ ਕੋਈ ਮੂਲ ਕਿਸਮ ਨਹੀਂ ਹੈ।" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "ਲੈਵਲ:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "ਇਹ ਠੀਕ ਸà©à¨°à©±à¨–ਿਆ ਪਰਸੰਗ ਨਹੀਂ ਹੈ।" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "%s ਲਈ ਢà©à©±à¨•ਵਾਂ ਪਰਸੰਗ ਪà©à¨°à¨¾à¨ªà¨¤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "ਸà©à¨°à©±à¨–ਿਆ ਪਰਸੰਗ %s ਦਿੱਤਾ ਨਹੀਂ ਜਾ ਸਕਿਆ।" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "ਕà©à©°à¨œà©€ ਬਣਾਉਣ ਪਰਸੰਗ %s ਦਿੱਤਾ ਗਿਆ ਹੈ।" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM ਸ਼à©à¨°à©‚ ਕਰਨ ਲਈ ਫੇਲ\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() ਲਈ ਫੇਲ\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "ਲਾਗਇਨ: ਫੋਰਕਿੰਗ ਫੇਲ: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "ਪਹà©à©°à¨š ਲਈ ਇਜਾਜ਼ਤ ਦਿੱਤੀ ਗਈ (ਪਿਛਲੀ ਪਹà©à©°à¨š %ld ਸਕਿੰਟ ਪਹਿਲਾਂ ਸੀ)।" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "ਤà©à¨¹à¨¾à¨¡à©‡ ਖਾਤੇ ਦੀ ਮਿਆਦ ਪà©à©±à¨— ਗਈ ਹੈ; ਆਪਣੇ ਸਿਸਟਮ ਪਰਸ਼ਾਸ਼ਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ ਜੀ।" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਆਪਣਾ ਪਾਸਵਰਡ ਫ਼ੌਰੀ ਤਬਦੀਲ ਕਰਨਾ ਪਵੇਗਾ (ਪਰਸ਼ਾਸ਼ਕ ਵੱਲੋਂ ਲਾਜ਼ਮੀ ਬਣਾਇਆ)।" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਆਪਣਾ ਪਾਸਵਰਡ ਫ਼ੌਰੀ ਤਬਦੀਲ ਕਰਨਾ ਪਵੇਗਾ (ਪਾਸਵਰਡ ਦੀ ਮਿਆਦ ਪà©à©±à¨—à©€ ਹੈ)।" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -457,37 +468,37 @@ msgstr[0] "ਚੇਤਾਵਨੀ: ਤà©à¨¹à¨¾à¨¡à©‡ ਪਾਸਵਰਡ ਦੀ à msgstr[1] "ਚੇਤਾਵਨੀ: ਤà©à¨¹à¨¾à¨¡à©‡ ਪਾਸਵਰਡ ਦੀ ਮਿਆਦ %d ਦਿਨਾਂ ‘ਚ ਪà©à©±à¨— ਜਾਵੇਗੀ।" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "ਚੇਤਾਵਨੀ: ਤà©à¨¹à¨¾à¨¡à©‡ ਪਾਸਵਰਡ ਦੀ ਮਿਆਦ %d ਦਿਨਾਂ ‘ਚ ਪà©à©±à¨— ਜਾਵੇਗੀ।" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS ਪਾਸਵਰਡ ਤਬਦੀਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਹੈ।" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "ਕੋਈ ਪਾਸਵਰਡ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ।" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "ਪਾਸਵਰਡ ਤਬਦੀਲ ਨਹੀਂ ਕੀਤਾ ਗਿਆ।" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਕ ਛੋਟਾ ਪਾਸਵਰਡ ਚà©à¨£à¨¨à¨¾ ਚਾਹੀਦਾ ਹੈ." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਲੰਮਾ ਪਾਸਵਰਡ ਚà©à¨£à¨¨à¨¾ ਪਵੇਗਾ।" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s ਲਈ ਪਾਸਵਰਡ ਤਬਦੀਲ ਕਰ ਰਿਹਾ ਹੈ।" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਆਪਣੇ ਪਾਸਵਰਡ ਨੂੰ ਬਦਲਣ ਲਈ ਲੰਮੀ ਉਡੀਕ ਕਰਨੀ ਪਵੇਗੀ।" diff --git a/po/pl.gmo b/po/pl.gmo Binary files differdeleted file mode 100644 index 6616c186..00000000 --- a/po/pl.gmo +++ /dev/null @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-11-13 11:41+0000\n" "Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n" "Language-Team: Polish <https://translate.fedoraproject.org/projects/linux-" @@ -25,11 +25,12 @@ msgstr "" "|| n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.14.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "HasÅ‚o: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -39,6 +40,7 @@ msgstr "Obecne hasÅ‚o %s: " msgid "Current password: " msgstr "Obecne hasÅ‚o: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -48,6 +50,7 @@ msgstr "Nowe hasÅ‚o %s: " msgid "New password: " msgstr "Nowe hasÅ‚o: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -70,171 +73,177 @@ msgstr "ProszÄ™ ponownie wpisać %s" msgid "Password change has been aborted." msgstr "Przerwano zmianÄ™ hasÅ‚a." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "login:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Powodzenie" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Błąd krytyczny — natychmiastowe przerwanie" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Wczytanie moduÅ‚u siÄ™ nie powiodÅ‚o" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Nie odnaleziono symbolu" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Błąd w module usÅ‚ugi" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Błąd systemu" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Błąd buforowania pamiÄ™ci" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Brak dostÄ™pu" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Uwierzytelnienie siÄ™ nie powiodÅ‚o" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "NiewystarczajÄ…ce uprawnienia do dostÄ™pu do danych uwierzytelniajÄ…cych" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "UsÅ‚uga uwierzytelniania nie może uzyskać informacji o uwierzytelnianiu" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Nieznany użytkownik w module uwierzytelniania niższego poziomu" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Wykorzystano maksymalnÄ… liczbÄ™ prób dla usÅ‚ugi" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Token uwierzytelniania nie jest już ważny; wymagany jest nowy" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Konto użytkownika wygasÅ‚o" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Nie można utworzyć/usunąć wpisu dla podanej sesji" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "UsÅ‚uga uwierzytelniania nie może uzyskać uwierzytelnienia użytkownika" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Uwierzytelnienie użytkownika wygasÅ‚o" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Ustawienie uwierzytelniania użytkownika siÄ™ nie powiodÅ‚o" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Brak danych specyficznych dla moduÅ‚u" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Błędny element przekazany do pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Błąd rozmowy" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Błąd podczas modyfikowania tokenu uwierzytelniania" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Nie można odzyskać informacji uwierzytelniajÄ…cych" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Blokada tokenu uwierzytelniania jest zajÄ™ta" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Wygasanie tokenu uwierzytelniania jest wyłączone" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "WstÄ™pne sprawdzenie hasÅ‚a przez usÅ‚ugÄ™ siÄ™ nie powiodÅ‚o" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Zwrócona wartość powinna zostać zignorowana przez PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "ModuÅ‚ jest nieznany" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Token uwierzytelniania wygasÅ‚" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Rozmowa oczekuje na zdarzenie" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Aplikacja musi jeszcze raz wywoÅ‚ać libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Nieznany błąd PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "…czas mija…\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "…czas minÄ…Å‚.\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "błędna rozmowa (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s siÄ™ nie powiodÅ‚o: kod wyjÅ›cia %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s siÄ™ nie powiodÅ‚o: otrzymano sygnaÅ‚ %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s siÄ™ nie powiodÅ‚o: nieznany stan 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -243,18 +252,18 @@ msgstr "" "Użycie: %s [--dir /Å›cieżka/do/katalogu-tally] [--user nazwa-użytkownika] [--" "reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "Login Niepowodzenia Ostatnie niepowodzenie Z\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Konto zostaÅ‚o zablokowane z powodu %u nieudanych logowaÅ„." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -263,45 +272,45 @@ msgstr[1] "(pozostaÅ‚y %d minuty do odblokowania)" msgstr[2] "(pozostaÅ‚o %d minut do odblokowania)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(pozostaÅ‚o %d min do odblokowania)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a, %-d %b %Y, %H∶%M∶%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " z %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " na %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Ostatnie logowanie:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Witaj na swoim nowym koncie!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Ostatnie nieudane logowanie:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -314,150 +323,152 @@ msgstr[2] "" "NastÄ…piÅ‚o %d nieudanych prób zalogowania od ostatniego udanego logowania." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "NastÄ…piÅ‚o %d nieudanych prób zalogowania od ostatniego udanego logowania." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Za dużo prób zalogowania na „%sâ€." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Nie ma nowych wiadomoÅ›ci." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Odebrano nowe wiadomoÅ›ci." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Skrzynka zawiera stare wiadomoÅ›ci." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Odebrano wiadomoÅ›ci." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Brak wiadomoÅ›ci w katalogu %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Nowe wiadomoÅ›ci w katalogu %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Stare wiadomoÅ›ci w katalogu %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "WiadomoÅ›ci w katalogu %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Tworzenie katalogu „%sâ€." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Nie można utworzyć i zainicjować katalogu „%sâ€." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "HasÅ‚o byÅ‚o już używane. Należy wybrać inne." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "HasÅ‚o byÅ‚o już używane." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "DomyÅ›lny kontekst zabezpieczeÅ„ to %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Wprowadzić innÄ… rolÄ™ lub poziom?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rola:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Brak domyÅ›lnego typu dla roli %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "poziom:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "NieprawidÅ‚owy kontekst zabezpieczeÅ„." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Nie można uzyskać prawidÅ‚owego kontekstu dla %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Przypisano kontekst zabezpieczeÅ„ %s." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Przypisano kontekst tworzenia klucza %s." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "zainicjowanie PAM siÄ™ nie powiodÅ‚o\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "„pam_set_item()†siÄ™ nie powiodÅ‚o\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: rozdzielenie siÄ™ nie powiodÅ‚o: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Udzielono dostÄ™p (ostatni dostÄ™p %ld s temu)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Konto wygasÅ‚o; proszÄ™ skontaktować siÄ™ z administratorem komputera." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "Wymagana jest natychmiastowa zmiana hasÅ‚a (wymuszone przez administratora)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Wymagana jest natychmiastowa zmiana hasÅ‚a (hasÅ‚o wygasÅ‚o)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -466,37 +477,37 @@ msgstr[1] "Ostrzeżenie: hasÅ‚o wygaÅ›nie za %d dni." msgstr[2] "Ostrzeżenie: hasÅ‚o wygaÅ›nie za %d dni." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Ostrzeżenie: hasÅ‚o wygaÅ›nie za %d dni." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Nie można zmienić hasÅ‚a NIS." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Nie podano hasÅ‚a." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "HasÅ‚o nie zostaÅ‚o zmienione." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Należy wybrać krótsze hasÅ‚o." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Należy wybrać dÅ‚uższe hasÅ‚o." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Zmienianie hasÅ‚a dla %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Należy poczekać dÅ‚użej na zmianÄ™ hasÅ‚a." diff --git a/po/pt.gmo b/po/pt.gmo Binary files differdeleted file mode 100644 index 78e7db37..00000000 --- a/po/pt.gmo +++ /dev/null @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2021-07-22 00:54+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Portuguese <https://translate.fedoraproject.org/projects/" @@ -26,11 +26,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 4.7.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Palavra-passe: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -40,6 +41,7 @@ msgstr "Palavra-passe %s atual: " msgid "Current password: " msgstr "Palavra-passe atual: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,6 +51,7 @@ msgstr "Nova palavra-passe %s : " msgid "New password: " msgstr "Nova palavra-passe: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,172 +74,178 @@ msgstr "Digite novamente %s" msgid "Password change has been aborted." msgstr "A alteração da palavra-passe foi abortada." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "credencial:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Sucesso" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Erro crÃtico - abortar imediatamente" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Não foi possÃvel carregar o modulo" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "SÃmbolo não encontrado" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Erro no módulo do serviço" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Erro de sistema" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Erro de ''buffer'' da memória" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Permissão negada" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Falha de autenticação" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Credenciais insuficientes para aceder aos dados de autenticação" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "O serviço de autenticação não pode obter a informação de autenticação" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Utilizador desconhecido para o módulo de autenticação subjacente" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Esgotou o número máximo de tentativas para o serviço" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "O código de autenticação já não é válido; é necessário um novo" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "A conta do utilizador expirou" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Não é possÃvel criar/remover uma entrada para a sessão especificada" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" "O serviço de autenticação não consegue obter as credenciais do utilizador" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "As credenciais do utilizador expiraram" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Falha na definição das credenciais do utilizador" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Não existe informação do módulo" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Item incorrecto passado para pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Erro de conversação" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Erro de manipulação do código de autenticação" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "A informação de autenticação não pode ser recuperada" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Bloqueio de código de autenticação ocupado" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "PerÃodo do código de autenticação desativado" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "A validação preliminar pelo serviço de palavras-passe falhou" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "O valor de retorno deveria ser ignorado pelo PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "O módulo é desconhecido" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "O 'token' de autenticação expirou" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "A conversação está a aguardar um evento" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "A aplicação necessita de invocar o libpam novamente" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Erro PAM desconhecido" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...O tempo está a esgotar-se...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Desculpe, o seu tempo expirou!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "conversação errónea (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s falhou: código de saÃda %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s falhou: sinal capturado %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s falhou: estado desconhecido 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -245,18 +254,18 @@ msgstr "" "Utilização: %s [--dir / path/to/tally-directory] [--user nome de utilizador] " "[--reset]]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Sessão Falhas Última falha De\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Conta bloqueada devido a %u inÃcios de sessão falhados." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +273,45 @@ msgstr[0] "(%d minuto restante para desbloquear)" msgstr[1] "(%d minutos restante para desbloquear)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(Minutos restantes para desbloquear: %d)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " a partir de %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " em %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Último inÃcio de sessão:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Bem vindo à sua nova conta!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Último inÃcio de sessão falhado:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -315,154 +324,156 @@ msgstr[1] "" "sessão com sucesso." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Houve %d tentativas falhadas de inÃcio de sessão desde o último inÃcio de " "sessão com sucesso." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Demasiados inÃcios de sessão para '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Tem correio electrónico novo." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Tem correio electrónico novo." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Tem correio electrónico antigo." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Tem correio electrónico." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Não tem correio electrónico na pasta %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Tem correio electrónico novo na pasta %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Tem correio electrónico antigo na pasta %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Tem correio electrónico na pasta %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "A criar directório '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Não foi possÃvel criar e inicializar o directório '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "A senha já foi utilizada anteriormente. Escolha outra." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "A senha já foi utilizada anteriormente." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Contexto de Segurança por Omissão %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Pretende inserir um perfil ou nÃvel diferente?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "Perfil:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Perfil sem tipo definido por omissão %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nÃvel:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Não é um contexto de segurança válido." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Não foi possÃvel obter um contexto de segurança válido para %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Contexto de Segurança %s AtribuÃdo." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Contexto de Segurança de Chaves %s AtribuÃdo." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "falha ao inicializar o PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "falha em pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "inÃcio de sessão: falha no 'forking': %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Acesso permitido (último acesso foi à %ld segundos atrás)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" "A sua conta expirou; por favor contacte o seu administrador de sistema." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "É obrigatório que altere de imediato a sua senha (politica do sistema)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" "É obrigatório que altere de imediato a sua senha (antiguidade da password)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -470,37 +481,37 @@ msgstr[0] "Aviso: a sua senha expira em %d dia." msgstr[1] "Aviso: a sua senha expira em %d dias." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Aviso: a sua palavra passe expira em %d dias." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "A senha NIS não pode ser alterada." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Não foi fornecida uma senha." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "A senha não foi alterada." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Você deve escolher uma senha mais curta." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Deve escolher uma senha mais longa." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "A alterar senha para %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Tem de esperar mais antes de poder alterar a sua senha." diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo Binary files differdeleted file mode 100644 index 7c3e06a3..00000000 --- a/po/pt_BR.gmo +++ /dev/null diff --git a/po/pt_BR.po b/po/pt_BR.po index 454ec9c7..c6645a32 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -11,13 +11,14 @@ # Taylon Silmer <taylonsilva@gmail.com>, 2008-2009 # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata # Dmitry V. Levin <ldv@altlinux.org>, 2020, 2021. +# Rafael Fontenelle <rafaelff@gnome.org>, 2023. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2021-07-22 00:54+0000\n" -"Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2023-09-18 01:35+0000\n" +"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n" "Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/" "projects/linux-pam/master/pt_BR/>\n" "Language: pt_BR\n" @@ -25,13 +26,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.7.2\n" +"X-Generator: Weblate 5.0.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Senha: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -41,6 +43,7 @@ msgstr "Atual %s senha: " msgid "Current password: " msgstr "Atual senha: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -50,6 +53,7 @@ msgstr "Nova %s senha: " msgid "New password: " msgstr "Nova senha: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -72,191 +76,197 @@ msgstr "Redigite %s" msgid "Password change has been aborted." msgstr "A alteração de senha foi abortada." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "login:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Sucesso" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Erro crÃtico - abortar imediatamente" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Falha ao carregar módulo" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "SÃmbolo não encontrado" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Erro no módulo de serviço" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Erro do sistema" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Erro do buffer de memória" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Permissão negada" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Falha de autenticação" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Credenciais insuficientes para acessar dados de autenticação" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "O serviço de autenticação não recuperou informações de autenticação" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Usuário desconhecido para o módulo de autenticação subjacente" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Esgotado o número máximo de tentativas para serviço" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "O token de autenticação não é mais válido; é necessario um novo token" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "A conta do usuário expirou" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "ImpossÃvel fazer/remover uma entrada para a sessão especÃfica" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "O serviço de autenticação não recuperou as credenciais do usuário" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Credenciais do usuário expiradas" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Falha ao definir credenciais do usuário" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Não há nenhum dado especÃfico para o módulo" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Ãtem incorreto passado para pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Erro de conversação" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Erro de manipulação de token de autenticação" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "ImpossÃvel recuperar informações de autenticação" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Bloqueio de token de autenticação ocupado" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Validade do token de autenticação desabilitado" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Falha na verificação preliminar por serviço de senha" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "O valor de retorno deve ser ignorado pelo despacho PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Módulo desconhecido" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Token de autenticação expirado" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Conversação aguardando por evento" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "O aplicativo precisa chamar libpam novamente" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Erro desconhecido no PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...O tempo está acabando...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Desculpe, seu tempo está aumentando!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "conversação errônea (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s falhou: código de saÃda %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s falhou: detectou sinal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s falhou: status desconhecido 0x%x" -#: modules/pam_faillock/main.c:130 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:131 +#, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -"Uso: %s [--dir /caminho/para/diretório-tally] [--user nome-utilizador] [--" -"reset]\n" +"Uso: %s [--dir /caminho/para/diretório-tally] [--user usuário] [--reset] [--" +"legacy-output]\n" -#: modules/pam_faillock/main.c:181 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:182 +#, c-format msgid "Login Failures Latest failure From\n" -msgstr "Login Falhas Último falha De\n" +msgstr "Login Falhas Última falha De\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Conta bloqueada devido a %u falhas de login." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +274,45 @@ msgstr[0] "(%d minuto restante para desbloquear)" msgstr[1] "(%d minutos restante para desbloquear)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(minutos restantes para desbloquear: %d)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " de %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " em %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Último login:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Bem-vindo à sua nova conta!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Falha no último login:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -311,149 +321,150 @@ msgstr[0] "Houve %d falhas de login desde o último login bem sucedido." msgstr[1] "Houveram %d falhas de login desde o último login bem sucedido." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "Houveram %d falhas de login desde o último login bem sucedido." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Há logins demais para '%s'." -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "Há novas mensagens." +msgstr "Você não tem novas mensagens." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Há novas mensagens." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Há mensagens antigas." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Há mensagens." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Não há mensagens na pasta %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Há novas mensagens na pasta %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Há mensagens antigas na pasta %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Há mensagens na pasta %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Criando o diretório '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "ImpossÃvel criar e inicializar o diretório \"%s\"." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "A senha já foi usada. Escolha outra." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "A senha já foi usada." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Contexto de Segurança Padrão %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Deseja digitar uma função ou nÃvel diferente?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "função:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Não existe tipo padrão para a função %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nÃvel:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Não é um contexto de segurança válido." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "ImpossÃvel obter um contexto válido para %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Contexto de segurança %s atribuÃdo." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Contexto de criação de chave %s atribuÃdo." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "falha ao inicializar PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "falha em pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: falha na bifurcação: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Acesso concedido (o último acesso foi a %ld segundos atrás)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Sua conta expirou; entre em contato com o administrador do sistema." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Mude sua senha imediatamente (aplicado pela raiz)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Mude sua senha imediatamente (senha expirada)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -461,37 +472,37 @@ msgstr[0] "Aviso: sua senha irá expirar em %d dia." msgstr[1] "Aviso: sua senha irá expirar em %d dias." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Aviso: sua senha irá expirar em %d dias." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "A senha NIS não pôde ser mudada." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Nenhuma senha informada." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Senha inalterada." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Você deve escolher uma senha mais curta." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Escolha uma senha mais longa." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Mudando senha para %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Aguarde mais tempo para mudar a senha." diff --git a/po/quot.sed b/po/quot.sed deleted file mode 100644 index 0122c463..00000000 --- a/po/quot.sed +++ /dev/null @@ -1,6 +0,0 @@ -s/"\([^"]*\)"/“\1â€/g -s/`\([^`']*\)'/‘\1’/g -s/ '\([^`']*\)' / ‘\1’ /g -s/ '\([^`']*\)'$/ ‘\1’/g -s/^'\([^`']*\)' /‘\1’ /g -s/“â€/""/g diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin deleted file mode 100644 index 2436c49e..00000000 --- a/po/remove-potcdate.sin +++ /dev/null @@ -1,19 +0,0 @@ -# Sed script that remove the POT-Creation-Date line in the header entry -# from a POT file. -# -# The distinction between the first and the following occurrences of the -# pattern is achieved by looking at the hold space. -/^"POT-Creation-Date: .*"$/{ -x -# Test if the hold space is empty. -s/P/P/ -ta -# Yes it was empty. First occurrence. Remove the line. -g -d -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} diff --git a/po/ro.gmo b/po/ro.gmo Binary files differdeleted file mode 100644 index 8fa14e9e..00000000 --- a/po/ro.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2023-04-09 22:51+0000\n" "Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n" "Language-Team: Romanian <https://translate.fedoraproject.org/projects/linux-" @@ -23,11 +23,12 @@ msgstr "" "20)) ? 1 : 2;\n" "X-Generator: Weblate 4.15.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Parola: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "Parolă curentă %s: " msgid "Current password: " msgstr "Parolă curentă: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "Parolă nouă %s: " msgid "New password: " msgstr "Parolă nouă: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -68,173 +71,179 @@ msgstr "RescrieÈ›i %s" msgid "Password change has been aborted." msgstr "Schimbarea parolei a fost anulată." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "autentificare:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Succes" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Eroare critică - abandonare imediată" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "ÃŽncărcarea modulului a eÈ™uat" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Simbolul nu a fost găsit" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Eroare în modulul de serviciu" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Eroare de sistem" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Eroare în memoria tampon" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Acces refuzat" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Autentificare eÈ™uată" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Acreditări insuficiente pentru a accesa datele de autentificare" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" "Serviciul de autentificare nu poate obÈ›ine informaÈ›iile de autentificare" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Utilizator necunoscut de modulul de autentificare subiacent" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "S-a atins numărul maxim de încercări pentru serviciu" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" "Autentificarea nu mai este valabilă; o nouă autentificare este necesară" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Contul utilizatorului a expirat" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Nu se poate crea/È™terge o intrare pentru sesiunea specificată" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Serviciul de autentificare nu poate obÈ›ine acreditările utilizatorului" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Acreditările utilizatorului au expirat" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "EÈ™ec la definirea acreditărilor pentru utilizator" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Nu există date specifice pentru modul" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "A fost trimis un element incorect către pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Eroare de conversaÈ›ie" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Eroare la manipularea informaÈ›iei de autentificare" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "InformaÈ›ia de autentificare nu poate fi recuperată" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Blocarea informaÈ›iei de autentificare este rezervată" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Perioada de validitate a informaÈ›iei de autentificare este dezactivată" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Eroare la verificarea preliminară făcută de către serviciul de parole" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Valoarea de returnare trebuie să fie ignorată de către expeditorul PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modul necunoscut" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "InformaÈ›ia de autentificare a expirat" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "ConversaÈ›ia aÈ™teaptă după un eveniment" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "AplicaÈ›ia trebuie să cheme din nou libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Eroare PAM necunoscută" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Timpul se scurge...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Timpul a expirat!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "conversaÈ›ie eronată (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s a eÈ™uat: codul de ieÈ™ire %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s a eÈ™uat: semnalul captat %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s a eÈ™uat: stare necunoscută 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -243,18 +252,18 @@ msgstr "" "Utilizare: %s [--dir /ruta/la/directorul-tally] [--user nume_utilizator] [--" "reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "Autentificare EÈ™uări Ultima eÈ™uare De la\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Contul este blocat din cauza a %u autentificări eÈ™uate." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -263,45 +272,45 @@ msgstr[1] "(%d minute rămase până la deblocare)" msgstr[2] "(%d de minute rămase până la deblocare)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minute rămase până la deblocare)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %A %e %B %Y la %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " de la %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " pe %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Ultima autentificare:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Bun venit în noul cont!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Ultima autentificare eÈ™uată:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -317,151 +326,153 @@ msgstr[2] "" "autentificare reuÈ™ită." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Au avut loc %d încercări nereuÈ™ite de autentificare de la ultima " "autentificare reuÈ™ită." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Sunt prea multe autentificări pentru „%sâ€." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Nu aveÈ›i niciun mesaj nou." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "AveÈ›i un mesaj nou." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "AveÈ›i un mesaj vechi." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "AveÈ›i un mesaj." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Nu aveÈ›i mesaje în directorul %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "AveÈ›i un mesaj nou în directorul %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "AveÈ›i un mesaj vechi în directorul %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "AveÈ›i un mesaj în directorul %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Se creează directorul „%sâ€." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Nu se poate crea È™i iniÈ›ializa directorul „%sâ€." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Parola a fost deja utilizată. AlegeÈ›i alta." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Parola a fost deja utilizată." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Contextul implicit de securitate este %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "VreÈ›i să introduceÈ›i un rol sau nivel diferit?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rol:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Nu există un tip implicit pentru rolul %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nivel:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Nu există un context valid de securitate." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Nu s-a putut obÈ›ine un context valid pentru %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Contextul de securitate %s a fost asignat." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Cheia pentru crearea contextului %s a fost asignată." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "eroare la iniÈ›ializarea PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "eroare la pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "autentificare: eroare la bifurcare %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Accesul a fost permis (ultimul acces a fost acum %ld secunde)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Contul dvs. a expirat; contactaÈ›i administratorul de sistem." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "Vi se cere să vă schimbaÈ›i parola imediat (cerință impusă de administrator)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Vi se cere să vă schimbaÈ›i parola imediat (parola a expirat)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -470,37 +481,37 @@ msgstr[1] "AtenÈ›ie: parola dvs. va expira în %d zile." msgstr[2] "AtenÈ›ie: parola dvs. va expira în %d de zile." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "AtenÈ›ie: parola dvs. va expira în %d zile." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Parola pentru NIS nu poate fi schimbată." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Nu a fost introdusă nicio parolă." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Parola nu a fost schimbată." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Trebuie să alegeÈ›i o parolă mai scurtă." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Trebuie să alegeÈ›i o parolă mai lungă." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Se schimbă parola pentru %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Trebuie să aÈ™teptaÈ›i mai mult până veÈ›i putea schimba parola." diff --git a/po/ru.gmo b/po/ru.gmo Binary files differdeleted file mode 100644 index aacfa1b2..00000000 --- a/po/ru.gmo +++ /dev/null @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2021-07-21 13:19+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Russian <https://translate.fedoraproject.org/projects/linux-" @@ -26,11 +26,12 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.7.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -40,6 +41,7 @@ msgstr "Текущий пароль %s: " msgid "Current password: " msgstr "Текущий пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,6 +51,7 @@ msgstr "Ðовый пароль %s: " msgid "New password: " msgstr "Ðовый пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,173 +74,179 @@ msgstr "Повторите ввод %s" msgid "Password change has been aborted." msgstr "Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ð¾." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "УÑпех" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° -- незамедлительное прерывание операции" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Ðе удалоÑÑŒ загрузить модуль" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Символ не найден" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Ошибка в модуле Ñлужбы" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Ошибка буфера памÑти" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "ДоÑтуп запрещен" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Сбой при проверке подлинноÑти" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "ÐедоÑтаточно учетных данных Ð´Ð»Ñ Ð´Ð¾Ñтупа к данным проверки подлинноÑти" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" "Службе проверки подлинноÑти не удаетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Пользователь не извеÑтен базовому модулю проверки подлинноÑти" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "ИÑпользовано макÑимальное чиÑло попыток, заданное Ð´Ð»Ñ Ñлужбы" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Маркер проверки подлинноÑти больше недейÑтвителен; требуетÑÑ Ð½Ð¾Ð²Ñ‹Ð¹" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Срок дейÑÑ‚Ð²Ð¸Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ñтек" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Ðе удалоÑÑŒ Ñоздать/удалить запиÑÑŒ Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑеанÑа" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" "Службе проверки подлинноÑти не удаетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ учетные данные пользователÑ" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Срок дейÑÑ‚Ð²Ð¸Ñ ÑƒÑ‡ÐµÑ‚Ð½Ñ‹Ñ… данных Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ñтек" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Сбой при наÑтройке учетных данных пользователÑ" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "ОтÑутÑтвуют данные, Ñпецифичные Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Ð’ pam_*_item() передан неверный Ñлемент" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Ошибка диалога" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Ошибка при операциÑÑ… Ñ Ð¼Ð°Ñ€ÐºÐµÑ€Ð¾Ð¼ проверки подлинноÑти" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Ðе удаетÑÑ Ð²Ð¾ÑÑтановить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Блокировка маркера проверки подлинноÑти занÑта" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Ограничение Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð¼Ð°Ñ€ÐºÐµÑ€Ð° проверки подлинноÑти отключено" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Службе паролей не удалоÑÑŒ выполнить предварительную проверку" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Возвращенное значение не должно учитыватьÑÑ Ð¿Ñ€Ð¸ передаче в PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "ÐеизвеÑтный модуль" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Срок дейÑÑ‚Ð²Ð¸Ñ Ð¼Ð°Ñ€ÐºÐµÑ€Ð° проверки подлинноÑти иÑтек" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "ПроцеÑÑ Ð´Ð¸Ð°Ð»Ð¾Ð³Ð° ожидает Ñобытие" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Приложение должно повторно вызвать libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Ð’Ñ€ÐµÐ¼Ñ Ð¸Ñтекает...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Извините, ваше Ð²Ñ€ÐµÐ¼Ñ Ð¸Ñтекло!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "ошибочный диалог (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "Сбой %s. Код выхода: %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "Сбой %s. Получен Ñигнал %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "Сбой %s. ÐеизвеÑтный ÑÑ‚Ð°Ñ‚ÑƒÑ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -246,20 +255,20 @@ msgstr "" "ИÑпользование: %s: [--dir /путь/к/каталогу-tally] [--user имÑ_пользователÑ] " "[--reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ Сбои ПоÑледний Ñбой С\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" "Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована как ÑледÑтвие неудачных попыток входа (вÑего -- " "%u)." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -268,45 +277,45 @@ msgstr[1] "(оÑталоÑÑŒ %d минуты до разблокировки)" msgstr[2] "(оÑталоÑÑŒ %d минут до разблокировки)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(оÑталоÑÑŒ %d мин. до разблокировки)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " Ñ %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " на %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ПоÑледний вход в ÑиÑтему:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Добро пожаловать в новую учетную запиÑÑŒ!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "ПоÑледнÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° входа в ÑиÑтему:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -316,150 +325,152 @@ msgstr[1] "ЧиÑло неудачных попыток Ñо времени по msgstr[2] "ЧиÑло неудачных попыток Ñо времени поÑледнего входа: %d." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "ЧиÑло неудачных попыток Ñо времени поÑледнего входа: %d." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Слишком много региÑтраций в ÑиÑтеме Ð´Ð»Ñ Â«%s»." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Почты нет." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "ЕÑть Ð½Ð¾Ð²Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð°." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "ЕÑть ÑÑ‚Ð°Ñ€Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð°." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "ЕÑть почта." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Ðет почты в папке %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "ЕÑть Ð½Ð¾Ð²Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð° в папке %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "ЕÑть ÑÑ‚Ð°Ñ€Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð° в папке %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "ЕÑть почта в папке %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Создание каталога %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Ðе удалоÑÑŒ Ñоздать и инициализировать каталог %s." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Ðтот пароль уже был иÑпользован. Выберите другой." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Ðтот пароль уже иÑпользовалÑÑ." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "КонтекÑÑ‚ безопаÑноÑти по умолчанию %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Хотите ввеÑти другую роль или уровень?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "роль:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Ð”Ð»Ñ Ñ€Ð¾Ð»Ð¸ %s нет типа по умолчанию." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "уровень:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Ðеверный контекÑÑ‚ безопаÑноÑти." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Ðе удалоÑÑŒ получить корректный контекÑÑ‚ Ð´Ð»Ñ %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "КонтекÑÑ‚ безопаÑноÑти %s назначен." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "КонтекÑÑ‚ %s, иÑпользуемый при Ñоздании ключей, назначен." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "не удалоÑÑŒ инициировать PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "не удалоÑÑŒ выполнить pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "региÑтрациÑ: Ñбой при Ñоздании нового процеÑÑа: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "ДоÑтуп предоÑтавлен (поÑледнее обращение было %ld Ñек. назад)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" "Срок дейÑÑ‚Ð²Ð¸Ñ ÑƒÑ‡ÐµÑ‚Ð½Ð¾Ð¹ запиÑи иÑтек; обратитеÑÑŒ к ÑиÑтемному админиÑтратору." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" "Вам необходимо немедленно Ñменить пароль (по требованию админиÑтратора)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Вам необходимо немедленно Ñменить пароль (пароль уÑтарел)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -468,37 +479,37 @@ msgstr[1] "Предупреждение: Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ msgstr[2] "Предупреждение: Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дней." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Предупреждение: Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¸Ñтекает через %d дн(Ñ)(ей)." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Пароль NIS изменить нельзÑ." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Пароль не указан." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Пароль не изменен." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Ð’Ñ‹ должны выбрать более короткий пароль." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Выберите пароль большей длины." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Смена Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð»Ñ %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "До Ñмены Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ пройти больше времени." diff --git a/po/si.gmo b/po/si.gmo Binary files differdeleted file mode 100644 index 121f231d..00000000 --- a/po/si.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-03-06 23:59+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Sinhala <https://translate.fedoraproject.org/projects/linux-" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 3.11.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "රහස්පදය: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "නව %s රහස්පදය: " msgid "Current password: " msgstr "නව රහස්පදය: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "නව %s රහස්පදය: " msgid "New password: " msgstr "නව රහස්පදය: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,171 +72,177 @@ msgstr "" msgid "Password change has been aborted." msgstr "රහස්පදය දà·à¶±à¶§à¶¸à¶à·Š à¶·à·à·€à·’à¶à· වේ. වෙනà¶à·Š à¶‘à¶šà¶šà·Š à¶à·à¶»à·à¶œà¶±à·Šà¶±." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "පිවිසීම:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "අවදà·à¶±à¶¸à·Š දà·à·‚ය- à¶šà·Šâ€à·‚à¶«à·’à¶š ඉවà¶à·Šà·€à·“ම" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "අංගය පූරණය අසමà¶à·Š විය" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "සංකේà¶à¶º හමුවූයේ à¶±à·à¶" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "සේව෠අංගයේ දà·à·‚යකි" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "පද්ධà¶à·’ දà·à·‚ය" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "මà¶à¶š බෆරයේ දà·à·‚ය" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "අවසර වලක෠ඇà¶" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "à¶à·„වුරු කරගà·à¶±à·“ම අසමà¶à·Š විය" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "අවසර දà¶à·Šà¶ සඳහ෠ප්â€à¶»à·€à·šà·à¶ºà¶§ à¶´à·Šâ€à¶»à¶¸à·à¶«à·€à¶à·Š සහà¶à·’à¶šà¶à·Šà·€à¶ºà¶šà·Š à¶±à·à¶" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "à¶à·„වුරු කරගà·à¶±à·“මේ සේවà·à·€ මඟින් à¶à·„වුරු කරගà·à¶±à·“මේ à¶à·œà¶»à¶à·”රු ලබà·à¶œà¶ නොහà·à¶š" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "à¶´à·à¶¯à¶šà·€à·” à¶à·„වුරු කරගà·à¶±à·“මේ අංගය සඳහ෠පරිà·à·’ලකය෠නොදනි" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "සේවà·à·€ සඳහ෠උපරිම à¶‹à¶à·Šà·ƒà·à·„ කිරිම් ඉක්මව෠ඇà¶" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "à¶à·„වුරු කරගà·à¶±à·“මේ à¶§à·à¶šà¶±à¶º à¶à·€à¶¯à·”රටà¶à·Š වලංගු à¶±à·à¶; අලුà¶à·Š à¶‘à¶šà¶šà·Š à¶…à·€à·à·Šâ€à¶ºà·€à·š" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "පරිà·à·“ලක ගිණුම කල්ඉකුà¶à·Š විය" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "දක්ව෠ඇà¶à·’ à·ƒà·à·ƒà·’ය සඳහ෠ඇà¶à·”à·…à¶à·Š කිරීමක් à¶‘à¶šà¶šà·Š කිරීම/ඉවà¶à·Š කිරීම à¶šà·… නොහà·à¶š" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "à¶à·„වුරු කරගà·à¶±à·“මේ සේවà·à·€ මඟින් පරිà·à·“ලක සහà¶à·’à¶š ලබà·à¶œà¶ නොහà·à¶š" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "පරිà·à·“ලක සහà¶à·’à¶š කල්ඉකුà¶à·Š වී ඇà¶" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "පරිà·à·“ලක සහà¶à·’à¶š à·ƒà·à¶šà·ƒà·“ම අසමà¶à·Š විය" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "අංගවිà·à·šà·‚ිචදà¶à·Šà¶ නොමà·à¶" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "දà·à·‚ සහිචඅයිà¶à¶¸à¶ºà¶šà·Š pam_*_item() වෙචපිරිනà·à¶¸à·”නී" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "පරිවර්à¶à¶± දà·à·‚ය" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "à¶à·„වුරු කරගà·à¶±à·“මේ à¶§à·à¶šà¶±à¶º à·ƒà·à¶šà·ƒà·’මේදි දà·à·‚ය" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "à¶à·„වුරු කරගà·à¶±à·“මේ à¶à·œà¶»à¶à·”රු à¶±à·à·€à¶ ලබà·à¶œà¶ නොහà·à¶š" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "à¶à·„වුරු කරගà·à¶±à·“මේ à¶§à·à¶šà¶± අගුලුව කර්â€à¶ºà¶º බහුලයි" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "à¶´à·à¶»à¶«à·’ à¶à·„වුරු කරගà·à¶±à·“මේ à¶§à·à¶šà¶±à¶º à¶…à¶šà·Šâ€à¶»à·“යව ඇà¶" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "රහස්පද සේවයේ à¶´à·Šâ€à¶»à·à¶®à¶¸à·’à¶š පරික්â€à·‚ණය අසමà¶à·Šà·€à·’ය" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "PAM à¶´à·’à¶§à¶à·Šà¶šà¶» à·„à·à¶»à·“ම මඟින් ආපසු à¶½à·à¶¶à·™à¶± අගය නොසලක෠හà·à¶»à·’ය යුà¶à·”ය" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "නොදන්න෠අංගයකි" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "à¶à·„වුරු කරගà·à¶±à·“මේ à¶§à·à¶šà¶±à¶º කල්ඉකුà¶à·€à·’ ඇà¶" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "පරිවà¶à·Šà¶à¶±à¶º අවස්à¶à·à·€à¶šà·Š සඳහ෠නà·à·€à¶à·“ ඇà¶" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "යෙදුමට à¶´à·à¶»à¶«à·’ libpam ඇමà¶à·“මට à¶…à·€à·à·Šâ€à¶ºà·€ ඇà¶" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "නොදන්න෠PAM දà·à·‚ය" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...à¶šà·à¶½ සීමà·à·€ ඉක්මව෠ඇà¶...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...සමà·à·€à¶±à·Šà¶±, ොබගේ à¶šà·à¶½à¶º ඉක්ම විය!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "à·€à·à¶»à¶¯à·’ සගචපරිවර්à¶à¶±à¶ºà¶šà·Š(%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s අසමà¶à·Š විය: ඉවà¶à·’වීමෙ à¶šà·šà¶à¶º %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s අසමà¶à·Š විය: සංඥà·à·€ අල්ල෠ගන්න෠ලදි%d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s අසමà¶à·Š විය: නොදන්න෠à¶à¶à·Šà·€à¶º 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -241,18 +250,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -260,45 +269,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s වෙà¶à·’න්" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s වෙනිදà·" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "අවසà·à¶± පිවිසුම:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "ඔබගේ නව ගිණුමට à·ƒà·à¶¯à¶»à¶ºà·™à¶±à·Š පිළිගනිමු!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -307,154 +316,156 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s' සඳහ෠බොහ෠පිවිසුම් ගණනක් ඇà¶." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "ඔබට අලුà¶à·Š à¶à·à¶´à·à¶½à·Š ඇà¶." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "ඔබට අලුà¶à·Š à¶à·à¶´à·à¶½à·Š ඇà¶." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "ඔබට පරණ à¶à·à¶´à·à¶½à·Š ඇà¶." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "ඔබට à¶à·à¶´à·à¶½à·Š ඇà¶." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "%s බහලුම à¶à·”à·… ඔබට à¶à·à¶´à·à¶½à·Š à¶±à·à¶." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "%s බහලුම à¶à·”à·… ඔබට අලුà¶à·Š à¶à·à¶´à·à¶½à·Š ඇà¶." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "%s බහලුම à¶à·”à·… ඔබට පරණ à¶à·à¶´à·à¶½à·Š ඇà¶." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "%s බහලුම à¶à·”à·… ඔබට à¶à·à¶´à·à¶½à·Š ඇà¶." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "රහස්පදය දà·à¶±à¶§à¶¸à¶à·Š à¶·à·à·€à·’à¶à· වේ. වෙනà¶à·Š à¶‘à¶šà¶šà·Š à¶à·à¶»à·à¶œà¶±à·Šà¶±." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "රහස්පදය දà·à¶±à¶§à¶¸à¶à·Š à¶·à·à·€à·’à¶à· වේ. වෙනà¶à·Š à¶‘à¶šà¶šà·Š à¶à·à¶»à·à¶œà¶±à·Šà¶±." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "නිරවද්â€à¶º ආරක්â€à·‚à¶š à¶´à·Šâ€à¶»à¶šà¶»à¶«à¶ºà¶šà·Š නොවේ" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "නිරවද්â€à¶º ආරක්â€à·‚à¶š à¶´à·Šâ€à¶»à¶šà¶»à¶«à¶ºà¶šà·Š නොවේ" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "%s ආරක්â€à·‚à¶š à¶´à·Šâ€à¶»à¶šà¶»à¶«à¶º යොදව෠ඇà¶" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "%s ආරක්â€à·‚à¶š à¶´à·Šâ€à¶»à¶šà¶»à¶«à¶º යොදව෠ඇà¶" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM ඇරඹිම අසමà¶à·Š විය\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() අසමà¶à·Š විය\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "පිවිසුම: ෆොර්කින් බිදවà·à¶§à·“මක්: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "ඔබගේ ගිණුම කල්ඉකුà¶à·Š වී ඇà¶; කරුණà·à¶šà¶» ඔබගේ පද්ධà¶à·’ කළමණà·à¶šà¶»à·” හමුවන්න" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "ඔබගේ රහස්පදය à·„à·à¶šà·’ ඉක්මනින් වෙනස් à¶šà·… යුà¶à·”à·€ ඇච(root බලකර සිටී)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "ඔබගේ රහස්පදය à·„à·à¶šà·’ ඉක්මනින් වෙනස් à¶šà·… යුà¶à·”à·€ ඇච(රහස්පදය à¶´à·à¶»à¶«à·’යි)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -462,40 +473,40 @@ msgstr[0] "අවවà·à¶¯à¶ºà·’: ඔබගේ රහස්පදය දින % msgstr[1] "අවවà·à¶¯à¶ºà·’: ඔබගේ රහස්පදය දින %d කින් කල්ඉකුà¶à·Š වේ" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "අවවà·à¶¯à¶ºà·’: ඔබගේ රහස්පදය දින %d කින් කල්ඉකුà¶à·Š වේ" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS රහස්පදය වෙනස් à¶šà·… නොහà·à¶š." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "රහස්පදය සපය෠නà·à¶" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS රහස්පදය වෙනස් à¶šà·… නොහà·à¶š." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "ඔබ කෙටි මුරපදයක් à¶à·à¶»à· ගචයුà¶à·”ය." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "ඔබ විසින් දිගු රහස්පදයක් à¶à·à¶»à·à¶œà¶ යුà¶à·”ම වේ" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "ඔබගේ රහස්පදය වෙනස් කිරීමට බොහ෠වෙලà·à·€à¶šà·Š à¶»à·à¶¯à·“ සිටීය යුà¶à·”ම වේ" diff --git a/po/sk.gmo b/po/sk.gmo Binary files differdeleted file mode 100644 index 0d79190d..00000000 --- a/po/sk.gmo +++ /dev/null @@ -8,14 +8,14 @@ # feonsu <feonsu@gmail.com>, 2008 # Pavol Å imo <palo.simo@gmail.com>, 2009 # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata -# Ondrej Sulek <feonsu@gmail.com>, 2020, 2021. +# Ondrej Sulek <feonsu@gmail.com>, 2020, 2021, 2023. # Dmitry V. Levin <ldv@altlinux.org>, 2020. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2021-10-08 04:19+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2023-05-16 10:21+0000\n" "Last-Translator: Ondrej Sulek <feonsu@gmail.com>\n" "Language-Team: Slovak <https://translate.fedoraproject.org/projects/linux-" "pam/master/sk/>\n" @@ -24,13 +24,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.8\n" +"X-Generator: Weblate 4.15.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Heslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -40,6 +41,7 @@ msgstr "Aktuálne %s heslo: " msgid "Current password: " msgstr "Aktuálne heslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,6 +51,7 @@ msgstr "Nové %s heslo: " msgid "New password: " msgstr "Nové heslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,191 +74,197 @@ msgstr "Opakujte %s" msgid "Password change has been aborted." msgstr "Zmena hesla zruÅ¡ená." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "login:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Úspech" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritická chyba - okamžité zruÅ¡enie" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Nepodarilo sa naÄÃtaÅ¥ modul" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbol nenájdený" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Chyba v module služby" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Chyba systému" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Chyba vyrovnávacej pamäte" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "PrÃstup odmietnutý" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Zlyhanie overenia" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "NedostatoÄné oprávnenia pre prÃstup k údajom overenia" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Overovacia služba nemôže zÃskaÅ¥ informácie pre overenie" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "PoužÃvateľ nie je známy pre podriadený overovacà modul" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "VyÄerpaný maximálny poÄet pokusov pre službu" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Overovacà token už nie je platný; požadovaný je nový" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "PlatnosÅ¥ použÃvateľského úÄtu vyprÅ¡ala" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Pre zadanú reláciu nie je možné vytvoriÅ¥/odstrániÅ¥ záznam" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Overovacia služba nemôže zÃskaÅ¥ oprávnenia použÃvateľa" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "VyprÅ¡ala platnosÅ¥ použÃvateľského oprávnenia" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Chyba pri nastavenà oprávnenà použÃvateľa" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Nie je možné nájsÅ¥ dáta pre modul" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Funkcii pam_*_item() bola poslaná zlá položka" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Chyba konverzácie" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Chyba pri manipulácii s overovacÃm tokenom" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Overovaciu informáciu nie je možné obnoviÅ¥" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Overovacà token je uzamknutý" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Starnutie overovacieho tokenu zakázané" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Zlyhanie predbežnej kontroly v službe hesla" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Návratová hodnota by mala byÅ¥ ignorovaná mechanizmom PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Neznámy modul" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "VyprÅ¡ala platnosÅ¥ overovacieho tokenu" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Konverzácia Äaká na udalosÅ¥" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Aplikácia musà znovu zavolaÅ¥ libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Neznáme chyba PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...OdpoÄet bol spustený...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...PrepáÄte, váš Äas vyprÅ¡al!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "chybná konverzácia (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s zlyhalo: výstupný kód %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s zlyhalo: dostal signál %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s zlyhalo: neznámy stav 0x%x" -#: modules/pam_faillock/main.c:130 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:131 +#, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -"Použitie: %s [--dir /cesta/k/zhodujú-directory] [--user pouzivatelske_meno] " -"[--reset]\n" +"Použitie: %s [--dir /cesta/k/adresaru] [--user pouzivatelske_meno] [--legacy-" +"output]\n" -#: modules/pam_faillock/main.c:181 -#, fuzzy, c-format +#: modules/pam_faillock/main.c:182 +#, c-format msgid "Login Failures Latest failure From\n" -msgstr "Login Zlyhanà Ostatné zlyhanie Z\n" +msgstr "Login Zlyhanà Posledné zlyhanie Od\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "ÚÄet uzamknutý z dôvodu %u neúspeÅ¡ných prihlásenÃ." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +273,45 @@ msgstr[1] "(na odomknutie zostáva %d minúty)" msgstr[2] "(na odomknutie zostáva %d minút)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(odomknutie zostáva %d minút)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %d.%m.%Y %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " z %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " na %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Posledné prihlásenie:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Vitajte vo vaÅ¡om novom úÄte!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Posledné neúspeÅ¡né prihlásenie:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -318,152 +327,153 @@ msgstr[2] "" "prihlásenie." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Od posledného úspeÅ¡ného prihlásenia doÅ¡lo k %d neúspeÅ¡ným pokusom o " "prihlásenie." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "PrÃliÅ¡ veľa prihlásenà pre '%s'." -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "Máte novú poÅ¡tu." +msgstr "Nemáte žiadnu novú poÅ¡tu." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Máte novú poÅ¡tu." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Máte starú poÅ¡tu." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Máte poÅ¡tu." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Nemáte žiadnu poÅ¡tu v prieÄinku %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Máte novú poÅ¡tu v prieÄinku %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Máte starú poÅ¡tu v prieÄinku %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Máte poÅ¡tu v prieÄinku %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Vytváranie prieÄinka '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Nedá sa vytvoriÅ¥ a inicializovaÅ¥ prieÄinok '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Heslo už bolo použité. Zvoľte si iné." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Heslo už bolo použité." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Predvolený kontext zabezpeÄenia %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Želáte si zadaÅ¥ inú rolu alebo úroveň?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rola:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Chýba predvolený typ pre rolu %s." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "úroveň:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Neplatný kontext zabezpeÄenia." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Nie je možné zÃskaÅ¥ platný kontext pre %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Kontext zabezpeÄenia %s pridelený." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Kontext zabezpeÄenia pre vytváranie kľúÄov %s pridelený." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "chyba pri inicializácii PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "chyba pri pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: chyba forku: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "PrÃstup povolený (posledný prÃstup pred %ld sekundami)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" "PlatnosÅ¥ vášho úÄtu vyprÅ¡ala; kontaktujte prosÃm svojho správcu systému." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Je vyžadovaná okamžitá zmena vaÅ¡eho hesla (vynútené správcom)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Je vyžadovaná okamžitá zmena vaÅ¡eho hesla (heslo vyprÅ¡alo)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -472,37 +482,37 @@ msgstr[1] "Upozornenie: vaÅ¡e heslo vypršà za %d dni." msgstr[2] "Upozornenie: vaÅ¡e heslo vypršà za %d dnÃ." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Upozornenie: vaÅ¡e heslo vypršà za %d dnÃ." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Nie je možné zmeniÅ¥ NIS heslo." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Heslo nezadané." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Heslo nebolo zmenené." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "MusÃte zvoliÅ¥ kratÅ¡ie heslo." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "MusÃte si zvoliÅ¥ dlhÅ¡ie heslo." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Zmena hesla pre %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Na zmenu svojho hesla musÃte poÄkaÅ¥ dlhÅ¡ie." diff --git a/po/sl.gmo b/po/sl.gmo Binary files differdeleted file mode 100644 index 5b6cf6a5..00000000 --- a/po/sl.gmo +++ /dev/null @@ -4,13 +4,13 @@ # # Translators: # Tomáš Mráz <tmraz@fedoraproject.org>, 2016. #zanata -# Martin Srebotnjak <miles@filmsi.net>, 2023. +# Martin Srebotnjak <miles@filmsi.net>, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2023-02-20 19:20+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2024-08-17 17:38+0000\n" "Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n" "Language-Team: Slovenian <https://translate.fedoraproject.org/projects/linux-" "pam/master/sl/>\n" @@ -20,13 +20,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3;\n" -"X-Generator: Weblate 4.15.2\n" +"X-Generator: Weblate 5.6.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Geslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "Trenutno geslo %s: " msgid "Current password: " msgstr "Trenutno geslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,14 +47,15 @@ msgstr "Novo geslo %s: " msgid "New password: " msgstr "Novo geslo: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " -msgstr "" +msgstr "Ponovno vnesite novo geslo %s: " #: libpam/pam_get_authtok.c:49 msgid "Retype new password: " -msgstr "" +msgstr "Ponovno vnesite novo geslo: " #: libpam/pam_get_authtok.c:50 msgid "Sorry, passwords do not match." @@ -61,435 +64,447 @@ msgstr "Žal se gesli ne ujemata." #: libpam/pam_get_authtok.c:143 libpam/pam_get_authtok.c:245 #, c-format msgid "Retype %s" -msgstr "" +msgstr "Ponovno vnesite %s" #: libpam/pam_get_authtok.c:183 libpam/pam_get_authtok.c:263 msgid "Password change has been aborted." -msgstr "" +msgstr "Sprememba gesla je bila prekinjena." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" -msgstr "" +msgstr "prijava:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" -msgstr "" +msgstr "Uspelo je" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" -msgstr "" +msgstr "KritiÄna napaka - sledi takojÅ¡na prekinitev" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" -msgstr "" +msgstr "Modula ni bilo možno naložiti" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Simbola ni mogoÄe najti" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" -msgstr "" +msgstr "Napaka v servisnem modulu" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" -msgstr "" +msgstr "Sistemska napaka" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" -msgstr "" +msgstr "Napaka medpomnilnika" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" -msgstr "" +msgstr "Ni ustreznih dovoljenj" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Napaka overjanja" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" -msgstr "" +msgstr "Nezadostne poverilnice za dostop do podatkov za preverjanje pristnosti" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" +"Storitev za preverjanje pristnosti ne more pridobiti podatkov za preverjanje " +"pristnosti" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" -msgstr "" +msgstr "Uporabnik ni znan osnovnemu modulu za preverjanje pristnosti" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" -msgstr "" +msgstr "IzÄrpali so najveÄje Å¡tevilo ponovnih poskusov za storitev" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" -msgstr "" +msgstr "Žeton za preverjanje pristnosti ni veÄ veljaven; potreben je nov" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "UporabniÅ¡ki raÄun je potekel" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" -msgstr "" +msgstr "Ni mogoÄe narediti/odstraniti vnosa za doloÄeno sejo" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" +"Storitev preverjanja pristnosti ne more pridobiti uporabniÅ¡kih poverilnic" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" -msgstr "" +msgstr "Poverilnice uporabnika so potekle" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" -msgstr "" +msgstr "NeuspeÅ¡na nastavitev uporabniÅ¡kih poverilnic" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" -msgstr "" +msgstr "Ni podatkov, specifiÄnih za modul" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" -msgstr "" +msgstr "Slab element posredovan v pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Napaka pogovora" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" -msgstr "" +msgstr "Napaka pri manipulaciji žetona za preverjanje pristnosti" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" -msgstr "" +msgstr "Podatkov za preverjanje pristnosti ni mogoÄe obnoviti" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" -msgstr "" +msgstr "Zaklepanje žetona za preverjanje pristnosti je zasedeno" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" -msgstr "" +msgstr "Staranje žetona za preverjanje pristnosti je onemogoÄeno" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" -msgstr "" +msgstr "NeuspeÅ¡no predhodno preverjanje s storitvijo gesla" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" -msgstr "" +msgstr "Vrnjeno vrednost mora PAM prezreti" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modul ni znan" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" -msgstr "" +msgstr "Žeton za preverjanje pristnosti je potekel" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" -msgstr "" +msgstr "Pogovor Äaka na dogodek" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" -msgstr "" +msgstr "Program mora znova poklicati libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Neznana napaka PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "... ÄŒas se izteka ...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" -msgstr "" +msgstr "... Žal se je vaÅ¡ Äas iztekel!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" -msgstr "" +msgstr "napaÄen pogovor (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" -msgstr "" +msgstr "%s ni uspel: izhodna koda %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" -msgstr "" +msgstr "%s ni uspel: ujeti signal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" -msgstr "" +msgstr "%s ni uspel: neznano stanje 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" +"Uporaba: %s [--dir /pot/do/imenika-zabeležke] [--user uporabniÅ¡koime] [--" +"reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" -msgstr "" +msgstr "Prijava Neuspele Zadnja neuspela Iz\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." -msgstr "" +msgstr "RaÄun je zaklenjen zaradi %u neuspelih prijav." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "(%d preostala minuta za odklepanje)" +msgstr[1] "(%d preostali minuti za odklepanje)" +msgstr[2] "(%d preostale minute za odklepanje)" +msgstr[3] "(%d preostalih minut za odklepanje)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" -msgstr "" +msgstr "(%d preostalih minut za odklepanje)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" -msgstr "" +msgstr " %d.%m.%Y %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" -msgstr "" +msgstr " iz %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" -msgstr "" +msgstr " na %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Zadnja prijava:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" -msgstr "" +msgstr "DobrodoÅ¡li v svojem novem raÄunu!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" -msgstr "" +msgstr "Zadnja neuspeÅ¡na prijava:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" "There were %d failed login attempts since the last successful login." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Od zadnje uspeÅ¡ne prijave je bilo %d neuspel poskus prijave." +msgstr[1] "Od zadnje uspeÅ¡ne prijave sta bila %d neuspela poskusa prijave." +msgstr[2] "Od zadnje uspeÅ¡ne prijave so bili %d neuspeli poskusi prijave." +msgstr[3] "Od zadnje uspeÅ¡ne prijave je bilo %d neuspelih poskusov prijave." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." -msgstr "" +msgstr "Od zadnje uspeÅ¡ne prijave je bilo %d neuspelih poskusov prijave." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." -msgstr "" +msgstr "Bilo je preveÄ prijav za »%s«." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "" +msgstr "Nimate nove poÅ¡te." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." -msgstr "" +msgstr "Imate novo poÅ¡to." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." -msgstr "" +msgstr "Imate staro poÅ¡to." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." -msgstr "" +msgstr "Imate poÅ¡to." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." -msgstr "" +msgstr "V mapi %s nimate poÅ¡te." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." -msgstr "" +msgstr "V mapi %s imate novo poÅ¡to." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." -msgstr "" +msgstr "V mapi %s imate staro poÅ¡to." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." -msgstr "" +msgstr "Imate poÅ¡to v mapi %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." -msgstr "" +msgstr "Ustvarjanje mape %s ..." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." -msgstr "" +msgstr "Ni mogoÄe ustvariti in inicializirati mape »%s«." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." -msgstr "" +msgstr "Geslo je že bilo uporabljeno. Izberite drugo." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." -msgstr "" +msgstr "Geslo je že bilo uporabljeno." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." -msgstr "" +msgstr "Privzeti varnostni kontekst je %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" -msgstr "" +msgstr "Bi radi vstopili v drugo vlogo ali raven?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" -msgstr "" +msgstr "vloga:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." -msgstr "" +msgstr "Privzeta vrsta za vlogo %s ni na voljo." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" -msgstr "" +msgstr "raven:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." -msgstr "" +msgstr "To ni veljaven varnostni kontekst." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." -msgstr "" +msgstr "Veljavnega konteksta za %s ni bilo mogoÄe pridobiti." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." -msgstr "" +msgstr "Dodeljen je bil varnostni kontekst %s." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." -msgstr "" +msgstr "KljuÄni kontekst ustvarjanja %s je bil dodeljen." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" -msgstr "" +msgstr "Inicializacija PAM ni uspela\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" -msgstr "" +msgstr "neuspeÅ¡en pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" -msgstr "" +msgstr "Prijava: neuspelo vejanje: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." -msgstr "" +msgstr "Dostop je bil odobren (zadnji dostop je bil pred %ld s)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." -msgstr "" +msgstr "VaÅ¡ raÄun je potekel; Obrnite se na skrbnika sistema." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." -msgstr "" +msgstr "Geslo morate takoj spremeniti (zahteva skrbnika)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." -msgstr "" +msgstr "Geslo morate takoj spremeniti (geslo je poteklo)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "Opozorilo: vaÅ¡e geslo bo poteklo Äez %d dan." +msgstr[1] "Opozorilo: vaÅ¡e geslo bo poteklo Äez %d dni." +msgstr[2] "Opozorilo: vaÅ¡e geslo bo poteklo Äez %d dni." +msgstr[3] "Opozorilo: vaÅ¡e geslo bo poteklo Äez %d dni." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." -msgstr "" +msgstr "Opozorilo: vaÅ¡e geslo bo poteklo v %d dneh." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Gesla NIS ni bilo možno spremeniti." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." -msgstr "" +msgstr "Geslo ni bilo podano." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." -msgstr "" +msgstr "Geslo ni bilo spremenjeno." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Izbrati morate krajÅ¡e geslo." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Izbrati morate daljÅ¡e geslo." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." -msgstr "" +msgstr "Spreminjanje gesla za %s." -#: modules/pam_unix/pam_unix_passwd.c:713 -#, fuzzy +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." -msgstr "Izbrati morate krajÅ¡e geslo." +msgstr "Za spremembo gesla morate poÄakati dlje." diff --git a/po/sq.gmo b/po/sq.gmo Binary files differdeleted file mode 100644 index 526379d4..00000000 --- a/po/sq.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Albanian (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Ju duhet të zgjidhni një fjalëkalim më të shkurtër." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Ju duhet të zgjidhni një fjalëkalim më të shkurtër." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Ju duhet të zgjidhni një fjalëkalim më të shkurtër." diff --git a/po/sr.gmo b/po/sr.gmo Binary files differdeleted file mode 100644 index 3ee7a027..00000000 --- a/po/sr.gmo +++ /dev/null @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2014-11-16 06:51-0500\n" "Last-Translator: Momcilo Medic <medicmomcilo@gmail.com>\n" "Language-Team: Serbian (http://www.transifex.com/projects/p/linux-pam/" @@ -26,11 +26,12 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Лозинка: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -41,6 +42,7 @@ msgstr "Ðова %s лозинка: " msgid "Current password: " msgstr "Ðова лозинка: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -50,6 +52,7 @@ msgstr "Ðова %s лозинка: " msgid "New password: " msgstr "Ðова лозинка: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -73,171 +76,177 @@ msgstr "Поново унеÑите %s" msgid "Password change has been aborted." msgstr "Промена лозинке је прекинута." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "пријава:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "УÑпешно" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Критична грешка - прекидам одмах" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "ÐеуÑпешно учитавање модула" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Симбол није пронађен" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Грешка у уÑлужном модулу" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "СиÑтемÑка грешка" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Грешка меморијÑког бафера" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Дозвола је одбијена" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "ÐеуÑпешна аутентификација" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Ðедовољно уверења за приÑтуп подацима аутентификације" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "УÑлуга аутентификације не може да добави информације аутентификације" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "КориÑник није познат оÑновном модулу аутентификације" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "ИÑкоришћен је макÑимални број покушаја уÑлуге" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Жетон аутентификације више није иÑправан; неопходан је нови" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "КориÑнички налог је иÑтекао" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Ðе могу да направим/уклоним Ñтавку наведене ÑеÑије" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "УÑлуга аутентификације не може да добави кориÑничка уверења" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "КориÑничка уверења Ñу иÑтекла" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "ÐеуÑпешно поÑтављање кориÑничких уверења" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "ÐиÑу приÑутни Ñпецифични подаци модула" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Лош објекат је проÑлеђен pam_*_item() функцији" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Грешка у разговору" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Грешка при манипулацији жетоном аутентификације" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Информације о аутентификацији не могу бити повраћене" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Закључавање жетона аутентификације је заузето" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "ЗаÑтаревање жетона аутентификације је иÑкључено" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "ÐеуÑпешна прелиминарна провера уÑлугом лозинке" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "PAM диÑпечер треба да игнорише повратну вредноÑÑ‚" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Модул је непознат" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "ИÑтекао је жетон аутентификације" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Разговор очекује догађај" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Програм мора поново да позове libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Ðепозната PAM грешка" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...ИÑтиче време...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Извините, време вам је иÑтекло!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "разговор пун грешака (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s неуÑпех: излазни код %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s неуÑпех: ухваћен Ñигнал %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s неуÑпех: непознат ÑÑ‚Ð°Ñ‚ÑƒÑ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -246,18 +255,18 @@ msgstr "" "%s: [--file коренÑки-називдатотеке] [--user кориÑничкоиме] [--reset[=n]] [--" "quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Пријава ÐеуÑпеÑи ПоÑледњи неуÑпех Са\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "Ðалог је закључан због %u неуÑпелих пријава" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -266,45 +275,45 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %e. %b %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " Ñа %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " на %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ПоÑледња пријава:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Добро дошли на ваш нови налог!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "ПоÑледња неуÑпешна пријава:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -314,153 +323,155 @@ msgstr[1] "Било је %d неуÑпела покушаја пријаве оРmsgstr[2] "Било је %d неуÑпелих покушаја пријаве од поÑледње уÑпешне пријаве." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "Било је %d неуÑпелих покушаја пријаве од поÑледње уÑпешне пријаве." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "Превише пријава за „%s“." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Имате нову пошту." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Имате нову пошту." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Имате Ñтару пошту." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Имате пошту." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Ðемате пошту у фаÑцикли %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Имате нову пошту у фаÑцикли %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Имате Ñтару пошту у фаÑцикли %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Имате пошту у фаÑцикли %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Правим директоријум „%s“." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Ðе могу да направим директоријум „%s“." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Лозинка је већ у употреби. Изаберите другу." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Шифра је већ била у употреби." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "Подразумевани безбедноÑни контекÑÑ‚ %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Да ли желите да унеÑете другу улогу или ниво?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "улога:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "Ðема подразумеване врÑте за улогу %s\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "ниво:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "ÐеиÑправан безбедноÑни контекÑÑ‚" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "БезбедноÑни контекÑÑ‚ %s је додељен" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "КонтекÑÑ‚ прављења кључа %s је додељен" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "неуÑпешна иницијализација PAM-а\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "неуÑпешно извршавање функције pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "пријава: грешка при гранању: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "ПриÑтуп је одобрен (поÑледњи приÑтуп је био пре %ld Ñекунди)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "Ваш налог је иÑтекао; обратите Ñе админиÑтратору ÑиÑтема" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Морате одмах да промените вашу лозинку (наметнуо root)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "Морате одмах да промените вашу лозинку (заÑтарела је)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -469,40 +480,40 @@ msgstr[1] "Упозорење: ваша лозинка ће иÑтећи кроРmsgstr[2] "Упозорење: ваша лозинка ће иÑтећи кроз %d дана" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "Упозорење: ваша лозинка ће иÑтећи кроз %d дана" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS лозинка не може бити промењена." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "Ðије понуђена лозинка" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS лозинка не може бити промењена." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Морате одабрати краћу лозинку." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Морате изабрати дужу лозинку" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Мењам лозинку за %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Морате дуже Ñачекати на промену лозинке" diff --git a/po/sr@latin.gmo b/po/sr@latin.gmo Binary files differdeleted file mode 100644 index 1a05b4d3..00000000 --- a/po/sr@latin.gmo +++ /dev/null diff --git a/po/sr@latin.po b/po/sr@latin.po index c44ba4a6..4d230f96 100644 --- a/po/sr@latin.po +++ b/po/sr@latin.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:59-0500\n" "Last-Translator: Tomáš Mráz <tmraz@fedoraproject.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -24,11 +24,12 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Lozinka: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -39,6 +40,7 @@ msgstr "Nova %s lozinka: " msgid "Current password: " msgstr "Nova lozinka: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -48,6 +50,7 @@ msgstr "Nova %s lozinka: " msgid "New password: " msgstr "Nova lozinka: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,171 +74,177 @@ msgstr "Ponovo unesite %s" msgid "Password change has been aborted." msgstr "Promena lozinke je prekinuta." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "prijava:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "UspeÅ¡no" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "KritiÄna greÅ¡ka - prekidam odmah" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "NeuspeÅ¡no uÄitavanje modula" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Simbol nije pronaÄ‘en" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "GreÅ¡ka u uslužnom modulu" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Sistemska greÅ¡ka" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "GreÅ¡ka memorijskog bafera" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Dozvola je odbijena" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "NeuspeÅ¡na autentifikacija" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Nedovoljno uverenja za pristup podacima autentifikacije" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Usluga autentifikacije ne može da dobavi informacije autentifikacije" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Korisnik nije poznat osnovnom modulu autentifikacije" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Iskorišćen je maksimalni broj pokuÅ¡aja usluge" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Žeton autentifikacije viÅ¡e nije ispravan; neophodan je novi" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "KorisniÄki nalog je istekao" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Ne mogu da napravim/uklonim stavku navedene sesije" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Usluga autentifikacije ne može da dobavi korisniÄka uverenja" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "KorisniÄka uverenja su istekla" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "NeuspeÅ¡no postavljanje korisniÄkih uverenja" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Nisu prisutni specifiÄni podaci modula" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "LoÅ¡ objekat je prosleÄ‘en pam_*_item() funkciji" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "GreÅ¡ka u razgovoru" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "GreÅ¡ka pri manipulaciji žetonom autentifikacije" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Informacije o autentifikaciji ne mogu biti povraćene" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "ZakljuÄavanje žetona autentifikacije je zauzeto" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Zastarevanje žetona autentifikacije je iskljuÄeno" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "NeuspeÅ¡na preliminarna provera uslugom lozinke" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "PAM dispeÄer treba da ignoriÅ¡e povratnu vrednost" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modul je nepoznat" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Istekao je žeton autentifikacije" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Razgovor oÄekuje dogaÄ‘aj" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Program mora ponovo da pozove libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Nepoznata PAM greÅ¡ka" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...IstiÄe vreme...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Izvinite, vreme vam je isteklo!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "razgovor pun greÅ¡aka (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s neuspeh: izlazni kod %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s neuspeh: uhvaćen signal %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s neuspeh: nepoznat status 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -244,18 +253,18 @@ msgstr "" "%s: [--file korenski-nazivdatoteke] [--user korisniÄkoime] [--reset[=n]] [--" "quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Prijava Neuspesi Poslednji neuspeh Sa\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "Nalog je zakljuÄan zbog %u neuspelih prijava" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +273,45 @@ msgstr[1] "" msgstr[2] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %e. %b %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " sa %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " na %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Poslednja prijava:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Dobro doÅ¡li na vaÅ¡ novi nalog!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Poslednja neuspeÅ¡na prijava:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -312,154 +321,156 @@ msgstr[1] "Bilo je %d neuspela pokuÅ¡aja prijave od poslednje uspeÅ¡ne prijave." msgstr[2] "Bilo je %d neuspelih pokuÅ¡aja prijave od poslednje uspeÅ¡ne prijave." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "Bilo je %d neuspelih pokuÅ¡aja prijave od poslednje uspeÅ¡ne prijave." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "PreviÅ¡e prijava za „%s“." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Imate novu poÅ¡tu." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Imate novu poÅ¡tu." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Imate staru poÅ¡tu." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Imate poÅ¡tu." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Nemate poÅ¡tu u fascikli %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Imate novu poÅ¡tu u fascikli %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Imate staru poÅ¡tu u fascikli %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Imate poÅ¡tu u fascikli %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Pravim direktorijum „%s“." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Ne mogu da napravim direktorijum „%s“." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Lozinka je već u upotrebi. Izaberite drugu." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "Lozinka je već u upotrebi. Izaberite drugu." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "Podrazumevani bezbednosni kontekst %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Da li želite da unesete drugu ulogu ili nivo?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "uloga:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "Nema podrazumevane vrste za ulogu %s\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nivo:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "Neispravan bezbednosni kontekst" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "Bezbednosni kontekst %s je dodeljen" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "Kontekst pravljenja kljuÄa %s je dodeljen" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "neuspeÅ¡na inicijalizacija PAM-a\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "neuspeÅ¡no izvrÅ¡avanje funkcije pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "prijava: greÅ¡ka pri grananju: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Pristup je odobren (poslednji pristup je bio pre %ld sekundi)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "VaÅ¡ nalog je istekao; obratite se administratoru sistema" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Morate odmah da promenite vaÅ¡u lozinku (nametnuo root)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "Morate odmah da promenite vaÅ¡u lozinku (zastarela je)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -468,41 +479,41 @@ msgstr[1] "Upozorenje: vaÅ¡a lozinka će isteći kroz %d dana" msgstr[2] "Upozorenje: vaÅ¡a lozinka će isteći kroz %d dana" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "Upozorenje: vaÅ¡a lozinka će isteći kroz %d dana" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS lozinka ne može biti promenjena." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "Nije ponuÄ‘ena lozinka" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS lozinka ne može biti promenjena." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Morate izabrati dužu lozinku" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Morate izabrati dužu lozinku" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Menjam lozinku za %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Morate duže saÄekati na promenu lozinke" diff --git a/po/stamp-po b/po/stamp-po deleted file mode 100644 index 9788f702..00000000 --- a/po/stamp-po +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/po/sv.gmo b/po/sv.gmo Binary files differdeleted file mode 100644 index 25a52d01..00000000 --- a/po/sv.gmo +++ /dev/null @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-11-15 18:19+0000\n" "Last-Translator: Luna Jernberg <bittin@reimu.nl>\n" "Language-Team: Swedish <https://translate.fedoraproject.org/projects/linux-" @@ -26,11 +26,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.14.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Lösenord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -40,6 +41,7 @@ msgstr "Nuvarande %s lösenord: " msgid "Current password: " msgstr "Nuvarande lösenord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,6 +51,7 @@ msgstr "Nytt %s lösenord: " msgid "New password: " msgstr "Nytt lösenord: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -71,171 +74,177 @@ msgstr "Ange %s igen" msgid "Password change has been aborted." msgstr "Ändring av lösenordet avbröts." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "inloggning:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Lyckades" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritiskt fel - avbryter omedelbart" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Misslyckades med att läsa in modulen" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Symbolen hittades inte" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Fel i tjänstemodul" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Systemfel" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Minnesbuffertfel" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Ã…tkomst nekad" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Autentiseringsfel" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Otillräckliga inloggingsuppgifter för Ã¥tkomst av autentiseringsdata" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Autentiseringstjänsten kan inte hämta autentiseringsinformation" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Användaren är inte känd för underliggande autentiseringsmodul" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Maximalt antal försök har gjorts för denna tjänst" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Autentiseringselement är inte längre giltigt. Ett nytt behövs" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Användarkontot har förfallit" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Kan inte skapa/ta bort en post för angiven session" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Autentiseringstjänst kan inte hämta användarreferenser" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Användarreferenser har förfallit" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Misslyckades med att ange användarreferenser" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Ingen modulspecifik data finns" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Ogiltigt objekt skickat till pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Konversationsfel" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Manipuleringsfel för autentiseringselement" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Autentiseringsinformation kan inte Ã¥terställas" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "AutentiseringselementlÃ¥s upptaget" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Ã…ldrande av autentiseringselement inaktiverat" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Lösenordstjänstens preliminära kontroll misslyckades" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Returvärdet borde ignoreras vid PAM-avsändande" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modulen är okänd" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Autentiseringselement har förfallit" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Konversation väntar pÃ¥ händelse" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Programmet behöver anropa libpam igen" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Okänt PAM-fel" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Tiden hÃ¥ller pÃ¥ att ta slut...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Tyvärr, din tid är ute!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "felaktig konversation (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s misslyckades: slutstatus %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s misslyckades: fÃ¥ngade signalen %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s misslyckades: okänd status 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -244,18 +253,18 @@ msgstr "" "Användning: %s [--dir /sökväg/till/tally-katalog] [--user användarnamn] [--" "reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "Inloggning Misslyck Senaste fel FrÃ¥n\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Kontot är lÃ¥st pÃ¥ grund av %u misslyckade inloggningar." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -263,45 +272,45 @@ msgstr[0] "(%d minut kvar till upplÃ¥sning)" msgstr[1] "(%d minuter kvar till upplÃ¥sning)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d minuter kvar till upplÃ¥sning)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %e %b %Y %H.%M.%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " frÃ¥n %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " pÃ¥ %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Senaste inloggning:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Välkommen till ditt nya konto!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Senaste misslyckade inloggning:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -314,150 +323,152 @@ msgstr[1] "" "inloggning." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Det har skett %d misslyckade inloggningsförsök sedan senaste korrekta " "inloggning." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "För mÃ¥nga inloggningar för '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Du har inga nya brev." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Du har nya brev." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Du har gamla brev." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Du har brev." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Du har inga brev i katalogen %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Du har nya brev i katalogen %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Du har gamla brev i katalogen %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Du har brev i katalogen %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Skapar katalogen '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Kunde inte skapa och initiera katalogen '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Lösenordet har redan används. Välj ett annat." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Lösenordet har redan använts." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Standardsäkerhetskontexten är %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Vill du ange en annan roll eller nivÃ¥?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "roll:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Ingen standardttyp för %s-roll." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "nivÃ¥:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Inte en giltig säkerhetskontext." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "En giltig kontext för %s kunde inte erhÃ¥llas." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Säkerhetskontext %s tilldelad." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Nyckelskapandekontext %s tilldelad." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "misslyckades med att initiera PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() misslyckades\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "inloggning: fel vid grening: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Ã…tkomst godkänd (senaste Ã¥tkomst var %ld sekunder sedan)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Ditt konto har förfallit. Vänligen kontakta din systemadministratör." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Du mÃ¥ste ändra ditt lösenord omedelbart (pÃ¥tvingat av administratör)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Du mÃ¥ste ändra ditt lösenord omedelbart (lösenord för gammalt)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -465,37 +476,37 @@ msgstr[0] "Varning: ditt lösenord gÃ¥r ut om %d dag." msgstr[1] "Varning: ditt lösenord gÃ¥r ut om %d dagar." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Varning: ditt lösenord gÃ¥r ut om %d dagar." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS-lösenord kunde inte ändras." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Inget lösenord angavs." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Lösenordet har inte ändrats." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Du mÃ¥ste välja ett kortare lösenord." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Du mÃ¥ste välja ett längre lösenord." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Ändrar lösenord för %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Du mÃ¥ste vänta längre innan du kan ändra lösenord." diff --git a/po/ta.gmo b/po/ta.gmo Binary files differdeleted file mode 100644 index 163bd992..00000000 --- a/po/ta.gmo +++ /dev/null @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-03-06 23:59+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Tamil <https://translate.fedoraproject.org/projects/linux-pam/" @@ -25,11 +25,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 3.11.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯:" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -40,6 +41,7 @@ msgstr "பà¯à®¤à®¿à®¯ %s password: " msgid "Current password: " msgstr "பà¯à®¤à®¿à®¯ password: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -49,6 +51,7 @@ msgstr "பà¯à®¤à®¿à®¯ %s password: " msgid "New password: " msgstr "பà¯à®¤à®¿à®¯ password: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -72,171 +75,177 @@ msgstr "%s஠மற௠தடà¯à®Ÿà®šà¯à®šà¯ செயà¯" msgid "Password change has been aborted." msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ மாறà¯à®±à®®à¯ கைவிடபà¯à®ªà®Ÿà¯à®Ÿà®¤à¯." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "பà¯à®•à¯à®ªà®¤à®¿à®µà¯:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "வெறà¯à®±à®¿" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "சிகà¯à®•லான பிழை - உடனடியாக நிறà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "தொகà¯à®¤à®¿à®¯à¯ˆ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "சிகà¯à®©à®²à¯ கிடைகà¯à®•விலà¯à®²à¯ˆ" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "சேவை தொகà¯à®¤à®¿à®¯à®¿à®²à¯ பிழை" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "கணினி பிழை" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "நினைவக இடையக பிழை" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "அனà¯à®®à®¤à®¿ இலà¯à®²à¯ˆ" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "உரிமம௠செயலிழகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "உரிம தரவினை அணà¯à®• போதிய உரிமஙà¯à®•ள௠இலà¯à®²à¯ˆ" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "உரிம சேவை உரிம தகவலை எடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "உரிம தொகà¯à®¤à®¿à®¯à¯ˆ எடà¯à®•à¯à®• பயனரà¯à®•à¯à®•௠தெரியவிலà¯à®²à¯ˆ" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "சேவைகà¯à®•௠அதிகபடà¯à®š எணà¯à®£à®¿à®•à¯à®•ையான à®®à¯à®¯à®±à¯à®šà®¿ கொணà¯à®Ÿà®¤à¯" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "உரிம டோகà¯à®•ன௠தவறானதà¯; பà¯à®¤à®¿à®¯ ஒனà¯à®±à¯ தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "பயனர௠கணகà¯à®•௠மà¯à®Ÿà®¿à®µà¯à®±à¯à®±à®¤à¯" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ அமரà¯à®µà¯à®•à¯à®•௠உளà¯à®³à¯€à®Ÿà¯à®Ÿà¯ˆ உரà¯à®µà®¾à®•à¯à®•/நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "உரிம சேவை பயனர௠சனà¯à®®à®¾à®©à®¤à¯à®¤à¯ˆ எடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "பயனர௠சனà¯à®®à®¾à®©à®®à¯ à®®à¯à®Ÿà®¿à®µà¯à®±à¯à®±à®¤à¯" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "செயலிழகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿ அமைவ௠பயனர௠சனà¯à®®à®¾à®©à®™à¯à®•ளà¯" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "தொகà¯à®¤à®¿ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ தகவல௠இலà¯à®²à¯ˆ" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item() கà¯à®•௠தவறான உரà¯à®ªà¯à®ªà®Ÿà®¿ அனà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "உரையாடல௠பிழை" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "உரிம டோகà¯à®•ன௠கணகà¯à®•ீட௠பிழை" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "உரிம தகவலை எடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "உரிம டோகà¯à®•ன௠பூடà¯à®Ÿà¯ செயலில௠உளà¯à®³à®¤à¯" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "உரிம டோகà¯à®•ன௠செயலிழகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ சேவையால௠மà¯à®¤à®²à¯ சோதனை செயà¯à®¯ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "கொடà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ மதிபà¯à®ªà¯ PAM dispatch ஆல௠தவிரà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ வேணà¯à®Ÿà¯à®®à¯" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "தொகà¯à®¤à®¿à®¯à¯ˆ தெரியவிலà¯à®²à¯ˆ" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "உரிம டோகà¯à®•ற௠மà¯à®Ÿà®¿à®µà¯à®±à¯à®±à®¤à¯" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "உரையாடல௠நிகழà¯à®µà¯à®•à¯à®•ாக காதà¯à®¤à®¿à®°à¯à®•à¯à®•ிறதà¯" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "பயனà¯à®ªà®¾à®Ÿà¯ libpam ஠மீணà¯à®Ÿà¯à®®à¯ அழைகà¯à®• வேணà¯à®Ÿà¯à®®à¯" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "தெரியாத PAM பிழை" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "... நேரம௠போய௠கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "... உஙà¯à®•ள௠நேரம௠மà¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "பிழையான உரையாடல௠(%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s செயலிழகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: வெளியேறà¯à®®à¯ கà¯à®±à®¿à®¯à¯€à®Ÿà¯ %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s செயலிழகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: சிகà¯à®©à®²à¯ %d%s பிடிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s செயலிழகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: தெரியாத நிலை 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -244,18 +253,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "பà¯à®•à¯à®ªà®¤à®¿à®µà¯ கடைசி தோலà¯à®µà®¿ தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤à®¤à¯ இஙà¯à®•ிரà¯à®¨à¯à®¤à¯\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "%u தோலà¯à®µà®¿ பà¯à®•à¯à®ªà®¤à®¿à®µà¯à®•ளால௠கணகà¯à®•௠பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -263,45 +272,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s இலிரà¯à®¨à¯à®¤à¯" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s இலà¯" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "கடைசி பà¯à®•à¯à®ªà®¤à®¿à®µà¯:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "உஙà¯à®•ள௠பà¯à®¤à®¿à®¯ கணகà¯à®•௠வரவேறà¯à®•பà¯à®ªà®Ÿà¯à®•ிறீரà¯à®•ளà¯!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "கடைசி தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤ பà¯à®•à¯à®ªà®¤à®¿à®µà¯:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -310,153 +319,155 @@ msgstr[0] "கடைசி பà¯à®•à¯à®ªà®¤à®¿à®µà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ % msgstr[1] "கடைசி பà¯à®•à¯à®ªà®¤à®¿à®µà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ %d பà¯à®•à¯à®ªà®¤à®¿à®µà¯ à®®à¯à®¯à®±à¯à®šà®¿à®•ள௠தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤à®©." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "கடைசி பà¯à®•à¯à®ªà®¤à®¿à®µà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ %d பà¯à®•à¯à®ªà®¤à®¿à®µà¯ à®®à¯à®¯à®±à¯à®šà®¿ தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤à®©." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s'கà¯à®•௠பல பà¯à®•à¯à®ªà®¤à®¿à®µà¯à®•ள௠உளà¯à®³à®©." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "உஙà¯à®•ளà¯à®•à¯à®•௠பà¯à®¤à®¿à®¯ அஞà¯à®šà®²à¯ உளà¯à®³à®¤à¯." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "உஙà¯à®•ளà¯à®•à¯à®•௠பà¯à®¤à®¿à®¯ அஞà¯à®šà®²à¯ உளà¯à®³à®¤à¯." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "உஙà¯à®•ளà¯à®•à¯à®•௠பழைய அஞà¯à®šà®²à¯ உளà¯à®³à®¤à¯." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "உஙà¯à®•ளà¯à®•à¯à®•௠அஞà¯à®šà®²à¯ உளà¯à®³à®¤à¯." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "உஙà¯à®•ளà¯à®•à¯à®•௠%s அடைவில௠அஞà¯à®šà®²à¯ இலà¯à®²à¯ˆ." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "உஙà¯à®•ளà¯à®•à¯à®•௠%s அடைவில௠பà¯à®¤à®¿à®¯ அஞà¯à®šà®²à¯ உளà¯à®³à®¤à¯." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "உஙà¯à®•ளà¯à®•à¯à®•௠%s அடைவில௠பழைய அஞà¯à®šà®²à¯ உளà¯à®³à®¤à¯." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "உஙà¯à®•ளà¯à®•à¯à®•௠%s அடைவில௠அஞà¯à®šà®²à¯ உளà¯à®³à®¤à¯." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "அடைவ௠'%s'஠உரà¯à®µà®¾à®•à¯à®•à¯à®•ிறதà¯." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "அடைவ௠'%s'஠உரà¯à®µà®¾à®•à¯à®• மறà¯à®±à¯à®®à¯ தà¯à®µà®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ à®à®±à¯à®•னவே பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯. வேறொனà¯à®±à¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ à®à®±à¯à®•னவே பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ பாதà¯à®•ாபà¯à®ªà¯ சூழல௠%s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "நீஙà¯à®•ள௠வேற௠பஙà¯à®•௠அலà¯à®²à®¤à¯ நிலையை உளà¯à®³à®¿à®Ÿ வேணà¯à®Ÿà¯à®®à®¾?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "பஙà¯à®•à¯:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "பஙà¯à®•௠%sகà¯à®•௠மà¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ வகை இலà¯à®²à¯ˆ\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "நிலை:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "இத௠சரியான பாதà¯à®•ாபà¯à®ªà¯ சூழல௠இலà¯à®²à¯ˆ" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "பாதà¯à®•ாபà¯à®ªà¯ சூழல௠%s ஒதà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "விசை உரà¯à®µà®¾à®•à¯à®• சூழல௠%s ஒதà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM஠ஆரமà¯à®ªà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() செயலிழகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: failure forking: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "அணà¯à®•ல௠வழஙà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ (கடைசி அணà¯à®•ல௠%ld விநாடிகளà¯à®•à¯à®•௠மà¯à®©à¯)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "உஙà¯à®•ள௠கணகà¯à®•௠மà¯à®Ÿà®¿à®µà¯à®±à¯à®±à®¤à¯, உஙà¯à®•ள௠கணினி நிரà¯à®µà®¾à®•ியை அணà¯à®•வà¯à®®à¯" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "நீஙà¯à®•ள௠உஙà¯à®•ள௠கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உடனடியாக மாறà¯à®± வேணà¯à®Ÿà¯à®®à¯ (ரூட௠வலியà¯à®±à¯à®¤à¯à®¤à¯à®•ிறதà¯)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "நீஙà¯à®•ள௠உஙà¯à®•ள௠கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உடனடியாக மாறà¯à®± வேணà¯à®Ÿà¯à®®à¯ (கடவà¯à®šà¯à®šà¯Šà®²à¯ மூபà¯à®ªà®¾à®•ிவிடà¯à®Ÿà®¤à¯)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -464,40 +475,40 @@ msgstr[0] "எசà¯à®šà®°à®¿à®•à¯à®•ை: கடவà¯à®šà¯à®šà¯Šà®²à¯ %d ந msgstr[1] "எசà¯à®šà®°à®¿à®•à¯à®•ை: கடவà¯à®šà¯à®šà¯Šà®²à¯ %d நாடà¯à®•ளில௠மà¯à®Ÿà®¿à®µà¯à®±à¯à®®à¯" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "எசà¯à®šà®°à®¿à®•à¯à®•ை: கடவà¯à®šà¯à®šà¯Šà®²à¯ %d நாடà¯à®•ளில௠மà¯à®Ÿà®¿à®µà¯à®±à¯à®®à¯" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ கொடà¯à®•à¯à®•பà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®± à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "கà¯à®±à¯à®•ிய கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ நீஙà¯à®•ள௠தேரà¯à®µà¯ செயà¯à®¯ வேணà¯à®Ÿà¯à®®à¯." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "நீஙà¯à®•ள௠நீணà¯à®Ÿ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%sகà¯à®•௠கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®±à¯à®•ிறதà¯." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "உஙà¯à®•ள௠கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®± சிறித௠காதà¯à®¤à®¿à®°à¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯" diff --git a/po/te.gmo b/po/te.gmo Binary files differdeleted file mode 100644 index 23bb6a17..00000000 --- a/po/te.gmo +++ /dev/null @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2013-04-30 07:58-0400\n" "Last-Translator: sudheesh001 <sudheesh1995@outlook.com>\n" "Language-Team: Telugu (http://www.transifex.com/projects/p/fedora/language/" @@ -22,11 +22,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "సంకేతపదమà±: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "కొతà±à°¤ %s సంకేతపదమà±: " msgid "Current password: " msgstr "కొతà±à°¤ సంకేతపదమà±: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "కొతà±à°¤ %s సంకేతపదమà±: " msgid "New password: " msgstr "కొతà±à°¤ సంకేతపదమà±: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,171 +72,177 @@ msgstr "తిరిగిటైపà±à°šà±‡à°¯à°¿ %s" msgid "Password change has been aborted." msgstr "సంకేతపదమౠమారà±à°ªà± తపà±à°ªà°¿à°‚చబడింది" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "లాగినà±:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "సఫలం" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "సంకà±à°²à°¿à°·à±à°Ÿ దోషమౠ- తకà±à°·à°£ యెబారà±à°Ÿà±" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "మాడà±à°¯à±‚లౠలోడà±à°šà±‡à°¯à±à°Ÿà°•ౠవిఫలమైంది" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "à°šà°¿à°¹à±à°¨à°®à± కనబడలేదà±" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "సేవా మాడà±à°¯à±‚à°²à±â€Œà°¨à°‚దౠదోషమà±" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "సిసà±à°Ÿà°®à± దోషమà±" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "మెమొరీ బఫరౠదోషమà±" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "à°…à°¨à±à°®à°¤à°¿ నిరాకరించబడింది" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "దృవీకరణ వైఫలà±à°¯à°®à±" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "దృవీకరణ డాటానౠయాకà±à°¸à°¿à°¸à± చేయà±à°Ÿà°•ౠసరిపోని ఆనవాళà±à°³à±" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "దృవీకరణ సేవ దృవీకరణ సమాచారమà±à°¨à± వెలికితీయలేక పోయింది" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "à°•à±à°°à°¿à°‚దనవà±à°¨à±à°¨ దృవీకరణ మాడà±à°¯à±‚à°²à±â€Œà°•ౠవినియోగదారి తెలియదà±" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "సేవకొరకౠగరిషà±à°Ÿ సంఖà±à°¯à°²à±‹ à°ªà±à°¨à°ƒà°ªà±à°°à°¯à°¤à±à°¨à°¾à°²à°¨à± కలిగివà±à°‚ది" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "దృవీకరణ టోకెనౠఅవసరమà±à°²à±‡à°¦à±, కొతà±à°¤à°¦à°¿ అవసరమà±" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "వినియోగదారి ఖాతా కాలమà±à°¤à±€à°°à°¿à°¨à°¦à°¿" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "తెలà±à°ªà°¬à°¡à°¿ సెషనà±â€Œà°•ౠయెటà±à°µà°‚à°Ÿà°¿ à°ªà±à°°à°µà±‡à°¶à°®à±à°¨à± చెయలేవà±/తొలగించలేవà±" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "దృవీకరణ సేవ వినియోగదారి ఆనవాళà±à°³à°¨à± వెలికితీయలేదà±" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "వినియోగదారి ఆనవాళà±à°³à± కాలమà±à°¤à±€à°°à°¿à°¨à°µà°¿" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "వినియోగదారి ఆనవాళà±à°³à°¨à± అమరà±à°šà±à°Ÿà°²à±‹ విఫలమà±" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "మాడà±à°¯à±‚లౠపà±à°°à°¤à±à°¯à±‡à°•మైన డాటాలేదà±" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item() à°¦à±à°µà°¾à°°à°¾ చెడà±à°¡à°…ంశమౠవెళà±à°³à°¿à°‚ది" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "సంà°à°¾à°·à°£à°¾ దోషమà±" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "దృవీకరణ టోకెనౠమానిపà±à°¯à±à°²à±‡à°·à°¨à± దోషమà±" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "దృవీకరణ సమాచారమౠతిరిగిపొందబడదà±" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "దృవీకరణ టోకెనౠలాకౠబà±à°¯à±à°œà±€à°—ావà±à°‚ది" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "దృవీకరణ టోకెనౠయేజింగౠఅచేతనమైంది" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "సంకేతపదమౠసేవదà±à°µà°¾à°°à°¾ à°ªà±à°°à°¾à°§à°®à°¿à°• పరిశీలన విఫలమైంది" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "తిరిగియిచà±à°šà± విలà±à°µ PAM పంపిణీచేత వదిలివేయబడాలి" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "మాడà±à°¯à±‚లౠతెలియనిది" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "దృవీకరణ టోకెనౠకాలమà±à°¤à±€à°°à°¿à°¨à°¦à°¿" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "సంà°à°¾à°·à°£ ఘటనకొరకౠవేచివà±à°‚ది" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "libpamనౠఅనà±à°µà°°à±à°¤à°¨à°®à± మరలా కాలà±â€Œà°šà±‡à°¯à°µà°²à°¸à°¿à°µà±à°‚ది" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "తెలియని PAM దోషమà±" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...సమయం అయిపోతోంది...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...à°•à±à°·à°®à°¿à°‚చాలి, మీ సమయం అయిపోయింది!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "తపà±à°ªà±à°¡à± సంà°à°¾à°·à°£à°²à± (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s విఫలమైంది: బహిషà±à°•à°°à°£ కోడౠ%d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s విఫలమైంది: సంకేతమౠ%d%s పొదింది" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s విఫలమైంది: తెలియని à°¸à±à°¥à°¿à°¤à°¿ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -241,18 +250,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "లాగినౠవిఫలమైంది సరికొతà±à°¤ వైఫలà±à°¯à°‚ దీనినà±à°‚à°¡à°¿\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "%u లాగినà±â€Œà°² వైఫలà±à°¯à°‚ కారణంగా ఖాతా లాకà±à°…యింది" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -260,45 +269,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s à°¨à±à°‚à°¡à°¿" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s పైన" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "చివరి లాగినà±:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "మీ కొతà±à°¤ ఖాతాకౠసà±à°µà°¾à°—తమà±!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "చివరిగా విఫలమైన లాగినà±:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -307,153 +316,155 @@ msgstr[0] "చివరి సమరà±à°§à°µà°‚తపౠలాగినà±â€Œà msgstr[1] "చివరి సమరà±à°§à°µà°‚తపౠలాగినà±â€Œà°¨à±à°‚à°¡à°¿ ఆకà±à°•à°¡ %d విఫల లాగినౠపà±à°°à°¯à°¤à±à°¨à°¾à°²à± à°µà±à°¨à±à°¨à°¾à°¯à°¿." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "చివరి సమరà±à°§à°µà°‚తపౠలాగినà±â€Œà°¨à±à°‚à°¡à°¿ ఆకà±à°•à°¡ %d విఫల లాగినౠపà±à°°à°¯à°¤à±à°¨à°¾à°²à± à°µà±à°¨à±à°¨à°¾à°¯à°¿." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "'%s' కొరకౠమరీయెకà±à°•à±à°µ లాగినà±â€Œà°²à±" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "మీరౠకొతà±à°¤ మెయిలౠకలిగివà±à°¨à±à°¨à°¾à°°à±." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "మీరౠకొతà±à°¤ మెయిలౠకలిగివà±à°¨à±à°¨à°¾à°°à±." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "మీరౠపాత మెయిలౠకలిగివà±à°¨à±à°¨à°¾à°°à±." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "మీరౠమెయిలౠకలిగివà±à°¨à±à°¨à°¾à°°à±." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "మీరౠఫోలà±à°¡à°°à± %sనందౠయెటà±à°µà°‚à°Ÿà°¿ మెయిలౠకలిగిలేరà±." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "మీరౠఫోలà±à°¡à°°à± %sనందౠకొతà±à°¤ మెయిలà±â€Œà°¨à± కలిగివà±à°¨à±à°¨à°¾à°°à±." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "మీరౠఫోలà±à°¡à°°à± %sనందౠపాతమెయిలà±â€Œà°¨à± కలిగివà±à°¨à±à°¨à°¾à°°à±." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "మీరౠఫోలà±à°¡à°°à± %sనందౠమెయిలà±â€Œà°¨à± కలిగివà±à°¨à±à°¨à°¾à°°à±." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "డెరెకà±à°Ÿà°°à±€ '%s' సృషà±à°Ÿà°¿à°‚à°šà±à°Ÿ." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "డైరెకà±à°Ÿà°°à±€ %sనౠసృషà±à°Ÿà°¿à°‚చలేక పోయింది మరియౠసిదà±à°¦à±€à°•రించలేక పోయింది." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "సంకేతపదమౠయిపà±à°ªà°Ÿà°¿à°•ే à°µà±à°ªà°¯à±‹à°—ించబడింది. మరియొకదానిని యెంచà±à°•ొనà±à°®à±." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "సంకేతపదమౠయిపà±à°ªà°Ÿà°¿à°•ే à°µà±à°ªà°¯à±‹à°—ించబడింది." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "à°…à°ªà±à°°à°®à±‡à°¯ à°°à°•à±à°·à°£ సందరà±à°à°®à± %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "మీరౠవిà°à°¿à°¨à±à°¨ పాతà±à°°à°¨à± లేదా à°¸à±à°¥à°¾à°¯à°¿à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°¡à°¦à°¾à°®à°¨à°¿ à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "పాతà±à°°:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "పాతà±à°° %sకొరకౠయెటà±à°µà°‚à°Ÿà°¿ à°…à°ªà±à°°à°®à±‡à°¯ à°°à°•à°®à±à°²à±‡à°¦à±\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "à°¸à±à°¥à°¾à°¯à°¿:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "విలà±à°µà±ˆà°¨ à°°à°•à±à°·à°£ సందరà±à°à°®à±à°•ాదà±" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "à°°à°•à±à°·à°£ సందరà±à°à°®à± %s à°…à°ªà±à°ªà°—ించబడింది" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "à°•à±€ సృషà±à°Ÿà±€à°•à°°à°£ సందరà±à°à°®à± %s à°…à°ªà±à°ªà°—ించబడింది" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM సిదà±à°¦à°®à±à°šà±‡à°¯à±à°Ÿà°²à±‹ విఫలమైంది\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() విఫలమైంది\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "login: failure forking: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "యాకà±à°¸à°¿à°¸à± యివà±à°µà°¬à°¡à°¿à°‚ది (చివరిగా యాకà±à°¸à°¿à°¸à± చేసినది %ld సెకనà±à°² à°•à±à°°à°¿à°¤à°‚)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "మీ ఖాతా కాలమà±à°¤à±€à°°à°¿à°¨à°¦à°¿; దయచేసి మీ సిసà±à°Ÿà°®à± నిరà±à°µà°¾à°¹à°•à±à°¡à°¿à°¨à°¿ సంపà±à°°à°¦à°¿à°‚à°šà°‚à°¡à°¿" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "మీరౠమీ సంకేతపదమà±à°¨à± తకà±à°·à°£à°®à±‡ మారà±à°šà°µà°²à°¸à°¿à°µà±à°‚ది (root enforced)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "మీరౠమీ సంకేతపదమà±à°¨à± తకà±à°·à°£à°®à±‡ మారà±à°šà°µà°²à°¸à°¿à°µà±à°‚ది (password aged)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -461,40 +472,40 @@ msgstr[0] "హెచà±à°šà°°à°¿à°•: మీ సంకేతపదమౠ%d à°°à± msgstr[1] "హెచà±à°šà°°à°¿à°•: మీ సంకేతపదమౠ%d రోజà±à°²à°²à±‹ కాలమà±à°¤à±€à°°à±à°¤à±à°‚ది" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "హెచà±à°šà°°à°¿à°•: మీ సంకేతపదమౠ%d రోజà±à°²à°²à±‹ కాలమà±à°¤à±€à°°à±à°¤à±à°‚ది" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS సంకేతపదమౠమారà±à°šà°¬à°¡ లేకపోయింది." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "à°Žà°Ÿà±à°µà°‚à°Ÿà°¿ సంకేతపదమౠయివà±à°µà°²à±‡à°¦à±" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS సంకేతపదమౠమారà±à°šà°¬à°¡ లేకపోయింది." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "మీరౠతపà±à°ªà°¨à°¿à°¸à°°à°¿à°—à°¾ తకà±à°•à±à°µ పాసà±â€Œà°µà°°à±à°¡à±â€Œà°¨à± à°Žà°‚à°šà±à°•ోవాలి." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "మీరౠతపà±à°ªà°• పొడవాటి సంకేతపదమà±à°¨à± యెంచà±à°•ొనవలెనà±." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s కొరకౠసంకేతపదమà±à°¨à± మారà±à°šà±à°¤à±‹à°‚ది" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "మీ సంకేతపదమà±à°¨à± మారà±à°šà±à°Ÿà°•ౠమీరౠఎకà±à°•à±à°µà°¸à±‡à°ªà± వేచివà±à°‚డాలి" diff --git a/po/tg.gmo b/po/tg.gmo Binary files differdeleted file mode 100644 index f3001fde..00000000 --- a/po/tg.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Tajik (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,189 +68,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -255,45 +264,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -302,148 +311,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -451,39 +462,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "Шумо боÑд гузарвожаи кӯтоҳтарро интихоб кунед." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Шумо боÑд гузарвожаи кӯтоҳтарро интихоб кунед." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Шумо боÑд гузарвожаи кӯтоҳтарро интихоб кунед." diff --git a/po/th.gmo b/po/th.gmo Binary files differdeleted file mode 100644 index 274e7f34..00000000 --- a/po/th.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Thai (http://www.transifex.com/projects/p/fedora/language/" @@ -20,11 +20,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -34,6 +35,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -43,6 +45,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -65,234 +68,240 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -300,187 +309,189 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "คุณต้à¸à¸‡à¹€à¸¥à¸·à¸à¸à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸—ี่สั้นà¸à¸§à¹ˆà¸²" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "คุณต้à¸à¸‡à¹€à¸¥à¸·à¸à¸à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸—ี่สั้นà¸à¸§à¹ˆà¸²" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "คุณต้à¸à¸‡à¹€à¸¥à¸·à¸à¸à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸—ี่สั้นà¸à¸§à¹ˆà¸²" diff --git a/po/tr.gmo b/po/tr.gmo Binary files differdeleted file mode 100644 index 68112291..00000000 --- a/po/tr.gmo +++ /dev/null @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-11-13 09:19+0000\n" "Last-Translator: OÄŸuz Ersen <oguz@ersen.moe>\n" "Language-Team: Turkish <https://translate.fedoraproject.org/projects/linux-" @@ -27,11 +27,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n>1);\n" "X-Generator: Weblate 4.14.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Parola: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -41,6 +42,7 @@ msgstr "Mevcut %s parolası: " msgid "Current password: " msgstr "Mevcut parola: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -50,6 +52,7 @@ msgstr "Yeni %s parolası: " msgid "New password: " msgstr "Yeni parola: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -72,171 +75,177 @@ msgstr "%s'i tekrar girin" msgid "Password change has been aborted." msgstr "Parola deÄŸiÅŸikliÄŸi iptal edildi." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "giriÅŸ:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "BaÅŸarılı" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Kritik hata - ÅŸimdi çıkılıyor" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Modül yüklenemedi" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Sembol bulunamadı" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Hizmet modülünde hata" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Sistem hatası" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Tampon bellek hatası" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "İzin verilmedi" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Yetkilendirme hatası" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Kimlik bilgisine ulaÅŸmak için yetersiz yetki" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Yetkilendirme hizmeti, yetkilendirme bilgisini alamıyor" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Kullanıcı, yetkilendirme modülü altyapısında tanımlı deÄŸil" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Hizmet için azami deneme sayısı tükendi" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Yetkilendirme anahtarı artık geçerli deÄŸil; yenisi gerekiyor" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Kullanıcı hesabının süresi doldu" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Belirtilen oturum için girdi yapılamıyor/silinemiyor" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Yetkilendirme hizmeti kullanıcı kimliÄŸini getiremiyor" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Kullanıcı kimliÄŸinin süresi doldu" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Kullanıcı kimlik bilgileri ayarlanamadı" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Modüle özgü veri yok" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "pam_*_item() fonksiyonuna yanlış öğe geçildi" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "EtkileÅŸim hatası" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Yetkilendirme anahtarı manipülasyon hatası" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Yetkilendirme bilgisi kurtarılamadı" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Yetkilendirme anahtarının kilidi meÅŸgul" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Yetkilendirme anahtarı vadesi pasifleÅŸtirildi" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Parola hizmeti ön denetimi baÅŸarısız oldu" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Dönüş deÄŸeri PAM dispatch tarafından gözardı edilmeli" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Modül bilinmiyor" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Yetkilendirme anahtarının süresi doldu" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "EtkileÅŸim için olay bekleniyor" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Uygulamanın libpam kütüphanesini yeniden çağırması gerekiyor" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Bilinmeyen PAM hatası" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Zaman geçiyor...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Üzgünüm, süreniz doldu!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "hatalı etkileÅŸim (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s baÅŸarısız: çıkış kodu %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s baÅŸarısız: %d%s sinyali yakalandı" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s baÅŸarısız: bilinmeyen durum 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -245,18 +254,18 @@ msgstr "" "Kullanım: %s [--dir KayıtlarınTutulduÄŸuDizininYolu] [--user KullanıcıAdı] [--" "reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "GiriÅŸ Hatalar Son hata Kim\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "%u baÅŸarısız oturum açma nedeniyle hesap kilitlendi." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -264,45 +273,45 @@ msgstr[0] "(kilidi açmak için %d dakika kaldı)" msgstr[1] "(kilidi açmak için %d dakika kaldı)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(kilidi açmak için %d dakika kaldı)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %e %b %Y %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " %.*s makinesinden" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " %.*s üzerinde" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Son giriÅŸ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Yeni hesabınıza hoÅŸ geldiniz!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Son baÅŸarısız giriÅŸ:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -311,138 +320,140 @@ msgstr[0] "Son baÅŸarılı giriÅŸten bu yana %d baÅŸarısız giriÅŸ denemesi yap msgstr[1] "Son baÅŸarılı giriÅŸten bu yana %d baÅŸarısız giriÅŸ denemesi yapıldı." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Son baÅŸarılı giriÅŸten itibaren %d baÅŸarısız kimlik doÄŸrulama giriÅŸimi oldu." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "%s için çok fazla giriÅŸ var." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "Yeni iletiniz yok." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Yeni iletiniz var." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Eski/okunmuÅŸ iletiniz var." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "İletiniz var." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "%s dizininde iletiniz yok." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "%s dizininde yeni iletiniz var." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "%s dizininde eski/okunmuÅŸ iletiniz var." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "%s dizininde iletiniz var." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "%s dizini oluÅŸturuluyor." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "%s dizini oluÅŸturulamadı." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Parola kullanımda. Lütfen baÅŸka bir parola seçin." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Parola önceden kullanılmıştır." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Öntanımlı güvenlik baÄŸlamı %s'dir." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Farklı bir rol ya da seviye girmek ister misiniz?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "rol:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "%s rolü için öntanımlı bir tür yok." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "seviye:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Bu geçerli bir güvenlik baÄŸlamı deÄŸil." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "%s için geçerli bir baÄŸlam alınamadı." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "%s güvenlik baÄŸlamı atandı." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "%s anahtar oluÅŸturma baÄŸlamı atandı." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "PAM baÅŸlatılamadı\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() çalıştırılamadı\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "giriÅŸ: çatallama yapılamadı: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "EriÅŸim izni verildi (son eriÅŸim %ld saniye önce)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "Hesabınızın süresi doldu; lütfen sistem yöneticinize baÅŸvurun." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." @@ -450,12 +461,12 @@ msgstr "" "Parolanızı hemen deÄŸiÅŸtirmeniz gerekmektedir (yönetici tarafından zorunlu " "kılındı)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "Parolanızı hemen deÄŸiÅŸtirmeniz gerekmektedir (parolanın süresi doldu)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -463,37 +474,37 @@ msgstr[0] "Uyarı: parolanızın süresi %d gün içinde dolacak." msgstr[1] "Uyarı: parolanızın süresi %d gün içinde dolacak." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "Uyarı: parolanızın süresi %d gün içinde dolacak." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS parolası deÄŸiÅŸtirilemedi." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Parola belirtilmedi." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Parola deÄŸiÅŸtirilmedi." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Daha kısa bir ÅŸifre seçmelisiniz." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Daha uzun bir parola seçmelisiniz." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "%s kullanıcısının parolası deÄŸiÅŸtiriliyor." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Parolanızı deÄŸiÅŸtirmek için daha uzun süre beklemelisiniz." diff --git a/po/uk.gmo b/po/uk.gmo Binary files differdeleted file mode 100644 index c47b6301..00000000 --- a/po/uk.gmo +++ /dev/null @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2022-11-13 09:19+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/linux-" @@ -24,11 +24,12 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.14.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -38,6 +39,7 @@ msgstr "Поточний пароль %s: " msgid "Current password: " msgstr "Поточний пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -47,6 +49,7 @@ msgstr "Ðовий пароль %s: " msgid "New password: " msgstr "Ðовий пароль: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -69,171 +72,177 @@ msgstr "Повторне Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ %s" msgid "Password change has been aborted." msgstr "Зміну Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "кориÑтувач:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "УÑпіх" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Критична помилка - негайна зупинка" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ модуль" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Символ не знайдено" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Помилка в модулі Ñлужби" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "СиÑтемна помилка" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Помилка буфера пам'Ñті" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "ДоÑтуп заборонено" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Помилка розпізнаваннÑ" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "ÐедоÑтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до даних розпізнаваннÑ" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Службі Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ðµ вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ інформацію щодо розпізнаваннÑ" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Ðевідомий кориÑтувач Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "ВикориÑтано макÑимальну кількіÑть дозволених Ñпроб Ð´Ð»Ñ Ñлужби" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "ЛекÑема Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð²Ð¶Ðµ не чинна; потрібна нова" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача вже заÑтарів" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Ðе вдаєтьÑÑ Ñтворити / вилучити Ð·Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ ÑеанÑу" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Служба Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ðµ може отримати права кориÑтувача" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Права кориÑтувача заÑтаріли" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Помилка вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð² кориÑтувача" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Ðемає даних Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… модулів" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Ðеправильний елемент передано до pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Помилка обміну даними" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Помилка маніпулÑції лекÑемою розпізнаваннÑ" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ інформацію розпізнаваннÑ" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "ЛекÑему Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¾, зайнÑто" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "ЗаÑÑ‚Ð°Ñ€Ñ–Ð²Ð°Ð½Ð½Ñ Ð»ÐµÐºÑеми Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Ðевдача попередньої перевірки Ñлужбою паролів" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Повернуте Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути проігноровано заÑобом розподілу PAM" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Ðевідомий модуль" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "ЗаÑтаріла лекÑема розпізнаваннÑ" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Обмін даними очікує на подію" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Програмі потрібно знов викликати libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Ðевідома помилка PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Ð§Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÑƒÑ”Ñ‚ÑŒÑÑ...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Вибачте, ваш Ñ‡Ð°Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð²ÑÑ!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "помилкова розмова (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "Помилка %s: коди виходу %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "Помилка %s: отримано Ñигнал %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "Помилка %s: невідомий Ñтан 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -242,18 +251,18 @@ msgstr "" "КориÑтуваннÑ: %s [--dir /шлÑÑ…/до/каталогу/tally] [--user ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача] " "[--reset] [--legacy-output]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "КориÑтувач Помилок ОÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° З\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "Обліковий Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¾ через %u помилок під Ñ‡Ð°Ñ Ñпроби входу." -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -262,45 +271,45 @@ msgstr[1] "(лишилоÑÑ %d хвилини до розблокуваннÑ)" msgstr[2] "(лишилоÑÑ %d хвилин до розблокуваннÑ)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(лишилоÑÑ %d хвилин до розблокуваннÑ)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " з %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " на %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "ОÑтанній вхід: %s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "ЛаÑкаво проÑимо до вашого нового запиÑу!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "ОÑтанній невдалий вхід: %s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -316,153 +325,155 @@ msgstr[2] "" "завершилиÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð¼Ð¸." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "ПіÑÐ»Ñ Ð¾Ñтаннього уÑпішного входу було виконано %d Ñпроби входу, Ñкі " "завершилиÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð¼Ð¸." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "Забагато входів в Ð´Ð»Ñ Â«%s»." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” нової пошти." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Ðадійшла нова пошта." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Ви маєте Ñтару пошту." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Ðадійшла пошта." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "У теці %s немає поштових повідомлень." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "У теці %s Ñ” нові поштові повідомленнÑ." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "У теці %s Ñ” Ñтарі поштові повідомленнÑ." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "У теці %s Ñ” поштові повідомленнÑ." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ «%s»." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Ðе вдалоÑÑ Ñтворити Ñ– ініціалізувати каталог «%s»." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Цей пароль вже викориÑтано. Виберіть інший." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "Пароль вже викориÑтовувавÑÑ." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "Типовий контекÑÑ‚ безпеки — %s." -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Бажаєте ввеÑти іншу роль або рівень?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "роль:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "Ð”Ð»Ñ Ñ€Ð¾Ð»Ñ– %s не визначено типового типу." -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "рівень:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "Цей контекÑÑ‚ безпеки Ñ” некоректним." -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ коректний контекÑÑ‚ Ð´Ð»Ñ %s." -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "Призначено контекÑÑ‚ безпеки %s." -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "Призначено контекÑÑ‚ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð² %s." -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "не вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "помилка pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "вхід: помилка розгалуженнÑ: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "Ðадано доÑтуп (оÑÑ‚Ð°Ð½Ð½Ñ Ñпроба доÑтупу ÑталаÑÑ %ld Ñекунд тому)." -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" "Строк дії вашого облікового запиÑу вичерпано — будь лаÑка, звернітьÑÑ Ð´Ð¾ " "вашого ÑиÑтемного адмініÑтратора." -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Вам Ñлід негайно змінити пароль (вимога адмініÑтратора)." -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" "Вам необхідно негайно змінити пароль (Ñтрок дії поточного Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾)." -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -471,37 +482,37 @@ msgstr[1] "ПопередженнÑ: Ñтрок дії вашого Ð¿Ð°Ñ€Ð¾Ð»Ñ msgstr[2] "ПопередженнÑ: Ñтрок дії вашого Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð±ÑƒÐ´Ðµ вичерпано за %d днів." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "ПопередженнÑ: Ñтрок дії вашого Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð±ÑƒÐ´Ðµ вичерпано за %d днів." -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ пароль NIS." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "Ðе було надано жодного паролÑ." -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "Пароль не було змінено." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Ðеобхідно вибрати коротший пароль." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "Вам Ñлід вибрати довший пароль." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Зміна Ð¿Ð°Ñ€Ð¾Ð»Ñ %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "Ви Ñлід ще трохи зачекати, щоб змінити ваш пароль." diff --git a/po/ur.gmo b/po/ur.gmo Binary files differdeleted file mode 100644 index 777572a9..00000000 --- a/po/ur.gmo +++ /dev/null @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2011-11-30 06:56-0500\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: Urdu <trans-urdu@lists.fedoraproject.org>\n" @@ -19,11 +19,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -33,6 +34,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -42,6 +44,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -64,189 +67,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -254,45 +263,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -301,148 +310,150 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -450,39 +461,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "آپ Ú©Ùˆ ایک چھوٹا پاس ورڈ منتخب کرنا Ûوگا." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "آپ Ú©Ùˆ ایک چھوٹا پاس ورڈ منتخب کرنا Ûوگا." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "آپ Ú©Ùˆ ایک چھوٹا پاس ورڈ منتخب کرنا Ûوگا." diff --git a/po/vi.gmo b/po/vi.gmo Binary files differdeleted file mode 100644 index b7004dba..00000000 --- a/po/vi.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2012-11-30 06:03-0500\n" "Last-Translator: mattheu_9x <mattheu.9x@gmail.com>\n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/fedora/" @@ -21,11 +21,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Máºt khẩu : " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "Máºt khẩu %s má»›i: " msgid "Current password: " msgstr "Máºt khẩu má»›i: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "Máºt khẩu %s má»›i: " msgid "New password: " msgstr "Máºt khẩu má»›i: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -68,171 +71,177 @@ msgstr "Nháºp lại %s" msgid "Password change has been aborted." msgstr "Há»§y bá» việc thay đổi máºt khẩu." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "Äăng nháºp:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Thà nh công" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Lá»—i nghiêm trá»ng - há»§y bá» ngay" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Không thể nạp mô-Ä‘un" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Không tìm thấy biểu tượng" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Lá»—i trong mô-Ä‘un dịch vụ" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Lá»—i hệ thống" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Lá»—i bá»™ nhá»› đệm" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Không có đủ quyá»n thá»±c hiện" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Xác thá»±c thất bại" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Không đủ quyá»n uá»· nhiệm để truy cáºp dữ liệu xác thá»±c" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Dịch vụ chứng thá»±c không thể lấy các thông tin xác thá»±c" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Ngưá»i dùng chưa biết đến mô-Ä‘un xác thá»±c tiá»m ẩn" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Äã hết số lần thá» lại tối Ä‘a cho dịch vụ" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Dấu hiệu xác thá»±c không còn hiệu lá»±c; yêu cầu dấu hiệu xác thá»±c má»›i" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "Tà i khoản ngưá»i dùng đã hết hiệu lá»±c" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Không thể thá»±c hiện hoặc loại bá» má»™t mục nháºp cho phiên định" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Dịch vụ chứng thá»±c không thể lấy các chứng chỉ ngưá»i dùng" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Hết hạn á»§y nhiệm ngưá»i dùng" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Cà i đặt á»§y nhiệm ngưá»i dùng thất bại" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Hiện tại không có mô-Ä‘un dữ liệu" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Tình trạng hà ng được thông qua để pam_ * _item ()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Lá»—i giao tiếp" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Thao tác xác thá»±c token lá»—i" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Xác thá»±c thông tin không thể được phục hồi" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "authentication token lock busy" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "xác thá»±c token già tà n táºt" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Không thà nh công sÆ¡ bá»™ kiểm tra bằng máºt khẩu dịch vụ" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "Giá trị trả vá» phải được bá» qua bởi PAM công văn" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "chưa biết mô-Ä‘un" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Hết hạn xác thá»±c" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Giao tiếp Ä‘ang chá» kết quả" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Ứng dụng cần gá»i libpam lần nữa" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Không biết lá»—i PAM" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Thá»i gian Ä‘ang dần hết...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Xin lá»—i, đã hết thá»i gian!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "há»™i thoại sai (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s thất bại: lối ra mã %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s thất bại: bắt tÃn hiệu %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s thất bại: không rõ tình trạng 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -241,63 +250,63 @@ msgstr "" "%s: [- táºp bắt rá»…-filename] [- ngưá»i sá» dụng tên ngưá»i dùng] [- đặt lại [= " "n]] [- yên tÄ©nh]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Äang nháºp Thất bại Thất bại cuốie Từ \n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, fuzzy, c-format msgid "The account is locked due to %u failed logins." msgstr "Tà i khoản bị khóa do đăng nháºp %u không thà nh công" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " từ %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " trên %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Lần đăng nháºp:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Chà o mừng bạn đến tà i khoản má»›i cá»§a bạn!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "Lần đăng nháºp thất bại trước:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -306,196 +315,198 @@ msgstr[0] "" "Äã có %d lần đăng nháºp thất bại kể từ lần đăng nháºp thà nh công trước đó." #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" "Có %d lần đăng nháºp không thà nh công kể từ lần đăng nháºp thà nh công trước." -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "Quá nhiá»u lần đăng nháºp cho '%s'." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Bạn có thư má»›i." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Bạn có thư má»›i." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Bạn có thư cÅ©." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Bạn có thư." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Bạn không có thư trong thư mục %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Bạn có thư má»›i trong thư mục %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Bạn có thư cÅ© trong thư mục %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Bạn có thư trong thư mục %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "Tạo thư mục '%s'." -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "Không thể khởi tạo thư mục '%s'." -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Máºt khẩu đã được dùng. Hãy chá»n máºt khẩu khác." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "Máºt khẩu đã được dùng. Hãy chá»n máºt khẩu khác." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "Bối cảnh an ninh mặc định %s\n" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "Bạn có muốn nháºp má»™t vai trò khác nhau hoặc cấp?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "Vai trò:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, fuzzy, c-format msgid "There is no default type for role %s." msgstr "Không có loại mặc định cho vai trò %s\n" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "trình độ:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "Không phải là má»™t bối cảnh an ninh hợp lệ" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "Bối cảnh an ninh %s Giao" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "Sáng tạo Context phÃm %s Giao" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "không thể khởi tạo PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "không pam_set_item ()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "đăng nháºp: thất bại forking: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, fuzzy, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "ÄÆ°á»£c phép truy cáºp (lần truy cáºp trước %ld giây trước)" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "" "Tà i khoản cá»§a bạn đã hết hạn dùng: hãy liên lạc vá»›i nhà quản trị hệ thống" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "Bạn phải thay đổi ngay máºt khẩu (ngưá»i chá»§ ép buá»™c)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "Bạn phải thay đổi ngay máºt khẩu (máºt khẩu quá cÅ©)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, fuzzy, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "Cảnh báo: máºt khẩu cá»§a bạn sẽ hết hạn trong %d ngà y" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, fuzzy, c-format msgid "Warning: your password will expire in %d days." msgstr "Cảnh báo: máºt khẩu cá»§a bạn sẽ hết hạn trong %d ngà y" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "NIS máºt khẩu không thể được thay đổi." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "Không có máºt khẩu được cung cấp" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "NIS máºt khẩu không thể được thay đổi." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Bạn phải chá»n má»™t máºt khẩu ngắn hÆ¡n." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Bạn phải chá»n máºt khẩu dà i hÆ¡n" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "Thay đổi máºt khẩu cho %s." -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Bạn phải đợi thêm nữa, để thay đổi máºt khẩu" diff --git a/po/yo.gmo b/po/yo.gmo Binary files differdeleted file mode 100644 index 6b420e79..00000000 --- a/po/yo.gmo +++ /dev/null @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM 1.2.1\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Yoruba\n" @@ -18,11 +18,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Zanata 3.8.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -32,6 +33,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -41,6 +43,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -63,189 +66,195 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -253,45 +262,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -299,148 +308,150 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -448,39 +459,39 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "O gbá»dá» yan á»rá»igbaniwá»le kukuru." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "O gbá»dá» yan á»rá»igbaniwá»le kukuru." -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "O gbá»dá» yan á»rá»igbaniwá»le kukuru." diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo Binary files differdeleted file mode 100644 index 9cab7d7d..00000000 --- a/po/zh_CN.gmo +++ /dev/null diff --git a/po/zh_CN.po b/po/zh_CN.po index 3563f908..4c28e963 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -13,13 +13,14 @@ # Chenbo Pan <panchenbo@uniontech.com>, 2021. # pan chenbo <panchenbo@uniontech.com>, 2021. # Dingzhong Chen <wsxy162@gmail.com>, 2022. +# Liu Tao <lyuutau@outlook.com>, 2023. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" -"PO-Revision-Date: 2022-05-03 08:43+0000\n" -"Last-Translator: Dingzhong Chen <wsxy162@gmail.com>\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" +"PO-Revision-Date: 2023-12-27 09:37+0000\n" +"Last-Translator: Liu Tao <lyuutau@outlook.com>\n" "Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/" "projects/linux-pam/master/zh_CN/>\n" "Language: zh_CN\n" @@ -27,13 +28,14 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.12.1\n" +"X-Generator: Weblate 5.3\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "密ç : " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -43,6 +45,7 @@ msgstr "当å‰çš„ %s 密ç : " msgid "Current password: " msgstr "当å‰çš„密ç : " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -52,6 +55,7 @@ msgstr "æ–°çš„ %s 密ç : " msgid "New password: " msgstr "新的密ç : " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -74,234 +78,240 @@ msgstr "釿–°è¾“å…¥ %s" msgid "Password change has been aborted." msgstr "å¯†ç æ›´æ”¹å·²å–消。" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "登录:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "æˆåŠŸ" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "严é‡é”™è¯¯â€”—立å³ä¸æ¢" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "装载模å—失败" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "找ä¸åˆ°ç¬¦å·" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "æœåŠ¡æ¨¡å—å˜åœ¨é”™è¯¯" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "系统错误" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "内å˜ç¼“冲区错误" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "æƒé™è¢«æ‹’ç»" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "身份验è¯å¤±è´¥" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "æ²¡æœ‰è¶³å¤Ÿçš„å‡æ®å¯ä»¥è®¿é—®èº«ä»½éªŒè¯æ•°æ®" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "èº«ä»½éªŒè¯æœåŠ¡æ— æ³•æ£€ç´¢ç¥žèº«ä»½éªŒè¯ä¿¡æ¯" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "åº•å±‚çš„èº«ä»½éªŒè¯æ¨¡å—æ— æ³•è¯†åˆ«ç”¨æˆ·" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "å·²ç»è¶…出æœåŠ¡çš„æœ€å¤šé‡è¯•次数" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "身份验è¯ä»¤ç‰Œä¸å†æœ‰æ•ˆï¼›éœ€è¦æ–°çš„令牌" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "ç”¨æˆ·å¸æˆ·å·²å¤±æ•ˆ" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "æ— æ³•ä¸ºæŒ‡å®šçš„ä¼šè¯åˆ›å»º/移除æ¡ç›®" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "èº«ä»½éªŒè¯æœåŠ¡æ— æ³•æ£€ç´¢åˆ°ç”¨æˆ·å‡æ®" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "ç”¨æˆ·å‡æ®å·²å¤±æ•ˆ" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "è®¾ç½®ç”¨æˆ·å‡æ®å¤±è´¥" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "ä¸å˜åœ¨ç‰¹å®šäºŽæ¨¡å—的数æ®" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "ä¼ é€’è‡³ pam_*_item() çš„é¡¹ç›®æ— æ•ˆ" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "转æ¢é”™è¯¯" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "身份验è¯ä»¤ç‰Œæ“作错误" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "æ— æ³•æ¢å¤èº«ä»½éªŒè¯ä¿¡æ¯" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "身份验è¯ä»¤ç‰Œæ£è¢«é”定" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "å·²ç¦ç”¨èº«ä»½éªŒè¯ä»¤ç‰ŒæœŸé™" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "ç”±å¯†ç æœåŠ¡åˆæ¥æ£€æŸ¥å¤±è´¥" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "返回值应被 PAM 调度忽略" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "æ¨¡å—æœªçŸ¥" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "身份验è¯ä»¤ç‰Œå¤±æ•ˆ" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "è½¬æ¢æ£åœ¨ç‰å¾…事件" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "应用程åºéœ€è¦å†æ¬¡è°ƒç”¨ libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "未知的 PAM 错误" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...æ—¶é—´å³å°†è€—å°½...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...对ä¸èµ·ï¼Œæ‚¨çš„æ—¶é—´å·²ç»è€—å°½ï¼\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "æœ‰é”™è¯¯çš„è½¬æ¢ (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s 失败:退出代ç %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s 失败:æ•èŽ·ä¿¡å· %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s å¤±è´¥ï¼šæœªçŸ¥çŠ¶æ€ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "用法:%s [--dir /tally/目录的/路径] [--user 用户å] [--reset]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Login Failures Latest failure From\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "由于 %u 次登录失败,æ¤å¸æˆ·å·²é”定。" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "(%d 分钟åŽè§£é”)" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d 分钟åŽè§£é”)" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %x %A %H:%M:%S %Z" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " 从 %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " 于 %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "上一次登录:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "æ¬¢è¿Žä½¿ç”¨æ–°å¸æˆ·ï¼" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "最åŽä¸€æ¬¡å¤±è´¥çš„登录:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -309,186 +319,187 @@ msgid_plural "" msgstr[0] "自上次æˆåŠŸç™»å½•ä»¥æ¥ï¼Œæœ‰ %d 次失败的登录å°è¯•。" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "自上次æˆåŠŸç™»å½•ä»¥æ¥ï¼Œæœ‰ %d 次失败的登录å°è¯•。" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "“%sâ€çš„登录次数过多。" -#: modules/pam_mail/pam_mail.c:289 -#, fuzzy +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." -msgstr "您有新邮件。" +msgstr "您没有任何新邮件。" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "您有新邮件。" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "您有旧邮件。" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "您有邮件。" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "您在文件夹 %s 䏿— 邮件。" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "您在文件夹 %s 䏿œ‰æ–°é‚®ä»¶ã€‚" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "您在文件夹 %s 䏿œ‰æ—§é‚®ä»¶ã€‚" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "您在文件夹 %s 䏿œ‰é‚®ä»¶ã€‚" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "æ£åœ¨åˆ›å»ºç›®å½•“%sâ€ã€‚" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "æ— æ³•åˆ›å»ºå’Œåˆå§‹åŒ–目录“%sâ€ã€‚" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "密ç 已使用。请选择其他密ç 。" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "密ç 已被使用。" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "默认的安全上下文是 %s。" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "æ‚¨æ˜¯å¦æ„¿æ„进入ä¸åŒçš„角色或者级别?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "角色:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "角色 %s 没有默认类型。" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "级别:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "è¿™ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„安全上下文。" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "æ— æ³•å–得对 %s 有效的上下文。" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "安全上下文 %s 已分é…。" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "密钥生æˆä¸Šä¸‹æ–‡ %s 已分é…。" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "未能åˆå§‹åŒ– PAM\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "未能 pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "登录:派生失败:%m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "访问已被准许(上次访问是 %ld 秒之å‰ï¼‰ã€‚" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "æ‚¨çš„å¸æˆ·å·²è¿‡æœŸï¼›è¯·è”系您的系统管ç†å‘˜ã€‚" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "æ‚¨å¿…é¡»ç«‹å³æ›´æ”¹å¯†ç (管ç†å‘˜å¼ºåˆ¶ï¼‰ã€‚" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "æ‚¨å¿…é¡»ç«‹å³æ›´æ”¹å¯†ç (密ç å·²ç»è¿‡æœŸï¼‰ã€‚" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "è¦å‘Šï¼šæ‚¨çš„密ç 将在 %d 天åŽè¿‡æœŸã€‚" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "è¦å‘Šï¼šæ‚¨çš„密ç 将在 %d 天åŽè¿‡æœŸã€‚" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "æ— æ³•æ›´æ”¹ NIS 密ç 。" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "未æä¾›å¯†ç 。" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "å¯†ç æœªè¢«æ›´æ”¹ã€‚" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "您必须选择较çŸçš„密ç 。" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "您必须选择更长的密ç 。" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "更改 %s 的密ç 。" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "您必须ç‰å¾…更长时间以更改密ç 。" diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo Binary files differdeleted file mode 100644 index a15fdf07..00000000 --- a/po/zh_HK.gmo +++ /dev/null diff --git a/po/zh_HK.po b/po/zh_HK.po index 212e024f..dd2fbd02 100644 --- a/po/zh_HK.po +++ b/po/zh_HK.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2021-09-09 03:04+0000\n" "Last-Translator: chong gao <zhuzaifangxuele@gmail.com>\n" "Language-Team: Chinese (Hong Kong) <https://translate.fedoraproject.org/" @@ -21,11 +21,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.8\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "密碼: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -35,6 +36,7 @@ msgstr "" msgid "Current password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -44,6 +46,7 @@ msgstr "" msgid "New password: " msgstr "" +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -66,234 +69,240 @@ msgstr "" msgid "Password change has been aborted." msgstr "" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" "legacy-output]\n" msgstr "" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr "" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr "" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr "" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -301,187 +310,189 @@ msgid_plural "" msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 msgid "You do not have any new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 #, fuzzy msgid "You must choose a shorter password." msgstr "æ‚¨å¿…é ˆé¸æ“‡è¼ƒçŸçš„密碼。" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "æ‚¨å¿…é ˆé¸æ“‡è¼ƒçŸçš„密碼。" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "æ‚¨å¿…é ˆé¸æ“‡è¼ƒçŸçš„密碼。" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo Binary files differdeleted file mode 100644 index 58fd3558..00000000 --- a/po/zh_TW.gmo +++ /dev/null diff --git a/po/zh_TW.po b/po/zh_TW.po index f3abf98b..d4b517fa 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-05-24 12:40+0000\n" "Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n" "Language-Team: Chinese (Traditional) <https://translate.fedoraproject.org/" @@ -23,11 +23,12 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.0.4\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "密碼: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, c-format msgid "Current %s password: " @@ -37,6 +38,7 @@ msgstr "ç›®å‰çš„ %s 密碼: " msgid "Current password: " msgstr "ç›®å‰å¯†ç¢¼ï¼š " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -46,6 +48,7 @@ msgstr "æ–° %s 密碼: " msgid "New password: " msgstr "æ–° 密碼: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -68,171 +71,177 @@ msgstr "釿–°è¼¸å…¥ %s" msgid "Password change has been aborted." msgstr "已䏿¢å¯†ç¢¼è®Šæ›´ä½œæ¥ã€‚" -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "登入:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "æˆåŠŸ" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "åš´é‡éŒ¯èª¤ - ç«‹å³çµ‚æ¢" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "載入模組失敗" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "找ä¸åˆ°ç¬¦è™Ÿ" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "æœå‹™æ¨¡çµ„發生錯誤" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "系統錯誤" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "記憶體暫å˜å€éŒ¯èª¤" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "è¨±å¯æ¬Šè¢«æ‹’絕" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "é©—è‰å¤±æ•—" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "憑è‰ä¸è¶³ï¼Œç„¡æ³•å˜å–é©—è‰è³‡æ–™" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "é©—è‰æœå‹™ç„¡æ³•å–出驗è‰è³‡è¨Š" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "åº•å±¤çš„é©—è‰æ¨¡çµ„無法è˜åˆ¥ä½¿ç”¨è€…" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "æœå‹™çš„é‡è©¦æ¬¡æ•¸å·²è¶…éŽæœ€å¤§æ•¸é‡" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "é©—è‰è¨˜è™Ÿå·²ç¶“å¤±æ•ˆï¼›éœ€è¦æ–°çš„é©—è‰è¨˜è™Ÿ" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "使用者帳戶已逾期" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "無法為指定的工作階段製作/ç§»é™¤é …ç›®" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "é©—è‰æœå‹™ç„¡æ³•å–出使用者憑è‰" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "使用者憑è‰å·²é€¾æœŸ" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "無法è¨å®šä½¿ç”¨è€…憑è‰" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "沒有模組的詳細資料" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "ä¸è‰¯çš„é …ç›®å‚³é€è‡³ pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "交談錯誤" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "é©—è‰è¨˜è™Ÿè™•ç†éŒ¯èª¤" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "無法æ¢å¾©é©—è‰è³‡è¨Š" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "é©—è‰è¨˜è™ŸéŽ–å®šå¿™ç¢Œ" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "é©—è‰è¨˜è™Ÿè¨ˆæ™‚å·²åœç”¨" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "密碼æœå‹™çš„åˆæ¥æª¢æŸ¥å¤±æ•—" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "PAM ç™¼é€æ‡‰å¿½ç•¥å‚³å›žå€¼" -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "未知的模組" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "é©—è‰è¨˜è™Ÿå·²é€¾æœŸ" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "交談æ£åœ¨ç‰å€™äº‹ä»¶" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "應用程å¼éœ€è¦å†æ¬¡å‘¼å« libpam" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "未知的 PAM 錯誤" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...時間已經超éŽ...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...抱æ‰ï¼Œæ‚¨çš„æ™‚間已到ï¼\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "錯誤的交談 (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "%s 失敗:退出編碼 %d" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "%s å¤±æ•—ï¼šæ•æ‰åˆ°ä¿¡è™Ÿ %d%s" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "%s å¤±æ•—ï¼šä¸æ˜Žç‹€æ…‹ 0x%x" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -240,63 +249,63 @@ msgid "" msgstr "" "用法:%s [--dir /path/to/tally-directory] [--user username] [--reset]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, fuzzy, c-format msgid "Login Failures Latest failure From\n" msgstr "Login Failures Latest failure From\n" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "å› ç‚º %u 次登入皆失敗,帳號已鎖定。" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, fuzzy, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" msgstr[0] "(%d 分é˜å¾Œè§£éŽ–ï¼‰" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "(%d 分é˜å¾Œè§£éŽ–ï¼‰" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " 從 %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " 在 %.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "上一次登入:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "æ¡è¿Žä½¿ç”¨æ‚¨çš„æ–°å¸³è™Ÿï¼" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "上一次失敗的登入:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -304,186 +313,188 @@ msgid_plural "" msgstr[0] "自上次æˆåŠŸç™»å…¥å¾Œï¼Œæœ‰ %d 次試圖登入但失敗的紀錄。" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "自從上次æˆåŠŸç™»å…¥å¾Œæœ‰ %d 次嘗試登入失敗。" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, c-format msgid "There were too many logins for '%s'." msgstr "登入 '%s' 太多次。" -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "您有新的郵件。" -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "您有新的郵件。" -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "您有舊的郵件。" -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "您有郵件。" -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "資料夾 %s 䏿²’有您的郵件。" -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "資料夾 %s 䏿œ‰æ‚¨çš„æ–°éƒµä»¶ã€‚" -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "資料夾 %s 䏿œ‰æ‚¨çš„舊郵件。" -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "資料夾 %s 䏿œ‰æ‚¨çš„郵件。" -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "建立目錄「%sã€ã€‚" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "無法建立和åˆå§‹åŒ–「%sã€ç›®éŒ„。" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "å¯†ç¢¼å·²ç¶“ç”±å…¶ä»–ä½¿ç”¨è€…ä½¿ç”¨ã€‚è«‹é¸æ“‡å…¶ä»–密碼。" -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 msgid "Password has been already used." msgstr "密碼已被使用éŽã€‚" -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, c-format msgid "The default security context is %s." msgstr "é è¨çš„安全情境為 %s。" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "您是å¦å¸Œæœ›è¼¸å…¥ä¸åŒçš„角色或層級?" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "角色:" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "%s 角色沒有é è¨é¡žåž‹ã€‚" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "層級:" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 msgid "This is not a valid security context." msgstr "æ¤éžæœ‰æ•ˆçš„安全性情境。" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "無法å–å¾— %s 的有效情境。" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, c-format msgid "Security context %s has been assigned." msgstr "已指定 %s 安全情境。" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, c-format msgid "Key creation context %s has been assigned." msgstr "已指定 %s 金鑰建立情境。" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "èµ·å§‹ PAM 失敗\n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "pam_set_item() 失敗\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "登入:失敗的分å‰ï¼š%m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "已賦予å˜å–權é™ï¼ˆæœ€å¾Œä¸€æ¬¡å˜å–為 %ld ç§’å‰ï¼‰ã€‚" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 msgid "Your account has expired; please contact your system administrator." msgstr "æ‚¨çš„å¸³æˆ¶å·²ç¶“éŽæœŸï¼›è«‹æ´½è©¢æ‚¨çš„系統管ç†å“¡ã€‚" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 msgid "" "You are required to change your password immediately (administrator " "enforced)." msgstr "æ‚¨å¿…é ˆç«‹åˆ»è®Šæ›´æ‚¨çš„å¯†ç¢¼ï¼ˆç®¡ç†å“¡å¼·åˆ¶åŸ·è¡Œï¼‰ã€‚" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 msgid "" "You are required to change your password immediately (password expired)." msgstr "æ‚¨å¿…é ˆç«‹åˆ»è®Šæ›´æ‚¨çš„å¯†ç¢¼ï¼ˆå¯†ç¢¼å·²ç¶“éŽæœŸï¼‰ã€‚" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." msgstr[0] "è¦å‘Šï¼šæ‚¨çš„密碼將在 %d å¤©å¾ŒéŽæœŸã€‚" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "è¦å‘Šï¼šæ‚¨çš„密碼將在 %d å¤©å¾ŒéŽæœŸã€‚" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "無法變更 NIS 密碼。" -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 msgid "No password has been supplied." msgstr "未æä¾›å¯†ç¢¼ã€‚" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 msgid "The password has not been changed." msgstr "未變更密碼。" -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "æ‚¨å¿…é ˆé¸æ“‡è¼ƒçŸçš„密碼。" -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 msgid "You must choose a longer password." msgstr "æ‚¨çš„å¯†ç¢¼å¿…é ˆæ›´é•·ã€‚" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "æ£åœ¨æ›´æ”¹ %s çš„ STRESS 密碼。" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 msgid "You must wait longer to change your password." msgstr "請您ç¨ç‰ä¸€é™£å後å†è®Šæ›´å¯†ç¢¼ã€‚" diff --git a/po/zu.gmo b/po/zu.gmo Binary files differdeleted file mode 100644 index 8f70af4e..00000000 --- a/po/zu.gmo +++ /dev/null @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: https://github.com/linux-pam/linux-pam/issues\n" -"POT-Creation-Date: 2023-04-29 11:11+0000\n" +"POT-Creation-Date: 2024-10-13 20:00+0000\n" "PO-Revision-Date: 2020-03-06 23:59+0000\n" "Last-Translator: Dmitry V. Levin <ldv@altlinux.org>\n" "Language-Team: Zulu <https://translate.fedoraproject.org/projects/linux-pam/" @@ -21,11 +21,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 3.11.2\n" -#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:183 -#: modules/pam_userdb/pam_userdb.c:53 +#: libpam/pam_get_authtok.c:40 modules/pam_exec/pam_exec.c:182 +#: modules/pam_userdb/pam_userdb.c:62 msgid "Password: " msgstr "Iphasiwedi: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:42 #, fuzzy, c-format msgid "Current %s password: " @@ -36,6 +37,7 @@ msgstr "%s iphasiwedi entsha: " msgid "Current password: " msgstr "iphasiwedi entsha: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:45 #, c-format msgid "New %s password: " @@ -45,6 +47,7 @@ msgstr "%s iphasiwedi entsha: " msgid "New password: " msgstr "iphasiwedi entsha: " +#. For Translators: "%s" is replaced with "<service>". #: libpam/pam_get_authtok.c:48 #, c-format msgid "Retype new %s password: " @@ -68,171 +71,177 @@ msgstr "" msgid "Password change has been aborted." msgstr "Le phasiwedi isetshenziswa ngothile. Khetha enye." -#: libpam/pam_item.c:311 +#: libpam/pam_item.c:317 msgid "login:" msgstr "ngena:" -#: libpam/pam_strerror.c:40 +#: libpam/pam_strerror.c:41 msgid "Success" msgstr "Impumelelo" -#: libpam/pam_strerror.c:42 +#: libpam/pam_strerror.c:43 msgid "Critical error - immediate abort" msgstr "Iphutha elibucayi - yeka ngokushesha" -#: libpam/pam_strerror.c:44 +#: libpam/pam_strerror.c:45 msgid "Failed to load module" msgstr "Ihlulekile ukunezela umkhiqizo owenezelwayo" -#: libpam/pam_strerror.c:46 +#: libpam/pam_strerror.c:47 msgid "Symbol not found" msgstr "Uphawu alutholakali" -#: libpam/pam_strerror.c:48 +#: libpam/pam_strerror.c:49 msgid "Error in service module" msgstr "Iphutha kwimoduli yesevisi" -#: libpam/pam_strerror.c:50 +#: libpam/pam_strerror.c:51 msgid "System error" msgstr "Iphutha lesistimu" -#: libpam/pam_strerror.c:52 +#: libpam/pam_strerror.c:53 msgid "Memory buffer error" msgstr "Iphutha lengobo yesikhashana yememori" -#: libpam/pam_strerror.c:54 +#: libpam/pam_strerror.c:55 msgid "Permission denied" msgstr "Imvume inqatshiwe" -#: libpam/pam_strerror.c:56 +#: libpam/pam_strerror.c:57 msgid "Authentication failure" msgstr "Ukwehluleka kokugunyaza" -#: libpam/pam_strerror.c:58 +#: libpam/pam_strerror.c:59 msgid "Insufficient credentials to access authentication data" msgstr "Izinhlamvu zamagama ezinganele zokungena ekwazisweni kokugunyaza" -#: libpam/pam_strerror.c:60 +#: libpam/pam_strerror.c:61 msgid "Authentication service cannot retrieve authentication info" msgstr "Isevisi yokugunyaza ayikwazi ukulanda ukwaziswa kokugunyaza" -#: libpam/pam_strerror.c:62 +#: libpam/pam_strerror.c:63 msgid "User not known to the underlying authentication module" msgstr "Umsebenzisi akaziwa kwimoduli yokugunyaza engabonakali" -#: libpam/pam_strerror.c:64 +#: libpam/pam_strerror.c:65 msgid "Have exhausted maximum number of retries for service" msgstr "Isifinyelele ekugcineni kwezikhathi ezivumelekile zokuzama le sevisi" -#: libpam/pam_strerror.c:66 +#: libpam/pam_strerror.c:67 msgid "Authentication token is no longer valid; new one required" msgstr "Isiqinisekiso sokugunyaza asisasebenzi, kudingeka esisha" -#: libpam/pam_strerror.c:68 +#: libpam/pam_strerror.c:69 msgid "User account has expired" msgstr "I-akhawunti yomsebenzisi iphelelwe isikhathi" -#: libpam/pam_strerror.c:70 +#: libpam/pam_strerror.c:71 msgid "Cannot make/remove an entry for the specified session" msgstr "Ayikwazi ukwakha/ukususa okufakiwe kohlelo olubonisiwe" -#: libpam/pam_strerror.c:72 +#: libpam/pam_strerror.c:73 msgid "Authentication service cannot retrieve user credentials" msgstr "Isevisi yokugunyaza ayikwazi ukulanda izinhlamvu zomsebenzisi" -#: libpam/pam_strerror.c:74 +#: libpam/pam_strerror.c:75 msgid "User credentials expired" msgstr "Izinhlamvu zomsebenzisi ziphelelwe isikhathi" -#: libpam/pam_strerror.c:76 +#: libpam/pam_strerror.c:77 msgid "Failure setting user credentials" msgstr "Ukwehluleka ukusetha izinhlamvu zomsebenzisi" -#: libpam/pam_strerror.c:78 +#: libpam/pam_strerror.c:79 msgid "No module specific data is present" msgstr "Akukho ukwaziswa okuthile kwemoduli okutholakalayo" -#: libpam/pam_strerror.c:80 +#: libpam/pam_strerror.c:81 msgid "Bad item passed to pam_*_item()" msgstr "Into embi idluliselwe kwi-pam_*_item()" -#: libpam/pam_strerror.c:82 +#: libpam/pam_strerror.c:83 msgid "Conversation error" msgstr "Iphutha lengxoxo" -#: libpam/pam_strerror.c:84 +#: libpam/pam_strerror.c:85 msgid "Authentication token manipulation error" msgstr "Iphutha lokufaka isiqinisekiso sokugunyaza" -#: libpam/pam_strerror.c:86 +#: libpam/pam_strerror.c:87 msgid "Authentication information cannot be recovered" msgstr "Ukwaziswa kokugunyaza akukwazi ukubuyiseka" -#: libpam/pam_strerror.c:88 +#: libpam/pam_strerror.c:89 msgid "Authentication token lock busy" msgstr "Isihluthulelo sesiqinisekiso sokugunyaza simatasa" -#: libpam/pam_strerror.c:90 +#: libpam/pam_strerror.c:91 msgid "Authentication token aging disabled" msgstr "Ukuphela kwesikhathi sesiqinisekiso sokugunyaza kucishiwe" -#: libpam/pam_strerror.c:92 +#: libpam/pam_strerror.c:93 msgid "Failed preliminary check by password service" msgstr "Ukuhlola kokuqala okuhlulekile ngesevisi yephasiwedi" -#: libpam/pam_strerror.c:94 +#: libpam/pam_strerror.c:95 msgid "The return value should be ignored by PAM dispatch" msgstr "I-value yokubuyisa kufanele inganakwa ukuthumela kwe-PAM " -#: libpam/pam_strerror.c:96 +#: libpam/pam_strerror.c:97 msgid "Module is unknown" msgstr "Imoduli ayaziwa" -#: libpam/pam_strerror.c:98 +#: libpam/pam_strerror.c:99 msgid "Authentication token expired" msgstr "Isiqinisekiso sokugunyaza siphelelwe isikhathi" -#: libpam/pam_strerror.c:100 +#: libpam/pam_strerror.c:101 msgid "Conversation is waiting for event" msgstr "Ingxoxo ilinde isenzakalo" -#: libpam/pam_strerror.c:102 +#: libpam/pam_strerror.c:103 msgid "Application needs to call libpam again" msgstr "Uhlelo ludinga ukubiza i-libpam futhi" -#: libpam/pam_strerror.c:105 +#: libpam/pam_strerror.c:106 msgid "Unknown PAM error" msgstr "Iphutha le-PAM elingaziwa" -#: libpam_misc/misc_conv.c:34 +#. +#. * external timeout definitions - these can be overridden by the +#. * application. +#. +#. time when we warn +#. time when we timeout +#: libpam_misc/misc_conv.c:36 msgid "...Time is running out...\n" msgstr "...Isikhathi siyaphela...\n" -#: libpam_misc/misc_conv.c:35 +#: libpam_misc/misc_conv.c:37 msgid "...Sorry, your time is up!\n" msgstr "...Uxolo, isikhathi sakho sesiphelile!\n" -#: libpam_misc/misc_conv.c:349 +#: libpam_misc/misc_conv.c:351 #, c-format msgid "erroneous conversation (%d)\n" msgstr "ingxoxo enephutha (%d)\n" -#: modules/pam_exec/pam_exec.c:300 +#: modules/pam_exec/pam_exec.c:298 #, c-format msgid "%s failed: exit code %d" msgstr "" -#: modules/pam_exec/pam_exec.c:310 +#: modules/pam_exec/pam_exec.c:308 #, c-format msgid "%s failed: caught signal %d%s" msgstr "" -#: modules/pam_exec/pam_exec.c:320 +#: modules/pam_exec/pam_exec.c:318 #, c-format msgid "%s failed: unknown status 0x%x" msgstr "" -#: modules/pam_faillock/main.c:130 +#: modules/pam_faillock/main.c:131 #, fuzzy, c-format msgid "" "Usage: %s [--dir /path/to/tally-directory] [--user username] [--reset] [--" @@ -240,18 +249,18 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" -#: modules/pam_faillock/main.c:181 +#: modules/pam_faillock/main.c:182 #, c-format msgid "Login Failures Latest failure From\n" msgstr "" -#: modules/pam_faillock/pam_faillock.c:404 +#: modules/pam_faillock/pam_faillock.c:416 #, c-format msgid "The account is locked due to %u failed logins." msgstr "" -#: modules/pam_faillock/pam_faillock.c:413 -#: modules/pam_faillock/pam_faillock.c:419 +#: modules/pam_faillock/pam_faillock.c:425 +#: modules/pam_faillock/pam_faillock.c:431 #, c-format msgid "(%d minute left to unlock)" msgid_plural "(%d minutes left to unlock)" @@ -259,45 +268,45 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported. -#: modules/pam_faillock/pam_faillock.c:422 +#: modules/pam_faillock/pam_faillock.c:434 #, c-format msgid "(%d minutes left to unlock)" msgstr "" #. TRANSLATORS: "strftime options for date of last login" -#: modules/pam_lastlog/pam_lastlog.c:326 modules/pam_lastlog/pam_lastlog.c:595 +#: modules/pam_lastlog/pam_lastlog.c:323 modules/pam_lastlog/pam_lastlog.c:592 msgid " %a %b %e %H:%M:%S %Z %Y" msgstr " %a %b %e %H:%M:%S %Z %Y" #. TRANSLATORS: " from <host>" -#: modules/pam_lastlog/pam_lastlog.c:335 modules/pam_lastlog/pam_lastlog.c:604 +#: modules/pam_lastlog/pam_lastlog.c:332 modules/pam_lastlog/pam_lastlog.c:601 #, c-format msgid " from %.*s" msgstr " kusukela %.*s" #. TRANSLATORS: " on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:347 modules/pam_lastlog/pam_lastlog.c:616 +#: modules/pam_lastlog/pam_lastlog.c:344 modules/pam_lastlog/pam_lastlog.c:613 #, c-format msgid " on %.*s" msgstr " ku-%.*s" #. TRANSLATORS: "Last login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:357 +#: modules/pam_lastlog/pam_lastlog.c:354 #, c-format msgid "Last login:%s%s%s" msgstr "Ukungena kokugcina:%s%s%s" -#: modules/pam_lastlog/pam_lastlog.c:363 +#: modules/pam_lastlog/pam_lastlog.c:360 msgid "Welcome to your new account!" msgstr "Uyamukelwa kwi-akhawunti yakho entsha!" #. TRANSLATORS: "Last failed login: <date> from <host> on <terminal>" -#: modules/pam_lastlog/pam_lastlog.c:626 +#: modules/pam_lastlog/pam_lastlog.c:623 #, c-format msgid "Last failed login:%s%s%s" msgstr "" -#: modules/pam_lastlog/pam_lastlog.c:635 modules/pam_lastlog/pam_lastlog.c:642 +#: modules/pam_lastlog/pam_lastlog.c:632 modules/pam_lastlog/pam_lastlog.c:639 #, c-format msgid "There was %d failed login attempt since the last successful login." msgid_plural "" @@ -306,143 +315,145 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_lastlog/pam_lastlog.c:647 +#: modules/pam_lastlog/pam_lastlog.c:644 #, c-format msgid "There were %d failed login attempts since the last successful login." msgstr "" -#: modules/pam_limits/pam_limits.c:1269 +#: modules/pam_limits/pam_limits.c:1424 #, fuzzy, c-format msgid "There were too many logins for '%s'." msgstr "Kuningi kakhulu ukungena kwi- '%s' osekwenziwe." -#: modules/pam_mail/pam_mail.c:289 +#: modules/pam_mail/pam_mail.c:290 #, fuzzy msgid "You do not have any new mail." msgstr "Unemeyili entsha." -#: modules/pam_mail/pam_mail.c:292 +#: modules/pam_mail/pam_mail.c:293 msgid "You have new mail." msgstr "Unemeyili entsha." -#: modules/pam_mail/pam_mail.c:295 +#: modules/pam_mail/pam_mail.c:296 msgid "You have old mail." msgstr "Unemeyili endala." -#: modules/pam_mail/pam_mail.c:299 +#: modules/pam_mail/pam_mail.c:300 msgid "You have mail." msgstr "Unemeyili." -#: modules/pam_mail/pam_mail.c:306 +#: modules/pam_mail/pam_mail.c:307 #, c-format msgid "You have no mail in folder %s." msgstr "Akukho meyili onayo kwifolda %s." -#: modules/pam_mail/pam_mail.c:310 +#: modules/pam_mail/pam_mail.c:311 #, c-format msgid "You have new mail in folder %s." msgstr "Unemeyili entsha kwifolda %s." -#: modules/pam_mail/pam_mail.c:314 +#: modules/pam_mail/pam_mail.c:315 #, c-format msgid "You have old mail in folder %s." msgstr "Unemeyili endala kwifolda %s." -#: modules/pam_mail/pam_mail.c:319 +#: modules/pam_mail/pam_mail.c:320 #, c-format msgid "You have mail in folder %s." msgstr "Unemeyili kwifolda %s." -#: modules/pam_mkhomedir/pam_mkhomedir.c:123 +#: modules/pam_mkhomedir/pam_mkhomedir.c:124 #, c-format msgid "Creating directory '%s'." msgstr "" -#: modules/pam_mkhomedir/pam_mkhomedir.c:206 +#: modules/pam_mkhomedir/pam_mkhomedir.c:207 #, c-format msgid "Unable to create and initialize directory '%s'." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:378 -#: modules/pam_unix/pam_unix_passwd.c:580 +#: modules/pam_pwhistory/pam_pwhistory.c:383 +#: modules/pam_unix/pam_unix_passwd.c:584 msgid "Password has been already used. Choose another." msgstr "Le phasiwedi isetshenziswa ngothile. Khetha enye." -#: modules/pam_pwhistory/pam_pwhistory.c:385 +#: modules/pam_pwhistory/pam_pwhistory.c:390 #, fuzzy msgid "Password has been already used." msgstr "Le phasiwedi isetshenziswa ngothile. Khetha enye." -#: modules/pam_selinux/pam_selinux.c:172 +#: modules/pam_selinux/pam_selinux.c:174 #, fuzzy, c-format msgid "The default security context is %s." msgstr "Akuyona indawo yokuphepha esemthethweni" -#: modules/pam_selinux/pam_selinux.c:176 +#: modules/pam_selinux/pam_selinux.c:178 msgid "Would you like to enter a different role or level?" msgstr "" -#: modules/pam_selinux/pam_selinux.c:189 +#. Allow the user to enter role and level individually +#: modules/pam_selinux/pam_selinux.c:191 msgid "role:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:193 +#: modules/pam_selinux/pam_selinux.c:195 #, c-format msgid "There is no default type for role %s." msgstr "" -#: modules/pam_selinux/pam_selinux.c:225 +#: modules/pam_selinux/pam_selinux.c:227 msgid "level:" msgstr "" -#: modules/pam_selinux/pam_selinux.c:259 +#: modules/pam_selinux/pam_selinux.c:261 #, fuzzy msgid "This is not a valid security context." msgstr "Akuyona indawo yokuphepha esemthethweni" -#: modules/pam_selinux/pam_selinux.c:508 +#: modules/pam_selinux/pam_selinux.c:510 #, c-format msgid "A valid context for %s could not be obtained." msgstr "" -#: modules/pam_selinux/pam_selinux.c:639 +#: modules/pam_selinux/pam_selinux.c:641 #, fuzzy, c-format msgid "Security context %s has been assigned." msgstr "Indawo %s Yokuphepha Yabelwe" -#: modules/pam_selinux/pam_selinux.c:655 +#: modules/pam_selinux/pam_selinux.c:657 #, fuzzy, c-format msgid "Key creation context %s has been assigned." msgstr "Indawo %s Yokuphepha Yabelwe" -#: modules/pam_selinux/pam_selinux_check.c:99 +#: modules/pam_selinux/pam_selinux_check.c:101 #, c-format msgid "failed to initialize PAM\n" msgstr "Ihlulekile ukulungiselela ukuqalisa i-PAM \n" -#: modules/pam_selinux/pam_selinux_check.c:105 +#: modules/pam_selinux/pam_selinux_check.c:107 #, c-format msgid "failed to pam_set_item()\n" msgstr "Ihlulekile ukwenza i-pam_set_item()\n" -#: modules/pam_selinux/pam_selinux_check.c:133 +#. error in fork() +#: modules/pam_selinux/pam_selinux_check.c:135 #, c-format msgid "login: failure forking: %m" msgstr "ngena: Ihlulekile ukuhlukanisa: %m" -#: modules/pam_timestamp/pam_timestamp.c:382 +#: modules/pam_timestamp/pam_timestamp.c:385 #, c-format msgid "Access has been granted (last access was %ld seconds ago)." msgstr "" -#: modules/pam_unix/pam_unix_acct.c:230 modules/pam_unix/pam_unix_acct.c:252 +#: modules/pam_unix/pam_unix_acct.c:232 modules/pam_unix/pam_unix_acct.c:254 #, fuzzy msgid "Your account has expired; please contact your system administrator." msgstr "" "I-akhawunti yakho isiphelelwe isikhathi, sicela uthintana nomqondisi " "wesistimu yakho" -#: modules/pam_unix/pam_unix_acct.c:238 +#: modules/pam_unix/pam_unix_acct.c:240 #, fuzzy msgid "" "You are required to change your password immediately (administrator " @@ -451,14 +462,14 @@ msgstr "" "Kudingeka ukuba ushintshe iphasiwedi yakho ngokushesha (iphoqelelwa " "ngumqondisi)" -#: modules/pam_unix/pam_unix_acct.c:244 +#: modules/pam_unix/pam_unix_acct.c:246 #, fuzzy msgid "" "You are required to change your password immediately (password expired)." msgstr "" "Kudingeka ukuba ushintshe iphasiwedi yakho ngokushesha (iphasiwedi indala)" -#: modules/pam_unix/pam_unix_acct.c:269 modules/pam_unix/pam_unix_acct.c:276 +#: modules/pam_unix/pam_unix_acct.c:271 modules/pam_unix/pam_unix_acct.c:278 #, c-format msgid "Warning: your password will expire in %d day." msgid_plural "Warning: your password will expire in %d days." @@ -466,40 +477,40 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: only used if dngettext is not supported -#: modules/pam_unix/pam_unix_acct.c:281 +#: modules/pam_unix/pam_unix_acct.c:283 #, c-format msgid "Warning: your password will expire in %d days." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:456 +#: modules/pam_unix/pam_unix_passwd.c:459 msgid "NIS password could not be changed." msgstr "Iphasiwedi ye-NIS ayivumanga ukushintshwa." -#: modules/pam_unix/pam_unix_passwd.c:554 +#: modules/pam_unix/pam_unix_passwd.c:557 #, fuzzy msgid "No password has been supplied." msgstr "Ayikho iphasiwedi enikeziwe" -#: modules/pam_unix/pam_unix_passwd.c:555 +#: modules/pam_unix/pam_unix_passwd.c:558 #, fuzzy msgid "The password has not been changed." msgstr "Iphasiwedi ye-NIS ayivumanga ukushintshwa." -#: modules/pam_unix/pam_unix_passwd.c:572 +#: modules/pam_unix/pam_unix_passwd.c:575 msgid "You must choose a shorter password." msgstr "Kumele ukhethe iphasiwedi emifushane." -#: modules/pam_unix/pam_unix_passwd.c:576 +#: modules/pam_unix/pam_unix_passwd.c:579 #, fuzzy msgid "You must choose a longer password." msgstr "Kumelwe ukhethe iphasiwedi ethe ukuba yinjana" -#: modules/pam_unix/pam_unix_passwd.c:683 +#: modules/pam_unix/pam_unix_passwd.c:684 #, c-format msgid "Changing password for %s." msgstr "" -#: modules/pam_unix/pam_unix_passwd.c:713 +#: modules/pam_unix/pam_unix_passwd.c:714 #, fuzzy msgid "You must wait longer to change your password." msgstr "Kumelwe ulinde isikhashana ukuze ushintshe iphasiwedi yakho" diff --git a/tests/Makefile.am b/tests/Makefile.am deleted file mode 100644 index a33d3d8d..00000000 --- a/tests/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# -# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# - -AM_CFLAGS = -DLIBPAM_COMPILE -I$(top_srcdir)/libpam/include \ - -I$(top_srcdir)/libpam $(WARN_CFLAGS) -LDADD = $(top_builddir)/libpam/libpam.la - -CLEANFILES = *~ - -TESTS = tst-pam_start tst-pam_end tst-pam_fail_delay tst-pam_open_session \ - tst-pam_close_session tst-pam_acct_mgmt tst-pam_authenticate \ - tst-pam_chauthtok tst-pam_setcred tst-pam_get_item tst-pam_set_item \ - tst-pam_getenvlist tst-pam_get_user tst-pam_set_data \ - tst-pam_mkargv tst-pam_start_confdir - -EXTRA_DIST = confdir - -check_PROGRAMS = ${TESTS} tst-dlopen - -tst_dlopen_LDADD = -ldl diff --git a/tests/Makefile.in b/tests/Makefile.in deleted file mode 100644 index bc0f56fe..00000000 --- a/tests/Makefile.in +++ /dev/null @@ -1,1384 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006, 2009 Thorsten Kukuk <kukuk@suse.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -TESTS = tst-pam_start$(EXEEXT) tst-pam_end$(EXEEXT) \ - tst-pam_fail_delay$(EXEEXT) tst-pam_open_session$(EXEEXT) \ - tst-pam_close_session$(EXEEXT) tst-pam_acct_mgmt$(EXEEXT) \ - tst-pam_authenticate$(EXEEXT) tst-pam_chauthtok$(EXEEXT) \ - tst-pam_setcred$(EXEEXT) tst-pam_get_item$(EXEEXT) \ - tst-pam_set_item$(EXEEXT) tst-pam_getenvlist$(EXEEXT) \ - tst-pam_get_user$(EXEEXT) tst-pam_set_data$(EXEEXT) \ - tst-pam_mkargv$(EXEEXT) tst-pam_start_confdir$(EXEEXT) -check_PROGRAMS = $(am__EXEEXT_1) tst-dlopen$(EXEEXT) -subdir = tests -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__EXEEXT_1 = tst-pam_start$(EXEEXT) tst-pam_end$(EXEEXT) \ - tst-pam_fail_delay$(EXEEXT) tst-pam_open_session$(EXEEXT) \ - tst-pam_close_session$(EXEEXT) tst-pam_acct_mgmt$(EXEEXT) \ - tst-pam_authenticate$(EXEEXT) tst-pam_chauthtok$(EXEEXT) \ - tst-pam_setcred$(EXEEXT) tst-pam_get_item$(EXEEXT) \ - tst-pam_set_item$(EXEEXT) tst-pam_getenvlist$(EXEEXT) \ - tst-pam_get_user$(EXEEXT) tst-pam_set_data$(EXEEXT) \ - tst-pam_mkargv$(EXEEXT) tst-pam_start_confdir$(EXEEXT) -tst_dlopen_SOURCES = tst-dlopen.c -tst_dlopen_OBJECTS = tst-dlopen.$(OBJEXT) -tst_dlopen_DEPENDENCIES = -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_acct_mgmt_SOURCES = tst-pam_acct_mgmt.c -tst_pam_acct_mgmt_OBJECTS = tst-pam_acct_mgmt.$(OBJEXT) -tst_pam_acct_mgmt_LDADD = $(LDADD) -tst_pam_acct_mgmt_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_authenticate_SOURCES = tst-pam_authenticate.c -tst_pam_authenticate_OBJECTS = tst-pam_authenticate.$(OBJEXT) -tst_pam_authenticate_LDADD = $(LDADD) -tst_pam_authenticate_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_chauthtok_SOURCES = tst-pam_chauthtok.c -tst_pam_chauthtok_OBJECTS = tst-pam_chauthtok.$(OBJEXT) -tst_pam_chauthtok_LDADD = $(LDADD) -tst_pam_chauthtok_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_close_session_SOURCES = tst-pam_close_session.c -tst_pam_close_session_OBJECTS = tst-pam_close_session.$(OBJEXT) -tst_pam_close_session_LDADD = $(LDADD) -tst_pam_close_session_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_end_SOURCES = tst-pam_end.c -tst_pam_end_OBJECTS = tst-pam_end.$(OBJEXT) -tst_pam_end_LDADD = $(LDADD) -tst_pam_end_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_fail_delay_SOURCES = tst-pam_fail_delay.c -tst_pam_fail_delay_OBJECTS = tst-pam_fail_delay.$(OBJEXT) -tst_pam_fail_delay_LDADD = $(LDADD) -tst_pam_fail_delay_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_get_item_SOURCES = tst-pam_get_item.c -tst_pam_get_item_OBJECTS = tst-pam_get_item.$(OBJEXT) -tst_pam_get_item_LDADD = $(LDADD) -tst_pam_get_item_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_get_user_SOURCES = tst-pam_get_user.c -tst_pam_get_user_OBJECTS = tst-pam_get_user.$(OBJEXT) -tst_pam_get_user_LDADD = $(LDADD) -tst_pam_get_user_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_getenvlist_SOURCES = tst-pam_getenvlist.c -tst_pam_getenvlist_OBJECTS = tst-pam_getenvlist.$(OBJEXT) -tst_pam_getenvlist_LDADD = $(LDADD) -tst_pam_getenvlist_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_mkargv_SOURCES = tst-pam_mkargv.c -tst_pam_mkargv_OBJECTS = tst-pam_mkargv.$(OBJEXT) -tst_pam_mkargv_LDADD = $(LDADD) -tst_pam_mkargv_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_open_session_SOURCES = tst-pam_open_session.c -tst_pam_open_session_OBJECTS = tst-pam_open_session.$(OBJEXT) -tst_pam_open_session_LDADD = $(LDADD) -tst_pam_open_session_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_set_data_SOURCES = tst-pam_set_data.c -tst_pam_set_data_OBJECTS = tst-pam_set_data.$(OBJEXT) -tst_pam_set_data_LDADD = $(LDADD) -tst_pam_set_data_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_set_item_SOURCES = tst-pam_set_item.c -tst_pam_set_item_OBJECTS = tst-pam_set_item.$(OBJEXT) -tst_pam_set_item_LDADD = $(LDADD) -tst_pam_set_item_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_setcred_SOURCES = tst-pam_setcred.c -tst_pam_setcred_OBJECTS = tst-pam_setcred.$(OBJEXT) -tst_pam_setcred_LDADD = $(LDADD) -tst_pam_setcred_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_start_SOURCES = tst-pam_start.c -tst_pam_start_OBJECTS = tst-pam_start.$(OBJEXT) -tst_pam_start_LDADD = $(LDADD) -tst_pam_start_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -tst_pam_start_confdir_SOURCES = tst-pam_start_confdir.c -tst_pam_start_confdir_OBJECTS = tst-pam_start_confdir.$(OBJEXT) -tst_pam_start_confdir_LDADD = $(LDADD) -tst_pam_start_confdir_DEPENDENCIES = $(top_builddir)/libpam/libpam.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/tst-dlopen.Po \ - ./$(DEPDIR)/tst-pam_acct_mgmt.Po \ - ./$(DEPDIR)/tst-pam_authenticate.Po \ - ./$(DEPDIR)/tst-pam_chauthtok.Po \ - ./$(DEPDIR)/tst-pam_close_session.Po \ - ./$(DEPDIR)/tst-pam_end.Po ./$(DEPDIR)/tst-pam_fail_delay.Po \ - ./$(DEPDIR)/tst-pam_get_item.Po \ - ./$(DEPDIR)/tst-pam_get_user.Po \ - ./$(DEPDIR)/tst-pam_getenvlist.Po \ - ./$(DEPDIR)/tst-pam_mkargv.Po \ - ./$(DEPDIR)/tst-pam_open_session.Po \ - ./$(DEPDIR)/tst-pam_set_data.Po \ - ./$(DEPDIR)/tst-pam_set_item.Po ./$(DEPDIR)/tst-pam_setcred.Po \ - ./$(DEPDIR)/tst-pam_start.Po \ - ./$(DEPDIR)/tst-pam_start_confdir.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = tst-dlopen.c tst-pam_acct_mgmt.c tst-pam_authenticate.c \ - tst-pam_chauthtok.c tst-pam_close_session.c tst-pam_end.c \ - tst-pam_fail_delay.c tst-pam_get_item.c tst-pam_get_user.c \ - tst-pam_getenvlist.c tst-pam_mkargv.c tst-pam_open_session.c \ - tst-pam_set_data.c tst-pam_set_item.c tst-pam_setcred.c \ - tst-pam_start.c tst-pam_start_confdir.c -DIST_SOURCES = tst-dlopen.c tst-pam_acct_mgmt.c tst-pam_authenticate.c \ - tst-pam_chauthtok.c tst-pam_close_session.c tst-pam_end.c \ - tst-pam_fail_delay.c tst-pam_get_item.c tst-pam_get_user.c \ - tst-pam_getenvlist.c tst-pam_mkargv.c tst-pam_open_session.c \ - tst-pam_set_data.c tst-pam_set_item.c tst-pam_setcred.c \ - tst-pam_start.c tst-pam_start_confdir.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red='[0;31m'; \ - grn='[0;32m'; \ - lgn='[1;32m'; \ - blu='[1;34m'; \ - mgn='[0;35m'; \ - brg='[1m'; \ - std='[m'; \ - fi; \ -} -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)' -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = -DLIBPAM_COMPILE -I$(top_srcdir)/libpam/include \ - -I$(top_srcdir)/libpam $(WARN_CFLAGS) - -LDADD = $(top_builddir)/libpam/libpam.la -CLEANFILES = *~ -EXTRA_DIST = confdir -tst_dlopen_LDADD = -ldl -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -tst-dlopen$(EXEEXT): $(tst_dlopen_OBJECTS) $(tst_dlopen_DEPENDENCIES) $(EXTRA_tst_dlopen_DEPENDENCIES) - @rm -f tst-dlopen$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_dlopen_OBJECTS) $(tst_dlopen_LDADD) $(LIBS) - -tst-pam_acct_mgmt$(EXEEXT): $(tst_pam_acct_mgmt_OBJECTS) $(tst_pam_acct_mgmt_DEPENDENCIES) $(EXTRA_tst_pam_acct_mgmt_DEPENDENCIES) - @rm -f tst-pam_acct_mgmt$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_acct_mgmt_OBJECTS) $(tst_pam_acct_mgmt_LDADD) $(LIBS) - -tst-pam_authenticate$(EXEEXT): $(tst_pam_authenticate_OBJECTS) $(tst_pam_authenticate_DEPENDENCIES) $(EXTRA_tst_pam_authenticate_DEPENDENCIES) - @rm -f tst-pam_authenticate$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_authenticate_OBJECTS) $(tst_pam_authenticate_LDADD) $(LIBS) - -tst-pam_chauthtok$(EXEEXT): $(tst_pam_chauthtok_OBJECTS) $(tst_pam_chauthtok_DEPENDENCIES) $(EXTRA_tst_pam_chauthtok_DEPENDENCIES) - @rm -f tst-pam_chauthtok$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_chauthtok_OBJECTS) $(tst_pam_chauthtok_LDADD) $(LIBS) - -tst-pam_close_session$(EXEEXT): $(tst_pam_close_session_OBJECTS) $(tst_pam_close_session_DEPENDENCIES) $(EXTRA_tst_pam_close_session_DEPENDENCIES) - @rm -f tst-pam_close_session$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_close_session_OBJECTS) $(tst_pam_close_session_LDADD) $(LIBS) - -tst-pam_end$(EXEEXT): $(tst_pam_end_OBJECTS) $(tst_pam_end_DEPENDENCIES) $(EXTRA_tst_pam_end_DEPENDENCIES) - @rm -f tst-pam_end$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_end_OBJECTS) $(tst_pam_end_LDADD) $(LIBS) - -tst-pam_fail_delay$(EXEEXT): $(tst_pam_fail_delay_OBJECTS) $(tst_pam_fail_delay_DEPENDENCIES) $(EXTRA_tst_pam_fail_delay_DEPENDENCIES) - @rm -f tst-pam_fail_delay$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_fail_delay_OBJECTS) $(tst_pam_fail_delay_LDADD) $(LIBS) - -tst-pam_get_item$(EXEEXT): $(tst_pam_get_item_OBJECTS) $(tst_pam_get_item_DEPENDENCIES) $(EXTRA_tst_pam_get_item_DEPENDENCIES) - @rm -f tst-pam_get_item$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_get_item_OBJECTS) $(tst_pam_get_item_LDADD) $(LIBS) - -tst-pam_get_user$(EXEEXT): $(tst_pam_get_user_OBJECTS) $(tst_pam_get_user_DEPENDENCIES) $(EXTRA_tst_pam_get_user_DEPENDENCIES) - @rm -f tst-pam_get_user$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_get_user_OBJECTS) $(tst_pam_get_user_LDADD) $(LIBS) - -tst-pam_getenvlist$(EXEEXT): $(tst_pam_getenvlist_OBJECTS) $(tst_pam_getenvlist_DEPENDENCIES) $(EXTRA_tst_pam_getenvlist_DEPENDENCIES) - @rm -f tst-pam_getenvlist$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_getenvlist_OBJECTS) $(tst_pam_getenvlist_LDADD) $(LIBS) - -tst-pam_mkargv$(EXEEXT): $(tst_pam_mkargv_OBJECTS) $(tst_pam_mkargv_DEPENDENCIES) $(EXTRA_tst_pam_mkargv_DEPENDENCIES) - @rm -f tst-pam_mkargv$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_mkargv_OBJECTS) $(tst_pam_mkargv_LDADD) $(LIBS) - -tst-pam_open_session$(EXEEXT): $(tst_pam_open_session_OBJECTS) $(tst_pam_open_session_DEPENDENCIES) $(EXTRA_tst_pam_open_session_DEPENDENCIES) - @rm -f tst-pam_open_session$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_open_session_OBJECTS) $(tst_pam_open_session_LDADD) $(LIBS) - -tst-pam_set_data$(EXEEXT): $(tst_pam_set_data_OBJECTS) $(tst_pam_set_data_DEPENDENCIES) $(EXTRA_tst_pam_set_data_DEPENDENCIES) - @rm -f tst-pam_set_data$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_set_data_OBJECTS) $(tst_pam_set_data_LDADD) $(LIBS) - -tst-pam_set_item$(EXEEXT): $(tst_pam_set_item_OBJECTS) $(tst_pam_set_item_DEPENDENCIES) $(EXTRA_tst_pam_set_item_DEPENDENCIES) - @rm -f tst-pam_set_item$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_set_item_OBJECTS) $(tst_pam_set_item_LDADD) $(LIBS) - -tst-pam_setcred$(EXEEXT): $(tst_pam_setcred_OBJECTS) $(tst_pam_setcred_DEPENDENCIES) $(EXTRA_tst_pam_setcred_DEPENDENCIES) - @rm -f tst-pam_setcred$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_setcred_OBJECTS) $(tst_pam_setcred_LDADD) $(LIBS) - -tst-pam_start$(EXEEXT): $(tst_pam_start_OBJECTS) $(tst_pam_start_DEPENDENCIES) $(EXTRA_tst_pam_start_DEPENDENCIES) - @rm -f tst-pam_start$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_start_OBJECTS) $(tst_pam_start_LDADD) $(LIBS) - -tst-pam_start_confdir$(EXEEXT): $(tst_pam_start_confdir_OBJECTS) $(tst_pam_start_confdir_DEPENDENCIES) $(EXTRA_tst_pam_start_confdir_DEPENDENCIES) - @rm -f tst-pam_start_confdir$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_start_confdir_OBJECTS) $(tst_pam_start_confdir_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-dlopen.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_acct_mgmt.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_authenticate.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_chauthtok.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_close_session.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_end.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_fail_delay.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_get_item.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_get_user.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_getenvlist.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_mkargv.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_open_session.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_set_data.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_set_item.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_setcred.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_start.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_start_confdir.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -tst-pam_start.log: tst-pam_start$(EXEEXT) - @p='tst-pam_start$(EXEEXT)'; \ - b='tst-pam_start'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_end.log: tst-pam_end$(EXEEXT) - @p='tst-pam_end$(EXEEXT)'; \ - b='tst-pam_end'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_fail_delay.log: tst-pam_fail_delay$(EXEEXT) - @p='tst-pam_fail_delay$(EXEEXT)'; \ - b='tst-pam_fail_delay'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_open_session.log: tst-pam_open_session$(EXEEXT) - @p='tst-pam_open_session$(EXEEXT)'; \ - b='tst-pam_open_session'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_close_session.log: tst-pam_close_session$(EXEEXT) - @p='tst-pam_close_session$(EXEEXT)'; \ - b='tst-pam_close_session'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_acct_mgmt.log: tst-pam_acct_mgmt$(EXEEXT) - @p='tst-pam_acct_mgmt$(EXEEXT)'; \ - b='tst-pam_acct_mgmt'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_authenticate.log: tst-pam_authenticate$(EXEEXT) - @p='tst-pam_authenticate$(EXEEXT)'; \ - b='tst-pam_authenticate'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_chauthtok.log: tst-pam_chauthtok$(EXEEXT) - @p='tst-pam_chauthtok$(EXEEXT)'; \ - b='tst-pam_chauthtok'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_setcred.log: tst-pam_setcred$(EXEEXT) - @p='tst-pam_setcred$(EXEEXT)'; \ - b='tst-pam_setcred'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_get_item.log: tst-pam_get_item$(EXEEXT) - @p='tst-pam_get_item$(EXEEXT)'; \ - b='tst-pam_get_item'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_set_item.log: tst-pam_set_item$(EXEEXT) - @p='tst-pam_set_item$(EXEEXT)'; \ - b='tst-pam_set_item'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_getenvlist.log: tst-pam_getenvlist$(EXEEXT) - @p='tst-pam_getenvlist$(EXEEXT)'; \ - b='tst-pam_getenvlist'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_get_user.log: tst-pam_get_user$(EXEEXT) - @p='tst-pam_get_user$(EXEEXT)'; \ - b='tst-pam_get_user'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_set_data.log: tst-pam_set_data$(EXEEXT) - @p='tst-pam_set_data$(EXEEXT)'; \ - b='tst-pam_set_data'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_mkargv.log: tst-pam_mkargv$(EXEEXT) - @p='tst-pam_mkargv$(EXEEXT)'; \ - b='tst-pam_mkargv'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -tst-pam_start_confdir.log: tst-pam_start_confdir$(EXEEXT) - @p='tst-pam_start_confdir$(EXEEXT)'; \ - b='tst-pam_start_confdir'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ - mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/tst-dlopen.Po - -rm -f ./$(DEPDIR)/tst-pam_acct_mgmt.Po - -rm -f ./$(DEPDIR)/tst-pam_authenticate.Po - -rm -f ./$(DEPDIR)/tst-pam_chauthtok.Po - -rm -f ./$(DEPDIR)/tst-pam_close_session.Po - -rm -f ./$(DEPDIR)/tst-pam_end.Po - -rm -f ./$(DEPDIR)/tst-pam_fail_delay.Po - -rm -f ./$(DEPDIR)/tst-pam_get_item.Po - -rm -f ./$(DEPDIR)/tst-pam_get_user.Po - -rm -f ./$(DEPDIR)/tst-pam_getenvlist.Po - -rm -f ./$(DEPDIR)/tst-pam_mkargv.Po - -rm -f ./$(DEPDIR)/tst-pam_open_session.Po - -rm -f ./$(DEPDIR)/tst-pam_set_data.Po - -rm -f ./$(DEPDIR)/tst-pam_set_item.Po - -rm -f ./$(DEPDIR)/tst-pam_setcred.Po - -rm -f ./$(DEPDIR)/tst-pam_start.Po - -rm -f ./$(DEPDIR)/tst-pam_start_confdir.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/tst-dlopen.Po - -rm -f ./$(DEPDIR)/tst-pam_acct_mgmt.Po - -rm -f ./$(DEPDIR)/tst-pam_authenticate.Po - -rm -f ./$(DEPDIR)/tst-pam_chauthtok.Po - -rm -f ./$(DEPDIR)/tst-pam_close_session.Po - -rm -f ./$(DEPDIR)/tst-pam_end.Po - -rm -f ./$(DEPDIR)/tst-pam_fail_delay.Po - -rm -f ./$(DEPDIR)/tst-pam_get_item.Po - -rm -f ./$(DEPDIR)/tst-pam_get_user.Po - -rm -f ./$(DEPDIR)/tst-pam_getenvlist.Po - -rm -f ./$(DEPDIR)/tst-pam_mkargv.Po - -rm -f ./$(DEPDIR)/tst-pam_open_session.Po - -rm -f ./$(DEPDIR)/tst-pam_set_data.Po - -rm -f ./$(DEPDIR)/tst-pam_set_item.Po - -rm -f ./$(DEPDIR)/tst-pam_setcred.Po - -rm -f ./$(DEPDIR)/tst-pam_start.Po - -rm -f ./$(DEPDIR)/tst-pam_start_confdir.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# 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: diff --git a/tests/meson.build b/tests/meson.build new file mode 100644 index 00000000..21811b1f --- /dev/null +++ b/tests/meson.build @@ -0,0 +1,48 @@ +foreach name: ['dlopen', + 'pam_start', + 'pam_end', + 'pam_fail_delay', + 'pam_open_session', + 'pam_close_session', + 'pam_acct_mgmt', + 'pam_authenticate', + 'pam_chauthtok', + 'pam_setcred', + 'pam_get_authtok', + 'pam_get_item', + 'pam_set_item', + 'pam_getenvlist', + 'pam_get_user', + 'pam_get_data', + 'pam_set_data', + 'pam_mkargv', + 'pam_start_confdir', + ] + tst_deps = [libpam_internal_dep, libpam_dep] + if name == 'dlopen' + tst_deps += libdl + endif + tst_name = 'tst-' + name + + tst_exe = executable( + tst_name, + sources: tst_name + '.c', + dependencies: tst_deps, + include_directories: [libpam_private_inc], + c_args: ['-DLIBPAM_COMPILE'], + link_args: exe_link_args, + ) + + if name == 'dlopen' + tst_dlopen = tst_exe + endif + + test( + tst_name, + chdir_meson_build_subdir, + args: [tst_exe], + env: ['MESON_BUILD_SUBDIR=' + meson.current_build_dir(), + 'srcdir=' + meson.current_source_dir() + ], + ) +endforeach diff --git a/tests/tst-dlopen.c b/tests/tst-dlopen.c index 70927163..cba3e9a8 100644 --- a/tests/tst-dlopen.c +++ b/tests/tst-dlopen.c @@ -7,15 +7,17 @@ (at your option) any later version. */ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif +#include <config.h> #include <dlfcn.h> #include <stdio.h> #include <limits.h> #include <sys/stat.h> +#ifndef PATH_MAX +# define PATH_MAX 4096 +#endif + /* Simple program to see if dlopen() would succeed. */ int main(int argc, char **argv) { diff --git a/tests/tst-pam_acct_mgmt.c b/tests/tst-pam_acct_mgmt.c index 1e8c4b4d..b355a97b 100644 --- a/tests/tst-pam_acct_mgmt.c +++ b/tests/tst-pam_acct_mgmt.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> diff --git a/tests/tst-pam_authenticate.c b/tests/tst-pam_authenticate.c index 1d43ec3a..366a4b19 100644 --- a/tests/tst-pam_authenticate.c +++ b/tests/tst-pam_authenticate.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> diff --git a/tests/tst-pam_chauthtok.c b/tests/tst-pam_chauthtok.c index 37ed83d3..5cf9a7e3 100644 --- a/tests/tst-pam_chauthtok.c +++ b/tests/tst-pam_chauthtok.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> diff --git a/tests/tst-pam_close_session.c b/tests/tst-pam_close_session.c index 86187bb9..9954b75d 100644 --- a/tests/tst-pam_close_session.c +++ b/tests/tst-pam_close_session.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> diff --git a/tests/tst-pam_end.c b/tests/tst-pam_end.c index d79df7c6..902ae717 100644 --- a/tests/tst-pam_end.c +++ b/tests/tst-pam_end.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> diff --git a/tests/tst-pam_fail_delay.c b/tests/tst-pam_fail_delay.c index d81c5765..0126af93 100644 --- a/tests/tst-pam_fail_delay.c +++ b/tests/tst-pam_fail_delay.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> @@ -67,6 +65,8 @@ main (void) return 1; } + pam_end (pamh, retval); + /* 2: use NULL pam handle */ retval = pam_fail_delay (NULL, 60); if (retval == PAM_SUCCESS) diff --git a/tests/tst-pam_get_authtok.c b/tests/tst-pam_get_authtok.c new file mode 100644 index 00000000..ffda5968 --- /dev/null +++ b/tests/tst-pam_get_authtok.c @@ -0,0 +1,51 @@ +/* + * 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, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 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. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL are + * required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``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 THE AUTHOR 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. + */ + +#include "test_assert.h" +#include <stdio.h> +#include <security/pam_ext.h> + +int +main (void) +{ + const char *authtok = "test"; + const char *prompt = "test"; + + /* 1: Call pam_get_authtok_verify with NULL as pam handle */ + ASSERT_EQ(PAM_SYSTEM_ERR, pam_get_authtok_verify (NULL, &authtok, prompt)); + + /* 2: Call pam_get_authtok with NULL as pam handle */ + ASSERT_EQ(PAM_SYSTEM_ERR, pam_get_authtok (NULL, 0, &authtok, prompt)); + + return 0; +} diff --git a/tests/tst-pam_get_data.c b/tests/tst-pam_get_data.c new file mode 100644 index 00000000..d2fab9cf --- /dev/null +++ b/tests/tst-pam_get_data.c @@ -0,0 +1,111 @@ +/* + * 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, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 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. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL are + * required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``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 THE AUTHOR 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. + */ + +#include "test_assert.h" + +#include <stdio.h> +#include <unistd.h> +#include <string.h> + +#include <security/pam_appl.h> +#include <security/pam_modules.h> +#include <pam_private.h> + +static void +tst_str_data_cleanup(pam_handle_t *pamh UNUSED, void *data, int error_status) +{ + const char *q = data ? "\"" : ""; + fprintf(stderr, + "tst_cleanup was called: data=%s%s%s, error_status=%d\n", + q, data ? (char *) data : "NULL", q, error_status); + free(data); +} + +int +main(void) +{ + const char *service = "dummy"; + const char *user = "root"; + struct pam_conv conv = { NULL, NULL }; + pam_handle_t *pamh; + void *dataptr; + const void *constdataptr; + + /* 1: Call with NULL as pam handle */ + ASSERT_NE(PAM_SUCCESS, + pam_get_data(NULL, "tst-pam_get_data-1", &constdataptr)); + + /* setup pam handle */ + ASSERT_EQ(PAM_SUCCESS, pam_start(service, user, &conv, &pamh)); + + /* 2: check for call from application */ + ASSERT_EQ(PAM_SYSTEM_ERR, + pam_get_data(pamh, "tst-pam_get_data-2", &constdataptr)); + + /* 3: Check that pam data is properly set and replaced */ + __PAM_TO_MODULE(pamh); + + ASSERT_NE(NULL, dataptr = strdup("test3a")); + ASSERT_EQ(PAM_SUCCESS, + pam_set_data(pamh, "tst-pam_get_data-3", dataptr, + tst_str_data_cleanup)); + ASSERT_EQ(PAM_SUCCESS, + pam_get_data(pamh, "tst-pam_get_data-3", &constdataptr)); + ASSERT_EQ(dataptr, constdataptr); + ASSERT_EQ(0, strcmp((const char *) constdataptr, "test3a")); + + ASSERT_NE(NULL, dataptr = strdup("test3b")); + ASSERT_EQ(PAM_SUCCESS, + pam_set_data(pamh, "tst-pam_get_data-3", dataptr, + tst_str_data_cleanup)); + ASSERT_EQ(PAM_SUCCESS, + pam_get_data(pamh, "tst-pam_get_data-3", &constdataptr)); + ASSERT_EQ(dataptr, constdataptr); + ASSERT_EQ(0, strcmp((const char *) constdataptr, "test3b")); + + ASSERT_EQ(PAM_SUCCESS, + pam_set_data(pamh, "tst-pam_get_data-3", NULL, + tst_str_data_cleanup)); + ASSERT_EQ(PAM_SUCCESS, + pam_get_data(pamh, "tst-pam_get_data-3", &constdataptr)); + ASSERT_EQ(NULL, constdataptr); + + ASSERT_EQ(PAM_NO_MODULE_DATA, + pam_get_data(pamh, "tst-pam_get_data-4", &constdataptr)); + + __PAM_TO_APP(pamh); + + ASSERT_EQ(PAM_SUCCESS, pam_end(pamh, 987)); + + return 0; +} diff --git a/tests/tst-pam_get_item.c b/tests/tst-pam_get_item.c index c6e3d9fa..cfb2a326 100644 --- a/tests/tst-pam_get_item.c +++ b/tests/tst-pam_get_item.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> diff --git a/tests/tst-pam_get_user.c b/tests/tst-pam_get_user.c index 16f31236..916c6cc6 100644 --- a/tests/tst-pam_get_user.c +++ b/tests/tst-pam_get_user.c @@ -31,10 +31,6 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - #include <config.h> #include <stdio.h> diff --git a/tests/tst-pam_getenvlist.c b/tests/tst-pam_getenvlist.c index a1184f1a..4e90c0ca 100644 --- a/tests/tst-pam_getenvlist.c +++ b/tests/tst-pam_getenvlist.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> @@ -78,7 +76,7 @@ main (void) { fprintf (stderr, "pam_getenvlist (pamh) does not return pointer to NULL\n"); - temp = *ptr; + temp = ptr ? *ptr : NULL; var = 0; while (temp) { @@ -130,5 +128,7 @@ main (void) free (ptr); } + pam_end (pamh, retval); + return 0; } diff --git a/tests/tst-pam_mkargv.c b/tests/tst-pam_mkargv.c index cb005e5f..25d07cc4 100644 --- a/tests/tst-pam_mkargv.c +++ b/tests/tst-pam_mkargv.c @@ -6,9 +6,7 @@ the Free Software Foundation in version 2 of the License. */ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif +#include <config.h> #include <stdio.h> #include <string.h> @@ -50,5 +48,7 @@ int main(void) return 1; } + free(myargv); + return 0; } diff --git a/tests/tst-pam_open_session.c b/tests/tst-pam_open_session.c index 771ca35c..5ff91b87 100644 --- a/tests/tst-pam_open_session.c +++ b/tests/tst-pam_open_session.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> diff --git a/tests/tst-pam_set_data.c b/tests/tst-pam_set_data.c index d1eaa3ea..3fbe062e 100644 --- a/tests/tst-pam_set_data.c +++ b/tests/tst-pam_set_data.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif +#include <pam_private.h> #include <stdio.h> #include <unistd.h> @@ -41,7 +39,6 @@ #include <security/pam_appl.h> #include <security/pam_modules.h> -#include <pam_private.h> static int cleanup_was_called = 0; static int cleanup3_was_called = 0; diff --git a/tests/tst-pam_set_item.c b/tests/tst-pam_set_item.c index 3457b49c..b7f21fbc 100644 --- a/tests/tst-pam_set_item.c +++ b/tests/tst-pam_set_item.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> @@ -144,6 +142,16 @@ main (void) } } + /* 5: try to set PAM_SERVICE to NULL */ + retval = pam_set_item (pamh, PAM_SERVICE, NULL); + if (retval != PAM_BAD_ITEM) + { + fprintf (stderr, + "pam_set_item (pamh, PAM_SERVICE, NULL) returned %d\n", + retval); + return 1; + } + pam_end (pamh, 0); return 0; diff --git a/tests/tst-pam_setcred.c b/tests/tst-pam_setcred.c index 917d4d05..c878d64f 100644 --- a/tests/tst-pam_setcred.c +++ b/tests/tst-pam_setcred.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> diff --git a/tests/tst-pam_start.c b/tests/tst-pam_start.c index 8fa18f74..728eafe1 100644 --- a/tests/tst-pam_start.c +++ b/tests/tst-pam_start.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <unistd.h> @@ -66,6 +64,8 @@ main (void) return 1; } + pam_end (pamh, retval); + /* 2: check with NULL for service */ retval = pam_start (NULL, user, &conv, &pamh); if (retval == PAM_SUCCESS) @@ -84,6 +84,8 @@ main (void) return 1; } + pam_end (pamh, retval); + /* 4: check with NULL for conv */ retval = pam_start (service, user, NULL, &pamh); diff --git a/tests/tst-pam_start_confdir.c b/tests/tst-pam_start_confdir.c index f731b2a5..cb2c5704 100644 --- a/tests/tst-pam_start_confdir.c +++ b/tests/tst-pam_start_confdir.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> @@ -77,6 +75,8 @@ main (void) return 1; } + pam_end (pamh, retval); + /* 2: check with invalid service */ retval = pam_start_confdir (xservice, user, &conv, confdir, &pamh); if (retval == PAM_SUCCESS) @@ -86,6 +86,8 @@ main (void) return 1; } + pam_end (pamh, retval); + /* 3: check with invalid confdir */ retval = pam_start_confdir (service, user, &conv, xconfdir, &pamh); if (retval == PAM_SUCCESS) @@ -95,5 +97,7 @@ main (void) return 1; } + pam_end (pamh, retval); + return 0; } diff --git a/xtests/Makefile.am b/xtests/Makefile.am deleted file mode 100644 index acf97469..00000000 --- a/xtests/Makefile.am +++ /dev/null @@ -1,57 +0,0 @@ -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@suse.de> -# - -AM_CFLAGS = -DLIBPAM_COMPILE -I$(top_srcdir)/libpam/include \ - -I$(top_srcdir)/libpamc/include -I$(top_srcdir)/libpam_misc/include \ - $(WARN_CFLAGS) -LDADD = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la - -CLEANFILES = *~ $(XTESTS) - -EXTRA_DIST = run-xtests.sh tst-pam_dispatch1.pamd tst-pam_dispatch2.pamd \ - tst-pam_dispatch3.pamd tst-pam_dispatch4.pamd \ - tst-pam_dispatch5.pamd \ - tst-pam_unix1.pamd tst-pam_unix2.pamd tst-pam_unix3.pamd \ - tst-pam_unix4.pamd \ - tst-pam_unix1.sh tst-pam_unix2.sh tst-pam_unix3.sh \ - tst-pam_unix4.sh \ - access.conf tst-pam_access1.pamd tst-pam_access1.sh \ - tst-pam_access2.pamd tst-pam_access2.sh \ - tst-pam_access3.pamd tst-pam_access3.sh \ - tst-pam_access4.pamd tst-pam_access4.sh \ - limits.conf tst-pam_limits1.pamd tst-pam_limits1.sh \ - tst-pam_succeed_if1.pamd tst-pam_succeed_if1.sh \ - group.conf tst-pam_group1.pamd tst-pam_group1.sh \ - tst-pam_authfail.pamd tst-pam_authsucceed.pamd \ - tst-pam_shells.pamd shells.conf tst-pam_shells.sh \ - tst-pam_substack1.pamd tst-pam_substack1a.pamd tst-pam_substack1.sh \ - tst-pam_substack2.pamd tst-pam_substack2a.pamd tst-pam_substack2.sh \ - tst-pam_substack3.pamd tst-pam_substack3a.pamd tst-pam_substack3.sh \ - tst-pam_substack4.pamd tst-pam_substack4a.pamd tst-pam_substack4.sh \ - tst-pam_substack5.pamd tst-pam_substack5a.pamd tst-pam_substack5.sh \ - tst-pam_assemble_line1.pamd tst-pam_assemble_line1.sh \ - tst-pam_pwhistory1.pamd tst-pam_pwhistory1.sh \ - tst-pam_time1.pamd time.conf \ - tst-pam_motd.sh tst-pam_motd1.sh tst-pam_motd2.sh \ - tst-pam_motd3.sh tst-pam_motd4.sh tst-pam_motd1.pamd \ - tst-pam_motd2.pamd tst-pam_motd3.pamd tst-pam_motd4.pamd - -XTESTS = tst-pam_dispatch1 tst-pam_dispatch2 tst-pam_dispatch3 \ - tst-pam_dispatch4 tst-pam_dispatch5 \ - tst-pam_unix1 tst-pam_unix2 tst-pam_unix3 tst-pam_unix4 \ - tst-pam_access1 tst-pam_access2 tst-pam_access3 \ - tst-pam_access4 tst-pam_limits1 tst-pam_succeed_if1 \ - tst-pam_group1 tst-pam_authfail tst-pam_authsucceed \ - tst-pam_pwhistory1 tst-pam_time1 tst-pam_motd \ - tst-pam_shells - -NOSRCTESTS = tst-pam_substack1 tst-pam_substack2 tst-pam_substack3 \ - tst-pam_substack4 tst-pam_substack5 tst-pam_assemble_line1 - - -EXTRA_PROGRAMS = $(XTESTS) - -xtests: $(XTESTS) run-xtests.sh - "$(srcdir)"/run-xtests.sh "$(srcdir)" ${XTESTS} ${NOSRCTESTS} diff --git a/xtests/Makefile.in b/xtests/Makefile.in deleted file mode 100644 index e82d05a9..00000000 --- a/xtests/Makefile.in +++ /dev/null @@ -1,1017 +0,0 @@ -# Makefile.in generated by automake 1.16.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2020 Free Software Foundation, Inc. - -# This Makefile.in 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Copyright (c) 2006 Thorsten Kukuk <kukuk@suse.de> -# -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -EXTRA_PROGRAMS = $(am__EXEEXT_1) -subdir = xtests -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intlmacosx.m4 \ - $(top_srcdir)/m4/jh_path_xml_catalog.m4 \ - $(top_srcdir)/m4/ld-O1.m4 $(top_srcdir)/m4/ld-as-needed.m4 \ - $(top_srcdir)/m4/ld-no-undefined.m4 \ - $(top_srcdir)/m4/ld-z-now.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libprelude.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 \ - $(top_srcdir)/m4/warn_lang_flags.m4 \ - $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__EXEEXT_1 = tst-pam_dispatch1$(EXEEXT) tst-pam_dispatch2$(EXEEXT) \ - tst-pam_dispatch3$(EXEEXT) tst-pam_dispatch4$(EXEEXT) \ - tst-pam_dispatch5$(EXEEXT) tst-pam_unix1$(EXEEXT) \ - tst-pam_unix2$(EXEEXT) tst-pam_unix3$(EXEEXT) \ - tst-pam_unix4$(EXEEXT) tst-pam_access1$(EXEEXT) \ - tst-pam_access2$(EXEEXT) tst-pam_access3$(EXEEXT) \ - tst-pam_access4$(EXEEXT) tst-pam_limits1$(EXEEXT) \ - tst-pam_succeed_if1$(EXEEXT) tst-pam_group1$(EXEEXT) \ - tst-pam_authfail$(EXEEXT) tst-pam_authsucceed$(EXEEXT) \ - tst-pam_pwhistory1$(EXEEXT) tst-pam_time1$(EXEEXT) \ - tst-pam_motd$(EXEEXT) tst-pam_shells$(EXEEXT) -tst_pam_access1_SOURCES = tst-pam_access1.c -tst_pam_access1_OBJECTS = tst-pam_access1.$(OBJEXT) -tst_pam_access1_LDADD = $(LDADD) -tst_pam_access1_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -tst_pam_access2_SOURCES = tst-pam_access2.c -tst_pam_access2_OBJECTS = tst-pam_access2.$(OBJEXT) -tst_pam_access2_LDADD = $(LDADD) -tst_pam_access2_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_access3_SOURCES = tst-pam_access3.c -tst_pam_access3_OBJECTS = tst-pam_access3.$(OBJEXT) -tst_pam_access3_LDADD = $(LDADD) -tst_pam_access3_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_access4_SOURCES = tst-pam_access4.c -tst_pam_access4_OBJECTS = tst-pam_access4.$(OBJEXT) -tst_pam_access4_LDADD = $(LDADD) -tst_pam_access4_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_authfail_SOURCES = tst-pam_authfail.c -tst_pam_authfail_OBJECTS = tst-pam_authfail.$(OBJEXT) -tst_pam_authfail_LDADD = $(LDADD) -tst_pam_authfail_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_authsucceed_SOURCES = tst-pam_authsucceed.c -tst_pam_authsucceed_OBJECTS = tst-pam_authsucceed.$(OBJEXT) -tst_pam_authsucceed_LDADD = $(LDADD) -tst_pam_authsucceed_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_dispatch1_SOURCES = tst-pam_dispatch1.c -tst_pam_dispatch1_OBJECTS = tst-pam_dispatch1.$(OBJEXT) -tst_pam_dispatch1_LDADD = $(LDADD) -tst_pam_dispatch1_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_dispatch2_SOURCES = tst-pam_dispatch2.c -tst_pam_dispatch2_OBJECTS = tst-pam_dispatch2.$(OBJEXT) -tst_pam_dispatch2_LDADD = $(LDADD) -tst_pam_dispatch2_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_dispatch3_SOURCES = tst-pam_dispatch3.c -tst_pam_dispatch3_OBJECTS = tst-pam_dispatch3.$(OBJEXT) -tst_pam_dispatch3_LDADD = $(LDADD) -tst_pam_dispatch3_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_dispatch4_SOURCES = tst-pam_dispatch4.c -tst_pam_dispatch4_OBJECTS = tst-pam_dispatch4.$(OBJEXT) -tst_pam_dispatch4_LDADD = $(LDADD) -tst_pam_dispatch4_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_dispatch5_SOURCES = tst-pam_dispatch5.c -tst_pam_dispatch5_OBJECTS = tst-pam_dispatch5.$(OBJEXT) -tst_pam_dispatch5_LDADD = $(LDADD) -tst_pam_dispatch5_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_group1_SOURCES = tst-pam_group1.c -tst_pam_group1_OBJECTS = tst-pam_group1.$(OBJEXT) -tst_pam_group1_LDADD = $(LDADD) -tst_pam_group1_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_limits1_SOURCES = tst-pam_limits1.c -tst_pam_limits1_OBJECTS = tst-pam_limits1.$(OBJEXT) -tst_pam_limits1_LDADD = $(LDADD) -tst_pam_limits1_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_motd_SOURCES = tst-pam_motd.c -tst_pam_motd_OBJECTS = tst-pam_motd.$(OBJEXT) -tst_pam_motd_LDADD = $(LDADD) -tst_pam_motd_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_pwhistory1_SOURCES = tst-pam_pwhistory1.c -tst_pam_pwhistory1_OBJECTS = tst-pam_pwhistory1.$(OBJEXT) -tst_pam_pwhistory1_LDADD = $(LDADD) -tst_pam_pwhistory1_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_shells_SOURCES = tst-pam_shells.c -tst_pam_shells_OBJECTS = tst-pam_shells.$(OBJEXT) -tst_pam_shells_LDADD = $(LDADD) -tst_pam_shells_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_succeed_if1_SOURCES = tst-pam_succeed_if1.c -tst_pam_succeed_if1_OBJECTS = tst-pam_succeed_if1.$(OBJEXT) -tst_pam_succeed_if1_LDADD = $(LDADD) -tst_pam_succeed_if1_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_time1_SOURCES = tst-pam_time1.c -tst_pam_time1_OBJECTS = tst-pam_time1.$(OBJEXT) -tst_pam_time1_LDADD = $(LDADD) -tst_pam_time1_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_unix1_SOURCES = tst-pam_unix1.c -tst_pam_unix1_OBJECTS = tst-pam_unix1.$(OBJEXT) -tst_pam_unix1_LDADD = $(LDADD) -tst_pam_unix1_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_unix2_SOURCES = tst-pam_unix2.c -tst_pam_unix2_OBJECTS = tst-pam_unix2.$(OBJEXT) -tst_pam_unix2_LDADD = $(LDADD) -tst_pam_unix2_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_unix3_SOURCES = tst-pam_unix3.c -tst_pam_unix3_OBJECTS = tst-pam_unix3.$(OBJEXT) -tst_pam_unix3_LDADD = $(LDADD) -tst_pam_unix3_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -tst_pam_unix4_SOURCES = tst-pam_unix4.c -tst_pam_unix4_OBJECTS = tst-pam_unix4.$(OBJEXT) -tst_pam_unix4_LDADD = $(LDADD) -tst_pam_unix4_DEPENDENCIES = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/tst-pam_access1.Po \ - ./$(DEPDIR)/tst-pam_access2.Po ./$(DEPDIR)/tst-pam_access3.Po \ - ./$(DEPDIR)/tst-pam_access4.Po ./$(DEPDIR)/tst-pam_authfail.Po \ - ./$(DEPDIR)/tst-pam_authsucceed.Po \ - ./$(DEPDIR)/tst-pam_dispatch1.Po \ - ./$(DEPDIR)/tst-pam_dispatch2.Po \ - ./$(DEPDIR)/tst-pam_dispatch3.Po \ - ./$(DEPDIR)/tst-pam_dispatch4.Po \ - ./$(DEPDIR)/tst-pam_dispatch5.Po ./$(DEPDIR)/tst-pam_group1.Po \ - ./$(DEPDIR)/tst-pam_limits1.Po ./$(DEPDIR)/tst-pam_motd.Po \ - ./$(DEPDIR)/tst-pam_pwhistory1.Po \ - ./$(DEPDIR)/tst-pam_shells.Po \ - ./$(DEPDIR)/tst-pam_succeed_if1.Po \ - ./$(DEPDIR)/tst-pam_time1.Po ./$(DEPDIR)/tst-pam_unix1.Po \ - ./$(DEPDIR)/tst-pam_unix2.Po ./$(DEPDIR)/tst-pam_unix3.Po \ - ./$(DEPDIR)/tst-pam_unix4.Po -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = tst-pam_access1.c tst-pam_access2.c tst-pam_access3.c \ - tst-pam_access4.c tst-pam_authfail.c tst-pam_authsucceed.c \ - tst-pam_dispatch1.c tst-pam_dispatch2.c tst-pam_dispatch3.c \ - tst-pam_dispatch4.c tst-pam_dispatch5.c tst-pam_group1.c \ - tst-pam_limits1.c tst-pam_motd.c tst-pam_pwhistory1.c \ - tst-pam_shells.c tst-pam_succeed_if1.c tst-pam_time1.c \ - tst-pam_unix1.c tst-pam_unix2.c tst-pam_unix3.c \ - tst-pam_unix4.c -DIST_SOURCES = tst-pam_access1.c tst-pam_access2.c tst-pam_access3.c \ - tst-pam_access4.c tst-pam_authfail.c tst-pam_authsucceed.c \ - tst-pam_dispatch1.c tst-pam_dispatch2.c tst-pam_dispatch3.c \ - tst-pam_dispatch4.c tst-pam_dispatch5.c tst-pam_group1.c \ - tst-pam_limits1.c tst-pam_motd.c tst-pam_pwhistory1.c \ - tst-pam_shells.c tst-pam_succeed_if1.c tst-pam_time1.c \ - tst-pam_unix1.c tst-pam_unix2.c tst-pam_unix3.c \ - tst-pam_unix4.c -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(top_srcdir)/build-aux/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BROWSER = @BROWSER@ -BUILD_CFLAGS = @BUILD_CFLAGS@ -BUILD_CPPFLAGS = @BUILD_CPPFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CRYPTO_LIBS = @CRYPTO_LIBS@ -CRYPT_CFLAGS = @CRYPT_CFLAGS@ -CRYPT_LIBS = @CRYPT_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOCBOOK_RNG = @DOCBOOK_RNG@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECONF_CFLAGS = @ECONF_CFLAGS@ -ECONF_LIBS = @ECONF_LIBS@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -EXE_CFLAGS = @EXE_CFLAGS@ -EXE_LDFLAGS = @EXE_LDFLAGS@ -FGREP = @FGREP@ -FILECMD = @FILECMD@ -FO2PDF = @FO2PDF@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -HTML_STYLESHEET = @HTML_STYLESHEET@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBAUDIT = @LIBAUDIT@ -LIBCRYPT = @LIBCRYPT@ -LIBDB = @LIBDB@ -LIBDL = @LIBDL@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBPRELUDE_CFLAGS = @LIBPRELUDE_CFLAGS@ -LIBPRELUDE_CONFIG = @LIBPRELUDE_CONFIG@ -LIBPRELUDE_CONFIG_PREFIX = @LIBPRELUDE_CONFIG_PREFIX@ -LIBPRELUDE_LDFLAGS = @LIBPRELUDE_LDFLAGS@ -LIBPRELUDE_LIBS = @LIBPRELUDE_LIBS@ -LIBPRELUDE_PREFIX = @LIBPRELUDE_PREFIX@ -LIBPRELUDE_PTHREAD_CFLAGS = @LIBPRELUDE_PTHREAD_CFLAGS@ -LIBS = @LIBS@ -LIBSELINUX = @LIBSELINUX@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LOGIND_CFLAGS = @LOGIND_CFLAGS@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MAN_STYLESHEET = @MAN_STYLESHEET@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NIS_CFLAGS = @NIS_CFLAGS@ -NIS_LIBS = @NIS_LIBS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NSL_CFLAGS = @NSL_CFLAGS@ -NSL_LIBS = @NSL_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PDF_STYLESHEET = @PDF_STYLESHEET@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SCONFIGDIR = @SCONFIGDIR@ -SECUREDIR = @SECUREDIR@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRINGPARAM_PROFILECONDITIONS = @STRINGPARAM_PROFILECONDITIONS@ -STRINGPARAM_VENDORDIR = @STRINGPARAM_VENDORDIR@ -STRIP = @STRIP@ -SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ -SYSTEMD_LIBS = @SYSTEMD_LIBS@ -TIRPC_CFLAGS = @TIRPC_CFLAGS@ -TIRPC_LIBS = @TIRPC_LIBS@ -TXT_STYLESHEET = @TXT_STYLESHEET@ -USE_NLS = @USE_NLS@ -VENDOR_SCONFIGDIR = @VENDOR_SCONFIGDIR@ -VERSION = @VERSION@ -WARN_CFLAGS = @WARN_CFLAGS@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -XMLCATALOG = @XMLCATALOG@ -XMLLINT = @XMLLINT@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -YACC = @YACC@ -YFLAGS = @YFLAGS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pam_xauth_path = @pam_xauth_path@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -systemdunitdir = @systemdunitdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AM_CFLAGS = -DLIBPAM_COMPILE -I$(top_srcdir)/libpam/include \ - -I$(top_srcdir)/libpamc/include -I$(top_srcdir)/libpam_misc/include \ - $(WARN_CFLAGS) - -LDADD = $(top_builddir)/libpam/libpam.la \ - $(top_builddir)/libpam_misc/libpam_misc.la - -CLEANFILES = *~ $(XTESTS) -EXTRA_DIST = run-xtests.sh tst-pam_dispatch1.pamd tst-pam_dispatch2.pamd \ - tst-pam_dispatch3.pamd tst-pam_dispatch4.pamd \ - tst-pam_dispatch5.pamd \ - tst-pam_unix1.pamd tst-pam_unix2.pamd tst-pam_unix3.pamd \ - tst-pam_unix4.pamd \ - tst-pam_unix1.sh tst-pam_unix2.sh tst-pam_unix3.sh \ - tst-pam_unix4.sh \ - access.conf tst-pam_access1.pamd tst-pam_access1.sh \ - tst-pam_access2.pamd tst-pam_access2.sh \ - tst-pam_access3.pamd tst-pam_access3.sh \ - tst-pam_access4.pamd tst-pam_access4.sh \ - limits.conf tst-pam_limits1.pamd tst-pam_limits1.sh \ - tst-pam_succeed_if1.pamd tst-pam_succeed_if1.sh \ - group.conf tst-pam_group1.pamd tst-pam_group1.sh \ - tst-pam_authfail.pamd tst-pam_authsucceed.pamd \ - tst-pam_shells.pamd shells.conf tst-pam_shells.sh \ - tst-pam_substack1.pamd tst-pam_substack1a.pamd tst-pam_substack1.sh \ - tst-pam_substack2.pamd tst-pam_substack2a.pamd tst-pam_substack2.sh \ - tst-pam_substack3.pamd tst-pam_substack3a.pamd tst-pam_substack3.sh \ - tst-pam_substack4.pamd tst-pam_substack4a.pamd tst-pam_substack4.sh \ - tst-pam_substack5.pamd tst-pam_substack5a.pamd tst-pam_substack5.sh \ - tst-pam_assemble_line1.pamd tst-pam_assemble_line1.sh \ - tst-pam_pwhistory1.pamd tst-pam_pwhistory1.sh \ - tst-pam_time1.pamd time.conf \ - tst-pam_motd.sh tst-pam_motd1.sh tst-pam_motd2.sh \ - tst-pam_motd3.sh tst-pam_motd4.sh tst-pam_motd1.pamd \ - tst-pam_motd2.pamd tst-pam_motd3.pamd tst-pam_motd4.pamd - -XTESTS = tst-pam_dispatch1 tst-pam_dispatch2 tst-pam_dispatch3 \ - tst-pam_dispatch4 tst-pam_dispatch5 \ - tst-pam_unix1 tst-pam_unix2 tst-pam_unix3 tst-pam_unix4 \ - tst-pam_access1 tst-pam_access2 tst-pam_access3 \ - tst-pam_access4 tst-pam_limits1 tst-pam_succeed_if1 \ - tst-pam_group1 tst-pam_authfail tst-pam_authsucceed \ - tst-pam_pwhistory1 tst-pam_time1 tst-pam_motd \ - tst-pam_shells - -NOSRCTESTS = tst-pam_substack1 tst-pam_substack2 tst-pam_substack3 \ - tst-pam_substack4 tst-pam_substack5 tst-pam_assemble_line1 - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xtests/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu xtests/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -tst-pam_access1$(EXEEXT): $(tst_pam_access1_OBJECTS) $(tst_pam_access1_DEPENDENCIES) $(EXTRA_tst_pam_access1_DEPENDENCIES) - @rm -f tst-pam_access1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_access1_OBJECTS) $(tst_pam_access1_LDADD) $(LIBS) - -tst-pam_access2$(EXEEXT): $(tst_pam_access2_OBJECTS) $(tst_pam_access2_DEPENDENCIES) $(EXTRA_tst_pam_access2_DEPENDENCIES) - @rm -f tst-pam_access2$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_access2_OBJECTS) $(tst_pam_access2_LDADD) $(LIBS) - -tst-pam_access3$(EXEEXT): $(tst_pam_access3_OBJECTS) $(tst_pam_access3_DEPENDENCIES) $(EXTRA_tst_pam_access3_DEPENDENCIES) - @rm -f tst-pam_access3$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_access3_OBJECTS) $(tst_pam_access3_LDADD) $(LIBS) - -tst-pam_access4$(EXEEXT): $(tst_pam_access4_OBJECTS) $(tst_pam_access4_DEPENDENCIES) $(EXTRA_tst_pam_access4_DEPENDENCIES) - @rm -f tst-pam_access4$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_access4_OBJECTS) $(tst_pam_access4_LDADD) $(LIBS) - -tst-pam_authfail$(EXEEXT): $(tst_pam_authfail_OBJECTS) $(tst_pam_authfail_DEPENDENCIES) $(EXTRA_tst_pam_authfail_DEPENDENCIES) - @rm -f tst-pam_authfail$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_authfail_OBJECTS) $(tst_pam_authfail_LDADD) $(LIBS) - -tst-pam_authsucceed$(EXEEXT): $(tst_pam_authsucceed_OBJECTS) $(tst_pam_authsucceed_DEPENDENCIES) $(EXTRA_tst_pam_authsucceed_DEPENDENCIES) - @rm -f tst-pam_authsucceed$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_authsucceed_OBJECTS) $(tst_pam_authsucceed_LDADD) $(LIBS) - -tst-pam_dispatch1$(EXEEXT): $(tst_pam_dispatch1_OBJECTS) $(tst_pam_dispatch1_DEPENDENCIES) $(EXTRA_tst_pam_dispatch1_DEPENDENCIES) - @rm -f tst-pam_dispatch1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_dispatch1_OBJECTS) $(tst_pam_dispatch1_LDADD) $(LIBS) - -tst-pam_dispatch2$(EXEEXT): $(tst_pam_dispatch2_OBJECTS) $(tst_pam_dispatch2_DEPENDENCIES) $(EXTRA_tst_pam_dispatch2_DEPENDENCIES) - @rm -f tst-pam_dispatch2$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_dispatch2_OBJECTS) $(tst_pam_dispatch2_LDADD) $(LIBS) - -tst-pam_dispatch3$(EXEEXT): $(tst_pam_dispatch3_OBJECTS) $(tst_pam_dispatch3_DEPENDENCIES) $(EXTRA_tst_pam_dispatch3_DEPENDENCIES) - @rm -f tst-pam_dispatch3$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_dispatch3_OBJECTS) $(tst_pam_dispatch3_LDADD) $(LIBS) - -tst-pam_dispatch4$(EXEEXT): $(tst_pam_dispatch4_OBJECTS) $(tst_pam_dispatch4_DEPENDENCIES) $(EXTRA_tst_pam_dispatch4_DEPENDENCIES) - @rm -f tst-pam_dispatch4$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_dispatch4_OBJECTS) $(tst_pam_dispatch4_LDADD) $(LIBS) - -tst-pam_dispatch5$(EXEEXT): $(tst_pam_dispatch5_OBJECTS) $(tst_pam_dispatch5_DEPENDENCIES) $(EXTRA_tst_pam_dispatch5_DEPENDENCIES) - @rm -f tst-pam_dispatch5$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_dispatch5_OBJECTS) $(tst_pam_dispatch5_LDADD) $(LIBS) - -tst-pam_group1$(EXEEXT): $(tst_pam_group1_OBJECTS) $(tst_pam_group1_DEPENDENCIES) $(EXTRA_tst_pam_group1_DEPENDENCIES) - @rm -f tst-pam_group1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_group1_OBJECTS) $(tst_pam_group1_LDADD) $(LIBS) - -tst-pam_limits1$(EXEEXT): $(tst_pam_limits1_OBJECTS) $(tst_pam_limits1_DEPENDENCIES) $(EXTRA_tst_pam_limits1_DEPENDENCIES) - @rm -f tst-pam_limits1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_limits1_OBJECTS) $(tst_pam_limits1_LDADD) $(LIBS) - -tst-pam_motd$(EXEEXT): $(tst_pam_motd_OBJECTS) $(tst_pam_motd_DEPENDENCIES) $(EXTRA_tst_pam_motd_DEPENDENCIES) - @rm -f tst-pam_motd$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_motd_OBJECTS) $(tst_pam_motd_LDADD) $(LIBS) - -tst-pam_pwhistory1$(EXEEXT): $(tst_pam_pwhistory1_OBJECTS) $(tst_pam_pwhistory1_DEPENDENCIES) $(EXTRA_tst_pam_pwhistory1_DEPENDENCIES) - @rm -f tst-pam_pwhistory1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_pwhistory1_OBJECTS) $(tst_pam_pwhistory1_LDADD) $(LIBS) - -tst-pam_shells$(EXEEXT): $(tst_pam_shells_OBJECTS) $(tst_pam_shells_DEPENDENCIES) $(EXTRA_tst_pam_shells_DEPENDENCIES) - @rm -f tst-pam_shells$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_shells_OBJECTS) $(tst_pam_shells_LDADD) $(LIBS) - -tst-pam_succeed_if1$(EXEEXT): $(tst_pam_succeed_if1_OBJECTS) $(tst_pam_succeed_if1_DEPENDENCIES) $(EXTRA_tst_pam_succeed_if1_DEPENDENCIES) - @rm -f tst-pam_succeed_if1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_succeed_if1_OBJECTS) $(tst_pam_succeed_if1_LDADD) $(LIBS) - -tst-pam_time1$(EXEEXT): $(tst_pam_time1_OBJECTS) $(tst_pam_time1_DEPENDENCIES) $(EXTRA_tst_pam_time1_DEPENDENCIES) - @rm -f tst-pam_time1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_time1_OBJECTS) $(tst_pam_time1_LDADD) $(LIBS) - -tst-pam_unix1$(EXEEXT): $(tst_pam_unix1_OBJECTS) $(tst_pam_unix1_DEPENDENCIES) $(EXTRA_tst_pam_unix1_DEPENDENCIES) - @rm -f tst-pam_unix1$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_unix1_OBJECTS) $(tst_pam_unix1_LDADD) $(LIBS) - -tst-pam_unix2$(EXEEXT): $(tst_pam_unix2_OBJECTS) $(tst_pam_unix2_DEPENDENCIES) $(EXTRA_tst_pam_unix2_DEPENDENCIES) - @rm -f tst-pam_unix2$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_unix2_OBJECTS) $(tst_pam_unix2_LDADD) $(LIBS) - -tst-pam_unix3$(EXEEXT): $(tst_pam_unix3_OBJECTS) $(tst_pam_unix3_DEPENDENCIES) $(EXTRA_tst_pam_unix3_DEPENDENCIES) - @rm -f tst-pam_unix3$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_unix3_OBJECTS) $(tst_pam_unix3_LDADD) $(LIBS) - -tst-pam_unix4$(EXEEXT): $(tst_pam_unix4_OBJECTS) $(tst_pam_unix4_DEPENDENCIES) $(EXTRA_tst_pam_unix4_DEPENDENCIES) - @rm -f tst-pam_unix4$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(tst_pam_unix4_OBJECTS) $(tst_pam_unix4_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_access1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_access2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_access3.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_access4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_authfail.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_authsucceed.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_dispatch1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_dispatch2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_dispatch3.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_dispatch4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_dispatch5.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_group1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_limits1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_motd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_pwhistory1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_shells.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_succeed_if1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_time1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_unix1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_unix2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_unix3.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst-pam_unix4.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f ./$(DEPDIR)/tst-pam_access1.Po - -rm -f ./$(DEPDIR)/tst-pam_access2.Po - -rm -f ./$(DEPDIR)/tst-pam_access3.Po - -rm -f ./$(DEPDIR)/tst-pam_access4.Po - -rm -f ./$(DEPDIR)/tst-pam_authfail.Po - -rm -f ./$(DEPDIR)/tst-pam_authsucceed.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch1.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch2.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch3.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch4.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch5.Po - -rm -f ./$(DEPDIR)/tst-pam_group1.Po - -rm -f ./$(DEPDIR)/tst-pam_limits1.Po - -rm -f ./$(DEPDIR)/tst-pam_motd.Po - -rm -f ./$(DEPDIR)/tst-pam_pwhistory1.Po - -rm -f ./$(DEPDIR)/tst-pam_shells.Po - -rm -f ./$(DEPDIR)/tst-pam_succeed_if1.Po - -rm -f ./$(DEPDIR)/tst-pam_time1.Po - -rm -f ./$(DEPDIR)/tst-pam_unix1.Po - -rm -f ./$(DEPDIR)/tst-pam_unix2.Po - -rm -f ./$(DEPDIR)/tst-pam_unix3.Po - -rm -f ./$(DEPDIR)/tst-pam_unix4.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/tst-pam_access1.Po - -rm -f ./$(DEPDIR)/tst-pam_access2.Po - -rm -f ./$(DEPDIR)/tst-pam_access3.Po - -rm -f ./$(DEPDIR)/tst-pam_access4.Po - -rm -f ./$(DEPDIR)/tst-pam_authfail.Po - -rm -f ./$(DEPDIR)/tst-pam_authsucceed.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch1.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch2.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch3.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch4.Po - -rm -f ./$(DEPDIR)/tst-pam_dispatch5.Po - -rm -f ./$(DEPDIR)/tst-pam_group1.Po - -rm -f ./$(DEPDIR)/tst-pam_limits1.Po - -rm -f ./$(DEPDIR)/tst-pam_motd.Po - -rm -f ./$(DEPDIR)/tst-pam_pwhistory1.Po - -rm -f ./$(DEPDIR)/tst-pam_shells.Po - -rm -f ./$(DEPDIR)/tst-pam_succeed_if1.Po - -rm -f ./$(DEPDIR)/tst-pam_time1.Po - -rm -f ./$(DEPDIR)/tst-pam_unix1.Po - -rm -f ./$(DEPDIR)/tst-pam_unix2.Po - -rm -f ./$(DEPDIR)/tst-pam_unix3.Po - -rm -f ./$(DEPDIR)/tst-pam_unix4.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-libtool cscopelist-am ctags ctags-am \ - distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -xtests: $(XTESTS) run-xtests.sh - "$(srcdir)"/run-xtests.sh "$(srcdir)" ${XTESTS} ${NOSRCTESTS} - -# 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: diff --git a/xtests/meson.build b/xtests/meson.build new file mode 100644 index 00000000..96b2612f --- /dev/null +++ b/xtests/meson.build @@ -0,0 +1,70 @@ +xtest_progs = [ + 'tst-pam_access1', + 'tst-pam_access2', + 'tst-pam_access3', + 'tst-pam_access4', + 'tst-pam_authfail', + 'tst-pam_authsucceed', + 'tst-pam_dispatch1', + 'tst-pam_dispatch2', + 'tst-pam_dispatch3', + 'tst-pam_dispatch4', + 'tst-pam_dispatch5', + 'tst-pam_group1', + 'tst-pam_limits1', + 'tst-pam_motd', + 'tst-pam_pwhistory1', + 'tst-pam_shells', + 'tst-pam_succeed_if1', + 'tst-pam_time1', + 'tst-pam_unix1', + 'tst-pam_unix2', + 'tst-pam_unix3', + 'tst-pam_unix4', +] + +foreach prog: xtest_progs + tst_exe = executable( + prog, + sources: prog + '.c', + c_args: ['-DLIBPAM_COMPILE'], + link_args: exe_link_args, + include_directories: [libpamc_inc], + dependencies: [libpam_dep, libpam_misc_dep], + ) + + test( + 'xtests ' + prog, + chdir_meson_build_subdir, + args: [ + files('run-xtests.sh'), + meson.current_source_dir(), + fs.name(tst_exe), + ], + env: ['MESON_BUILD_SUBDIR=' + meson.current_build_dir()], + is_parallel: false, + ) +endforeach + +xtest_scripts = [ + 'tst-pam_assemble_line1', + 'tst-pam_substack1', + 'tst-pam_substack2', + 'tst-pam_substack3', + 'tst-pam_substack4', + 'tst-pam_substack5', +] + +foreach name: xtest_scripts + test( + 'xtests ' + name, + chdir_meson_build_subdir, + args: [ + files('run-xtests.sh'), + meson.current_source_dir(), + name, + ], + env: ['MESON_BUILD_SUBDIR=' + meson.current_build_dir()], + is_parallel: false, + ) +endforeach diff --git a/xtests/run-xtests.sh b/xtests/run-xtests.sh index e580e0ab..42e92d70 100755 --- a/xtests/run-xtests.sh +++ b/xtests/run-xtests.sh @@ -6,7 +6,7 @@ shift 1 if test `id -u` -ne 0 ; then echo "You need to be root to run the tests" - exit 1 + exit 77 fi XTESTS="$@" diff --git a/xtests/tst-pam_access1.c b/xtests/tst-pam_access1.c index 15711297..271f4868 100644 --- a/xtests/tst-pam_access1.c +++ b/xtests/tst-pam_access1.c @@ -40,9 +40,7 @@ User is member of group tstpamaccess, pam_authenticate should pass. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_access2.c b/xtests/tst-pam_access2.c index 293d72ab..7c427f9c 100644 --- a/xtests/tst-pam_access2.c +++ b/xtests/tst-pam_access2.c @@ -40,9 +40,7 @@ User is not member of group tstpamaccess, pam_authenticate should fail. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_access3.c b/xtests/tst-pam_access3.c index 817ce930..508f2440 100644 --- a/xtests/tst-pam_access3.c +++ b/xtests/tst-pam_access3.c @@ -40,9 +40,7 @@ pam_authenticate should pass for user tstpamaccess3 */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_access4.c b/xtests/tst-pam_access4.c index 115217f6..73593d50 100644 --- a/xtests/tst-pam_access4.c +++ b/xtests/tst-pam_access4.c @@ -42,9 +42,7 @@ and fail again for localhost */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_authfail.c b/xtests/tst-pam_authfail.c index 0e7d8087..448b721f 100644 --- a/xtests/tst-pam_authfail.c +++ b/xtests/tst-pam_authfail.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <string.h> diff --git a/xtests/tst-pam_authsucceed.c b/xtests/tst-pam_authsucceed.c index c0ee8023..936d8ec9 100644 --- a/xtests/tst-pam_authsucceed.c +++ b/xtests/tst-pam_authsucceed.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <string.h> diff --git a/xtests/tst-pam_dispatch1.c b/xtests/tst-pam_dispatch1.c index 404c0119..0c082c16 100644 --- a/xtests/tst-pam_dispatch1.c +++ b/xtests/tst-pam_dispatch1.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <string.h> diff --git a/xtests/tst-pam_dispatch2.c b/xtests/tst-pam_dispatch2.c index 5c63f5b3..bf3f634c 100644 --- a/xtests/tst-pam_dispatch2.c +++ b/xtests/tst-pam_dispatch2.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <strings.h> diff --git a/xtests/tst-pam_dispatch3.c b/xtests/tst-pam_dispatch3.c index d44e4880..bbe9ed2e 100644 --- a/xtests/tst-pam_dispatch3.c +++ b/xtests/tst-pam_dispatch3.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <string.h> diff --git a/xtests/tst-pam_dispatch4.c b/xtests/tst-pam_dispatch4.c index a4db8a88..00ee457e 100644 --- a/xtests/tst-pam_dispatch4.c +++ b/xtests/tst-pam_dispatch4.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <string.h> diff --git a/xtests/tst-pam_dispatch5.c b/xtests/tst-pam_dispatch5.c index f1197b38..576dbd46 100644 --- a/xtests/tst-pam_dispatch5.c +++ b/xtests/tst-pam_dispatch5.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <string.h> diff --git a/xtests/tst-pam_group1.c b/xtests/tst-pam_group1.c index e5e5ae1c..30c121d3 100644 --- a/xtests/tst-pam_group1.c +++ b/xtests/tst-pam_group1.c @@ -43,9 +43,7 @@ to tstpamgrp2. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <grp.h> #include <stdio.h> diff --git a/xtests/tst-pam_limits1.c b/xtests/tst-pam_limits1.c index d8952400..ed4982de 100644 --- a/xtests/tst-pam_limits1.c +++ b/xtests/tst-pam_limits1.c @@ -41,9 +41,7 @@ getrlimit should return soft=1 and hard=40. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_motd.c b/xtests/tst-pam_motd.c index bba2f9d5..2cc006a8 100644 --- a/xtests/tst-pam_motd.c +++ b/xtests/tst-pam_motd.c @@ -31,9 +31,7 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_pwhistory1.c b/xtests/tst-pam_pwhistory1.c index 1641c298..13adb056 100644 --- a/xtests/tst-pam_pwhistory1.c +++ b/xtests/tst-pam_pwhistory1.c @@ -38,9 +38,7 @@ * Try a new password, should succeed */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_succeed_if1.c b/xtests/tst-pam_succeed_if1.c index c0187743..78a1c30d 100644 --- a/xtests/tst-pam_succeed_if1.c +++ b/xtests/tst-pam_succeed_if1.c @@ -41,9 +41,7 @@ User is pamtest or tstpamtest, both should succeed. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_time1.c b/xtests/tst-pam_time1.c index 18dfeba9..ff773f1a 100644 --- a/xtests/tst-pam_time1.c +++ b/xtests/tst-pam_time1.c @@ -41,9 +41,7 @@ User 'x' should not be able to login. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_unix1.c b/xtests/tst-pam_unix1.c index 5ee24082..665c67d7 100644 --- a/xtests/tst-pam_unix1.c +++ b/xtests/tst-pam_unix1.c @@ -35,9 +35,7 @@ * Test case: '!!' as password should not allow login */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_unix2.c b/xtests/tst-pam_unix2.c index 65a75f3e..b50fb6bb 100644 --- a/xtests/tst-pam_unix2.c +++ b/xtests/tst-pam_unix2.c @@ -37,9 +37,7 @@ * Second use longer password, 9 characters */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_unix3.c b/xtests/tst-pam_unix3.c index 50a94587..18ecbebf 100644 --- a/xtests/tst-pam_unix3.c +++ b/xtests/tst-pam_unix3.c @@ -38,9 +38,7 @@ * Third use wrong password, 9 characters */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> diff --git a/xtests/tst-pam_unix4.c b/xtests/tst-pam_unix4.c index 1ba0a40c..b2abdfe1 100644 --- a/xtests/tst-pam_unix4.c +++ b/xtests/tst-pam_unix4.c @@ -35,9 +35,7 @@ * Check password change minimum days handling. */ -#ifdef HAVE_CONFIG_H #include <config.h> -#endif #include <stdio.h> #include <stdlib.h> @@ -125,7 +123,13 @@ main(int argc, char *argv[]) /* we must switch the real (not effective) user so the restrictions are enforced */ - setreuid (pwd->pw_uid, -1); + retval = setreuid (pwd->pw_uid, -1); + if (retval) + { + if (debug) + fprintf (stderr, "unix4: setreuid returned %d\n", retval); + return 1; + } retval = pam_start("tst-pam_unix4", user, &conv, &pamh); if (retval != PAM_SUCCESS) |