File: gen-control

package info (click to toggle)
dh-php 5.19
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 108 kB
  • sloc: perl: 158; sh: 126; makefile: 123
file content (105 lines) | stat: -rwxr-xr-x 3,170 bytes parent folder | download
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/sh

# Sanity checks
if [ ! -f debian/control.in ]; then
	echo "Package not converted to dh-php >= 4" >&2
	exit 1
fi

if dpkg --compare-versions "$(sed -ne 's/.*dh-php (>= \([.0-9~]*\)),/\1/p' debian/control.in)" lt 4~; then
	echo "Package not converted to dh-php >= 4" >&2
	exit 1
fi

PECL_NAME=$(sed -n 's/^X-PHP-PECL-Name: //p' debian/control.in)
if [ -z "$PECL_NAME" ]; then
	PECL_NAME=$(sed -ne 's/PECL_NAME_OVERRIDE[[:space:]]*:*=[[:space:]]*//p' debian/rules)
	if [ -z "$PECL_NAME" ]; then
		PECL_NAME=$(dpkg-parsechangelog -SSource | sed -e 's/^php-//')
	fi
fi

__cmdline_php_versions() (
	for v in "$@"; do
		echo "$v"
	done
)

if [ "$1" = "-a" ]; then
	PHP__VERSIONS=$(/usr/share/dh-php/php-versions)
elif [ -z "$*" ]; then
	PHP__VERSIONS=$(sed -n 's/^X-PHP-Default-Version: //p' debian/control.in)
	if [ -z "$PHP__VERSIONS" ]; then
		PHP__VERSIONS=$(php-config --version | sed -e 's,\.[^.]*$,,')
	fi
else
	PHP__VERSIONS=$(__cmdline_php_versions "$@")
fi

filter_php_versions() (
	/usr/sbin/phpquery -V | while read v; do
		if echo "${1}" | grep -q "${v}"; then
			echo "${v}"
		fi
	done
)

PHP_VERSIONS=$(filter_php_versions "${PHP__VERSIONS}")

if [ -z "${PHP_VERSIONS}" ]; then
	echo "No supported PHP version found in '${PHP__VERSIONS}'" >&2
	exit 1
fi

prepare_all_dev() {
	awk "/^Source: /,/^$/" debian/control.in | tr ',' '\n' | sed -n -e 's/^[[:space:]]*php-\(.*\)-all-dev.*/\1/gp' |
		while read ALL_DEV_NAME; do
			printf "s#php-${ALL_DEV_NAME}-all-dev#"
			echo "$PHP_VERSIONS" | tr " " "\n" | while read -r ver; do
				printf "php${ver}-${ALL_DEV_NAME}, "
			done
			printf "${SED_REPLACEMENT}php-${ALL_DEV_NAME}-all-dev#;"
		done
}

SED_REPLACEMENT=$(prepare_all_dev)

{
	# Source: php-<ext>
	awk "/^Source: /,/^$/" debian/control.in | sed -e "${SED_REPLACEMENT}"
	echo

	GEN_DUMMY=$(sed -n 's/^X-PHP-Dummy-Package: //p' debian/control.in)
	if [ "$GEN_DUMMY" != "no" ]; then
		# Package: php-<ext>
		awk "/^Package: php-${PECL_NAME}/,/^$/" debian/control.in |
			sed -e "s/^Architecture: .*/Architecture: all/"
		echo " ."
		echo " This is empty package that depends on default PHP version."
		echo

		# Package: php-<ext>-all-dev
		awk "/^Package: php-${PECL_NAME}/,/^$/" debian/control.in |
			sed -e "s/^Architecture: .*/Architecture: all/" \
				-e "s/^Package: php-${PECL_NAME}\(.*\)/Package: php-${PECL_NAME}-all-dev/"
		echo " ."
		echo " This is empty package that depends on all PHP versions."
		echo
	fi

	# Package: php<ver>-<ext>
	echo "$PHP_VERSIONS" | tr " " "\n" | while read -r ver; do
		if [ -n "${BREAKS_NAME}" ]; then
			awk "/^Package: php-${PECL_NAME}/,/^$/" debian/control.in |
				sed -e "s/^Architecture: all/Architecture: any/" \
					-e "s/^Package: php-${PECL_NAME}\(.*\)/Package: php${ver}-${PECL_NAME}/" \
					-e "s/^Breaks: php-${BREAKS_NAME} /Breaks: php${ver}-${BREAKS_NAME} /" \
					-e "s/^Replaces: php-${BREAKS_NAME} /Replaces: php${ver}-${BREAKS_NAME} /"
		else
			awk "/^Package: php-${PECL_NAME}/,/^$/" debian/control.in |
				sed -e "s/^Architecture: all/Architecture: any/" \
					-e "s/^Package: php-${PECL_NAME}\(.*\)/Package: php${ver}-${PECL_NAME}/"
		fi
		echo
	done
} | cat -s >debian/control