Compare commits

...

224 Commits

Author SHA1 Message Date
Jakub Čajka 27a8ad3859
Rebase to go1.15.5
Security fix for CVE-2020-28362, CVE-2020-28367 and CVE-2020-28366
Resolves: BZ#1897342, BZ#1897636, BZ#1897644, BZ#1897647
2020-11-14 08:55:50 +01:00
Jakub Čajka c88a8dfff5
Rebase to go1.15.4
Resolves BZ#1895189
2020-11-06 16:34:38 +01:00
Jakub Čajka 61730a32f4
Rebase to go1.15.3
Resolves: BZ#1888443
2020-10-15 13:41:00 +02:00
Jakub Čajka d7ab797463
Rebase to go1.15.2
Resolves: BZ#1877565
2020-09-10 12:57:26 +02:00
Jakub Čajka fb39d90765
Rebase to go1.15.1
Security fix for CVE-2020-24553
Resolves: BZ#1874858, BZ#1866892
2020-09-04 15:43:41 +02:00
Jakub Čajka d3aa981e83
Rebase to go1.15 proper
Resolves: BZ#1859241, BZ#1866892
2020-08-12 10:33:11 +02:00
Jakub Čajka dac586c9c7
Rebase to go1.15rc1
Security fix for CVE-2020-16845
Resolves: BZ#1867101
Related: BZ#1859241
2020-08-10 12:04:23 +02:00
Fedora Release Engineering e8c1f5c4a2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 20:57:54 +00:00
Jakub Čajka 132cf34fe6
Rebase to go1.15rc1
Related: BZ#1859241
2020-07-27 10:26:48 +02:00
Jakub Čajka a3e201c572
Rebase to go1.15beta1 2020-07-20 18:36:44 +02:00
Jakub Čajka 6db1c7a908
Rebase to go1.14.6
Security fix for CVE-2020-14040 and CVE-2020-15586
Resolves: BZ#1842708, BZ#1856957, BZ#1853653
2020-07-20 10:27:10 +02:00
Alejandro Sáez 0cb15e561e Add patch that fixes issue in ppc64le
Fix: https://golang.org/issue/39991
Add sources
2020-07-14 14:48:03 +02:00
Jakub Čajka 91d21a3bde
It is FALGS 2020-07-03 08:31:27 +02:00
Jakub Čajka ea99ebaff6
Workaround tests failures on aarch64 2020-07-02 21:35:44 +02:00
Alejandro Sáez ecf8f72447 Rebase to go1.14.4
Related: BZ#1842708
2020-07-02 18:30:16 +00:00
Jakub Čajka fde02715d5
Add new sources and BZ 2020-05-21 08:37:26 +02:00
Álex Sáez 8716ef4de3 Rebase to go1.14.3 2020-05-18 19:59:24 +02:00
Jakub Čajka aa89c2b0f2
Rebase to go1.14.2
Resolves: BZ#1815282
2020-04-20 13:34:36 +02:00
Neal Gompa 1f08860197 Fix building on older than EL8
Signed-off-by: Neal Gompa <ngompa13@gmail.com>
2020-04-18 13:26:06 -04:00
Jakub Čajka 4487a1b142
Rebase to go1.14 proper
Resolves: BZ#1792475
2020-02-26 15:26:46 +01:00
Jakub Čajka 9f5b8dce35
Rebase to go1.14rc1 2020-02-06 13:40:49 +01:00
Fedora Release Engineering 4751ecad2f - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 23:13:43 +00:00
Jakub Čajka fd2a3fb06e
Rebase to go1.14beta1
Resolves: BZ#1792475
2020-01-21 10:24:40 +01:00
Jakub Čajka fbfc80f071
Rebase to go1.13.6 2020-01-13 22:15:11 +01:00
Jakub Čajka 1524937377
Rebase to go1.13.5 2019-12-05 13:39:28 +01:00
Neal Gompa a522b09638 Fix date for changelog entry
Signed-off-by: Neal Gompa <ngompa13@gmail.com>
2019-12-04 09:05:11 -05:00
Neal Gompa 50defcc683 Small fixes to the spec and tighten up the file list
Signed-off-by: Neal Gompa <ngompa@datto.com>
2019-12-02 11:27:25 -05:00
Jakub Čajka f445d76353
Rebase to go1.13.4
Resolves: BZ#1767673
2019-11-01 16:38:39 +01:00
Jakub Čajka 069e0f1f5f
Rebase to go1.13.3
Fix for CVE-2019-17596
Resolves: BZ#1755639, BZ#1763312
2019-10-21 16:20:13 +02:00
Jakub Čajka 151fe9ed9a Rebase to go1.13.1
Fix for CVE-2019-16276
Resolves: BZ#1755970

Signed-off-by: Jakub Čajka <jcajka@redhat.com>
2019-09-30 08:57:44 +02:00
Jakub Čajka 25a05dd355 Back to go1.13 tls1.3 behavior
Signed-off-by: Jakub Čajka <jcajka@redhat.com>
2019-09-05 13:52:39 +02:00
Jakub Čajka 8f7b389463 Rebase to go1.13 2019-09-04 13:26:49 +02:00
Jakub Čajka e45411af09 Rebase to 1.13rc2
Do not enable tls1.3 by default
Related: BZ#1737471
2019-09-03 17:26:29 +02:00
Jakub Čajka af8d391cb2 Actually fix CVE-2019-9514 and CVE-2019-9512 2019-08-28 12:37:49 +02:00
Jakub Čajka 081d5ff6f2 Rebase to 1.13rc1
Fix for CVE-2019-14809, CVE-2019-9514 and CVE-2019-9512
Resolves: BZ#1741816, BZ#1741827 and BZ#1743131
2019-08-26 12:09:05 +02:00
Jakub Čajka 0e633c63ed Fix ICE affecting aarch64
Resolves: BZ#1735290
2019-08-02 10:42:35 +02:00
Fedora Release Engineering 140a7e1b44 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 04:35:33 +00:00
Jakub Čajka 29d5602b19 De-configure sumdb and go proxy 2019-07-24 01:35:09 +02:00
Jakub Čajka f80e5ff991 Rebase to 1.13beta1
Related: BZ#1732118
2019-07-24 00:27:11 +02:00
Jakub Čajka a94ffe83e5 Rebase to 1.12.7
Resolves: BZ#1728056
2019-07-09 16:38:56 +02:00
Jakub Čajka 6c0cf70db5 Rebase to go1.12.6
Resolvse: BZ#1719483
2019-06-12 16:09:25 +02:00
Jakub Čajka a562f38c65 Rebase to go1.12.5
Resolves: BZ#1707187
2019-05-07 14:22:33 +02:00
Jakub Čajka f344d3da25 Rebase to 1.12.2
Resolves: BZ#1688996
2019-04-08 10:49:18 +02:00
Jakub Čajka 9985c0a473 Fixup changelog 2019-04-01 09:59:04 +02:00
Jakub Čajka ef14b33215 Rebase to 1.12.1
Fix CVE-2019-9741
Use weak deps for SCM deps
Resolves: BZ#1688233
2019-03-15 09:53:03 +01:00
Tim Landscheidt ff7ebd7613 Fix requirement for %preun (instead of %postun) scriptlet 2019-03-12 19:01:55 +00:00
Jakub Čajka c74b6b6cb8 Rebase to go1.12 proper
Resolves:  BZ#1680040
2019-02-27 21:29:49 +01:00
Jakub Čajka 73766cf515 Rebase to go1.12rc1 2019-02-18 10:08:01 +01:00
Fedora Release Engineering e3e1bdbf46 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 23:34:32 +00:00
Jakub Čajka 8ae8c86871 Fix for CVE-2019-6486 2019-01-29 12:52:29 +01:00
Jakub Čajka bc69b83b00 Rebase to go1.12beta2 2019-01-11 13:33:12 +01:00
Jakub Čajka 50b7643bf7 Rebase to go1.11.4
Fix for CVE-2018-16875, CVE-2018-16874 and CVE-2018-16873
Resolves: BZ#1659290, BZ#1659289, BZ#1659288
2019-01-02 11:50:21 +01:00
Jakub Čajka b86284b4f3 Rebase to 1.11.2 2018-11-05 15:16:56 +01:00
Jakub Čajka eb7ec5ddc1 Rebase to 1.11.1 2018-10-06 15:39:01 +02:00
Jakub Čajka 3014b94569 Rebase to 1.11 release 2018-08-27 16:21:42 +02:00
Jakub Čajka f1f6f5d515 Rebase to go1.11rc2
Reduce size of bin package
2018-08-23 11:20:46 +02:00
Jakub Čajka a273a5236a Rebase to go 1.11rc1 2018-08-14 14:48:38 +02:00
Jakub Čajka c45c363337 Rebase to go 1.11beta3 2018-08-06 12:28:08 +02:00
Jakub Čajka 4043bb182d Turn on back DWARF compression by default
Use less memory on 32bit targets during build
2018-07-27 15:36:47 +02:00
Jakub Čajka 62f2ae0511 Rebase to 1.11beta2 2018-07-20 10:14:54 +02:00
Jakub Čajka 75f7f03cb6 Turn off DWARF compression by default as it is not supported by rpm/debuginfo 2018-07-18 14:00:27 +02:00
Fedora Release Engineering 72a9f2e921 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 03:12:06 +00:00
Jakub Čajka 19d1adeab4 Rebase to go1.11beta1 2018-07-10 21:46:22 +02:00
Jakub Čajka c333e76e86 Rebase to 1.10.3 2018-06-11 09:04:52 +02:00
Jakub Čajka 6caa43c106 Rebase to 1.10.2
Patch clean up
2018-05-03 11:11:48 +02:00
Jakub Čajka 66a92c4de7 Rebase to 1.10.1
Resolves: BZ#1562270
2018-04-04 10:10:28 +02:00
Jakub Čajka 2389428bde Fix CVE-2018-7187
Resolves: BZ#1546386, BZ#1546388
2018-03-03 11:26:41 +01:00
Jakub Čajka e8abe4385f Add dependency on scm tools so go get works out of box in minimal envs 2018-02-21 13:11:15 +01:00
Jakub Čajka 639f9ab37f Rebase to 1.10 2018-02-21 13:01:34 +01:00
Jakub Čajka 5f45ed12c2 Rebase to 1.10rc2
Fix CVE-2018-6574
Resolves: BZ#1543561, BZ#1543562
2018-02-09 13:49:40 +01:00
Fedora Release Engineering 13bb238b09 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 13:48:58 +00:00
Jakub Čajka 63e3cb4201 Rebase to 1.10rc1 2018-01-27 09:34:18 +01:00
Jakub Čajka 77baa559ba Rebase to 1.10beta2 2018-01-12 12:47:23 +01:00
Jakub Čajka d37b3b5006 Rebase to 1.10beta1
Drop verbose patch as most of it is now implemented by bootstrap tool and is easily toggled by passing -v flag to make.bash
2018-01-09 12:59:49 +01:00
Jakub Čajka 4bc73c764a Add bundled provides 2017-12-06 12:22:23 +01:00
Jakub Čajka b65272222a Temporalily ignore test failures on 32bit intel and aarch64 2017-11-23 16:28:44 +01:00
Jakub Čajka 315b776905 Rebase to 1.9.2
execute correctly pie tests
allow to ignore tests via bcond
reduce size of golang package
2017-11-07 13:42:51 +01:00
Jakub Čajka 920ea39083 add bcond for bootstraping 2017-10-12 15:52:28 +02:00
Jakub Čajka 387b897724 Use corect version 2017-10-06 13:17:08 +02:00
Jakub Čajka ceb83a748c fix CVE-2017-15041 and CVE-2017-15042 2017-10-06 13:12:30 +02:00
Jakub Čajka 903219bc93 Bump to release version 2017-09-15 13:25:24 +02:00
Fedora Release Engineering cb0891bb70 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-02 22:14:37 +00:00
Fedora Release Engineering 494a6d19c3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 11:03:59 +00:00
Jakub Čajka 9941f71a57 Mention upstream issue in s390x-ignore... patch 2017-07-13 12:39:15 +02:00
Jakub Čajka c2d0ceffa4 Merge branch 'master' of ssh://pkgs.fedoraproject.org/golang 2017-07-12 17:43:58 +02:00
Jakub Čajka 3cc854f423 Improved s390x patch 2017-07-12 17:26:26 +02:00
Petr Písař c7375398e7 perl dependency renamed to perl-interpreter <https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules> 2017-07-12 14:32:33 +02:00
Jakub Čajka 5767354120 Bump to 1.9beta2
Workaround build failure on s390x
2017-07-12 13:38:36 +02:00
Jakub Čajka 45041c89fe bump to 1.8.3
fix for CVE-2017-8932
make possible to use 31bit OID in ASN1
Resolves: BZ#1454978, BZ#14551
2017-05-26 14:45:09 +02:00
Jakub Čajka 0a43a1cbaf fix uint64 constant codegen on s390x
Resolves: BZ#1441078
2017-04-21 14:56:13 +02:00
Jakub Čajka 1344685ff3 Revert: Final modularity bootstrap 2017-04-12 12:28:20 +02:00
Jakub Čajka 5706a3480e Final modularity bootstrap 2017-04-12 12:20:02 +02:00
Jakub Čajka ab6ee497cb Revert: modularity bootstrap 2017-04-12 10:29:49 +02:00
Jakub Čajka 29646808b3 Modularity bootstrap :) 2017-04-12 10:26:16 +02:00
Vincent Batts d83d5139a6
Revert "spec: hard code the bootstrap for a modularity build"
This reverts commit 63fbc71112.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-04-11 10:14:48 -04:00
Vincent Batts 63fbc71112
spec: hard code the bootstrap for a modularity build
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-04-11 10:13:43 -04:00
Jakub Čajka 749ec62908 bump to Go 1.8.1
Resolves: BZ#1440345
2017-04-11 10:41:35 +02:00
Jakub Čajka a1ca3c96e0 avoid possibly stale packages due to chacha test file not being test file 2017-02-24 13:41:35 +01:00
Jakub Čajka 1bf7308023 Bump to released 1.8
Ignore ppc64 tests failure for time beeing, haven't managed to reproduce localy
2017-02-20 15:50:48 +01:00
Fedora Release Engineering 7dabca5bf2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-10 11:37:38 +00:00
Jakub Čajka b881112930 make possible to override default traceback level at build time
add sub-package race containing std lib built with -race enabled
Related: BZ#1411242
2017-01-31 15:11:25 +01:00
Jakub Čajka 100fcef237 rebase to go1.8rc3
Resolves: BZ#1411242
2017-01-27 11:39:40 +01:00
Jakub Cajka 0dbd49fdd7 Resolves: BZ#1404679
expose IfInfomsg.X__ifi_pad on s390x
2017-01-20 14:51:16 +01:00
Jakub Čajka 66c8bd8593 Bump to 1.7.4
Resolves: BZ#1400732
2016-12-02 12:06:39 +01:00
Tom Callaway 85dfe17917 re-enable the NIST P-224 curve 2016-11-17 16:08:36 -05:00
Jakub Čajka 663103c2f1 Resolves: BZ#1387067 - golang-1.7.3 is available
added fix for tests failing with latest tzdata
2016-10-20 12:21:38 +02:00
Jakub Čajka d978616527 fix link failure due to relocation overflows on PPC64X 2016-09-23 17:48:07 +02:00
Jakub Čajka 8bda509c5f rebase to 1.7.1
Resolves: BZ#1374103
2016-09-08 17:54:31 +02:00
Jakub Čajka 1fe9869398 update to released version 2016-08-26 12:22:53 +02:00
Jakub Čajka 6896a58aa3 Obsolete golang-vet and golang-cover from golang-googlecode-tools package vet/cover binaries are provided by golang-bin rpm (thanks to jchaloup) 2016-08-08 10:38:08 +02:00
Jakub Čajka cf2fb88587 rebase to go1.7rc5
Resolves: BZ#1342090
2016-08-03 13:47:09 +02:00
Fedora Release Engineering 00c920284f - https://fedoraproject.org/wiki/Changes/golang1.7 2016-07-21 12:33:14 +00:00
Jakub Čajka d36359a723 rebase to 1.7rc2
added s390x build
improved shared lib packaging
Resolves: bz1357602 - CVE-2016-5386
Resolves: bz1342090, bz1342090
2016-07-20 09:32:37 +02:00
Jakub Čajka 04b972ebf4 Rebase to 1.6.2 2016-04-26 17:36:25 +02:00
Jakub Čajka b2c2028475 rebase to 1.6.1
Resolves: bz1324344 - CVE-2016-3959
Resolves: bz1324951 - prelink is gone, /etc/prelink.conf.d/* is no longer used
Resolves: bz1326366 - wrong epoll_event struct for ppc64le/ppc64
2016-04-13 14:44:04 +02:00
Jakub Čajka 263126ff1b Resolves: bz1304701 - rebase to go1.6 release
Resolves: bz1304591 - fix possible stack miss-alignment in callCgoMmap
2016-02-22 16:02:43 +01:00
Dennis Gilmore 30a817d62b - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-03 22:43:43 +00:00
Jakub Čajka f031dfde9c disabled cgo and external linking on ppc64 2016-01-29 12:25:12 +01:00
Jakub Čajka d40cd88359 Resolves bz1292640, rebase to pre-release 1.6
bootstrap for PowerPC
fix rpmlint errors/warning
2016-01-28 14:38:35 +01:00
Jakub Čajka 672b8a1217 rebase to 1.5.3
resolves bz1293451, CVE-2015-8618
2016-01-14 15:13:23 +01:00
Jakub Čajka 85525165e1 Fix bz number from previous commit, should be bz1290543 2015-12-14 14:16:07 +01:00
Jakub Čajka 8b92652b24 bz1290472 Accept x509 certs with negative serial 2015-12-11 12:51:16 +01:00
Jakub Čajka c524af8454 Rebase to 1.5.2(bz1288263)
Spec file clean up
Added basic build options
2015-12-08 17:28:38 +01:00
Vincent Batts ee2b299486 bz1271709 fix from upstream 2015-10-19 20:32:59 -04:00
Vincent Batts c127d6af98 update to go1.5.1 2015-09-09 10:34:27 -04:00
Vincent Batts a68f1b0499 bz1258166: actually remove the macros file .. 2015-09-04 10:07:14 -04:00
Vincent Batts 286f73c812 changelog 2015-09-03 10:38:28 -04:00
Vincent Batts 34fd651dfb bz1258166 remove srpm macros, for go-srpm-macros 2015-09-03 10:36:52 -04:00
Vincent Batts 418a760bf8 adding x86_64 only shared objects 2015-08-27 17:29:16 -04:00
Vincent Batts 7782fc08ed gdb runtime path fix 2015-08-27 14:13:04 -04:00
Vincent Batts 12a31f1822 more test fixes, and holding back on shared objects 2015-08-26 14:55:29 -04:00
Vincent Batts 1a6adea6fb *: fix hostname again, and testdata paths 2015-08-25 15:29:59 -04:00
Vincent Batts 32abaed9de more changelog message 2015-08-25 14:14:36 -04:00
Vincent Batts baf0278ae3 Merge branch 'master' of ssh://pkgs.fedoraproject.org/golang 2015-08-25 14:12:21 -04:00
Vincent Batts 3cb3b22c16 fix zoneinfo test and cleanup others
the find for tests files needed improving.

Also fix the hostname // net-tools requirement
2015-08-25 14:10:59 -04:00
Vincent Batts 01341969cc adding first class gopath URL
bz1166611
2015-08-25 14:03:03 -04:00
Vincent Batts 9297305de1 go1.5 supports shared objects
Now we'll provide the libstd.so for all of golang's stdlib. This way,
libraries and binaries can link against it and have a better security
update story.
2015-08-25 13:50:08 -04:00
Peter Robinson b869aad629 Enable aarch64 2015-08-23 20:49:44 +01:00
Peter Robinson 79fd860ddc Add pcre-devel for tests
fannkuch-parallel
Package libpcre was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpcre.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpcre' found
2015-08-23 20:46:46 +01:00
Peter Robinson 19dca7ffd3 Drop incorrect change for hostname location. The hostname binary moved place in Fedora 17 as part of the usr move feature and /bin is symlinked to /usr/bin. Just specify the actualy proper package name instead of a specific binary path.
Cleanup sources file just to include the current source. Please use "fedpkg new-sources"
command to properly upload sources. Otherwise each time a build is done, or even
"fedpra srpm" or "fedpkg prep" it downloads all the sources specified in the file
2015-08-23 20:46:18 +01:00
Vincent Batts 0d13e2d904 update to go1.5 2015-08-20 22:05:16 +00:00
Vincent Batts 03b73e2ea5 fixing sources reference 2015-08-06 17:22:56 -04:00
Vincent Batts 831ba34f74 updating to go1.5rc1 2015-08-06 15:48:15 -04:00
Vincent Batts f2f58b5244 tar fix from upstream 2015-08-04 15:51:06 -04:00
Vincent Batts 9fc0bc41c8 updating to go1.5beta3 2015-07-30 11:27:23 -04:00
Vincent Batts 78d9b3d3ac add the patch .. 2015-07-30 11:01:17 -04:00
Vincent Batts c1bee09f56 increase ELFRESERVE (bz1248071) 2015-07-30 10:47:32 -04:00
Vincent Batts bb5db89cf5 fix the prerelease versioning 2015-07-29 10:48:47 -04:00
Vincent Batts 6da96f9716 bump release 2015-07-17 16:46:03 -04:00
Vincent Batts 0eec149c76 adding test output, but not failing on it for now 2015-07-17 16:45:01 -04:00
Vincent Batts 2ecad653a5 update to go1.5beta2 2015-07-17 11:02:40 -04:00
Vincent Batts beda572475 fixes missed on initial push of 1.5beta1 2015-07-17 09:39:21 -04:00
Vincent Batts 8d165dfe19 updating go1.5beta1
* updating existing patches
* adding a couple of test patches needed for beta1
* TODO enable %check again
* SO MUCH CLEANUP now that OS and ARCH bootstrapping is not needed
2015-07-16 14:36:06 -04:00
Dennis Gilmore 7dc03d1101 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-17 09:16:23 +00:00
Vincent Batts a8686d833c obsolete packages for upgrade path
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2015-03-19 10:12:49 -04:00
Vincent Batts b5c025475a update to go1.4.2
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2015-02-18 10:26:22 -05:00
Vincent Batts 4c424d4664 update to go1.4.1 2015-01-16 12:57:47 -05:00
Vincent Batts 2ba9c52536 classifying project doc as %doc 2015-01-02 12:20:59 -05:00
Vincent Batts 82982da132 update to go1.4 2014-12-11 10:27:04 -05:00
Vincent Batts 5e609613fc gitignore 2014-12-03 10:51:11 +01:00
Vincent Batts 0ad646d98d bumping to 1.4rc2 2014-12-03 10:49:49 +01:00
Vincent Batts 55020ead86 update to go1.4rc1 2014-11-17 10:46:28 -05:00
Vincent Batts 20cd634d14 update to go1.4beta1 2014-11-04 10:52:19 -05:00
Vincent Batts 84f93201d9 revert macros in subpackage
they'll need to be in their own rpm entirely
2014-10-30 14:32:05 -04:00
Vincent Batts c2c5dc1c66 bump release 2014-10-24 11:07:57 -04:00
Vincent Batts e0d801060b gccgo and macros
for https://bugzilla.redhat.com/show_bug.cgi?id=1156129 we're putting
the macros in its own rpm.

Also, starting the work on rpm dependencies to accomodate gccgo
2014-10-24 10:34:14 -04:00
Vincent Batts 7c25ee88c6 sorting 2014-10-01 15:33:22 +00:00
Vincent Batts 94c0b3b623 update to go1.3.3 2014-10-01 14:38:40 +00:00
Vincent Batts 8cfb9c493a update to go1.3.2
fixes: bz1147324
2014-09-29 13:54:05 +00:00
Vincent Batts 999ceca490 patching the tzinfo test 2014-09-11 22:52:03 +00:00
Peter Robinson 726440c406 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-16 18:34:09 +00:00
Vincent Batts ec1155188c update to go1.3.1 2014-08-13 20:37:18 +00:00
Vincent Batts 81887c2abd fixed a merge 2014-08-13 20:04:30 +00:00
Vincent Batts b025cc279b fixing bz1099206 2014-08-13 19:25:50 +00:00
Vincent Batts ab9b26510d make golang-src noarch again 2014-08-11 15:28:01 +00:00
Vincent Batts dd6f77ac9a don't just update directories 2014-08-11 14:41:34 +00:00
Vincent Batts 1afe7e2655 set source directory timestamps during %install 2014-08-08 21:11:50 +00:00
Vincent Batts 42cdf8daca making the golang-src package arch'ed.
Fixes bz1099206
2014-08-06 22:02:25 +00:00
Vincent Batts 59ec5bd186 actually adding the patch ... 2014-07-21 16:43:50 -04:00
Vincent Batts 374526de5b including archive/tar fix for PAX headers 2014-07-21 16:24:32 -04:00
Vincent Batts 3a4853bd32 fix gdb init for safe-paths
bz981356
2014-07-15 12:01:12 -04:00
Vincent Batts fa7c581616 cleaning up the cross-compile process and deps
bz1105901, bz1101508
2014-07-15 11:26:07 -04:00
Vincent Batts 4086849026 archive/tar patches for performance 2014-07-07 16:11:04 -04:00
Vincent Batts 207296f435 update to go1.3 2014-06-19 11:09:27 -04:00
Vincent Batts ae7853072a updating to go1.3rc2 2014-06-16 14:16:12 -04:00
Dennis Gilmore 472df199bf - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild 2014-06-07 13:00:36 -05:00
Vincent Batts ffa74e040a new arch file shuffling 2014-06-03 15:37:32 -04:00
Vincent Batts dbf2661391 updating BSD_SOURCE patch 2014-06-03 11:20:16 -04:00
Vincent Batts f3f956d5ae update to go1.3rc1 2014-06-03 10:52:54 -04:00
Vincent Batts 2e3bac640a new source 2014-05-21 17:31:06 -04:00
Vincent Batts 0b3722bb33 update to go1.3beta2 2014-05-21 17:30:02 -04:00
Vincent Batts 4620c4841b remove %ghost ownership, so that clobbering occurs 2014-05-21 12:50:07 -04:00
Vincent Batts 8bd3750385 ensure /usr/bin/go is present for the library %post 2014-05-20 17:11:30 -04:00
Vincent Batts 7619d5057c just let go control its own freshness 2014-05-20 15:35:45 -04:00
Vincent Batts c849611c8a another fix for bz1099206 2014-05-20 14:58:54 -04:00
Vincent Batts 61096640f7 issue with %ghost and update-alternatives of /usr/bin/go 2014-05-20 13:13:02 -04:00
Vincent Batts 74686a282e bugfix for bz1099206 2014-05-19 16:39:22 -04:00
Vincent Batts 789ff2e39d nach ein mahl 2014-05-13 13:04:10 -04:00
Vincent Batts e46d680a80 nach ein mahl 2014-05-13 13:01:30 -04:00
Vincent Batts 28979baa99 more rearranging 2014-05-12 15:00:01 -04:00
Vincent Batts 573d0baf6a not sure why go1.2.2 shuffled some of the arch-depenedent files, but so it goes 2014-05-12 09:29:32 -04:00
Vincent Batts c8bd3b738f update to go1.2.2 2014-05-09 08:21:15 -04:00
Vincent Batts 2911c49ac2 more rpmspec for multiarch, to accomodate RHEL6 2014-05-09 07:20:57 -04:00
Vincent Batts 5f099a5852 add excluding the files too 2014-05-07 23:29:08 -04:00
Vincent Batts 6e4126fb01 bump release number 2014-05-07 15:49:17 -04:00
Vincent Batts 9207febd2c missed two files 2014-05-07 15:47:49 -04:00
Vincent Batts df7b191378 1.2.1-6: arch-specific bits
arch-specific source needs to be in arch-specific rpms
2014-05-07 13:39:21 -04:00
Vincent Batts d931512370 work around the glibc-2.19 causing a failed test 2014-05-06 16:50:32 -04:00
Vincent Batts 76f08f5dd7 bz1086900 SIGABRT in tests on fc21 2014-04-11 16:17:08 -04:00
Vincent Batts 8081f3309e bz1010713 directory ownership 2014-04-11 08:51:37 -04:00
Vincent Batts be393a2148 arch bootstrapping and macros
now providing the bootstrapping to allow compiles for all golang
supported architectures, from fedora.
'yum install go' or 'yum install golang' will pull in only the bits
needed for host architecture compiles, but then you could add
'golang-pkg-darwin-amd64' rpm, and build your golang project source
like:

	$> go build myapp.go
	$> file ./myapp
	./myapp: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), statically linked, not stripped
	$> GOOS=darwin GOARCH=amd64 go build myapp.go
	$> file ./myapp
	./myapp: Mach-O 64-bit x86_64 executable
2014-04-10 13:32:57 -04:00
Vincent Batts fd00fb3b64 include rpm macros with %gopath 2014-03-26 15:48:05 -04:00
Adam Miller 01d4c2e64f update to latest upstream 1.2.1 2014-03-04 10:25:43 -06:00
Adam Miller 64f9c1459a fix BSD/SVID patch, and fix up changelog entry (rpmlint was complaining about invalid date) 2014-02-20 14:39:08 -06:00
Adam Miller a9aa1838b7 update hostname patch 2014-02-20 13:16:56 -06:00
Adam Miller 969848f0f9 fix patchlevel for patch200 2014-02-20 13:02:19 -06:00
Adam Miller d0ddbae849 re-order some patches, remove unneeded glibc deprecated macros _BSD_SOURCE and _SVID_SOURCE 2014-02-20 12:16:11 -06:00
Adam Miller 40f74d4d72 replace f21+ hostname patch that fedpkg import deleted 2014-02-19 10:42:29 -06:00
Adam Miller 1318683961 pull in xattr archive/tar from upstream 2014-02-19 10:31:14 -06:00
Vincent Batts 77cba216ba Provide 'go' 2014-02-18 16:56:24 -05:00
Vincent Batts 25b1d04efe skip flaky test 2014-01-24 14:02:19 -05:00
Vincent Batts b5cbd1ebb2 remove godoc dependency 2014-01-16 17:31:32 -05:00
Vincent Batts 5152b3a3e6 removing the elliptic.P224 curve
bz1038683
2013-12-18 14:25:44 -05:00
Vincent Batts 5a84c902e7 updating to upstream go1.2, with notes on two upstream issues
This builds fine for f19, f20 and el6 too, and should be tested now that
go.tools is packaged
bz#1022983
2013-12-03 16:31:13 -05:00
13 changed files with 1406 additions and 806 deletions

95
.gitignore vendored
View File

@ -1,2 +1,97 @@
*.rpm
/go1.1.1.src.tar.gz
/go1.1.2.src.tar.gz
/go1.2.1.src.tar.gz
/go1.2.2.src.tar.gz
/go1.2.src.tar.gz
/go1.3.1.src.tar.gz
/go1.3.2.src.tar.gz
/go1.3.3.src.tar.gz
/go1.3.src.tar.gz
/go1.3beta2.src.tar.gz
/go1.3rc1.src.tar.gz
/go1.3rc2.src.tar.gz
/go1.4.1.src.tar.gz
/go1.4.2.src.tar.gz
/go1.4.src.tar.gz
/go1.4beta1.src.tar.gz
/go1.4rc1.src.tar.gz
/go1.4rc2.src.tar.gz
/go1.5beta1.src.tar.gz
/golang-19087:a15f344a9efa-xattrs.tar
/go1.5beta2.src.tar.gz
/go1.5beta3.src.tar.gz
/go1.5rc1.src.tar.gz
/go1.5.src.tar.gz
/go1.5.1.src.tar.gz
/go1.5.2.src.tar.gz
/Mark.Twain-Tom.Sawyer.txt.bz2
/go1.5.3.src.tar.gz
/go1.6rc1.src.tar.gz
/go1.6.src.tar.gz
/go1.6.1.src.tar.gz
/go1.6.2.src.tar.gz
/go1.7rc2.src.tar.gz
/go1.7rc5.src.tar.gz
/go1.7.src.tar.gz
/go1.7.1.src.tar.gz
/go1.7.3.src.tar.gz
/go1.7.4.src.tar.gz
/go1.8rc3.src.tar.gz
/go1.8.src.tar.gz
/go1.8.1.src.tar.gz
/go1.8.3.src.tar.gz
/go1.9beta2.src.tar.gz
/go1.9.src.tar.gz
/go1.9.1.src.tar.gz
/go1.9.2.src.tar.gz
/go1.10beta1.src.tar.gz
/go1.10beta2.src.tar.gz
/go1.10rc1.src.tar.gz
/go1.10rc2.src.tar.gz
/go1.10.src.tar.gz
/go1.10.1.src.tar.gz
/go1.10.2.src.tar.gz
/go1.10.3.src.tar.gz
/go1.11beta1.src.tar.gz
/go1.11beta2.src.tar.gz
/go1.11beta3.src.tar.gz
/go1.11rc1.src.tar.gz
/go1.11rc2.src.tar.gz
/go1.11.src.tar.gz
/go1.11.1.src.tar.gz
/go1.11.2.src.tar.gz
/go1.11.4.src.tar.gz
/go1.12beta2.src.tar.gz
/go1.12rc1.src.tar.gz
/go1.12.src.tar.gz
/go1.12.1.src.tar.gz
/go1.12.2.src.tar.gz
/go1.12.5.src.tar.gz
/go1.12.6.src.tar.gz
/go1.12.7.src.tar.gz
/go1.13beta1.src.tar.gz
/go1.13rc1.src.tar.gz
/go1.13rc2.src.tar.gz
/go1.13.src.tar.gz
/go1.13.1.src.tar.gz
/go1.13.3.src.tar.gz
/go1.13.4.src.tar.gz
/go1.13.5.src.tar.gz
/go1.13.6.src.tar.gz
/go1.14beta1.src.tar.gz
/go1.14rc1.src.tar.gz
/go1.14.src.tar.gz
/go1.14.2.src.tar.gz
/go1.14.3.src.tar.gz
/go1.14.4.src.tar.gz
/go1.14.6.src.tar.gz
/go1.15beta1.src.tar.gz
/go1.15rc1.src.tar.gz
/go1.15rc2.src.tar.gz
/go1.15.src.tar.gz
/go1.15.1.src.tar.gz
/go1.15.2.src.tar.gz
/go1.15.3.src.tar.gz
/go1.15.4.src.tar.gz
/go1.15.5.src.tar.gz

View File

@ -0,0 +1,88 @@
From edce31a2904846ae74e3c011f2cf5fddc963459e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20=C4=8Cajka?= <jcajka@redhat.com>
Date: Thu, 22 Mar 2018 12:07:32 +0100
Subject: [PATCH 1/3] Don't use the bundled tzdata at runtime, except for the
internal test suite
---
src/time/internal_test.go | 7 +++++--
src/time/zoneinfo_test.go | 3 ++-
src/time/zoneinfo_unix.go | 2 --
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/time/internal_test.go b/src/time/internal_test.go
index 76d5524124..e81ace5f64 100644
--- a/src/time/internal_test.go
+++ b/src/time/internal_test.go
@@ -4,13 +4,15 @@
package time
+import "runtime"
+
func init() {
// force US/Pacific for time zone tests
ForceUSPacificForTesting()
}
func initTestingZone() {
- z, err := loadLocation("America/Los_Angeles", zoneSources[len(zoneSources)-1:])
+ z, err := loadLocation("America/Los_Angeles", zoneSources)
if err != nil {
panic("cannot load America/Los_Angeles for testing: " + err.Error())
}
@@ -21,8 +23,9 @@ func initTestingZone() {
var OrigZoneSources = zoneSources
func forceZipFileForTesting(zipOnly bool) {
- zoneSources = make([]string, len(OrigZoneSources))
+ zoneSources = make([]string, len(OrigZoneSources)+1)
copy(zoneSources, OrigZoneSources)
+ zoneSources = append(zoneSources, runtime.GOROOT()+"/lib/time/zoneinfo.zip")
if zipOnly {
zoneSources = zoneSources[len(zoneSources)-1:]
}
diff --git a/src/time/zoneinfo_test.go b/src/time/zoneinfo_test.go
index 7a55d4f618..6063ca1195 100644
--- a/src/time/zoneinfo_test.go
+++ b/src/time/zoneinfo_test.go
@@ -8,6 +8,7 @@ import (
"fmt"
"os"
"reflect"
+ "runtime"
"testing"
"time"
)
@@ -128,7 +129,7 @@ func TestLoadLocationFromTZData(t *testing.T) {
t.Fatal(err)
}
- tzinfo, err := time.LoadTzinfo(locationName, time.OrigZoneSources[len(time.OrigZoneSources)-1])
+ tzinfo, err := time.LoadTzinfo(locationName, runtime.GOROOT()+"/lib/time/zoneinfo.zip")
if err != nil {
t.Fatal(err)
}
diff --git a/src/time/zoneinfo_unix.go b/src/time/zoneinfo_unix.go
index 88313aa0ed..d9596115ef 100644
--- a/src/time/zoneinfo_unix.go
+++ b/src/time/zoneinfo_unix.go
@@ -12,7 +12,6 @@
package time
import (
- "runtime"
"syscall"
)
@@ -22,7 +21,6 @@ var zoneSources = []string{
"/usr/share/zoneinfo/",
"/usr/share/lib/zoneinfo/",
"/usr/lib/locale/TZ/",
- runtime.GOROOT() + "/lib/time/zoneinfo.zip",
}
func initLocal() {
--
2.14.3

View File

@ -0,0 +1,41 @@
From 817407fc2d6a861e65086388766f58082d38bc0b Mon Sep 17 00:00:00 2001
From: Michael Munday <munday@ca.ibm.com>
Date: Tue, 17 Jan 2017 11:33:38 -0500
Subject: [PATCH 2/3] syscall: expose IfInfomsg.X__ifi_pad on s390x
Exposing this field on s390x improves compatibility with the other
linux architectures, all of which already expose it.
Fixes #18628 and updates #18632.
Change-Id: I08e8e1eb705f898cd8822f8bee0d61ce11d514b5
---
src/syscall/ztypes_linux_s390x.go | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/syscall/ztypes_linux_s390x.go b/src/syscall/ztypes_linux_s390x.go
index 63c4a83b19..b5894255df 100644
--- a/src/syscall/ztypes_linux_s390x.go
+++ b/src/syscall/ztypes_linux_s390x.go
@@ -449,12 +449,12 @@ type RtAttr struct {
}
type IfInfomsg struct {
- Family uint8
- _ uint8
- Type uint16
- Index int32
- Flags uint32
- Change uint32
+ Family uint8
+ X__ifi_pad uint8
+ Type uint16
+ Index int32
+ Flags uint32
+ Change uint32
}
type IfAddrmsg struct {
--
2.14.3

View File

@ -0,0 +1,54 @@
From b38cd2374c2395f5a77802ef8ea3d7ac5b8a86ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20=C4=8Cajka?= <jcajka@redhat.com>
Date: Mon, 27 May 2019 15:12:53 +0200
Subject: [PATCH 3/3] cmd/go: disable Google's proxy and sumdb
---
src/cmd/go/internal/cfg/cfg.go | 10 +++++-----
src/cmd/go/testdata/script/mod_sumdb_golang.txt | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go
index 61dc6bdda6..e8658dc56c 100644
--- a/src/cmd/go/internal/cfg/cfg.go
+++ b/src/cmd/go/internal/cfg/cfg.go
@@ -245,11 +245,11 @@ var (
GOPPC64 = envOr("GOPPC64", fmt.Sprintf("%s%d", "power", objabi.GOPPC64))
GOWASM = envOr("GOWASM", fmt.Sprint(objabi.GOWASM))
- GOPROXY = envOr("GOPROXY", "https://proxy.golang.org,direct")
- GOSUMDB = envOr("GOSUMDB", "sum.golang.org")
- GOPRIVATE = Getenv("GOPRIVATE")
- GONOPROXY = envOr("GONOPROXY", GOPRIVATE)
- GONOSUMDB = envOr("GONOSUMDB", GOPRIVATE)
+ GOPROXY = envOr("GOPROXY", "direct")
+ GOSUMDB = envOr("GOSUMDB", "off")
+ GOPRIVATE = Getenv("GOPRIVATE")
+ GONOPROXY = envOr("GONOPROXY", GOPRIVATE)
+ GONOSUMDB = envOr("GONOSUMDB", GOPRIVATE)
GOINSECURE = Getenv("GOINSECURE")
)
diff --git a/src/cmd/go/testdata/script/mod_sumdb_golang.txt b/src/cmd/go/testdata/script/mod_sumdb_golang.txt
index 40a07fc7e9..50436e32d7 100644
--- a/src/cmd/go/testdata/script/mod_sumdb_golang.txt
+++ b/src/cmd/go/testdata/script/mod_sumdb_golang.txt
@@ -2,12 +2,12 @@
env GOPROXY=
env GOSUMDB=
go env GOPROXY
-stdout '^https://proxy.golang.org,direct$'
+stdout '^direct$'
go env GOSUMDB
-stdout '^sum.golang.org$'
+stdout '^off$'
env GOPROXY=https://proxy.golang.org
go env GOSUMDB
-stdout '^sum.golang.org$'
+stdout '^off$'
# download direct from github
[!net] skip
--
2.21.0

7
fedora.go Normal file
View File

@ -0,0 +1,7 @@
// +build rpm_crashtraceback
package runtime
func init() {
setTraceback("crash")
}

View File

@ -1,27 +0,0 @@
diff -ur go~/src/make.bash go/src/make.bash
--- go~/src/make.bash 2013-05-13 16:07:18.000000000 -0400
+++ go/src/make.bash 2013-05-23 21:20:56.804544307 -0400
@@ -135,7 +135,7 @@
if [ "$1" = "--no-clean" ]; then
buildall=""
fi
-./cmd/dist/dist bootstrap $buildall -v # builds go_bootstrap
+./cmd/dist/dist bootstrap $buildall -vv # builds go_bootstrap
# Delay move of dist tool to now, because bootstrap may clear tool directory.
mv cmd/dist/dist "$GOTOOLDIR"/dist
"$GOTOOLDIR"/go_bootstrap clean -i std
@@ -144,12 +144,12 @@
if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then
echo "# Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH."
GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH \
- "$GOTOOLDIR"/go_bootstrap install -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std
+ "$GOTOOLDIR"/go_bootstrap install -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v -x std
echo
fi
echo "# Building packages and commands for $GOOS/$GOARCH."
-"$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std
+"$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v -x std
echo
rm -f "$GOTOOLDIR"/go_bootstrap

View File

@ -1,510 +0,0 @@
Index: src/pkg/archive/tar/common.go
===================================================================
--- a/src/pkg/archive/tar/common.go
+++ b/src/pkg/archive/tar/common.go
@@ -13,6 +13,7 @@
package tar
import (
+ "bytes"
"errors"
"fmt"
"os"
@@ -174,6 +175,23 @@
c_ISSOCK = 0140000 // Socket
)
+// Keywords for the PAX Extended Header
+const (
+ paxAtime = "atime"
+ paxCharset = "charset"
+ paxComment = "comment"
+ paxCtime = "ctime" // please note that ctime is not a valid pax header.
+ paxGid = "gid"
+ paxGname = "gname"
+ paxLinkpath = "linkpath"
+ paxMtime = "mtime"
+ paxPath = "path"
+ paxSize = "size"
+ paxUid = "uid"
+ paxUname = "uname"
+ paxNone = ""
+)
+
// FileInfoHeader creates a partially-populated Header from fi.
// If fi describes a symlink, FileInfoHeader records link as the link target.
// If fi describes a directory, a slash is appended to the name.
@@ -257,3 +275,25 @@
b, *sp = s[0:n], s[n:]
return
}
+
+func isASCII(s string) bool {
+ for _, c := range s {
+ if c >= 0x80 {
+ return false
+ }
+ }
+ return true
+}
+
+func toASCII(s string) string {
+ if isASCII(s) {
+ return s
+ }
+ var buf bytes.Buffer
+ for _, c := range s {
+ if c < 0x80 {
+ buf.WriteByte(byte(c))
+ }
+ }
+ return buf.String()
+}
Index: src/pkg/archive/tar/reader.go
===================================================================
--- a/src/pkg/archive/tar/reader.go
+++ b/src/pkg/archive/tar/reader.go
@@ -95,45 +95,45 @@
func mergePAX(hdr *Header, headers map[string]string) error {
for k, v := range headers {
switch k {
- case "path":
+ case paxPath:
hdr.Name = v
- case "linkpath":
+ case paxLinkpath:
hdr.Linkname = v
- case "gname":
+ case paxGname:
hdr.Gname = v
- case "uname":
+ case paxUname:
hdr.Uname = v
- case "uid":
+ case paxUid:
uid, err := strconv.ParseInt(v, 10, 0)
if err != nil {
return err
}
hdr.Uid = int(uid)
- case "gid":
+ case paxGid:
gid, err := strconv.ParseInt(v, 10, 0)
if err != nil {
return err
}
hdr.Gid = int(gid)
- case "atime":
+ case paxAtime:
t, err := parsePAXTime(v)
if err != nil {
return err
}
hdr.AccessTime = t
- case "mtime":
+ case paxMtime:
t, err := parsePAXTime(v)
if err != nil {
return err
}
hdr.ModTime = t
- case "ctime":
+ case paxCtime:
t, err := parsePAXTime(v)
if err != nil {
return err
}
hdr.ChangeTime = t
- case "size":
+ case paxSize:
size, err := strconv.ParseInt(v, 10, 0)
if err != nil {
return err
Index: src/pkg/archive/tar/writer.go
===================================================================
--- a/src/pkg/archive/tar/writer.go
+++ b/src/pkg/archive/tar/writer.go
@@ -24,6 +24,7 @@
ErrFieldTooLong = errors.New("archive/tar: header field too long")
ErrWriteAfterClose = errors.New("archive/tar: write after close")
errNameTooLong = errors.New("archive/tar: name too long")
+ errInvalidHeader = errors.New("archive/tar: header field too long or contains invalid values")
)
// A Writer provides sequential writing of a tar archive in POSIX.1 format.
@@ -37,6 +38,7 @@
pad int64 // amount of padding to write after current file entry
closed bool
usedBinary bool // whether the binary numeric field extension was used
+ preferPax bool // use pax header instead of binary numeric header
}
// NewWriter creates a new Writer writing to w.
@@ -65,16 +67,23 @@
}
// Write s into b, terminating it with a NUL if there is room.
-func (tw *Writer) cString(b []byte, s string) {
+// If the value is too long for the field and allowPax is true add a paxheader record instead
+func (tw *Writer) cString(b []byte, s string, allowPax bool, paxKeyword string, paxHeaders map[string]string) {
+ needsPaxHeader := allowPax && len(s) > len(b) || !isASCII(s)
+ if needsPaxHeader {
+ paxHeaders[paxKeyword] = s
+ return
+ }
if len(s) > len(b) {
if tw.err == nil {
tw.err = ErrFieldTooLong
}
return
}
- copy(b, s)
- if len(s) < len(b) {
- b[len(s)] = 0
+ ascii := toASCII(s)
+ copy(b, ascii)
+ if len(ascii) < len(b) {
+ b[len(ascii)] = 0
}
}
@@ -85,17 +94,27 @@
for len(s)+1 < len(b) {
s = "0" + s
}
- tw.cString(b, s)
+ tw.cString(b, s, false, paxNone, nil)
}
// Write x into b, either as octal or as binary (GNUtar/star extension).
-func (tw *Writer) numeric(b []byte, x int64) {
+// If the value is too long for the field and writingPax is enabled both for the field and the add a paxheader record instead
+func (tw *Writer) numeric(b []byte, x int64, allowPax bool, paxKeyword string, paxHeaders map[string]string) {
// Try octal first.
s := strconv.FormatInt(x, 8)
if len(s) < len(b) {
tw.octal(b, x)
return
}
+
+ // If it is too long for octal, and pax is preferred, use a pax header
+ if allowPax && tw.preferPax {
+ tw.octal(b, 0)
+ s := strconv.FormatInt(x, 10)
+ paxHeaders[paxKeyword] = s
+ return
+ }
+
// Too big: use binary (big-endian).
tw.usedBinary = true
for i := len(b) - 1; x > 0 && i >= 0; i-- {
@@ -115,6 +134,15 @@
// WriteHeader calls Flush if it is not the first header.
// Calling after a Close will return ErrWriteAfterClose.
func (tw *Writer) WriteHeader(hdr *Header) error {
+ return tw.writeHeader(hdr, true)
+}
+
+// WriteHeader writes hdr and prepares to accept the file's contents.
+// WriteHeader calls Flush if it is not the first header.
+// Calling after a Close will return ErrWriteAfterClose.
+// As this method is called internally by writePax header to allow it to
+// suppress writing the pax header.
+func (tw *Writer) writeHeader(hdr *Header, allowPax bool) error {
if tw.closed {
return ErrWriteAfterClose
}
@@ -124,31 +152,21 @@
if tw.err != nil {
return tw.err
}
- // Decide whether or not to use PAX extensions
+
+ // a map to hold pax header records, if any are needed
+ paxHeaders := make(map[string]string)
+
// TODO(shanemhansen): we might want to use PAX headers for
// subsecond time resolution, but for now let's just capture
- // the long name/long symlink use case.
- suffix := hdr.Name
- prefix := ""
- if len(hdr.Name) > fileNameSize || len(hdr.Linkname) > fileNameSize {
- var err error
- prefix, suffix, err = tw.splitUSTARLongName(hdr.Name)
- // Either we were unable to pack the long name into ustar format
- // or the link name is too long; use PAX headers.
- if err == errNameTooLong || len(hdr.Linkname) > fileNameSize {
- if err := tw.writePAXHeader(hdr); err != nil {
- return err
- }
- } else if err != nil {
- return err
- }
- }
- tw.nb = int64(hdr.Size)
- tw.pad = -tw.nb & (blockSize - 1) // blockSize is a power of two
+ // too long fields or non ascii characters
header := make([]byte, blockSize)
s := slicer(header)
- tw.cString(s.next(fileNameSize), suffix)
+
+ // keep a reference to the filename to allow to overwrite it later if we detect that we can use ustar longnames instead of pax
+ pathHeaderBytes := s.next(fileNameSize)
+
+ tw.cString(pathHeaderBytes, hdr.Name, true, paxPath, paxHeaders)
// Handle out of range ModTime carefully.
var modTime int64
@@ -156,27 +174,55 @@
modTime = hdr.ModTime.Unix()
}
- tw.octal(s.next(8), hdr.Mode) // 100:108
- tw.numeric(s.next(8), int64(hdr.Uid)) // 108:116
- tw.numeric(s.next(8), int64(hdr.Gid)) // 116:124
- tw.numeric(s.next(12), hdr.Size) // 124:136
- tw.numeric(s.next(12), modTime) // 136:148
- s.next(8) // chksum (148:156)
- s.next(1)[0] = hdr.Typeflag // 156:157
- tw.cString(s.next(100), hdr.Linkname) // linkname (157:257)
- copy(s.next(8), []byte("ustar\x0000")) // 257:265
- tw.cString(s.next(32), hdr.Uname) // 265:297
- tw.cString(s.next(32), hdr.Gname) // 297:329
- tw.numeric(s.next(8), hdr.Devmajor) // 329:337
- tw.numeric(s.next(8), hdr.Devminor) // 337:345
- tw.cString(s.next(155), prefix) // 345:500
+ tw.octal(s.next(8), hdr.Mode) // 100:108
+ tw.numeric(s.next(8), int64(hdr.Uid), true, paxUid, paxHeaders) // 108:116
+ tw.numeric(s.next(8), int64(hdr.Gid), true, paxGid, paxHeaders) // 116:124
+ tw.numeric(s.next(12), hdr.Size, true, paxSize, paxHeaders) // 124:136
+ tw.numeric(s.next(12), modTime, false, paxNone, nil) // 136:148 --- consider using pax for finer granularity
+ s.next(8) // chksum (148:156)
+ s.next(1)[0] = hdr.Typeflag // 156:157
+
+ tw.cString(s.next(100), hdr.Linkname, true, paxLinkpath, paxHeaders)
+
+ copy(s.next(8), []byte("ustar\x0000")) // 257:265
+ tw.cString(s.next(32), hdr.Uname, true, paxUname, paxHeaders) // 265:297
+ tw.cString(s.next(32), hdr.Gname, true, paxGname, paxHeaders) // 297:329
+ tw.numeric(s.next(8), hdr.Devmajor, false, paxNone, nil) // 329:337
+ tw.numeric(s.next(8), hdr.Devminor, false, paxNone, nil) // 337:345
+
+ // keep a reference to the prefix to allow to overwrite it later if we detect that we can use ustar longnames instead of pax
+ prefixHeaderBytes := s.next(155)
+ tw.cString(prefixHeaderBytes, "", false, paxNone, nil) // 345:500 prefix
+
// Use the GNU magic instead of POSIX magic if we used any GNU extensions.
if tw.usedBinary {
copy(header[257:265], []byte("ustar \x00"))
}
- // Use the ustar magic if we used ustar long names.
- if len(prefix) > 0 {
- copy(header[257:265], []byte("ustar\000"))
+
+ _, paxPathUsed := paxHeaders[paxPath]
+ // try to use a ustar header when only the name is too long
+ if !tw.preferPax && len(paxHeaders) == 1 && paxPathUsed {
+ suffix := hdr.Name
+ prefix := ""
+ if len(hdr.Name) > fileNameSize && isASCII(hdr.Name) {
+ var err error
+ prefix, suffix, err = tw.splitUSTARLongName(hdr.Name)
+ if err == nil {
+ // ok we can use a ustar long name instead of pax, now correct the fields
+
+ // remove the path field from the pax header. this will suppress the pax header
+ delete(paxHeaders, paxPath)
+
+ // update the path fields
+ tw.cString(pathHeaderBytes, suffix, false, paxNone, nil)
+ tw.cString(prefixHeaderBytes, prefix, false, paxNone, nil)
+
+ // Use the ustar magic if we used ustar long names.
+ if len(prefix) > 0 {
+ copy(header[257:265], []byte("ustar\000"))
+ }
+ }
+ }
}
// The chksum field is terminated by a NUL and a space.
@@ -190,8 +236,18 @@
return tw.err
}
+ if len(paxHeaders) > 0 {
+ if !allowPax {
+ return errInvalidHeader
+ }
+ if err := tw.writePAXHeader(hdr, paxHeaders); err != nil {
+ return err
+ }
+ }
+ tw.nb = int64(hdr.Size)
+ tw.pad = (blockSize - (tw.nb % blockSize)) % blockSize
+
_, tw.err = tw.w.Write(header)
-
return tw.err
}
@@ -218,7 +274,7 @@
// writePaxHeader writes an extended pax header to the
// archive.
-func (tw *Writer) writePAXHeader(hdr *Header) error {
+func (tw *Writer) writePAXHeader(hdr *Header, paxHeaders map[string]string) error {
// Prepare extended header
ext := new(Header)
ext.Typeflag = TypeXHeader
@@ -229,18 +285,23 @@
// with the current pid.
pid := os.Getpid()
dir, file := path.Split(hdr.Name)
- ext.Name = path.Join(dir,
- fmt.Sprintf("PaxHeaders.%d", pid), file)[0:100]
+ fullName := path.Join(dir,
+ fmt.Sprintf("PaxHeaders.%d", pid), file)
+
+ ascii := toASCII(fullName)
+ if len(ascii) > 100 {
+ ascii = ascii[:100]
+ }
+ ext.Name = ascii
// Construct the body
var buf bytes.Buffer
- if len(hdr.Name) > fileNameSize {
- fmt.Fprint(&buf, paxHeader("path="+hdr.Name))
+
+ for k, v := range paxHeaders {
+ fmt.Fprint(&buf, paxHeader(k+"="+v))
}
- if len(hdr.Linkname) > fileNameSize {
- fmt.Fprint(&buf, paxHeader("linkpath="+hdr.Linkname))
- }
+
ext.Size = int64(len(buf.Bytes()))
- if err := tw.WriteHeader(ext); err != nil {
+ if err := tw.writeHeader(ext, false); err != nil {
return err
}
if _, err := tw.Write(buf.Bytes()); err != nil {
Index: src/pkg/archive/tar/writer_test.go
===================================================================
--- a/src/pkg/archive/tar/writer_test.go
+++ b/src/pkg/archive/tar/writer_test.go
@@ -243,15 +243,110 @@
}
}
+func TestPaxSymlink(t *testing.T) {
+ // Create an archive with a large linkname
+ fileinfo, err := os.Stat("testdata/small.txt")
+ if err != nil {
+ t.Fatal(err)
+ }
+ hdr, err := FileInfoHeader(fileinfo, "")
+ hdr.Typeflag = TypeSymlink
+ if err != nil {
+ t.Fatalf("os.Stat:1 %v", err)
+ }
+ // Force a PAX long linkname to be written
+ longLinkname := strings.Repeat("1234567890/1234567890", 10)
+ hdr.Linkname = longLinkname
+
+ hdr.Size = 0
+ var buf bytes.Buffer
+ writer := NewWriter(&buf)
+ if err := writer.WriteHeader(hdr); err != nil {
+ t.Fatal(err)
+ }
+ if err := writer.Close(); err != nil {
+ t.Fatal(err)
+ }
+ // Simple test to make sure PAX extensions are in effect
+ if !bytes.Contains(buf.Bytes(), []byte("PaxHeaders.")) {
+ t.Fatal("Expected at least one PAX header to be written.")
+ }
+ // Test that we can get a long name back out of the archive.
+ reader := NewReader(&buf)
+ hdr, err = reader.Next()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if hdr.Linkname != longLinkname {
+ t.Fatal("Couldn't recover long link name")
+ }
+}
+
+func TestPaxNonAscii(t *testing.T) {
+ // Create an archive with non ascii. These should trigger a pax header
+ // because pax headers have a defined utf-8 encoding.
+ fileinfo, err := os.Stat("testdata/small.txt")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ hdr, err := FileInfoHeader(fileinfo, "")
+ if err != nil {
+ t.Fatalf("os.Stat:1 %v", err)
+ }
+
+ // some sample data
+ chineseFilename := "文件名"
+ chineseGroupname := "組"
+ chineseUsername := "用戶名"
+
+ hdr.Name = chineseFilename
+ hdr.Gname = chineseGroupname
+ hdr.Uname = chineseUsername
+
+ contents := strings.Repeat(" ", int(hdr.Size))
+
+ var buf bytes.Buffer
+ writer := NewWriter(&buf)
+ if err := writer.WriteHeader(hdr); err != nil {
+ t.Fatal(err)
+ }
+ if _, err = writer.Write([]byte(contents)); err != nil {
+ t.Fatal(err)
+ }
+ if err := writer.Close(); err != nil {
+ t.Fatal(err)
+ }
+ // Simple test to make sure PAX extensions are in effect
+ if !bytes.Contains(buf.Bytes(), []byte("PaxHeaders.")) {
+ t.Fatal("Expected at least one PAX header to be written.")
+ }
+ // Test that we can get a long name back out of the archive.
+ reader := NewReader(&buf)
+ hdr, err = reader.Next()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if hdr.Name != chineseFilename {
+ t.Fatal("Couldn't recover unicode name")
+ }
+ if hdr.Gname != chineseGroupname {
+ t.Fatal("Couldn't recover unicode group")
+ }
+ if hdr.Uname != chineseUsername {
+ t.Fatal("Couldn't recover unicode user")
+ }
+}
+
func TestPAXHeader(t *testing.T) {
medName := strings.Repeat("CD", 50)
longName := strings.Repeat("AB", 100)
paxTests := [][2]string{
- {"name=/etc/hosts", "19 name=/etc/hosts\n"},
+ {paxPath + "=/etc/hosts", "19 path=/etc/hosts\n"},
{"a=b", "6 a=b\n"}, // Single digit length
{"a=names", "11 a=names\n"}, // Test case involving carries
- {"name=" + longName, fmt.Sprintf("210 name=%s\n", longName)},
- {"name=" + medName, fmt.Sprintf("110 name=%s\n", medName)}}
+ {paxPath + "=" + longName, fmt.Sprintf("210 path=%s\n", longName)},
+ {paxPath + "=" + medName, fmt.Sprintf("110 path=%s\n", medName)}}
for _, test := range paxTests {
key, expected := test[0], test[1]

View File

@ -1,62 +0,0 @@
Index: src/pkg/archive/tar/writer.go
===================================================================
--- a/src/pkg/archive/tar/writer.go
+++ b/src/pkg/archive/tar/writer.go
@@ -263,8 +263,11 @@
length--
}
i := strings.LastIndex(name[:length], "/")
- nlen := length - i - 1
- if i <= 0 || nlen > fileNameSize || nlen == 0 {
+ // nlen contains the resulting length in the name field.
+ // plen contains the resulting length in the prefix field.
+ nlen := len(name) - i - 1
+ plen := i
+ if i <= 0 || nlen > fileNameSize || nlen == 0 || plen > fileNamePrefixSize {
err = errNameTooLong
return
}
Index: src/pkg/archive/tar/writer_test.go
===================================================================
--- a/src/pkg/archive/tar/writer_test.go
+++ b/src/pkg/archive/tar/writer_test.go
@@ -355,3 +355,39 @@
}
}
}
+
+func TestUSTARLongName(t *testing.T) {
+ // Create an archive with a path that failed to split with USTAR extension in previous versions.
+ fileinfo, err := os.Stat("testdata/small.txt")
+ if err != nil {
+ t.Fatal(err)
+ }
+ hdr, err := FileInfoHeader(fileinfo, "")
+ hdr.Typeflag = TypeDir
+ if err != nil {
+ t.Fatalf("os.Stat:1 %v", err)
+ }
+ // Force a PAX long name to be written. The name was taken from a practical example
+ // that fails and replaced ever char through numbers to anonymize the sample.
+ longName := "/0000_0000000/00000-000000000/0000_0000000/00000-0000000000000/0000_0000000/00000-0000000-00000000/0000_0000000/00000000/0000_0000000/000/0000_0000000/00000000v00/0000_0000000/000000/0000_0000000/0000000/0000_0000000/00000y-00/0000/0000/00000000/0x000000/"
+ hdr.Name = longName
+
+ hdr.Size = 0
+ var buf bytes.Buffer
+ writer := NewWriter(&buf)
+ if err := writer.WriteHeader(hdr); err != nil {
+ t.Fatal(err)
+ }
+ if err := writer.Close(); err != nil {
+ t.Fatal(err)
+ }
+ // Test that we can get a long name back out of the archive.
+ reader := NewReader(&buf)
+ hdr, err = reader.Next()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if hdr.Name != longName {
+ t.Fatal("Couldn't recover long name")
+ }
+}

View File

@ -1,13 +0,0 @@
Index: go/src/pkg/os/os_test.go
===================================================================
--- go.orig/src/pkg/os/os_test.go
+++ go/src/pkg/os/os_test.go
@@ -842,7 +842,7 @@ func run(t *testing.T, cmd []string) str
if err != nil {
t.Fatal(err)
}
- p, err := StartProcess("/bin/hostname", []string{"hostname"}, &ProcAttr{Files: []*File{nil, w, Stderr}})
+ p, err := StartProcess("/usr/bin/hostname", []string{"hostname"}, &ProcAttr{Files: []*File{nil, w, Stderr}})
if err != nil {
t.Fatal(err)
}

View File

@ -1,2 +1 @@
add-auto-load-safe-path /usr/lib/golang/src/pkg/runtime/runtime-gdb.py
add-auto-load-safe-path /usr/lib64/golang/src/pkg/runtime/runtime-gdb.py
add-auto-load-safe-path /usr/lib/golang/src/runtime/runtime-gdb.py

View File

@ -1,3 +0,0 @@
# there are ELF files in src which are testdata and shouldn't be modified
-b /usr/lib/golang/src
-b /usr/lib64/golang/src

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
705feb2246c8ddaf820d7e171f1430c5 go1.1.2.src.tar.gz
SHA512 (go1.15.5.src.tar.gz) = 8e1d71f628d364b949b1e124af8950a563bbe9d9ae73b94c66af6ce029f67c26e2654556c0c118d0bc8566af52a7e9ed736b4667bbef7ccdab2bd338c43e6eb4