The following script was applied:
sed ':a;/part of MXE.$/{N;s/\n//;ba}' -i $(git grep -l 'part of MXE')
sed 's/\(part of MXE\).*\(See index.html\)/\1. \2/' -i \
$(git grep -l 'part of MXE.*See index.html')
before='This file is part of MXE. See index.html for further information.'
after='This file is part of MXE. See LICENSE.md for licensing information.'
sed "s/$before/$after/" -i $(git grep -l 'part of MXE')
Then git grep 'index.html for further information' revealed two other files.
One of them was patched manually (patch.mk). Makefile has text
"See index.html for further information" unrelated to licensing.
See https://github.com/mxe/mxe/issues/1500#issuecomment-241340792
The following script was applied:
set -xue
find src/ plugins/ -name '*.mk' -type f > mks
# special cases for test file:
# ls -d src/*-test* | sed 's@-test.*@@' | sort | uniq --repeated
sed 's@$(2).c@$(PWD)/src/$(PKG)-test.c@g' -i \
src/{boost,freeimage,hdf5,lapack,sdl,sdl_image,sdl_sound}.mk
sed 's@$(2).f@$(PWD)/src/$(PKG)-test.f@g' -i src/lapack.mk
sed 's@$(PWD)/$(2).pro@$(PWD)/src/$(PKG)-test.pro@g' -i \
src/qt.mk plugins/examples/custom-qt-min/overrides.mk
sed 's@$(2)-CMakeLists.txt@$(PWD)/src/$(PKG)-test-CMakeLists.txt@g' \
-i src/{sdl_image,sdl_sound}.mk
# check
for base in $(ls -d src/*-test* | sed 's@-test.*@@' | sort | uniq --repeated); do
! grep -q '$(2)' "${base}.mk"
done
# other $(2)
sed 's@$(2).cpp@$(TEST_FILE)@g' -i $(cat mks)
sed 's@$(2).cxx@$(TEST_FILE)@g' -i $(cat mks)
sed 's@$(2).c@$(TEST_FILE)@g' -i $(cat mks)
sed 's@$(2).ml@$(TEST_FILE)@g' -i $(cat mks)
sed 's@$(2).f@$(TEST_FILE)@g' -i $(cat mks)
# check
! grep '$(2)' $(cat mks)
See https://github.com/mxe/mxe/issues/1452
Most of the automatic conversion was done using the following Python script:
import os
import re
pkgs = sorted(mkfile[:-len('.mk')] for mkfile in os.listdir('src') if mkfile.endswith('.mk'))
with open('index.html', 'rb') as f:
index = f.read()
pkgs_index = re.findall('<td class="package">([^<]*)</td>', index)
assert pkgs_index == pkgs
versions = dict(re.findall('<td id="([^"]*)-version">([^<]*)</td>', index))
assert sorted(versions.keys()) == pkgs
for pkg in pkgs:
version = versions[pkg]
with open('src/' + pkg + '.mk', 'rb') as f:
mk = f.read()
checksumpos = mk.index('\n$(PKG)_CHECKSUM ')
versionline = '\n$(PKG)_VERSION := %(version)s' % {'version': version}
newmk = mk[:checksumpos] + versionline + mk[checksumpos:]
with open('src/' + pkg + '.mk', 'wb') as f:
f.write(newmk)
Squashed commit of the following:
commit 1ad29ec164b9f07781f68fbe39276428105e3d8e
Author: Thomas Mayer <thomas@residuum.org>
Date: Fri Aug 10 20:51:42 2012 +0200
Test for json-c actually outputs something instead of just return 0 or 1.
commit 2650c38c79a627f25c7dda9e89dd1acaca8d3663
Author: Thomas Mayer <thomas@residuum.org>
Date: Sat Aug 4 16:46:28 2012 +0200
Test case for json-c.