From 32a17a997a72fbd08b3f0cc5210ee4ce24a195c6 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Tue, 24 Dec 2019 16:41:13 +0100
Subject: [PATCH 1/4] increment version number to 0.21.19

---
 NEWS                        | 2 ++
 android/AndroidManifest.xml | 4 ++--
 doc/conf.py                 | 2 +-
 meson.build                 | 2 +-
 4 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/NEWS b/NEWS
index cdcad0de0..bb541bba3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+ver 0.21.19 (not yet released)
+
 ver 0.21.18 (2019/12/24)
 * protocol
   - work around Mac OS X bug in the ISO 8601 parser
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
index 5b9f57b60..d1bcefc02 100644
--- a/android/AndroidManifest.xml
+++ b/android/AndroidManifest.xml
@@ -2,8 +2,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="org.musicpd"
           android:installLocation="auto"
-          android:versionCode="41"
-          android:versionName="0.21.18">
+          android:versionCode="42"
+          android:versionName="0.21.19">
 
   <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="26"/>
 
diff --git a/doc/conf.py b/doc/conf.py
index c494a9cf2..20398af20 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -38,7 +38,7 @@ author = 'Max Kellermann'
 # built documents.
 #
 # The short X.Y version.
-version = '0.21.18'
+version = '0.21.19'
 # The full version, including alpha/beta/rc tags.
 release = version
 
diff --git a/meson.build b/meson.build
index 597989b0a..b6da75056 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,7 @@
 project(
   'mpd',
   ['c', 'cpp'],
-  version: '0.21.18',
+  version: '0.21.19',
   meson_version: '>= 0.49.0',
   default_options: [
     'c_std=c99',

From b9a7f30443be2686a8ecbc9c639ade0b99b33f72 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Tue, 24 Dec 2019 16:42:00 +0100
Subject: [PATCH 2/4] .travis.yml: add s390x build (big-endian)

---
 .travis.yml | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index bcf1e5b9d..a9a2447bb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,6 +23,28 @@ matrix:
       env:
         - MATRIX_EVAL="export PATH=\$HOME/.local/bin:\$PATH"
 
+    # Ubuntu Bionic (18.04) with GCC 7 on big-endian
+    - os: linux
+      arch: s390x
+      dist: bionic
+      addons:
+        apt:
+          sources:
+            - sourceline: 'ppa:deadsnakes/ppa' # for Python 3.7 (required by Meson)
+          packages:
+            - libgtest-dev
+            - libboost-dev
+            - python3.6
+            - python3-urllib3
+            - ninja-build
+      before_install:
+        - wget https://bootstrap.pypa.io/get-pip.py
+        - /usr/bin/python3.6 get-pip.py --user
+      install:
+        - /usr/bin/python3.6 $HOME/.local/bin/pip install --user meson
+      env:
+        - MATRIX_EVAL="export PATH=\$HOME/.local/bin:\$PATH"
+
     # Ubuntu Trusty (16.04) with GCC 6
     - os: linux
       dist: trusty

From dca0519336586be95b920004178114a097681768 Mon Sep 17 00:00:00 2001
From: Jacob Vosmaer <contact@jacobvosmaer.nl>
Date: Mon, 30 Dec 2019 21:50:33 +0100
Subject: [PATCH 3/4] Clang: only use [[fallthrough]] in C++ files

It appears that [[fallthrough]] is valid in C++ but not in C. And
in some Clang versions (e.g. Clang 11 on macOS), Clang is pedantic
about this and considers it an error to use [[fallthrough]] in a
.c file such as src/util/format.c.

This changes makes gcc_fallthrough a no-op under Clang in C files.
---
 NEWS                | 1 +
 src/util/Compiler.h | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index bb541bba3..83388e38a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,5 @@
 ver 0.21.19 (not yet released)
+* fix build failure with clang 10
 
 ver 0.21.18 (2019/12/24)
 * protocol
diff --git a/src/util/Compiler.h b/src/util/Compiler.h
index 96f63fae4..04e49bb61 100644
--- a/src/util/Compiler.h
+++ b/src/util/Compiler.h
@@ -145,7 +145,7 @@
 
 #if GCC_CHECK_VERSION(7,0)
 #define gcc_fallthrough __attribute__((fallthrough))
-#elif CLANG_CHECK_VERSION(10,0)
+#elif CLANG_CHECK_VERSION(10,0) && defined(__cplusplus)
 #define gcc_fallthrough [[fallthrough]]
 #else
 #define gcc_fallthrough

From 756560eac395a18ce7916aec6abaab378a900d7a Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Wed, 1 Jan 2020 18:36:59 +0100
Subject: [PATCH 4/4] .travis.yml: add ARM64 build (for NEON optimizations)

---
 .travis.yml | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index a9a2447bb..c349c993c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,6 +45,28 @@ matrix:
       env:
         - MATRIX_EVAL="export PATH=\$HOME/.local/bin:\$PATH"
 
+    # Ubuntu Bionic (18.04) with GCC 7 on ARM64
+    - os: linux
+      arch: arm64
+      dist: bionic
+      addons:
+        apt:
+          sources:
+            - sourceline: 'ppa:deadsnakes/ppa' # for Python 3.7 (required by Meson)
+          packages:
+            - libgtest-dev
+            - libboost-dev
+            - python3.6
+            - python3-urllib3
+            - ninja-build
+      before_install:
+        - wget https://bootstrap.pypa.io/get-pip.py
+        - /usr/bin/python3.6 get-pip.py --user
+      install:
+        - /usr/bin/python3.6 $HOME/.local/bin/pip install --user meson
+      env:
+        - MATRIX_EVAL="export PATH=\$HOME/.local/bin:\$PATH"
+
     # Ubuntu Trusty (16.04) with GCC 6
     - os: linux
       dist: trusty