From 7f8a0e15a648404fdbe62d75cee00e59d0a2cc57 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 22 Apr 2021 10:32:55 +0200 Subject: [PATCH] Introduce the script for generating sources tarball without a code under a license which was not yet approved for Fedora or RHEL Change the name of the sources archive, so the maintainer will encounter an error when uploading new sources which haven't undergo modification by this script --- generate-modified-sources.sh | 46 ++++++++++++++++++++++++++++++++++++ mariadb.spec | 9 +++++-- 2 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 generate-modified-sources.sh diff --git a/generate-modified-sources.sh b/generate-modified-sources.sh new file mode 100644 index 0000000..b12059f --- /dev/null +++ b/generate-modified-sources.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# This script downloads sources and modifies them + +set -ex + +NAME="mariadb" +VERSION=$( rpmspec -q --srpm --qf '%{VERSION}' "${NAME}.spec" ) +# SOURCES_URL=$( spectool -s 0 "$NAME.spec" | cut -d ' ' -f 2 ) +SOURCES_URL="https://downloads.mariadb.org/interstitial/mariadb-${VERSION}/source/mariadb-${VERSION}.tar.gz" + +OLD_ARCHIVE_NAME="${NAME}-${VERSION}" +NEW_ARCHIVE_NAME="${NAME}-${VERSION}-downstream_modified" + +# Retrieve the archive: + +rm -rf "./${OLD_ARCHIVE_NAME}.tar.gz" "./${OLD_ARCHIVE_NAME}/" "./${NEW_ARCHIVE_NAME}.tar.gz" "./${NEW_ARCHIVE_NAME}/" +wget "${SOURCES_URL}" + +# Modify the archive: + +# 1/ Change both the name of the archive and the name of the base directory inside of the archive +# It will be necessary to change the name in the SPECfile in the %prep phase +# This will prevent maintainer to rebase to a non-modified sources archive without changing the SPECfile + +tar -xof "${OLD_ARCHIVE_NAME}.tar.gz" +mv "${OLD_ARCHIVE_NAME}" "${NEW_ARCHIVE_NAME}" + +# 2/ Remove the code licensed under the PerconaFT license +# which was not yet reviewed as suitable for Fedora or RHEL. +# +# License file: +# storage/tokudb/PerconaFT/PATENTS +# +# The whole storage engine, which requires code under this license +# has to be removed before uploading sources to Fedora. + +rm -r "${NEW_ARCHIVE_NAME}/storage/tokudb" + +# Pack the extracted files back to the archive + +tar -czf "${NEW_ARCHIVE_NAME}.tar.gz" "${NEW_ARCHIVE_NAME}" + +# Remove the decompressed original used to create the archive + +rm -r "./${NEW_ARCHIVE_NAME}/" diff --git a/mariadb.spec b/mariadb.spec index 1f7d824..6446135 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -168,7 +168,12 @@ Summary: A very fast and robust SQL database server URL: http://mariadb.org License: GPLv2 and LGPLv2 -Source0: https://downloads.mariadb.org/interstitial/mariadb-%{version}/source/mariadb-%{version}.tar.gz +# Original upstream sources archive URL +# Source0: https://downloads.mariadb.org/interstitial/mariadb-%{version}/source/mariadb-%{version}.tar.gz +# Non-existent URL containing correct archive name +# The archive was created by executing the "generate-modified-sources.sh" script +Source0: https://fedoraproject.org/mariadb-%{version}-downstream_modified.tar.gz + Source2: mysql_config_multilib.sh Source3: my.cnf.in Source6: README.mariadb-docs @@ -744,7 +749,7 @@ sources. %prep -%setup -q -n mariadb-%{version} +%setup -q -n mariadb-%{version}-downstream_modified # Remove JAR files that upstream puts into tarball find . -name "*.jar" -type f -exec rm --verbose -f {} \;