summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/git/APKBUILD11
-rw-r--r--system/git/dont-test-other-encodings.patch224
2 files changed, 20 insertions, 215 deletions
diff --git a/system/git/APKBUILD b/system/git/APKBUILD
index 84f3196c7..e931dce98 100644
--- a/system/git/APKBUILD
+++ b/system/git/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=git
-pkgver=2.19.2
+pkgver=2.21.0
pkgrel=0
pkgdesc="A distributed version control system"
url="https://www.git-scm.com/"
@@ -36,9 +36,7 @@ source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz
git-daemon.initd
git-daemon.confd
"
-
_gitcoredir=/usr/libexec/git-core
-builddir="$srcdir"/$pkgname-$pkgver
prepare() {
default_prepare
@@ -55,18 +53,15 @@ prepare() {
}
build() {
- cd "$builddir"
make prefix=/usr DESTDIR="$pkgdir"
}
check() {
- cd "$builddir"
rm t/t9020-remote-svn.sh # Requires /usr/bin/python / python-compat.
make prefix=/usr DESTDIR="$pkgdir" -j1 test
}
package() {
- cd "$builddir"
make -j1 prefix=/usr \
DESTDIR="$pkgdir" \
INSTALLDIRS=vendor \
@@ -169,7 +164,7 @@ subtree_doc() {
gzip -9 "$subpkgdir"/usr/share/man/man1/git-subtree.1
}
-sha512sums="1d707c1a7a16fe9399592b0354e9023f701b019f36fe775997c46354d40617a80fa04aacc5330825c4f9301c2910ead8b26274a7f3b92e9d790b4705c0d7aa96 git-2.19.2.tar.xz
-ef6c31ac1474fa128aecf86eda75653fdd0fe7a09d35914c1a03749abf9c92cbc01f8064b2b697ca796fa18bec717b9bcb1aac6d36d02ce8ed4270d4728e72f0 dont-test-other-encodings.patch
+sha512sums="83f57c3950a07f6773a3aea66611d22daba0e5599e5d8f0751a16f6fdbeab0f3844d942a39a5642051212df99d1d4513253c36829b1454b4f0977cc6026fd973 git-2.21.0.tar.xz
+315e4666c425b31a7f7a447e777cbf2a1050feac9b4d4b8a61c05248024e790d4d18f3336faf2a2c68584e05e8194c22a09e1caba1352cfec194e0bc01277a6c dont-test-other-encodings.patch
89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd
fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd"
diff --git a/system/git/dont-test-other-encodings.patch b/system/git/dont-test-other-encodings.patch
index 29c4bdb34..9019d4cab 100644
--- a/system/git/dont-test-other-encodings.patch
+++ b/system/git/dont-test-other-encodings.patch
@@ -191,51 +191,12 @@ We can't support Japanese people using musl
cat >expected <<EOF
author $UTF8_NAME
summary $UTF8_MSG
---- git-2.19.1/t/t0028-working-tree-encoding.sh.old 2018-09-27 20:46:40.000000000 +0000
-+++ git-2.19.1/t/t0028-working-tree-encoding.sh 2018-10-22 20:59:17.530000000 +0000
-@@ -4,246 +4,4 @@
-
- . ./test-lib.sh
+--- git-2.21.0/t/t0028-working-tree-encoding.sh.old 2019-02-24 16:31:46.000000000 +0000
++++ git-2.21.0/t/t0028-working-tree-encoding.sh 2019-03-08 00:49:07.580000000 +0000
+@@ -71,14 +71,6 @@
+ test_cmp_bin test.utf8.raw test.utf16.git
+ '
--GIT_TRACE_WORKING_TREE_ENCODING=1 && export GIT_TRACE_WORKING_TREE_ENCODING
--
--test_expect_success 'setup test files' '
-- git config core.eol lf &&
--
-- text="hallo there!\ncan you read me?" &&
-- echo "*.utf16 text working-tree-encoding=utf-16" >.gitattributes &&
-- printf "$text" >test.utf8.raw &&
-- printf "$text" | iconv -f UTF-8 -t UTF-16 >test.utf16.raw &&
-- printf "$text" | iconv -f UTF-8 -t UTF-32 >test.utf32.raw &&
--
-- # Line ending tests
-- printf "one\ntwo\nthree\n" >lf.utf8.raw &&
-- printf "one\r\ntwo\r\nthree\r\n" >crlf.utf8.raw &&
--
-- # BOM tests
-- printf "\0a\0b\0c" >nobom.utf16be.raw &&
-- printf "a\0b\0c\0" >nobom.utf16le.raw &&
-- printf "\376\777\0a\0b\0c" >bebom.utf16be.raw &&
-- printf "\777\376a\0b\0c\0" >lebom.utf16le.raw &&
-- printf "\0\0\0a\0\0\0b\0\0\0c" >nobom.utf32be.raw &&
-- printf "a\0\0\0b\0\0\0c\0\0\0" >nobom.utf32le.raw &&
-- printf "\0\0\376\777\0\0\0a\0\0\0b\0\0\0c" >bebom.utf32be.raw &&
-- printf "\777\376\0\0a\0\0\0b\0\0\0c\0\0\0" >lebom.utf32le.raw &&
--
-- # Add only UTF-16 file, we will add the UTF-32 file later
-- cp test.utf16.raw test.utf16 &&
-- cp test.utf32.raw test.utf32 &&
-- git add .gitattributes test.utf16 &&
-- git commit -m initial
--'
--
--test_expect_success 'ensure UTF-8 is stored in Git' '
-- test_when_finished "rm -f test.utf16.git" &&
--
-- git cat-file -p :test.utf16 >test.utf16.git &&
-- test_cmp_bin test.utf8.raw test.utf16.git
--'
--
-test_expect_success 're-encode to UTF-16 on checkout' '
- test_when_finished "rm -f test.utf16.raw" &&
-
@@ -244,71 +205,20 @@ We can't support Japanese people using musl
- test_cmp_bin test.utf16.raw test.utf16
-'
-
--test_expect_success 'check $GIT_DIR/info/attributes support' '
-- test_when_finished "rm -f test.utf32.git" &&
-- test_when_finished "git reset --hard HEAD" &&
--
-- echo "*.utf32 text working-tree-encoding=utf-32" >.git/info/attributes &&
-- git add test.utf32 &&
--
-- git cat-file -p :test.utf32 >test.utf32.git &&
-- test_cmp_bin test.utf8.raw test.utf32.git
--'
--
--for i in 16 32
--do
-- test_expect_success "check prohibited UTF-${i} BOM" '
-- test_when_finished "git reset --hard HEAD" &&
--
-- echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes &&
-- echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes &&
--
-- # Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian)
-- # but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32).
-- # In these cases the BOM is prohibited.
-- cp bebom.utf${i}be.raw bebom.utf${i}be &&
-- test_must_fail git add bebom.utf${i}be 2>err.out &&
-- test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
-- test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
--
-- cp lebom.utf${i}le.raw lebom.utf${i}be &&
-- test_must_fail git add lebom.utf${i}be 2>err.out &&
-- test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
-- test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
--
-- cp bebom.utf${i}be.raw bebom.utf${i}le &&
-- test_must_fail git add bebom.utf${i}le 2>err.out &&
-- test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
-- test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
--
-- cp lebom.utf${i}le.raw lebom.utf${i}le &&
-- test_must_fail git add lebom.utf${i}le 2>err.out &&
-- test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
-- test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out
-- '
--
-- test_expect_success "check required UTF-${i} BOM" '
-- test_when_finished "git reset --hard HEAD" &&
--
-- echo "*.utf${i} text working-tree-encoding=utf-${i}" >>.gitattributes &&
--
-- cp nobom.utf${i}be.raw nobom.utf${i} &&
-- test_must_fail git add nobom.utf${i} 2>err.out &&
-- test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
-- test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out &&
--
-- cp nobom.utf${i}le.raw nobom.utf${i} &&
-- test_must_fail git add nobom.utf${i} 2>err.out &&
-- test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
-- test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out
-- '
+ test_expect_success 're-encode to UTF-16-LE-BOM on checkout' '
+ rm test.utf16lebom &&
+ git checkout test.utf16lebom &&
+@@ -143,41 +135,6 @@
+ test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
+ test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out
+ '
-
- test_expect_success "eol conversion for UTF-${i} encoded files on checkout" '
- test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" &&
- test_when_finished "git reset --hard HEAD^" &&
-
-- cat lf.utf8.raw | iconv -f UTF-8 -t UTF-${i} >lf.utf${i}.raw &&
-- cat crlf.utf8.raw | iconv -f UTF-8 -t UTF-${i} >crlf.utf${i}.raw &&
+- cat lf.utf8.raw | write_utf${i} >lf.utf${i}.raw &&
+- cat crlf.utf8.raw | write_utf${i} >crlf.utf${i}.raw &&
- cp crlf.utf${i}.raw eol.utf${i} &&
-
- cat >expectIndexLF <<-EOF &&
@@ -337,106 +247,6 @@ We can't support Japanese people using musl
- git ls-files --eol eol.utf${i} >actual &&
- test_cmp expectIndexLF actual
- '
--done
--
--test_expect_success 'check unsupported encodings' '
-- test_when_finished "git reset --hard HEAD" &&
--
-- echo "*.set text working-tree-encoding" >.gitattributes &&
-- printf "set" >t.set &&
-- test_must_fail git add t.set 2>err.out &&
-- test_i18ngrep "true/false are no valid working-tree-encodings" err.out &&
--
-- echo "*.unset text -working-tree-encoding" >.gitattributes &&
-- printf "unset" >t.unset &&
-- git add t.unset &&
--
-- echo "*.empty text working-tree-encoding=" >.gitattributes &&
-- printf "empty" >t.empty &&
-- git add t.empty &&
--
-- echo "*.garbage text working-tree-encoding=garbage" >.gitattributes &&
-- printf "garbage" >t.garbage &&
-- test_must_fail git add t.garbage 2>err.out &&
-- test_i18ngrep "failed to encode" err.out
--'
--
--test_expect_success 'error if encoding round trip is not the same during refresh' '
-- BEFORE_STATE=$(git rev-parse HEAD) &&
-- test_when_finished "git reset --hard $BEFORE_STATE" &&
--
-- # Add and commit a UTF-16 file but skip the "working-tree-encoding"
-- # filter. Consequently, the in-repo representation is UTF-16 and not
-- # UTF-8. This simulates a Git version that has no working tree encoding
-- # support.
-- echo "*.utf16le text working-tree-encoding=utf-16le" >.gitattributes &&
-- echo "hallo" >nonsense.utf16le &&
-- TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16le) &&
-- git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16le &&
-- COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) &&
-- git update-ref refs/heads/master $COMMIT &&
--
-- test_must_fail git checkout HEAD^ 2>err.out &&
-- test_i18ngrep "error: .* overwritten by checkout:" err.out
--'
--
--test_expect_success 'error if encoding garbage is already in Git' '
-- BEFORE_STATE=$(git rev-parse HEAD) &&
-- test_when_finished "git reset --hard $BEFORE_STATE" &&
--
-- # Skip the UTF-16 filter for the added file
-- # This simulates a Git version that has no checkoutEncoding support
-- cp nobom.utf16be.raw nonsense.utf16 &&
-- TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16) &&
-- git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16 &&
-- COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) &&
-- git update-ref refs/heads/master $COMMIT &&
--
-- git diff 2>err.out &&
-- test_i18ngrep "error: BOM is required" err.out
--'
--
--test_lazy_prereq ICONV_SHIFT_JIS '
-- iconv -f UTF-8 -t SHIFT-JIS </dev/null
--'
--
--test_expect_success ICONV_SHIFT_JIS 'check roundtrip encoding' '
-- test_when_finished "rm -f roundtrip.shift roundtrip.utf16" &&
-- test_when_finished "git reset --hard HEAD" &&
--
-- text="hallo there!\nroundtrip test here!" &&
-- printf "$text" | iconv -f UTF-8 -t SHIFT-JIS >roundtrip.shift &&
-- printf "$text" | iconv -f UTF-8 -t UTF-16 >roundtrip.utf16 &&
-- echo "*.shift text working-tree-encoding=SHIFT-JIS" >>.gitattributes &&
--
-- # SHIFT-JIS encoded files are round-trip checked by default...
-- GIT_TRACE=1 git add .gitattributes roundtrip.shift 2>&1 |
-- grep "Checking roundtrip encoding for SHIFT-JIS" &&
-- git reset &&
--
-- # ... unless we overwrite the Git config!
-- ! GIT_TRACE=1 git -c core.checkRoundtripEncoding=garbage \
-- add .gitattributes roundtrip.shift 2>&1 |
-- grep "Checking roundtrip encoding for SHIFT-JIS" &&
-- git reset &&
--
-- # UTF-16 encoded files should not be round-trip checked by default...
-- ! GIT_TRACE=1 git add roundtrip.utf16 2>&1 |
-- grep "Checking roundtrip encoding for UTF-16" &&
-- git reset &&
--
-- # ... unless we tell Git to check it!
-- GIT_TRACE=1 git -c core.checkRoundtripEncoding="UTF-16, UTF-32" \
-- add roundtrip.utf16 2>&1 |
-- grep "Checking roundtrip encoding for utf-16" &&
-- git reset &&
--
-- # ... unless we tell Git to check it!
-- # (here we also check that the casing of the encoding is irrelevant)
-- GIT_TRACE=1 git -c core.checkRoundtripEncoding="UTF-32, utf-16" \
-- add roundtrip.utf16 2>&1 |
-- grep "Checking roundtrip encoding for utf-16" &&
-- git reset
--'
--
- test_done
+ done
+
+ test_expect_success 'check unsupported encodings' '