|
1 | | -#!/bin/sh |
| 1 | +#!/bin/bash |
2 | 2 | # SPDX-License-Identifier: LGPL-2.1+ |
3 | 3 |
|
4 | | -DEVPKGS="pkg-config liblzma-dev libcurl4-openssl-dev libssl-dev libacl1-dev libfuse-dev zlib1g-dev libzstd-dev libudev-dev" |
| 4 | +DEVPKGS=( |
| 5 | + pkg-config |
| 6 | + liblzma-dev |
| 7 | + libcurl4-openssl-dev |
| 8 | + libssl-dev |
| 9 | + libacl1-dev |
| 10 | + libfuse-dev |
| 11 | + zlib1g-dev |
| 12 | + libzstd-dev |
| 13 | + libudev-dev |
| 14 | +) |
5 | 15 |
|
6 | 16 | echo |
7 | 17 | echo "============= Installing amd64 build dependencies ==============" |
8 | 18 | set -eu |
9 | 19 | ( |
10 | 20 | set -x |
11 | | - sudo apt-get install -y software-properties-common |
12 | | - sudo add-apt-repository -y ppa:pitti/systemd-semaphore |
| 21 | + |
| 22 | + sudo rm /etc/apt/sources.list.d/* |
| 23 | + |
| 24 | + sudo apt install -y software-properties-common |
| 25 | + sudo add-apt-repository -y ppa:jonathonf/python-3.6 |
| 26 | + sudo add-apt-repository -y ppa:ginggs/backports |
| 27 | + sudo apt -y update |
| 28 | + sudo apt -y --no-install-recommends install \ |
| 29 | + python3.6 \ |
| 30 | + squashfs-tools |
| 31 | + |
13 | 32 | sudo dpkg --add-architecture i386 |
14 | 33 | sudo apt-get update |
15 | 34 |
|
16 | | - sudo apt-get install -y $DEVPKGS rsync python3 meson python-sphinx |
| 35 | + sudo apt -y --no-install-recommends install \ |
| 36 | + rsync \ |
| 37 | + python3-pip \ |
| 38 | + python3-setuptools \ |
| 39 | + python3-wheel \ |
| 40 | + python-sphinx \ |
| 41 | + "${DEVPKGS[@]}" |
| 42 | + python3.6 -m pip install --user meson ninja |
17 | 43 | ) |
18 | 44 |
|
19 | 45 | echo |
|
35 | 61 | echo "============= Running amd64 tests as root ==============" |
36 | 62 | ( |
37 | 63 | set -x |
38 | | - sudo ninja -C build test |
| 64 | + sudo $(which ninja) -C build test |
39 | 65 | ) |
40 | 66 |
|
41 | 67 | echo |
42 | 68 | echo "============= Installing i386 build dependencies ==============" |
43 | | -# help apt to figure out replacing GI dependencies (we don't need them |
44 | | -# anyway, but a lot of stuff is pre-installed in semaphore) |
45 | | -( |
46 | | - set -x |
47 | | - sudo apt-get purge --auto-remove -y python3-gi gir1.2-glib-2.0 |
48 | | -) |
49 | 69 |
|
50 | 70 | # library -dev packages are not co-installable for multiple architectures, |
51 | 71 | # so this can't go into the setup step |
52 | 72 | ( |
53 | 73 | set -x |
54 | | - sudo apt-get install -y --no-install-recommends gcc-multilib $(echo "$DEVPKGS " | sed 's/\b /:i386 /g') |
| 74 | + # both arch versions provide /usr/bin/curl-config, which can't go well |
| 75 | + sudo apt remove -y libcurl4-openssl-dev |
| 76 | + sudo apt-get install -y --no-install-recommends \ |
| 77 | + gcc-multilib \ |
| 78 | + libgcc-5-dev:i386 \ |
| 79 | + "${DEVPKGS[@]/%/:i386}" |
55 | 80 | ) |
56 | 81 |
|
57 | 82 | echo |
58 | 83 | echo "============= Building i386 ==============" |
59 | 84 | ( |
60 | 85 | set -x |
61 | | - CFLAGS=-m32 LDFLAGS=-m32 meson build-i386 |
| 86 | + export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu |
| 87 | + CC=gcc-5 CFLAGS=-m32 LDFLAGS=-m32 meson build-i386 |
62 | 88 | ninja -C build-i386 |
63 | 89 | ) |
64 | 90 |
|
|
73 | 99 | echo "============= Running i386 tests as root ==============" |
74 | 100 | ( |
75 | 101 | set -x |
76 | | - sudo linux32 ninja -C build-i386 test |
| 102 | + sudo linux32 $(which ninja) -C build-i386 test |
77 | 103 | ) |
0 commit comments