|
Paolo Bonzini |
750d89 |
#! /bin/sh
|
|
Paolo Bonzini |
750d89 |
|
|
Paolo Bonzini |
750d89 |
: << \EOF
|
|
Paolo Bonzini |
750d89 |
For importing the hobbled OpenSSL tarball from Fedora, the following
|
|
Paolo Bonzini |
750d89 |
steps are necessary. Note that both the "sources" file format and the
|
|
Paolo Bonzini |
750d89 |
pkgs.fedoraproject.org directory structure have changed, accommodating
|
|
Paolo Bonzini |
750d89 |
SHA512 checksums.
|
|
Paolo Bonzini |
750d89 |
|
|
Paolo Bonzini |
750d89 |
# in a separate directory
|
|
Paolo Bonzini |
750d89 |
fedpkg clone -a openssl
|
|
Paolo Bonzini |
750d89 |
cd openssl
|
|
Paolo Bonzini |
750d89 |
fedpkg switch-branch master
|
|
Paolo Bonzini |
750d89 |
gitk -- sources
|
|
Paolo Bonzini |
750d89 |
|
|
Paolo Bonzini |
7ae6f1 |
# the commit that added the 1.1.0h hobbled tarball is 6eb8f620273
|
|
Paolo Bonzini |
7ae6f1 |
# subject "update to upstream version 1.1.0h"
|
|
Paolo Bonzini |
7ae6f1 |
git checkout 6eb8f620273
|
|
Paolo Bonzini |
750d89 |
|
|
Paolo Bonzini |
750d89 |
# fetch the hobbled tarball and verify the checksum
|
|
Paolo Bonzini |
750d89 |
(
|
|
Paolo Bonzini |
750d89 |
set -e
|
|
Paolo Bonzini |
750d89 |
while read HASH_TYPE FN EQ HASH; do
|
|
Paolo Bonzini |
750d89 |
# remove leading and trailing parens
|
|
Paolo Bonzini |
750d89 |
FN="${FN#(*}"
|
|
Paolo Bonzini |
750d89 |
FN="${FN%*)}"
|
|
Paolo Bonzini |
750d89 |
wget \
|
|
Paolo Bonzini |
750d89 |
http://pkgs.fedoraproject.org/repo/pkgs/openssl/$FN/sha512/$HASH/$FN
|
|
Paolo Bonzini |
750d89 |
done
|
|
Paolo Bonzini |
750d89 |
sha512sum -c sources
|
|
Paolo Bonzini |
750d89 |
)
|
|
Paolo Bonzini |
750d89 |
|
|
Paolo Bonzini |
750d89 |
# unpack the hobbled tarball into edk2, according to
|
|
Paolo Bonzini |
750d89 |
# "OpenSSL-HOWTO.txt"; WORKSPACE stands for the root of the edk2 project
|
|
Paolo Bonzini |
750d89 |
# tree
|
|
Paolo Bonzini |
7ae6f1 |
tar -x --xz -f openssl-1.1.0h-hobbled.tar.xz
|
|
Paolo Bonzini |
7ae6f1 |
mv -- openssl-1.1.0h "$WORKSPACE"/CryptoPkg/Library/OpensslLib/openssl
|
|
Paolo Bonzini |
750d89 |
|
|
Paolo Bonzini |
750d89 |
# update the INF files as described in "OpenSSL-HOWTO.txt", then save
|
|
Paolo Bonzini |
750d89 |
# the results as a single commit
|
|
Paolo Bonzini |
7ae6f1 |
(cd "$WORKSPACE"/CryptoPkg/Library/OpensslLib && perl process_files.pl)
|
|
Paolo Bonzini |
7ae6f1 |
git rm --cached CryptoPkg/Library/OpensslLib/openssl
|
|
Paolo Bonzini |
7ae6f1 |
git commit -m'remove openssl submodule'
|
|
Paolo Bonzini |
7ae6f1 |
git add -A CryptoPkg/Library/OpensslLib/openssl
|
|
Paolo Bonzini |
7ae6f1 |
git commit -m'add openssl 1.1.0h'
|
|
Paolo Bonzini |
750d89 |
git format-patch -1
|
|
Paolo Bonzini |
750d89 |
|
|
Paolo Bonzini |
750d89 |
Then run the patch through this script which will build a new tar file.
|
|
Paolo Bonzini |
750d89 |
EOF
|
|
Paolo Bonzini |
750d89 |
|
|
Paolo Bonzini |
750d89 |
set -e
|
|
Paolo Bonzini |
750d89 |
edk2_githash=$(awk '/^%global edk2_githash/ {print $3}' edk2.spec)
|
|
Paolo Bonzini |
750d89 |
openssl_version=$(awk '/^%global openssl_version/ {print $3}' edk2.spec)
|
|
Paolo Bonzini |
750d89 |
mkdir -p tianocore-openssl-${openssl_version}
|
|
Paolo Bonzini |
750d89 |
(exec 3> openssl-${openssl_version}-hobbled.tar.xz
|
|
Paolo Bonzini |
750d89 |
cd tianocore-openssl-${openssl_version}
|
|
Paolo Bonzini |
750d89 |
git init .
|
|
Paolo Bonzini |
750d89 |
git config core.whitespace cr-at-eol
|
|
Paolo Bonzini |
750d89 |
git config am.keepcr true
|
|
Paolo Bonzini |
750d89 |
git am
|
|
Paolo Bonzini |
750d89 |
git archive --format=tar --prefix=tianocore-edk2-${edk2_githash}/ \
|
|
Paolo Bonzini |
750d89 |
HEAD CryptoPkg/Library/OpensslLib/ | \
|
|
Paolo Bonzini |
750d89 |
xz -9ev >&3) < $1
|
|
Paolo Bonzini |
750d89 |
rm -rf tianocore-openssl-${openssl_version}
|