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 {} \;