From dcf9624f00245180deff9e871c65263b51c428cd 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 Cherry-picked from Fedora: https://src.fedoraproject.org/rpms/mariadb/c/7f8a0e15a648404fdbe62d75cee00e59d0a2cc57?branch=rawhide Related: #1971248 --- 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 9065d08..d0b60d7 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 @@ -746,7 +751,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 {} \;