Skip to content

Commit b9ff252

Browse files
committed
Require Perl v5.30, Node v16
https://blog.metabrainz.org/2021/03/17/schema-change-release-may-17-2021/ Note: This switches the underlying Ubuntu base image to focal.
1 parent bfe5e22 commit b9ff252

8 files changed

+30
-25
lines changed

.circleci/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: 2.1
33
executors:
44
musicbrainz-tests:
55
docker:
6-
- image: metabrainz/musicbrainz-tests:v-2020-11
6+
- image: metabrainz/musicbrainz-tests:v-2021-05
77
user: root
88
working_directory: /home/musicbrainz/musicbrainz-server
99

INSTALL.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Prerequisites
2222
**This document will assume you are using Ubuntu (at least 14.04) for its
2323
instructions.**
2424

25-
2. Perl (at least version 5.18.2)
25+
2. Perl (at least version 5.30)
2626

2727
Perl comes bundled with most Linux operating systems, you can check your
2828
installed version of Perl with:
@@ -68,7 +68,7 @@ Prerequisites
6868
in lib/DBDefs.pm. The defaults should be fine if you don't use
6969
your redis install for anything else.
7070

71-
6. Node.js (at least version 10.15) and Yarn
71+
6. Node.js (at least version 16) and Yarn
7272

7373
Node.js is required to build (and optionally minify) our JavaScript and CSS.
7474
If you plan on accessing musicbrainz-server inside a web browser, you should

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ Full installation instructions are available in [INSTALL.md](INSTALL.md).
2222
General Prerequisites:
2323

2424
* Ubuntu/Debian
25-
* Node (at least version 10.15)
26-
* Perl (at least version 5.18.2)
25+
* Node (at least version 16)
26+
* Perl (at least version 5.30)
2727
* PostgreSQL (at least version 12)
2828

2929
Reporting bugs

cpanfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
requires 'perl' => '5.18.2';
1+
requires 'perl' => '5.30.0';
22

33
# Mandatory modules
44
requires 'Algorithm::Diff' => '1.1902';

docker/Dockerfile.tests

+15-12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM phusion/baseimage:0.11
1+
FROM phusion/baseimage:focal-1.0.0-alpha1-amd64
22

33
RUN useradd --create-home --shell /bin/bash musicbrainz
44

@@ -21,14 +21,14 @@ RUN apt-get update && \
2121
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
2222
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
2323
curl -sLO https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
24-
curl -sLO https://deb.nodesource.com/node_10.x/pool/main/n/nodejs/nodejs_10.17.0-1nodesource1_amd64.deb && \
24+
curl -sLO https://deb.nodesource.com/node_16.x/pool/main/n/nodejs/nodejs_16.1.0-deb-1nodesource1_amd64.deb && \
2525
apt-get update && \
2626
apt-get install \
2727
--no-install-recommends \
2828
--no-install-suggests \
2929
-y \
3030
./google-chrome-stable_current_amd64.deb \
31-
./nodejs_10.17.0-1nodesource1_amd64.deb \
31+
./nodejs_16.1.0-deb-1nodesource1_amd64.deb \
3232
build-essential \
3333
bzip2 \
3434
gcc \
@@ -50,12 +50,12 @@ RUN apt-get update && \
5050
libexpat1 \
5151
libexpat1-dev \
5252
libicu-dev \
53-
libicu60 \
53+
libicu66 \
5454
libperl-dev \
5555
libpq-dev \
5656
libpq5 \
5757
libssl-dev \
58-
libssl1.0.0 \
58+
libssl1.1 \
5959
libxml2 \
6060
libxml2-dev \
6161
locales \
@@ -70,19 +70,21 @@ RUN apt-get update && \
7070
postgresql-12 \
7171
postgresql-12-pgtap \
7272
postgresql-server-dev-12 \
73-
python2.7-dev \
74-
python2.7-minimal \
73+
python2 \
74+
python2-dev \
7575
rabbitmq-server \
7676
redis-server \
7777
runit \
7878
runit-systemd \
7979
sudo \
8080
unzip \
8181
virtualenv \
82-
yarn && \
82+
wget \
83+
yarn \
84+
zlib1g-dev && \
8385
rm -rf /var/lib/apt/lists/* && \
8486
rm google-chrome-stable_current_amd64.deb && \
85-
rm nodejs_10.17.0-1nodesource1_amd64.deb && \
87+
rm nodejs_16.1.0-deb-1nodesource1_amd64.deb && \
8688
update-java-alternatives -s java-1.8.0-openjdk-amd64 && \
8789
systemctl disable rabbitmq-server
8890

@@ -98,10 +100,11 @@ RUN sudo -E -H -u musicbrainz carton install --deployment && \
98100
rm cpanfile cpanfile.snapshot
99101

100102
RUN mkdir musicbrainz-server
101-
ENV PG_AMQP_TAG v0.4.1
103+
ENV PG_AMQP_COMMIT 240d477
102104

103-
RUN git clone --branch $PG_AMQP_TAG --depth 1 https://github.com/omniti-labs/pg_amqp.git && \
105+
RUN git clone --depth 1 https://github.com/omniti-labs/pg_amqp.git && \
104106
cd pg_amqp && \
107+
git reset --hard $PG_AMQP_COMMIT && \
105108
make && \
106109
make install && \
107110
cd /home/musicbrainz
@@ -139,7 +142,7 @@ RUN sudo -E -H -u musicbrainz git clone https://github.com/metabrainz/sir.git &&
139142
sudo -E -H -u musicbrainz sh -c 'virtualenv --python=python2 venv; . venv/bin/activate; pip install -r requirements.txt; pip install git+git://github.com/esnme/ultrajson.git@7d0f4fb7e911120fd09075049233b587936b0a65' && \
140143
cd /home/musicbrainz
141144

142-
RUN curl -sLO https://chromedriver.storage.googleapis.com/81.0.4044.138/chromedriver_linux64.zip && \
145+
RUN curl -sLO https://chromedriver.storage.googleapis.com/90.0.4430.24/chromedriver_linux64.zip && \
143146
unzip chromedriver_linux64.zip -d /usr/local/bin && \
144147
chmod +x /usr/local/bin/chromedriver && \
145148
rm chromedriver_linux64.zip

docker/templates/Dockerfile.cpanfile-snapshot.m4

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
m4_include(`macros.m4')m4_dnl
2-
FROM metabrainz/consul-template-base:v0.18.5-2
2+
FROM metabrainz/consul-template-base:focal-1.0.0-alpha1_ct_0.25.2
33

44
ARG DEBIAN_FRONTEND=noninteractive
55

docker/templates/macros.m4

+7-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ m4_define(`apt_purge', `apt-get purge --auto-remove -y $1')
1313

1414
m4_define(`sudo_mb', `sudo -E -H -u musicbrainz $1')
1515

16-
m4_define(`NODEJS_DEB', `nodejs_10.17.0-1nodesource1_amd64.deb')
16+
m4_define(`NODEJS_DEB', `nodejs_16.1.0-deb-1nodesource1_amd64.deb')
1717

1818
m4_define(
1919
`install_javascript',
@@ -23,9 +23,9 @@ copy_mb(``package.json yarn.lock ./'')
2323
RUN apt-key add /tmp/yarn_pubkey.txt && \
2424
rm /tmp/yarn_pubkey.txt && \
2525
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
26-
apt_install(``git python-minimal yarn'') && \
26+
apt_install(``git python3-minimal yarn'') && \
2727
cd /tmp && \
28-
curl -sLO https://deb.nodesource.com/node_10.x/pool/main/n/nodejs/NODEJS_DEB && \
28+
curl -sLO https://deb.nodesource.com/node_16.x/pool/main/n/nodejs/NODEJS_DEB && \
2929
dpkg -i NODEJS_DEB && \
3030
cd - && \
3131
sudo_mb(``yarn install$1'')
@@ -56,6 +56,7 @@ libperl-dev m4_dnl
5656
libpq-dev m4_dnl
5757
libssl-dev m4_dnl
5858
libxml2-dev m4_dnl
59+
zlib1g-dev m4_dnl
5960
pkg-config')
6061

6162
# postgresql-server-dev-12 provides pg_config, which is needed by InitDb.pl
@@ -69,11 +70,12 @@ libdb5.3 m4_dnl
6970
libexpat1 m4_dnl
7071
libicu55 m4_dnl
7172
libpq5 m4_dnl
72-
libssl1.0.0 m4_dnl
73+
libssl1.1 m4_dnl
7374
libxml2 m4_dnl
7475
perl m4_dnl
7576
postgresql-client-12 m4_dnl
76-
postgresql-server-dev-12')
77+
postgresql-server-dev-12 m4_dnl
78+
zlib1g')
7779

7880
m4_define(
7981
`test_db_run_deps',

docker/templates/server_base.m4

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
m4_include(`macros.m4')m4_dnl
2-
FROM metabrainz/consul-template-base:v0.18.5-2
2+
FROM metabrainz/consul-template-base:focal-1.0.0-alpha1_ct_0.25.2
33

44
ARG DEBIAN_FRONTEND=noninteractive
55

0 commit comments

Comments
 (0)