Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37037591
en ru br
Репозитории ALT
5.1: 1.1.3-alt0.M51.1
4.1: 1.0.1-alt1
4.0: 0.99.6.3-alt2
3.0: 0.75-alt29
www.altlinux.org/Changes

Группа :: Система/Основа
Пакет: pam

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Name: pam
Version: 0.75
Release: alt29

%define rhver 48
%define helperdir /sbin

Summary: Pluggable Authentication Modules
License: GPL or BSD
Group: System/Base
Url: http://www.kernel.org/pub/linux/libs/pam/index.html

%define srcname Linux-PAM-%version

# Linux-PAM name suffix

%define _pam_name_suffix 0

# Used for pam module package naming.

%define make_pam_name() pam%{_pam_name_suffix}_%{1}
%define set_pam_name() %global pam_name %(n='%{1}'; s="${n#pam_}"; [ "$n" = "$s" ] && echo -n "$n" || echo -n "pam%{_pam_name_suffix}_$s")

# Linux-PAM modules directory.

%define _pam_modules_dir /%_lib/security

# Linux-PAM library soname suffix.

%define _pam_so_suffix %{nil}

# Linux-PAM library package name, used for tracking package dependencies.

%define libpam libpam%{_pam_name_suffix}

Source0: ftp://ftp.kernel.org/pub/linux/libs/pam/pre/library/%srcname.tar.bz2
Source1: pam-redhat-%version-%rhver.tar.bz2
Source2: pam_sameuid.tar
Source3: pam_listfile.c
Source4: PAM-Policy.ALT
Source5: linux-pam.macros

# RHS patches

Patch1: pam-0.75-rh-alt-headers.patch
Patch2: pam-0.75-accessdoc.patch
Patch3: pam-0.75-rh-alt-build.patch
Patch4: pam-0.75-cached.patch
Patch5: pam-0.75-const.patch
Patch6: pam-0.75-linkage.patch
Patch7: pam-0.75-rh-alt-mandir.patch
Patch8: pam-0.75-primary.patch
Patch9: pam-0.75-prompt.patch
Patch11: pam-0.75-return.patch
Patch12: pam-0.75-security.patch
Patch13: pam-0.75-rh-alt-string.patch
Patch14: pam-0.75-rh-alt-typo.patch
Patch15: pam-0.75-trust.patch
Patch16: pam-0.75-userdb.patch
Patch17: pam-0.75-wheeldoc.patch
Patch18: pam-0.75-rh-alt-wrap.patch
#Patch19: pam-0.75-cracklib-distance.patch
Patch20: pam-0.75-group-reinit.patch
Patch21: pam-0.75-lastlog-utmp.patch
Patch22: pam-0.75-limits-locks.patch
#Patch23: pam-0.75-null.patch
#Patch24: pam-0.75-sigchld.patch
#Patch25: pam-0.75-pwdb-compare.patch
Patch26: pam-0.75-securetty-pts.patch
Patch27: pam-0.75-securetty-fail.patch
Patch28: pam-0.75-syntax.patch
Patch29: pam-0.75-time.patch
Patch30: pam-0.75-issue.patch
Patch31: pam-0.75-doc-rhl.patch
#Patch32: pam-0.75-bigcrypt-main.patch
#Patch33: pam-0.75-cracklib-init.patch
Patch34: pam-0.75-filter-comments.patch
#Patch35: pam-0.75-unixdoc.patch
#Patch36: pam-0.75-unix-loop.patch
#Patch37: pam-0.75-unix-preserve.patch
#Patch38: pam-0.75-unix-retval.patch
#Patch39: pam-0.75-unix-brokenshadow.patch
#Patch40: pam-0.75-unix-nis.patch
#Patch41: pam-0.75-unix-nullok.patch
Patch42: pam-0.75-wheel-usertouser.patch
Patch43: pam-0.75-mkhomedir-recurse.patch
Patch44: pam-0.75-limits-root.patch
Patch45: pam-0.75-issue-seg.patch
#Patch46: pam-0.75-listfile-tty.patch
Patch47: pam-0.75-tally-init.patch
Patch48: pam-0.75-rhosts-plus.patch
Patch49: pam-0.75-limits-retval.patch
Patch50: pam-0.75-rh-alt-reentrant.patch
Patch51: pam-0.75-macros.patch

# ALT patches

Patch100: pam-0.75-alt-misc_conv-read_string.patch
Patch101: Linux-PAM-0.80-alt-limits.conf.patch
Patch102: pam-0.75-alt-console.perms.patch
Patch103: pam-0.75-alt-pam_console-chmod.patch
Patch104: pam-0.75-alt-no-pwdb.patch
Patch105: pam-0.77-alt-pam_include.patch
Patch106: pam-0.75-alt-pam_xauth-wildcards.patch
Patch107: pam-0.75-alt-pam_xauth-nonblock.patch
Patch108: pam-cvs-20031125-pam_lastlog.patch

# Owl patches

Patch200: pam-0.75-owl-alt-tmp.patch
Patch201: pam-0.75-owl-pam_get_user-cache-failures.patch
Patch202: pam-0.75-owl-pam_dispatch-debugging.patch
Patch203: pam-0.75-owl-man.patch
Patch204: pam-0.75-owl-pam_lastlog.patch
Patch205: pam-0.75-owl-alt-pam_securetty.patch
Patch206: pam-0.75-owl-alt-pam_limits.patch
Patch207: pam-0.75-owl-pam_motd.patch
Patch208: pam-0.75-owl-alt-pam_wheel.patch
Patch209: pam-0.75-owl-alt-no-cracklib.patch

# Debian patches

Patch300: pam-0.75-deb-docs_cleanup.patch
Patch301: pam-0.75-deb-cplusplus.patch
Patch302: pam-0.75-deb-man_fixes.patch
Patch303: pam-0.75-deb-pam_time.patch
Patch304: pam-0.75-deb-pam_mkhomedir.patch

Requires: %libpam = %version-%release, pam-common >= 1.1
Obsoletes: pamconfig

BuildPreReq: rpm-build >= 4.0.4-alt19

# Automatically added by buildreq on Thu May 29 2003

BuildRequires: OpenSP flex glib-devel groff-base latex2html libdb4-devel sgml-tools tetex-dvips tetex-latex

%define _pamdir %_sysconfdir/pam.d
%define _secdir %_sysconfdir/security

%package -n %libpam
Summary: Shared libraries for running PAM-based software
Group: System/Libraries
PreReq: pam-common
Provides: libpam(include)
Provides: libpam = %version-%release
Obsoletes: libpam

%package -n %libpam-devel
Summary: Libraries and header files for developing PAM-aware software
Group: Development/C
Requires: %libpam = %version-%release
Provides: libpam-devel = %version-%release, pam-devel = %version-%release
Obsoletes: libpam-devel, pam-devel
Conflicts: libpam2-devel

%package -n %libpam-devel-static
Summary: Static libraries for developing PAM-aware software
Group: Development/C
Requires: %libpam-devel = %version-%release
Provides: libpam-devel-static = %version-%release
Obsoletes: libpam-devel-static
Conflicts: libpam2-devel-static

%package doc
Summary: Linux-PAM documentation
Group: Development/C
Requires: pam = %version-%release

%package -n %{make_pam_name console}
Summary: Controls permissions for users at the system console
Group: System/Base
Requires: pam = %version-%release
Provides: pam_console = %version-%release
Obsoletes: pam_console, pam_console0
Provides: %_secdir/console.apps

%package -n %{make_pam_name timestamp}
Summary: Authenticate using cached successful authentication attempts
Group: System/Base
Requires: pam = %version-%release
Provides: pam_timestamp = %version-%release
Obsoletes: pam_timestamp, pam_timestamp0

%package -n %{make_pam_name stack}
Summary: Recursive stacking implementation for Linux-PAM
Group: System/Base
Requires: pam = %version-%release
Provides: pam_stack = %version-%release
Obsoletes: pam_stack, pam_stack0

%description
Linux-PAM (Pluggable Authentication Modules for Linux) is a suite of
libraries that enable the local system administrator to choose how
PAM-aware applications authenticate users, without having to recompile
those applications.

%description -n %libpam
Linux-PAM (Pluggable Authentication Modules for Linux) is a suite of
libraries that enable the local system administrator to choose how
PAM-aware applications authenticate users, without having to recompile
those applications.

This package contains shared libraries required for running both
PAM-aware applications and modules for use with Linux-PAM.

%description -n %libpam-devel
Linux-PAM (Pluggable Authentication Modules for Linux) is a suite of
libraries that enable the local system administrator to choose how
PAM-aware applications authenticate users, without having to recompile
those applications.

This package contains header files and development libraries used for
building both PAM-aware applications and modules for use with Linux-PAM.

%description -n %libpam-devel-static
Linux-PAM (Pluggable Authentication Modules for Linux) is a suite of
libraries that enable the local system administrator to choose how
PAM-aware applications authenticate users, without having to recompile
those applications.

This package contains static libraries used for building statically
linked PAM-aware applications for use with Linux-PAM.

%description doc
Linux-PAM (Pluggable Authentication Modules for Linux) is a suite of
libraries that enable the local system administrator to choose how
PAM-aware applications authenticate users, without having to recompile
those applications.

This package contains detailed Linux-PAM documentation.

%description -n %{make_pam_name console}
The pam_console module exists to change file permissions when users
log on at the console, and to change them back when they log out of
the console.

See pam_console(8) for details.

%description -n %{make_pam_name timestamp}
The pam_timestamp module implements sudo-style authentication
timestamps.

See pam_timestamp(8) for details.

%description -n %{make_pam_name stack}
The pam_stack module for implementing recursive stacking with
Linux-PAM.

Avoid this module if at all possible,
use "include" control directive instead.

%prep
%setup -q -n %srcname -a1 -a2
%__rm -rf modules/pam_{pwdb,unix,cracklib,radius}

# RHS patches

%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
#%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
#%patch23 -p1
#%patch24 -p1
#%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
#%patch32 -p1
#%patch33 -p1
%patch34 -p1
#%patch35 -p1
#%patch36 -p1
#%patch37 -p1
#%patch38 -p1
#%patch39 -p1
#%patch40 -p1
#%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
#%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch51 -p1

# ALT patches

%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
%patch105 -p1
%patch106 -p1
%patch107 -p1
%patch108 -p0

# Owl patches

%patch200 -p1
%patch201 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p1
%patch205 -p1
%patch206 -p1
%patch207 -p1
%patch208 -p1
%patch209 -p1

# Debian patches

%patch300 -p1
%patch301 -p1
%patch302 -p1
%patch303 -p1
%patch304 -p1

%__install -p -m644 %SOURCE3 modules/pam_listfile/

%__ln_s -nf defs/redhat.defs default.defs

find -type f \( -name .cvsignore -o -name \*~ -o -name \*.orig \) -print -delete

find -type f -name Makefile\* -print0 |
xargs -r0 %__grep -FZl 'install -' -- |
xargs -r0 %__subst 's/install -/\$(INSTALL) -/g' --
find -type f -name Makefile\* -print0 |
xargs -r0 %__grep -Zl '$(INSTALL).* -o.* -g' -- |
xargs -r0 %__subst 's|\(\$(INSTALL).*\) -o [A-Za-z$(){}]* -g [A-Za-z$(){}]*|\1|g' --
%__subst 's/ -u root//' conf/install
%__subst 's/\(installcmd -f\)/\1 -p/' conf/install
for f in `find -type f -print0 |xargs -r0 %__grep -l '[^a-z]cp ' --`; do
if file -b "$f" |fgrep -qs 'shell script'; then
%__subst 's/\([^a-z]cp \)/\1-p /g' "$f"
fi
done

%build
%__rm -rf include
%__mkdir_p include/security
/bin/ls -d1 */include/security |
while read d; do
find "$d/" -type f -name \*.h 2>/dev/null
done |
sed -e 's,.*,../../&,g' |
xargs ln -s --target-directory=include/security --

%__rm -rf doc/txts/modules
%__mkdir_p doc/txts/modules
for f in modules/pam_*/README; do
d="${f%/*}"
%__install -p -m644 "$f" "doc/txts/modules/${d##*/}"
done

%add_optflags %optflags_shared -D_GNU_SOURCE -I%_builddir/%srcname/include

%__install -p -m755 %_datadir/automake/install-sh .
autoconf
%configure \
--prefix=/ \
--exec-prefix=/ \
--libdir=/%_lib \
--sbindir=/sbin \
--enable-static-libpam \
--disable-read-both-confs \
--enable-fakeroot=$RPM_BUILD_ROOT \
--enable-suplementedir=%helperdir
# SMP-incompatible build.
make

%install
%__rm -f doc/{txts/*.txt,html/*.html}
%make_install install LDCONFIG=:
make -C examples clean
%__chmod go-rw $RPM_BUILD_ROOT%helperdir/*

%__install -p -m644 modules/pam_chroot/chroot.conf $RPM_BUILD_ROOT%_sysconfdir/security/

# Make sure the modules built...

for d in modules/pam_*; do
if [ -d "$d" ]; then
m="${d##*/}"
if ! ls -1 "$RPM_BUILD_ROOT/%_lib/security/$m"*.so 2>/dev/null; then
echo "ERROR: $m module did not build."
exit 1
fi
fi
done

# Relocate development libraries from /%_lib/ to %_libdir/.

%__mkdir_p $RPM_BUILD_ROOT%_libdir
%__mv $RPM_BUILD_ROOT/%_lib/*.*a $RPM_BUILD_ROOT%_libdir/

/sbin/ldconfig -nv $RPM_BUILD_ROOT/%_lib
for f in $RPM_BUILD_ROOT/%_lib/*.so; do
t=`objdump -p "$f" |awk '/SONAME/ {print $2}'`
[ -n "$t" ]
%__ln_s ../../%_lib/"$t" "$RPM_BUILD_ROOT%_libdir/${f##*/}"
%__rm -f "$f"
done

%__chmod a-x $RPM_BUILD_ROOT/%_lib{,/security}/*.so*
%add_findprov_lib_path /%_lib/security

# Linux-PAM-specific rpm macros.

%__install -pD -m644 %SOURCE5 $RPM_BUILD_ROOT%_sysconfdir/rpm/macros.d/pam

# Documentation

cp -p doc/{specs,figs}/*.txt doc/txts/
find doc/txts -type f -name '*.txt' -print0 |
xargs -r0 bzip2 -9f --
%__rm -f doc/ps/*.log
find doc/ps -type f -name '*.ps' -print0 |
xargs -r0 bzip2 -9f --

%define docdir %_docdir/%srcname
%__rm -rf $RPM_BUILD_ROOT%docdir
%__mkdir_p $RPM_BUILD_ROOT%docdir
%__install -p -m644 %SOURCE4 README CHANGELOG doc/CREDITS Copyright pgp.keys.asc \
$RPM_BUILD_ROOT%docdir/
bzip2 -9 $RPM_BUILD_ROOT%docdir/CHANGELOG
cp -a doc/{html,ps,txts} examples $RPM_BUILD_ROOT%docdir/

%__mkdir_p $RPM_BUILD_ROOT%_sysconfdir/buildreqs/packages/substitute.d
for n in libpam{,-devel{,-static}}; do
echo $n >"$RPM_BUILD_ROOT%_sysconfdir/buildreqs/packages/substitute.d/%libpam${n#libpam}"
done

%post -n %libpam -p %post_ldconfig
%postun -n %libpam -p %postun_ldconfig

%post -n %{make_pam_name console}
%helperdir/pam_console_apply

%triggerpostun -n %{make_pam_name console} -- pam, pam_console
f=%_secdir/console.perms
if [ ! -f "$f" ]; then
if [ -f "$f.rpmsave" ]; then
%__cp -pf "$f.rpmsave" "$f"
elif [ -f "$f.rpmnew" ]; then
%__cp -pf "$f.rpmnew" "$f"
fi
fi

f=%helperdir/pam_console_apply
if [ -x "$f" ]; then
"$f"
fi

%files -n %libpam
%config %_sysconfdir/buildreqs/packages/substitute.d/%libpam
/%_lib/*.so.*
/%_lib/security/pam_deny.so
/%_lib/security/pam_permit.so
%dir %docdir
%docdir/[A-Z]*

%files -n %libpam-devel
%config %_sysconfdir/buildreqs/packages/substitute.d/%libpam-devel
%config %_sysconfdir/rpm/macros.d/pam
%_libdir/*.so
%_includedir/*
%_man3dir/*

%files -n %libpam-devel-static
%config %_sysconfdir/buildreqs/packages/substitute.d/%libpam-devel-static
%_libdir/*.a

%files
%helperdir/pam_tally
%config(noreplace) %_secdir/access.conf
%config(noreplace) %_secdir/chroot.conf
%config(noreplace) %_secdir/time.conf
%config(noreplace) %_secdir/group.conf
%config(noreplace) %_secdir/limits.conf
%config(noreplace) %_secdir/pam_env.conf
/%_lib/security/*
%exclude /%_lib/security/pam_deny.so
%exclude /%_lib/security/pam_permit.so
%exclude /%_lib/security/pam_console.so
%exclude /%_lib/security/pam_timestamp.so
%exclude /%_lib/security/pam_stack.so
%_mandir/man[58]/*.*
%exclude %_mandir/man[58]/*console*
%exclude %_mandir/man[58]/pam_timestamp.*
%exclude %_mandir/man[58]/pam_stack.*

%files -n %{make_pam_name console}
%attr(600,root,root) %config(noreplace) %_secdir/console.perms
%attr(711,root,root) %dir %_secdir/console.apps
%attr(700,root,root) %helperdir/pam_console_apply
/%_lib/security/pam_console.so
%_mandir/man[58]/*console*
%dir %attr(711,root,root) /var/run/console

%files -n %{make_pam_name timestamp}
%attr(700,root,root) %helperdir/pam_timestamp_check
/%_lib/security/pam_timestamp.so
%_mandir/man[58]/pam_timestamp.*

%files -n %{make_pam_name stack}
/%_lib/security/pam_stack.so
%_mandir/man[58]/pam_stack.*

%files doc
%dir %docdir
%docdir/[a-z]*

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin