summaryrefslogtreecommitdiffstats
path: root/configure
blob: edaa76886524e7e98635ac13864bc93cb05e220f (plain)
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#!/bin/sh

# This awk script is derived from autotools
awk_verscmp='
  # Use only awk features that work with 7th edition Unix awk (1978).
  # My, what an old awk you have, Mr. Solaris!
  END {
    while (length(v1) && length(v2)) {
      # Set d1 to be the next thing to compare from v1, and likewise for d2.
      # Normally this is a single character, but if v1 and v2 contain digits,
      # compare them as integers and fractions as strverscmp does.
      if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
	# Split v1 and v2 into their leading digit string components d1 and d2,
	# and advance v1 and v2 past the leading digit strings.
	for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
	for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
	d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
	d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
	if (d1 ~ /^0/) {
	  if (d2 ~ /^0/) {
	    # Compare two fractions.
	    while (d1 ~ /^0/ && d2 ~ /^0/) {
	      d1 = substr(d1, 2); len1--
	      d2 = substr(d2, 2); len2--
	    }
	    if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
	      # The two components differ in length, and the common prefix
	      # contains only leading zeros.  Consider the longer to be less.
	      d1 = -len1
	      d2 = -len2
	    } else {
	      # Otherwise, compare as strings.
	      d1 = "x" d1
	      d2 = "x" d2
	    }
	  } else {
	    # A fraction is less than an integer.
	    exit 1
	  }
	} else {
	  if (d2 ~ /^0/) {
	    # An integer is greater than a fraction.
	    exit 2
	  } else {
	    # Compare two integers.
	    d1 += 0
	    d2 += 0
	  }
	}
      } else {
	# The normal case, without worrying about digits.
	d1 = substr(v1, 1, 1); v1 = substr(v1, 2)
	d2 = substr(v2, 1, 1); v2 = substr(v2, 2)
      }
      if (d1 < d2) exit 1
      if (d1 > d2) exit 2
    }
    # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
    # which mishandles some comparisons of empty strings to integers.
    if (length(v2)) exit 1
    if (length(v1)) exit 2
  }
'

check_prg_version() {
	printf " %-29s" "$1..."

	awk "$awk_verscmp" v1="$2" v2="$3" /dev/null

	if [ "$?" = "2" ] ; then
		echo "MISSING";
		return 1;
	else
		echo "     OK";
		return 0;
	fi
}

check_pkg_config() {
	pkg="$1"
	version="$2"

	printf " %-29s" "$1..."

	if [ "x$version" = "x" ] ; then
		pkg-config --exists "$1"
	else
		pkg-config --atleast-version "$2" "$1"
	fi

	result=$?

	if [ $result = 1 ] ; then
		echo "MISSING"
	else
		echo "     OK"
	fi

	return $?
}

check_font() {
	name="$1"

	printf " %-29s" "$1..."

	for file in /etc/fonts/conf.avail/*; do
		grep -q "$name" "$file"
		if [ $? -eq 0 ] ; then
			echo "     OK"
			return 0
		fi
	done

	echo "MISSING"
	return 1
}

check_dependencies() {
	echo "Checking software dependencies:"
	errors=0
	check_prg_version valac				0.16		`valac --api-version`
	errors=`expr $errors + $?`

	echo "Checking library dependencies:"
	check_pkg_config  ncursesw			5.9
	errors=`expr $errors + $?`
	check_pkg_config  gdk-2.0			2.24
	errors=`expr $errors + $?`
	check_pkg_config  gee-1.0			0.6
	errors=`expr $errors + $?`
	check_pkg_config  gio-2.0			2.36
	errors=`expr $errors + $?`
	check_pkg_config  gmime-2.6			2.6.10
	errors=`expr $errors + $?`
	check_prg_version gpgme				1.2			`gpgme-config --version`
	errors=`expr $errors + $?`
	check_pkg_config  gstreamer-0.10	0.10.36
	errors=`expr $errors + $?`
	check_pkg_config  libarchive		3.0
	errors=`expr $errors + $?`
	check_prg_version libesmtp			0.1			`libesmtp-config --version`
	errors=`expr $errors + $?`
	check_pkg_config  librsvg-2.0		2.36
	errors=`expr $errors + $?`
	check_pkg_config  libsoup-2.4		2.38
	errors=`expr $errors + $?`
	check_pkg_config  pangocairo		1.32
	errors=`expr $errors + $?`
	check_pkg_config  sqlite3			3.7
	errors=`expr $errors + $?`

	echo "Checking font dependencies:"
	check_font LMSans10
	errors=`expr $errors + $?`
	check_font LMRoman10
	errors=`expr $errors + $?`

	if [ $errors -ne 0 ] ; then
		echo "Aborting due to errors!"
		exit 1;
	fi
}

check_dependencies