~alpine/aports

1

[alpine-aports] [PATCH] new aport

Aaron Vodney <aavoddev@gmail.com>
Details
Message ID
<20170802035335.21259-1-aavoddev@gmail.com>
Sender timestamp
1501646015
DKIM signature
missing
Download raw message
Patch: +147 -0
I had to duplicate and modify the default_doc function due to where
9base stores its manpages. I also moved it from /usr/local/plan9 to
/usr/lib/plan9 to comply with fhs.
---
 testing/9base/APKBUILD     | 119 +++++++++++++++++++++++++++++++++++++++++++++
 testing/9base/config.patch |  11 +++++
 testing/9base/musl.patch   |  17 +++++++
 3 files changed, 147 insertions(+)
 create mode 100644 testing/9base/APKBUILD
 create mode 100644 testing/9base/config.patch
 create mode 100644 testing/9base/musl.patch

diff --git a/testing/9base/APKBUILD b/testing/9base/APKBUILD
new file mode 100644
index 0000000000..1221240331
--- /dev/null
+++ b/testing/9base/APKBUILD
@@ -0,0 +1,119 @@
# Contributor: Aaron Vodney <aavoddev@gmail.com>
# Maintainer: Aaron Vodney <aavoddev@gmail.com>
pkgname=9base
pkgver=6
pkgrel=0
pkgdesc="Suckless' Plan9 utilities"
url="tools.suckless.org/9base"
arch="all"
license="custom:LPL MIT"
depends="musl"
makedepends="musl-dev linux-headers"
install=""
subpackages="$pkgname-doc"
options=""
source="http://dl.suckless.org/tools/${pkgname}-${pkgver}.tar.gz
	musl.patch
	config.patch"
builddir="$srcdir/${pkgname}-${pkgver}"

doc() {
	depends="$depends_doc"
	pkgdesc="$pkgdesc (documentation)"
	install_if="docs $pkgname=$pkgver-r$pkgrel"
	docroot=/usr/lib/plan9

	local i
	for i in doc man info html sgml licenses gtk-doc ri help; do
		if [ -d "${pkgdir}${docroot}/share/$i" ]; then
			mkdir -p "${subpkgdir}${docroot}/share"
			mv "${pkgdir}${docroot}/share/$i" "${subpkgdir}${docroot}/share/"
		fi
	done

	# compress man pages
	local mandir="${subpkgdir}${docroot}"/share/man
	[ -d "$mandir" ] && find "$mandir" -type l \
		-a \( -name \*.[0-8n] -o -name \*.[0-8][a-z]* \) \
		-a \! \( -name '*.gz' -o -name '*.bz2' -o -name '*.xz' \) \
		| while read symlink; do

		ln -s $(readlink $symlink).gz "$symlink".gz
		rm -f "$symlink"
	done
	[ -d "$mandir" ] && find "$mandir" -type f \
		-a \( -name \*.[0-8n] -o -name \*.[0-8][a-z]* \) \
		-a \! \( -name '*.gz' -o -name '*.bz2' -o -name '*.xz' \) \
		-exec stat -c "%i %n" \{\} \+ | while read inode name; do

		# Skip hardlinks removed in last iteration.
		[ -f "$name" ] || continue

		local islink=0
		find "$mandir" -type f -links +1 \
			-a \( -name \*.[0-8n] -o -name \*.[0-8][a-z]* \) \
			-a \! \( -name '*.gz' -o -name '*.bz2' -o -name '*.xz' \) \
			-exec stat -c "%i %n" \{\} \+ | while read linode lname; do
			if [ "$linode" = "$inode" -a "$lname" != "$name" ]; then
				islink=1
				rm -f "$lname"
				ln -s "${name##*/}".gz "$lname".gz
			fi
		done

		[ $islink -eq 0 ] && gzip -9 "$name"
	done

	rm -f "$subpkgdir/usr/share/info/dir"

	# remove if empty, ignore error (not empty)
	rmdir "$pkgdir/usr/share" "$pkgdir/usr" 2>/dev/null || :
}

dev(){
	local i= j=
	depends="$depends_dev"
	pkgdesc="$pkgdesc (development files)"

	cd "$pkgdir" || return 0
	local libdirs=usr/
	[ -d lib/ ] && libdirs="lib/ $libdirs"
	for i in usr/include usr/lib/pkgconfig usr/share/aclocal\
			usr/share/gettext usr/bin/*-config	\
			usr/share/vala/vapi usr/share/gir-[0-9]*\
			usr/share/qt*/mkspecs			\
			usr/lib/qt*/mkspecs			\
			usr/lib/cmake				\
			$(find . -name include -type d) 	\
			$(find $libdirs -name '*.[acho]' \
				-o -name '*.prl' 2>/dev/null); do
		if [ -e "$pkgdir/$i" ] || [ -L "$pkgdir/$i" ]; then
			d="$subpkgdir/${i%/*}"	# dirname $i
			mkdir -p "$d"
			mv "$pkgdir/$i" "$d"
			rmdir "$pkgdir/${i%/*}" 2>/dev/null || :
		fi
	done
	# move *.so links needed when linking the apps to -dev packages
	for i in lib/*.so usr/lib/*.so; do
		if [ -L "$i" ]; then
			mkdir -p "$subpkgdir"/"${i%/*}"
			mv "$i" "$subpkgdir/$i" || return 1
		fi
	done
	return 0
}

build() {
	cd "$builddir"
	make || return 1
}

package() {
	cd "$builddir"
	make DESTDIR="$pkgdir" install || return 1
}

sha512sums="38108a94118b56c6f3982e692beb1068c52f9aecd74447d6b552b77fae5e365eab72b4781bdf07d9696ac89d54371c1cae8cc0363de510b53988302acef50dba  9base-6.tar.gz
7365533289e4e64b0379099d2cea38926739afe7ad958b217d1130ddee367d086c9f3503d12018fff75e05bdafe62ab9e2117d6449cb1718bffac801993ca4e4  musl.patch
f888dc5d4dc5af6e953d9ca77310350389692fb1d6d50db09cdca1969583b80ac933ca7852f9c3e97bbc87eeb72c46004b95c4205bc5108915d337569e7adad4  config.patch"
diff --git a/testing/9base/config.patch b/testing/9base/config.patch
new file mode 100644
index 0000000000..30abcc1e4c
--- /dev/null
+++ b/testing/9base/config.patch
@@ -0,0 +1,11 @@
--- a/config.mk
+++ b/config.mk
@@ -1,7 +1,7 @@
 # Customize to fit your system
 
 # paths
-PREFIX      = /usr/local/plan9
+PREFIX      = /usr/lib/plan9
 MANPREFIX   = ${PREFIX}/share/man
 
 VERSION     = 6
diff --git a/testing/9base/musl.patch b/testing/9base/musl.patch
new file mode 100644
index 0000000000..9c2f24d740
--- /dev/null
+++ b/testing/9base/musl.patch
@@ -0,0 +1,17 @@
--- a/lib9/dirread.c
+++ b/lib9/dirread.c
@@ -10,13 +10,7 @@
 static int
 mygetdents(int fd, struct dirent *buf, int n)
 {
-	off_t off;
-	int nn;
-
-	/* This doesn't match the man page, but it works in Debian with a 2.2 kernel */
-	off = p9seek(fd, 0, 1);
-	nn = getdirentries(fd, (void*)buf, n, &off);
-	return nn;
+	return getdents(fd, (void*)buf, n);
 }
 #elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
 static int
-- 
2.13.3



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] Re: [PATCH] new aport

Aaron Vodney <aavoddev@gmail.com>
Details
Message ID
<CAC_H9K+d8axXN7VO6qWbJYUBp392GkCiE6Tdu7_Nrffo-uw1vw@mail.gmail.com>
In-Reply-To
<20170802035335.21259-1-aavoddev@gmail.com> (view parent)
Sender timestamp
1501900590
DKIM signature
missing
Download raw message
I have to redact this for now. There are some issues with a couple of
the utilitys' use of sbrk.

On 8/1/17, Aaron Vodney <aavoddev@gmail.com> wrote:
> I had to duplicate and modify the default_doc function due to where
> 9base stores its manpages. I also moved it from /usr/local/plan9 to
> /usr/lib/plan9 to comply with fhs.
> ---
>  testing/9base/APKBUILD     | 119
> +++++++++++++++++++++++++++++++++++++++++++++
>  testing/9base/config.patch |  11 +++++
>  testing/9base/musl.patch   |  17 +++++++
>  3 files changed, 147 insertions(+)
>  create mode 100644 testing/9base/APKBUILD
>  create mode 100644 testing/9base/config.patch
>  create mode 100644 testing/9base/musl.patch
>
> diff --git a/testing/9base/APKBUILD b/testing/9base/APKBUILD
> new file mode 100644
> index 0000000000..1221240331
> --- /dev/null
> +++ b/testing/9base/APKBUILD
> @@ -0,0 +1,119 @@
> +# Contributor: Aaron Vodney <aavoddev@gmail.com>
> +# Maintainer: Aaron Vodney <aavoddev@gmail.com>
> +pkgname=9base
> +pkgver=6
> +pkgrel=0
> +pkgdesc="Suckless' Plan9 utilities"
> +url="tools.suckless.org/9base"
> +arch="all"
> +license="custom:LPL MIT"
> +depends="musl"
> +makedepends="musl-dev linux-headers"
> +install=""
> +subpackages="$pkgname-doc"
> +options=""
> +source="http://dl.suckless.org/tools/${pkgname}-${pkgver}.tar.gz
> +	musl.patch
> +	config.patch"
> +builddir="$srcdir/${pkgname}-${pkgver}"
> +
> +doc() {
> +	depends="$depends_doc"
> +	pkgdesc="$pkgdesc (documentation)"
> +	install_if="docs $pkgname=$pkgver-r$pkgrel"
> +	docroot=/usr/lib/plan9
> +
> +	local i
> +	for i in doc man info html sgml licenses gtk-doc ri help; do
> +		if [ -d "${pkgdir}${docroot}/share/$i" ]; then
> +			mkdir -p "${subpkgdir}${docroot}/share"
> +			mv "${pkgdir}${docroot}/share/$i" "${subpkgdir}${docroot}/share/"
> +		fi
> +	done
> +
> +	# compress man pages
> +	local mandir="${subpkgdir}${docroot}"/share/man
> +	[ -d "$mandir" ] && find "$mandir" -type l \
> +		-a \( -name \*.[0-8n] -o -name \*.[0-8][a-z]* \) \
> +		-a \! \( -name '*.gz' -o -name '*.bz2' -o -name '*.xz' \) \
> +		| while read symlink; do
> +
> +		ln -s $(readlink $symlink).gz "$symlink".gz
> +		rm -f "$symlink"
> +	done
> +	[ -d "$mandir" ] && find "$mandir" -type f \
> +		-a \( -name \*.[0-8n] -o -name \*.[0-8][a-z]* \) \
> +		-a \! \( -name '*.gz' -o -name '*.bz2' -o -name '*.xz' \) \
> +		-exec stat -c "%i %n" \{\} \+ | while read inode name; do
> +
> +		# Skip hardlinks removed in last iteration.
> +		[ -f "$name" ] || continue
> +
> +		local islink=0
> +		find "$mandir" -type f -links +1 \
> +			-a \( -name \*.[0-8n] -o -name \*.[0-8][a-z]* \) \
> +			-a \! \( -name '*.gz' -o -name '*.bz2' -o -name '*.xz' \) \
> +			-exec stat -c "%i %n" \{\} \+ | while read linode lname; do
> +			if [ "$linode" = "$inode" -a "$lname" != "$name" ]; then
> +				islink=1
> +				rm -f "$lname"
> +				ln -s "${name##*/}".gz "$lname".gz
> +			fi
> +		done
> +
> +		[ $islink -eq 0 ] && gzip -9 "$name"
> +	done
> +
> +	rm -f "$subpkgdir/usr/share/info/dir"
> +
> +	# remove if empty, ignore error (not empty)
> +	rmdir "$pkgdir/usr/share" "$pkgdir/usr" 2>/dev/null || :
> +}
> +
> +dev(){
> +	local i= j=
> +	depends="$depends_dev"
> +	pkgdesc="$pkgdesc (development files)"
> +
> +	cd "$pkgdir" || return 0
> +	local libdirs=usr/
> +	[ -d lib/ ] && libdirs="lib/ $libdirs"
> +	for i in usr/include usr/lib/pkgconfig usr/share/aclocal\
> +			usr/share/gettext usr/bin/*-config	\
> +			usr/share/vala/vapi usr/share/gir-[0-9]*\
> +			usr/share/qt*/mkspecs			\
> +			usr/lib/qt*/mkspecs			\
> +			usr/lib/cmake				\
> +			$(find . -name include -type d) 	\
> +			$(find $libdirs -name '*.[acho]' \
> +				-o -name '*.prl' 2>/dev/null); do
> +		if [ -e "$pkgdir/$i" ] || [ -L "$pkgdir/$i" ]; then
> +			d="$subpkgdir/${i%/*}"	# dirname $i
> +			mkdir -p "$d"
> +			mv "$pkgdir/$i" "$d"
> +			rmdir "$pkgdir/${i%/*}" 2>/dev/null || :
> +		fi
> +	done
> +	# move *.so links needed when linking the apps to -dev packages
> +	for i in lib/*.so usr/lib/*.so; do
> +		if [ -L "$i" ]; then
> +			mkdir -p "$subpkgdir"/"${i%/*}"
> +			mv "$i" "$subpkgdir/$i" || return 1
> +		fi
> +	done
> +	return 0
> +}
> +
> +build() {
> +	cd "$builddir"
> +	make || return 1
> +}
> +
> +package() {
> +	cd "$builddir"
> +	make DESTDIR="$pkgdir" install || return 1
> +}
> +
> +sha512sums="38108a94118b56c6f3982e692beb1068c52f9aecd74447d6b552b77fae5e365eab72b4781bdf07d9696ac89d54371c1cae8cc0363de510b53988302acef50dba
>  9base-6.tar.gz
> +7365533289e4e64b0379099d2cea38926739afe7ad958b217d1130ddee367d086c9f3503d12018fff75e05bdafe62ab9e2117d6449cb1718bffac801993ca4e4
>  musl.patch
> +f888dc5d4dc5af6e953d9ca77310350389692fb1d6d50db09cdca1969583b80ac933ca7852f9c3e97bbc87eeb72c46004b95c4205bc5108915d337569e7adad4
>  config.patch"
> diff --git a/testing/9base/config.patch b/testing/9base/config.patch
> new file mode 100644
> index 0000000000..30abcc1e4c
> --- /dev/null
> +++ b/testing/9base/config.patch
> @@ -0,0 +1,11 @@
> +--- a/config.mk
> ++++ b/config.mk
> +@@ -1,7 +1,7 @@
> + # Customize to fit your system
> +
> + # paths
> +-PREFIX      = /usr/local/plan9
> ++PREFIX      = /usr/lib/plan9
> + MANPREFIX   = ${PREFIX}/share/man
> +
> + VERSION     = 6
> diff --git a/testing/9base/musl.patch b/testing/9base/musl.patch
> new file mode 100644
> index 0000000000..9c2f24d740
> --- /dev/null
> +++ b/testing/9base/musl.patch
> @@ -0,0 +1,17 @@
> +--- a/lib9/dirread.c
> ++++ b/lib9/dirread.c
> +@@ -10,13 +10,7 @@
> + static int
> + mygetdents(int fd, struct dirent *buf, int n)
> + {
> +-	off_t off;
> +-	int nn;
> +-
> +-	/* This doesn't match the man page, but it works in Debian with a 2.2
> kernel */
> +-	off = p9seek(fd, 0, 1);
> +-	nn = getdirentries(fd, (void*)buf, n, &off);
> +-	return nn;
> ++	return getdents(fd, (void*)buf, n);
> + }
> + #elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
> + static int
> --
> 2.13.3
>
>


---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Reply to thread Export thread (mbox)