summaryrefslogtreecommitdiff
path: root/contrib/cirrus/packer/fedora_setup.sh
blob: 20014e5f396e6232122b743cee3daf4f203961a1 (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
#!/bin/bash

# This script is called by packer on the subject fedora VM, to setup the podman
# build/test environment.  It's not intended to be used outside of this context.

set -e

# Load in library (copied by packer, before this script was run)
source /tmp/libpod/$SCRIPT_BASE/lib.sh

req_env_var SCRIPT_BASE PACKER_BUILDER_NAME GOSRC FEDORA_BASE_IMAGE OS_RELEASE_ID OS_RELEASE_VER

install_ooe

export GOPATH="$(mktemp -d)"
trap "sudo rm -rf $GOPATH" EXIT

$BIGTO ooe.sh sudo dnf update -y

# Do not enable update-stesting on the previous Fedora release
if [[ "$FEDORA_BASE_IMAGE" =~ "${OS_RELEASE_ID}-cloud-base-${OS_RELEASE_VER}" ]]; then
    warn "Enabling updates-testing repository for image based on $FEDORA_BASE_IMAGE"
    $LILTO ooe.sh sudo dnf install -y 'dnf-command(config-manager)'
    $LILTO ooe.sh sudo dnf config-manager --set-enabled updates-testing
else
    warn "NOT enabling updates-testing repository for image based on $PRIOR_FEDORA_BASE_IMAGE"
fi

echo "Installing general build/test dependencies for Fedora '$OS_RELEASE_VER'"
REMOVE_PACKAGES=()
INSTALL_PACKAGES=(\
    autoconf
    automake
    bash-completion
    bats
    bridge-utils
    btrfs-progs-devel
    bzip2
    conmon
    container-selinux
    containernetworking-plugins
    containers-common
    criu
    device-mapper-devel
    dnsmasq
    emacs-nox
    file
    findutils
    fuse3
    fuse3-devel
    gcc
    git
    glib2-devel
    glibc-static
    gnupg
    go-md2man
    golang
    gpgme-devel
    iproute
    iptables
    jq
    libassuan-devel
    libcap-devel
    libmsi1
    libnet
    libnet-devel
    libnl3-devel
    libseccomp
    libseccomp-devel
    libselinux-devel
    libtool
    libvarlink-util
    lsof
    make
    msitools
    nmap-ncat
    pandoc
    podman
    procps-ng
    protobuf
    protobuf-c
    protobuf-c-devel
    protobuf-devel
    protobuf-python
    python
    python3-dateutil
    python3-psutil
    python3-pytoml
    selinux-policy-devel
    skopeo
    slirp4netns
    unzip
    vim
    which
    xz
    zip
)
case "$OS_RELEASE_VER" in
    30)
        INSTALL_PACKAGES+=(\
            atomic-registries
            golang-github-cpuguy83-go-md2man
            python2-future
            runc
        )
        REMOVE_PACKAGES+=(crun)
        ;;
    31)
        INSTALL_PACKAGES+=(crun)
        REMOVE_PACKAGES+=(runc)
        ;;
    *)
        bad_os_id_ver ;;
esac
$BIGTO ooe.sh sudo dnf install -y ${INSTALL_PACKAGES[@]}

[[ "${#REMOVE_PACKAGES[@]}" -eq "0" ]] || \
    $LILTO ooe.sh sudo dnf erase -y ${REMOVE_PACKAGES[@]}

# Ensure there are no disruptive periodic services enabled by default in image
systemd_banish

ooe.sh sudo /tmp/libpod/hack/install_catatonit.sh

rh_finalize

echo "SUCCESS!"