Check-in [516e8e6dd7]
Overview
Comment:Improved Slackware package building script
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 516e8e6dd792c70fa89557a461089ee35593ca8f
User & Date: rkeene on 2015-02-24 19:20:06
Other Links: manifest | tags
Context
2015-03-16
15:36
Improved "appfs-mkfs" latest detection check-in: e3ddb480d5 user: rkeene tags: trunk
2015-02-24
19:20
Improved Slackware package building script check-in: 516e8e6dd7 user: rkeene tags: trunk
18:49
Added sbindir for mount.appfs check-in: aac1e74eab user: rkeene tags: trunk
Changes

Modified build/make-slackware-package from [9a6e6df8ac] to [f3333b1483].

1
2
3
4
5
6
7
8
9
10
11






12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

27
28

29
30
31
32
33

34
35

36
37
38


39
40

41
42
43


44
45
46
47
48
49
50
51
52
53
54
55
56
57

58

59
60



61
62
63
64
65
66
67
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

32
33

34
35
36
37
38

39
40

41
42


43
44
45

46
47


48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

63
64
65


66
67
68
69
70
71
72
73
74
75











+
+
+
+
+
+














-
+

-
+




-
+

-
+

-
-
+
+

-
+

-
-
+
+













-
+

+
-
-
+
+
+







#! /usr/bin/env bash

version="$1"
version_release='1'
platform="$(uname -m)"
url="http://rkeene.org/devel/appfs/appfs-${version}.tar.gz"
make_args=(
	prefix=/usr
	sbindir=/sbin
	mandir=/usr/man
)

if [ ! -f '/etc/slackware-version' ]; then
	echo 'This script is meant to be run on a Slackware system.' >&2

	exit 1
fi

if [ -z "${version}" ]; then
	echo 'Usage: make-slackware-package <version>' >&2

	exit 1
fi

workdir="${TMPDIR:-/tmp}/appfs-slackware-package-${version}-$$${RANDOM}${RANDOM}${RANDOM}"
package="appfs-${version}-${platform}-${version_release}.txz"
mkdir "${workdir}" || exit 1

(
	PATH="${PATH}:/sbin"

	set -ex
	set -x

	cd "${workdir}"
	cd "${workdir}" || exit 1

	installdir="$(pwd)/installed"

	wget -O appfs.tar.gz "${url}"
	tar -xf appfs.tar.gz
	tar -xf appfs.tar.gz || exit 1

	cd "appfs-${version}"
	cd "appfs-${version}" || exit 1

	make "${make_args[@]}"
	make "${make_args[@]}" DESTDIR="${installdir}" install
	make "${make_args[@]}" || exit 1
	make "${make_args[@]}" DESTDIR="${installdir}" install || exit 1

	cd "${installdir}"
	cd "${installdir}" || exit 1

	mkdir install
	cat << \_EOF_ > install/slack-desc
	mkdir install || exit 1
	cat << \_EOF_ > install/slack-desc || exit 1
appfs: appfs (App Filesystem)
appfs:
appfs: AppFS is a manifest-based FUSE filesystem that lazily fetches files over HTTP.
appfs: It is intended to be a universal packaging format.
appfs:
appfs:
appfs:
appfs:
appfs:
appfs:
appfs:
_EOF_

	makepkg -c n -l y "../${package}"
	makepkg -c n -l y "../${package}" || exit 1

	if [ "$(id -u)" != '0' ]; then
	xz -dc "../${package}" | tardy -User 0 -Group 0 | xz -9c > "../${package}.new"
	mv "../${package}.new" "../${package}"
		xz -dc "../${package}" | tardy -User 0 -Group 0 | xz -9c > "../${package}.new" || exit 1
		mv "../${package}.new" "../${package}" || exit 1
	fi
) || exit 1

mv "${workdir}/${package}" .

rm -rf "${workdir}"

exit 0