contrib/redhat/openssh.spec question
Pekka Savola
pekkas at netcore.fi
Thu Jan 11 18:43:13 EST 2001
On Wed, 10 Jan 2001, Rachit Siamwalla wrote:
> 1. Why is openssl a prereq? openssh statically links to openssl during
> build by default (rightfully so, you don't want your security library a
> shared object if possible)
No, openssl is linked dynamically:
$ ldd /usr/bin/ssh | grep crypto
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4004d000)
> 2. I don't understand the following line in the spec file during the
> install step (it makes it not build for me):
>
> %{makeinstall} \
> sysconfdir=$RPM_BUILD_ROOT%{_sysconfdir}/ssh \
> libexecdir=$RPM_BUILD_ROOT%{_libexecdir}/openssh \
> DESTDIR=/ # Hack to disable key generation
>
> The problem here is that make install will then put everything in the
> root directory (/usr/bin, etc.) instead of
> /usr/src/redhat/INSTALL/usr/bin, etc. (depends on RPM_ROOT) and thus in
> later stages of the RPM build, it won't find those files. Shouldn't DEST
> be $RPM_BUILD_ROOT and the others blank?
>
> One thing that might have affected stuff was i changed in the spec from
> %{makeinstall} to "make install". With rpm 3.0.3, i guess doesn't have
> that defined by default (i doubt this affects anything though).
Upgrade to RPM 3.0.5. Do you still see the problem?
%{makeinstall} is crucial. It's entirely different from make install;
several install directory options are passed, for example.
If you replace it with something like:
%makeinstall \
make \\\
prefix=%{?buildroot:%{buildroot}}%{_prefix} \\\
exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \\\
bindir=%{?buildroot:%{buildroot}}%{_bindir} \\\
sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \\\
sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \\\
datadir=%{?buildroot:%{buildroot}}%{_datadir} \\\
includedir=%{?buildroot:%{buildroot}}%{_includedir} \\\
libdir=%{?buildroot:%{buildroot}}%{_libdir} \\\
libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \\\
localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \\\
sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \\\
mandir=%{?buildroot:%{buildroot}}%{_mandir} \\\
infodir=%{?buildroot:%{buildroot}}%{_infodir} \\\
install
you get ~similar behaviour.
> 3. Why is openssl-devel a BuildPreReq?
Because openssl headers are required to build OpenSSH.
--
Pekka Savola "Tell me of difficulties surmounted,
Netcore Oy not those you stumble over and fall"
Systems. Networks. Security. -- Robert Jordan: A Crown of Swords
More information about the openssh-unix-dev
mailing list