# Template file for 'openssl'
pkgname=openssl
_openssl_version=1.0.1
version=${_openssl_version}g
revision=2
bootstrap=yes
short_desc="Secure Socket Layer and cryptographic library - runtime utilities"
maintainer="Juan RP <xtraeme@gmail.com>"
license="BSD"
homepage="http://www.openssl.org/"
distfiles="https://www.openssl.org/source/$pkgname-$version.tar.gz"
checksum=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028

if [ "$CHROOT_READY" ]; then
	hostmakedepends="perl"
fi

depends="perl"
makedepends="zlib-devel"

conf_files="/etc/ssl/openssl.cnf"
make_dirs="
	/etc/ssl/certs 0755 root root
	/etc/ssl/private 0750 root root"

do_configure() {
	local _opts

	case "$XBPS_TARGET_MACHINE" in
		arm*) _target="linux-armv4";;
		i686*) _target="linux-elf";;
		x86_64*) _target="linux-x86_64"; _opts="enable-ec_nistp_64_gcc_128";;
		mips*) msg_error "$pkgver: unknow cross arch\n";;
	esac

	sed -i '/^"linux-armv4/s/-DTERMIO/-DTERMIOS/' Configure
	sed -i '/^"linux-x86_64/s/-DTERMIO/-DTERMIOS/' Configure
	sed -i '/^"linux-elf/s/-DTERMIO/-DTERMIOS/' Configure
	sed -i 's/defined(linux)/0/' crypto/ui/ui_openssl.c

	if [ -z "$CHROOT_READY" ]; then
		CFLAGS+=" -I${XBPS_MASTERDIR}/usr/include"
		LDFLAGS+=" -L${XBPS_MASTERDIR}/usr/lib"
	fi

	./Configure --prefix=/usr --openssldir=/etc/ssl --libdir=lib \
		shared zlib enable-md2 threads ${_opts} \
		${_target} -Wa,--noexecstack "${CFLAGS}"
}

do_build() {
	make
}

do_install() {
	local _sover="1.0.0"

	make INSTALL_PREFIX=${DESTDIR} MANDIR=/usr/share/man install

	chmod 755 ${DESTDIR}/usr/lib/engines/*.so
	for _solib_ in libssl.so libcrypto.so; do
		chmod 755 ${DESTDIR}/usr/lib/${_solib_}.${_sover}
		cd ${DESTDIR}/usr/lib
		ln -sf ${_solib_}.${_sover} ${_solib_}.1
		ln -sf ${_solib_}.${_sover} ${_solib_}
	done
	# Rename conflicting manpages.
	mv ${DESTDIR}/usr/share/man/man1/passwd.1 \
		${DESTDIR}/usr/share/man/man1/openssl-passwd.1
}

openssl-devel_package() {
	depends="zlib-devel libssl>=${version}_${revision}"
	short_desc="Secure Socket Layer and cryptographic library - development files"
	pkg_install() {
		vmove usr/include
		vmove "usr/lib/*.a"
		vmove "usr/lib/*.so"
		vmove usr/lib/pkgconfig
		vmove usr/share/man/man3
	}
}

libssl_package() {
	short_desc="Secure Sockets Layer and Cryptographic library"
	replaces="openssl<1.0.1f_2"
	pkg_install() {
		vmove "usr/lib/*.so.*"
		vmove usr/lib/engines
	}
}
