]> git.pld-linux.org Git - packages/openssh.git/blobdiff - openssh.spec
- fix ssh-ldap-helper path
[packages/openssh.git] / openssh.spec
index bb24ebd05264e40c8290b473bbf7c4dc19106c11..e9c331e30b40dd191e7fd39f8191e1d2cd688f59 100644 (file)
@@ -1,7 +1,6 @@
-# TODO
-# - configure: WARNING: unrecognized options: --with-dns, --disable-suid-ssh
 #
 # Conditional build:
+%bcond_with    audit           # sshd audit support
 %bcond_with    gnome           # with gnome-askpass (GNOME 1.x) utility
 %bcond_without gtk             # without GTK+ (2.x)
 %bcond_without ldap            # with ldap support
@@ -30,13 +29,13 @@ Summary(pt_BR.UTF-8):       Implementação livre do SSH
 Summary(ru.UTF-8):     OpenSSH - свободная реализация протокола Secure Shell (SSH)
 Summary(uk.UTF-8):     OpenSSH - вільна реалізація протоколу Secure Shell (SSH)
 Name:          openssh
-Version:       5.5p1
-Release:       3
+Version:       5.9p1
+Release:       2
 Epoch:         2
 License:       BSD
 Group:         Applications/Networking
 Source0:       ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/%{name}-%{version}.tar.gz
-# Source0-md5: 88633408f4cb1eb11ec7e2ec58b519eb
+# Source0-md5: b50a499fa02616a47984b1920848b565
 Source1:       http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
 # Source1-md5: 66943d481cc422512b537bcc2c7400d1
 Source2:       %{name}d.init
@@ -50,10 +49,13 @@ Patch100:   %{name}-heimdal.patch
 Patch0:                %{name}-no_libnsl.patch
 Patch2:                %{name}-pam_misc.patch
 Patch3:                %{name}-sigpipe.patch
-# http://code.google.com/p/openssh-lpk/
-Patch4:                %{name}-lpk.patch
-Patch5:                %{name}-config.patch
-Patch7:                %{name}-selinux.patch
+# http://pkgs.fedoraproject.org/gitweb/?p=openssh.git;a=tree
+Patch4:                %{name}-5.9p1-ldap.patch
+Patch5:                %{name}-5.9p1-ldap-fixes.patch
+Patch8:                ldap.conf.patch
+Patch6:                %{name}-config.patch
+# https://bugzilla.mindrot.org/show_bug.cgi?id=1663
+Patch7:                authorized-keys-command.patch
 # High Performance SSH/SCP - HPN-SSH - http://www.psc.edu/networking/projects/hpn-ssh/
 # http://www.psc.edu/networking/projects/hpn-ssh/openssh-5.2p1-hpn13v6.diff.gz
 Patch9:                %{name}-5.2p1-hpn13v6.diff
@@ -61,9 +63,11 @@ Patch10:     %{name}-include.patch
 Patch11:       %{name}-chroot.patch
 # http://people.debian.org/~cjwatson/%{name}-blacklist.diff
 Patch12:       %{name}-blacklist.diff
-URL:           http://www.openssh.com/
+Patch13:       %{name}-kuserok.patch
+URL:           http://www.openssh.com/portable.html
 BuildRequires: %{__perl}
-BuildRequires: autoconf
+%{?with_audit:BuildRequires:   audit-libs-devel}
+BuildRequires: autoconf >= 2.50
 BuildRequires: automake
 %{?with_gnome:BuildRequires:   gnome-libs-devel}
 %{?with_gtk:BuildRequires:     gtk+2-devel}
@@ -96,26 +100,6 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                _privsepdir     /usr/share/empty
 %define                schemadir       /usr/share/openldap/schema
 
-## to be moved to rpm-build-macros
-## TODO: handle RPM_SKIP_AUTO_RESTART
-
-# migrate from init script to upstart job
-%define        upstart_post() \
-       if [ -f /var/lock/subsys/"%1" ] ; then \
-               /sbin/service --no-upstart "%1" stop \
-               /sbin/service "%1" start \
-       else \
-               /sbin/service "%1" try-restart \
-       fi
-
-# restart the job after upgrade or migrate to init script on removal
-%define        upstart_postun() \
-       if [ -x /sbin/initctl ] && /sbin/initctl status "%1" 2>/dev/null | grep -q 'running' ; then \
-               /sbin/initctl stop "%1" 2>/dev/null \
-               [ -f "/etc/rc.d/init.d/%1" -o -f "/etc/init/%1.conf" ] && /sbin/service "%1" start \
-       fi
-
-
 %description
 Ssh (Secure Shell) a program for logging into a remote machine and for
 executing commands in a remote machine. It is intended to replace
@@ -426,6 +410,7 @@ Summary(pl.UTF-8):  Opis zadania Upstart dla serwera OpenSSH
 Group:         Daemons
 Requires:      %{name}-server = %{epoch}:%{version}-%{release}
 Requires:      upstart >= 0.6
+Conflicts:     syslog-ng < 3.2.4-1
 
 %description server-upstart
 Upstart job description for OpenSSH.
@@ -513,47 +498,66 @@ openldap-a.
 %patch0 -p1
 %patch2 -p1
 %patch3 -p1
-%{?with_ldap:%patch4 -p1}
+%patch4 -p1
 %patch5 -p1
+%patch8 -p1
+%patch6 -p1
 %patch7 -p1
 %{?with_hpn:%patch9 -p1}
 %patch10 -p1
 %patch11 -p1
 %patch12 -p1
+%patch13 -p1
+
+cp -p %{SOURCE3} sshd.pam
+install -p %{SOURCE2} sshd.init
 
 %if "%{pld_release}" == "ac"
 # fix for missing x11.pc
 %{__sed} -i -e '/pkg-config/s/ x11//' contrib/Makefile
+# not present in ac, no point searching it
+%{__sed} -i -e '/pam_keyinit.so/d' sshd.pam
+
+# openssl on ac does not have OPENSSL_HAS_ECC
+%{__sed} -i -e '/ecdsa/d' sshd.init
 %endif
 
+# hack since arc4random from openbsd-compat needs symbols from libssh and vice versa
+sed -i -e 's#-lssh -lopenbsd-compat#-lssh -lopenbsd-compat -lssh#g' Makefile*
+
+grep -rl /usr/libexec/openssh/ssh-ldap-helper . | xargs \
+%{__sed} -i -e 's,/usr/libexec/openssh/ssh-ldap-helper,%{_libexecdir}/ssh-ldap-helper,'
+
 %build
 cp /usr/share/automake/config.sub .
 %{__aclocal}
 %{__autoconf}
+%{__autoheader}
 CPPFLAGS="-DCHROOT"
 %configure \
        PERL=%{__perl} \
-       --with-dns \
-       --with-pam \
-       --with-mantype=man \
-       --with-md5-passwords \
-       --with-ipaddr-display \
-       %{?with_libedit:--with-libedit} \
+       --disable-strip \
+       --enable-utmpx \
+       --enable-wtmpx \
        --with-4in6 \
-       --disable-suid-ssh \
-       --with-tcp-wrappers \
-       %{?with_ldap:--with-libs="-lldap -llber"} \
-       %{?with_ldap:--with-cppflags="-DWITH_LDAP_PUBKEY"} \
+       %{?with_audit:--with-audit=linux} \
+       --with-ipaddr-display \
        %{?with_kerberos5:--with-kerberos5=/usr} \
-       --with-privsep-path=%{_privsepdir} \
+       --with-ldap%{!?with_ldap:=no} \
+       %{?with_libedit:--with-libedit} \
+       --with-mantype=man \
+       --with-md5-passwords \
+       --with-pam \
+       --with-authorized-keys-command \
        --with-pid-dir=%{_localstatedir}/run \
+       --with-privsep-path=%{_privsepdir} \
+       %{?with_selinux:--with-selinux} \
+       --with-tcp-wrappers \
 %if "%{pld_release}" == "ac"
-       --with-xauth=/usr/X11R6/bin/xauth \
+       --with-xauth=/usr/X11R6/bin/xauth
 %else
-       --with-xauth=/usr/bin/xauth \
+       --with-xauth=%{_bindir}/xauth
 %endif
-       --enable-utmpx \
-       --enable-wtmpx
 
 echo '#define LOGIN_PROGRAM               "/bin/login"' >>config.h
 
@@ -580,21 +584,20 @@ install -d $RPM_BUILD_ROOT/etc/{profile.d,X11/xinit/xinitrc.d}
 
 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
 
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/sshd
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/sshd
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/sshd
-install %{SOURCE5} $RPM_BUILD_ROOT/etc/profile.d
+install -p sshd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/sshd
+cp -p sshd.pam $RPM_BUILD_ROOT/etc/pam.d/sshd
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/sshd
+cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/profile.d
 ln -sf /etc/profile.d/ssh-agent.sh $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/ssh-agent.sh
-install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}
-install %{SOURCE7} $RPM_BUILD_ROOT%{schemadir}
-
-install %{SOURCE8} $RPM_BUILD_ROOT/etc/init/sshd.conf
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}
+cp -p %{SOURCE7} $RPM_BUILD_ROOT%{schemadir}
+cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/init/sshd.conf
 
 %if %{with gnome}
-install contrib/gnome-ssh-askpass1 $RPM_BUILD_ROOT%{_libexecdir}/ssh/ssh-askpass
+install -p contrib/gnome-ssh-askpass1 $RPM_BUILD_ROOT%{_libexecdir}/ssh/ssh-askpass
 %endif
 %if %{with gtk}
-install contrib/gnome-ssh-askpass2 $RPM_BUILD_ROOT%{_libexecdir}/ssh/ssh-askpass
+install -p contrib/gnome-ssh-askpass2 $RPM_BUILD_ROOT%{_libexecdir}/ssh/ssh-askpass
 %endif
 %if %{with gnome} || %{with gtk}
 cat << 'EOF' >$RPM_BUILD_ROOT/etc/env.d/GNOME_SSH_ASKPASS_GRAB_SERVER
@@ -606,10 +609,10 @@ EOF
 ln -s %{_libexecdir}/ssh/ssh-askpass $RPM_BUILD_ROOT%{_libexecdir}/ssh-askpass
 %endif
 
-install contrib/ssh-copy-id $RPM_BUILD_ROOT%{_bindir}
-install contrib/ssh-copy-id.1 $RPM_BUILD_ROOT%{_mandir}/man1
+install -p contrib/ssh-copy-id $RPM_BUILD_ROOT%{_bindir}
+cp -p contrib/ssh-copy-id.1 $RPM_BUILD_ROOT%{_mandir}/man1
 
-rm -f  $RPM_BUILD_ROOT%{_mandir}/man1/slogin.1
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/slogin.1
 echo ".so ssh.1" > $RPM_BUILD_ROOT%{_mandir}/man1/slogin.1
 
 touch $RPM_BUILD_ROOT/etc/security/blacklist.sshd
@@ -618,8 +621,8 @@ cat << 'EOF' > $RPM_BUILD_ROOT/etc/env.d/SSH_ASKPASS
 #SSH_ASKPASS="%{_libexecdir}/ssh-askpass"
 EOF
 
-rm -f $RPM_BUILD_ROOT%{_datadir}/Ssh.bin # ???
-rm -f $RPM_BUILD_ROOT%{_mandir}/README.openssh-non-english-man-pages
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/README.openssh-non-english-man-pages
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/ldap.conf
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -658,6 +661,21 @@ if [ "$1" = "0" ]; then
        %userremove sshd
 fi
 
+%triggerpostun server -- %{name}-server < 2:5.9p1-1
+# lpk.patch to ldap.patch
+if grep -qE '^(UseLPK|Lpk)' %{_sysconfdir}/sshd_config; then
+       echo >&2 "Migrating LPK patch to LDAP patch"
+       cp -f %{_sysconfdir}/sshd_config{,.rpmorig}
+       %{__sed} -i -e '
+               # disable old configs
+               # just UseLPK/LkpLdapConf supported for now
+               s/^UseLPK/## Obsolete &/
+               s/^Lpk/## Obsolete &/
+               # Enable new ones, assumes /etc/ldap.conf defaults, see HOWTO.ldap-keys
+               /UseLPK/iAuthorizedKeysCommand "%{_libexecdir}/ssh-ldap-wrapper"
+       ' %{_sysconfdir}/sshd_config
+fi
+
 %post server-upstart
 %upstart_post sshd
 
@@ -676,7 +694,7 @@ fi
 
 %files
 %defattr(644,root,root,755)
-%doc *.RNG TODO README OVERVIEW CREDITS Change*
+%doc TODO README OVERVIEW CREDITS Change*
 %attr(755,root,root) %{_bindir}/ssh-key*
 %attr(755,root,root) %{_bindir}/ssh-vulnkey*
 %{_mandir}/man1/ssh-key*.1*
@@ -723,15 +741,20 @@ fi
 
 %files server
 %defattr(644,root,root,755)
+%doc HOWTO.ldap-keys ldap.conf
 %attr(755,root,root) %{_sbindir}/sshd
 %attr(755,root,root) %{_libexecdir}/sftp-server
 %attr(755,root,root) %{_libexecdir}/ssh-keysign
+%attr(755,root,root) %{_libexecdir}/ssh-ldap-helper
+%attr(755,root,root) %{_libexecdir}/ssh-ldap-wrapper
 %attr(755,root,root) %{_libexecdir}/ssh-pkcs11-helper
 %{_mandir}/man8/sshd.8*
 %{_mandir}/man8/sftp-server.8*
 %{_mandir}/man8/ssh-keysign.8*
+%{_mandir}/man8/ssh-ldap-helper.8*
 %{_mandir}/man8/ssh-pkcs11-helper.8*
 %{_mandir}/man5/sshd_config.5*
+%{_mandir}/man5/ssh-ldap.conf.5*
 %{_mandir}/man5/moduli.5*
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sshd_config
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/sshd
@@ -755,6 +778,8 @@ fi
 %{schemadir}/openssh-lpk.schema
 %endif
 
+%if "%{pld_release}" != "ti"
 %files server-upstart
 %defattr(644,root,root,755)
 %config(noreplace) %verify(not md5 mtime size) /etc/init/sshd.conf
+%endif
This page took 0.042427 seconds and 4 git commands to generate.