# Contributor: William Pitcock <nenolod@dereferenced.org>
# Maintainer: William Pitcock <nenolod@dereferenced.org>
setvar pkgname = 'libc6'
setvar pkgver = '2.14'
setvar pkgrel = '0'
setvar svnrev = '14663'
setvar pkgdesc = ""Embedded GNU C Library""
setvar url = ""http://eglibc.org/""
setvar arch = """"
setvar license = ""LGPL""
setvar depends = ''
setvar depends_dev = ""linux-headers>=2.6.18""
setvar provides = ""libiconv""
setvar makedepends = "$depends_dev"
setvar install = """"
setvar subpackages = ""$pkgname-dev
	     $pkgname-doc

	     gconv-modules:gconv
	     locales
	     nscd""
setvar options = ""!strip""
setvar source = ""http://dev.alpinelinux.org/~nenolod/eglibc-${pkgver}.r${svnrev}.tar.gz

	glibc-2.12-hardened-pie.patch
	glibc-2.10-hardened-configure-picdefault.patch
	glibc-2.10-hardened-inittls-nosysenter.patch

	chk_fail.c
	stack_chk_fail.c

	nscd.initd""

setvar _srcdir = ""$srcdir"/eglibc-$pkgver"
setvar _builddir = ""$srcdir"/eglibc-build"
proc prepare {
	local i
	cd $_srcdir
	for i in $source {
		case (i) {
		*.patch { msg $i; patch -p1 -i "$srcdir"/$i || return 1}
		}
	}
	echo "slibdir=/lib" >> configparms

	cp "$srcdir"/chk_fail.c "$_srcdir"/debug/chk_fail.c
	cp "$srcdir"/stack_chk_fail.c "$_srcdir"/debug/stack_chk_fail.c

	mkdir $_builddir
}

proc build {
	cd $_builddir

	export CFLAGS="$CFLAGS -fno-stack-protector"

	"$_srcdir"/configure --prefix=/usr \
		--sysconfdir=/etc \
		--libdir=/usr/lib \
		--libexecdir=/usr/lib \
		--with-headers=/usr/include \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--localstatedir=/var \
		--enable-kernel=2.6.18 \
		--enable-add-ons=nptl,libidn \
		--disable-profile \
		--enable-bind-now \
		--with-tls \
		--with-__thread \
		--without-zoneinfo \
		--without-cvs \
		--without-gd \
		--with-pkgversion="Alpine EGLIBC ${pkgver}-r${pkgrel} [svn r${svnrev}]" \
		|| return 1
	make || return 1
}

proc package {
	cd $_builddir
	make install_root="$pkgdir" install || return 1
}

proc gconv {
	setvar pkgdesc = ""GNU iconv character modules""

	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/iconv "$subpkgdir"/usr/lib
}

proc locales {
	setvar pkgdesc = ""Common files for locale support""

	mkdir -p "$subpkgdir"/usr/share
	mv "$pkgdir"/usr/share/* "$subpkgdir"/usr/share
}

proc nscd {
	setvar pkgdesc = ""Cache daemon for NIS/DNS""

	mkdir -p "$subpkgdir"/var/db/nscd
	mkdir -p "$subpkgdir"/var/run/nscd

	install -Dm 755 "$srcdir"/nscd.initd "$subpkgdir"/etc/init.d/nscd
	install -Dm 644 "$srcdir"/libc/nscd/nscd.conf "$subpkgdir"/etc/nscd.conf

	mkdir -p "$subpkgdir"/usr/sbin
	mv "$pkgdir"/usr/sbin/nscd "$subpkgdir"/usr/sbin
}

setvar md5sums = ""c6de1455fcef3487ee42c14349a72cf4  eglibc-2.14.r14663.tar.gz
03ffc414f8eb9f1fcb93325008f5ecd7  glibc-2.12-hardened-pie.patch
8bca42eb8f6d117107ab8e356566b805  glibc-2.10-hardened-configure-picdefault.patch
d3b50eec50099791bf2f0c10b605ff7c  glibc-2.10-hardened-inittls-nosysenter.patch
1b31d2c7a39298da10e3840076514823  chk_fail.c
6a6b9992c76a9bece219eb00a16d7549  stack_chk_fail.c
ff0b0069eeb662145d287d7f98c79447  nscd.initd""