From: Shengjing Zhu Date: Sun, 24 Jan 2021 19:15:38 +0000 (+0000) Subject: Import golang-1.11_1.11.6-1+deb10u4.debian.tar.xz X-Git-Tag: archive/raspbian/1.11.6-1+rpi1+deb10u4^2~13^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=293619570d43d2996e35fd3a3cf8055b400ba709;p=golang-1.11.git Import golang-1.11_1.11.6-1+deb10u4.debian.tar.xz [dgit import tarball golang-1.11 1.11.6-1+deb10u4 golang-1.11_1.11.6-1+deb10u4.debian.tar.xz] --- 293619570d43d2996e35fd3a3cf8055b400ba709 diff --git a/changelog b/changelog new file mode 100644 index 0000000..e33669a --- /dev/null +++ b/changelog @@ -0,0 +1,1232 @@ +golang-1.11 (1.11.6-1+deb10u4) buster-security; urgency=high + + * Team upload. + + [ Dr. Tobias Quathamer ] + * cryptobyte: fix panic due to malformed ASN.1 inputs on 32-bit archs + https://github.com/golang/go/issues/36837 + CVE-2020-7919 + * net/http: Expect 100-continue panics in httputil.ReverseProxy + https://github.com/golang/go/issues/34902 + CVE-2020-15586 + * encoding/binary: ReadUvarint and ReadVarint can read an unlimited + number of bytes from invalid inputs + https://github.com/golang/go/issues/40618 + CVE-2020-16845 + + [ Shengjing Zhu ] + * crypto/elliptic: incorrect operations on the P-224 curve + https://github.com/golang/go/issues/43786 + CVE-2021-3114 + + -- Shengjing Zhu Mon, 25 Jan 2021 03:15:38 +0800 + +golang-1.11 (1.11.6-1+deb10u3) buster-security; urgency=high + + * crypto/dsa: prevent bad public keys from causing panic + https://github.com/golang/go/issues/34960 + CVE-2019-17596 + + -- Dr. Tobias Quathamer Sat, 19 Oct 2019 14:12:42 +0200 + +golang-1.11 (1.11.6-1+deb10u2) buster-security; urgency=high + + * Fix normalization of headers with spaces before the colon. + https://github.com/golang/go/issues/34541 + CVE-2019-16276 + * Refresh patches + * Adapt gbp.conf for security branch + + -- Dr. Tobias Quathamer Thu, 26 Sep 2019 11:55:04 +0200 + +golang-1.11 (1.11.6-1+deb10u1) buster-security; urgency=high + + * Fix Denial of Service vulnerabilities in the HTTP/2 implementation. + https://github.com/golang/go/issues/33631 + CVE-2019-9512, CVE-2019-9514 + * Fix multiple Parsing Issues in URL.Parse + https://github.com/golang/go/issues/29098 + CVE-2019-14809 + + -- Dr. Tobias Quathamer Thu, 15 Aug 2019 21:48:59 +0200 + +golang-1.11 (1.11.6-1) unstable; urgency=medium + + * New upstream version 1.11.6, fixing CVE-2019-9741. (Closes: #924630) + * Delete d/patches/0005-fix-MIPS-SGTconst-with-shift-rules.patch, applied + upstream. + * Refreshed other patches. + + -- Michael Hudson-Doyle Mon, 18 Mar 2019 09:37:17 +1300 + +golang-1.11 (1.11.5-1) unstable; urgency=high + + * New upstream version 1.11.5, fixing CVE-2019-6486 + + -- Michael Stapelberg Thu, 24 Jan 2019 08:23:06 +0100 + +golang-1.11 (1.11.4-4) unstable; urgency=medium + + * Team upload. + * Add patch "unix: fix Fstatat by using fillStat_t on linux/mips64x" + This fixes the "Fstatat: returned stat does not match Stat/Lstat" + errors detected by TestFstatat. + See https://go-review.googlesource.com/c/sys/+/155747 + * Re-enable TestFstatat on mips64el + + -- Anthony Fok Fri, 28 Dec 2018 11:39:40 -0700 + +golang-1.11 (1.11.4-3) unstable; urgency=medium + + * Team upload. + * Add patch "cmd/compile: fix MIPS SGTconst-with-shift rules" + by Cherry Zhang. This fixes the root problem behind the + "slice bounds out of range" build error seen in 1.11.4 + on mips and mipsel architectures. + See https://go-review.googlesource.com/c/go/+/155798 + * Bump Standards-Version to 4.3.0 (no change) + + -- Anthony Fok Wed, 26 Dec 2018 00:24:18 -0700 + +golang-1.11 (1.11.4-2) unstable; urgency=medium + + * Switch team address to tracker.d.o + * Update patches for git-buildpackage + * Add new patch to disable test for mips64el + * Do not compress favicon.ico. + Thanks to Dato Simó (Closes: #917132) + + -- Dr. Tobias Quathamer Sun, 23 Dec 2018 19:26:45 +0100 + +golang-1.11 (1.11.4-1) unstable; urgency=medium + + * New upstream version 1.11.4 + * Make lintian override agnostic of golang version + + -- Dr. Tobias Quathamer Sun, 16 Dec 2018 13:48:52 +0100 + +golang-1.11 (1.11.3-1) unstable; urgency=medium + + * New upstream version 1.11.3 + - Refresh patches + * Update gbp.conf to new style syntax + * Suggest brz as alternative to bzr; it provides the same command-line API. + * Add myself to Uploaders + + -- Dr. Tobias Quathamer Thu, 13 Dec 2018 23:23:40 +0100 + +golang-1.11 (1.11.2-2) unstable; urgency=medium + + * d/patches/arm64-arm64asm-recognise-new-ssbb-pssbb-mnemonics-fr.patch: + backport workaround for objdump's support of newer mnemonics on arm64. + + -- Michael Hudson-Doyle Mon, 26 Nov 2018 13:24:37 +1300 + +golang-1.11 (1.11.2-1) unstable; urgency=medium + + * Team upload. + + [ Michael Hudson-Doyle ] + * New upstream major version. + * Update debhelper compat level to 11. + * Remove GOCACHE files after running tests. + * Stop dh_strip_nondeterminism from looking at testdata directories. + + [ Dr. Tobias Quathamer ] + * Build-Depend on debhelper v11 + * Override two false positive Lintian errors (missing depends + on sensible-utils) + * Add Lintian overrides for testdata + * Include /usr/share/dpkg/architecture.mk for DEB_HOST_ARCH + * Refresh patch for new upstream version + * Fix Lintian warnings about wrong interpreter path + * Make two scripts executable which have been missed by upstream + * Remove three unneeded lintian overrides + * Use HTTPS URL for d/watch + * Update to Standards-Version 4.2.1 + - Use HTTPS for d/copyright + * Update d/copyright + + -- Dr. Tobias Quathamer Tue, 20 Nov 2018 22:51:44 +0100 + +golang-1.10 (1.10.3-1) unstable; urgency=medium + + * New upstream version 1.10.3 + * Restore changelog entry for 1.10.1-3, and fix that for 1.10.2-1, oops. + + -- Michael Hudson-Doyle Thu, 14 Jun 2018 14:55:58 +1200 + +golang-1.10 (1.10.2-1) unstable; urgency=medium + + * New upstream version 1.10.2. + - d/patches/0003-Backport_nopie_fix.patch: removed, now included upstream. + - d/patches/0004-Backport_mips_octeon3_fp_fix.patch: removed, also included + upstream. + + -- Michael Hudson-Doyle Wed, 23 May 2018 15:24:03 +1200 + +golang-1.10 (1.10.1-3) unstable; urgency=high + + * Team upload. + + [ Michael Hudson-Doyle ] + * Install the 'misc' and 'api' directories as part of the golang-1.10-src + package as some tools (vgo, go tool trace) expect them to be there. + (Closes: 894992¸ LP: #1743598) + + [ Martín Ferrari ] + * Backport fix for FP bug in mips/Octeon III. Closes: #892088. Raising + severity. + + -- Martín Ferrari Sun, 22 Apr 2018 21:21:05 +0000 + +golang-1.10 (1.10.1-2) unstable; urgency=medium + + * Team upload. + * Backport patch that fixes FTBFS in arm64. + * debian/copyright: Update attribution. + * debian/source: Update lintian-overrides. + + -- Martín Ferrari Wed, 18 Apr 2018 15:38:49 +0000 + +golang-1.10 (1.10.1-1) unstable; urgency=medium + + * New upstream version 1.10.1. + * d/patches/0002-reproducible-BUILD_PATH_PREFIX_MAP.patch: update patch tags + to reference upstream discussion of this topic. + * d/control, d/control.in: Update Vcs-* to point to salsa. + + -- Michael Hudson-Doyle Tue, 03 Apr 2018 15:34:12 +1200 + +golang-1.10 (1.10-1) unstable; urgency=medium + + * New upstream version 1.10 + + -- Michael Stapelberg Sat, 17 Feb 2018 12:57:14 +0100 + +golang-1.10 (1.10~rc2-1) unstable; urgency=medium + + * New upstream version, fixing CVE-2018-6574. + * d/patches/0001-os-signal-skip-TestTerminalSignal-if-posix_openpt-fa.patch, + d/patches/0003-cmd-vendor-github.com-google-pprof-cherry-pick-fix-t.patch, + d/patches/0004-cmd-link-internal-loadelf-fix-logic-for-computing-EL.patch: + removed, now included upstream. + + -- Michael Hudson-Doyle Thu, 08 Feb 2018 10:46:52 +1300 + +golang-1.10 (1.10~rc1-2) unstable; urgency=medium + + * d/patches/0004-cmd-link-internal-loadelf-fix-logic-for-computing-EL.patch: + Backport from upstream to fix build issues on armhf (causes ftbfs on + Ubuntu but not Debian for some reason, but could produce broken binaries + on Debian too). + + -- Michael Hudson-Doyle Wed, 07 Feb 2018 22:10:22 +1300 + +golang-1.10 (1.10~rc1-1) unstable; urgency=medium + + * New upstream version 1.10~rc1. + * d/patches/0004-cmd-dist-use-buildmode-pie-for-pie-testing.patch, + d/patches/0006-misc-cgo-testcarchive-use-no-pie-where-needed.patch, + d/patches/0003-Do-not-use-SP-as-index-reg.patch: removed, included upstream. + * d/patches/0002-reproducible-BUILD_PATH_PREFIX_MAP.patch: refreshed. + * d/patches/0001-os-signal-skip-TestTerminalSignal-if-posix_openpt-fa.patch: + Add to fix test failure in chroot. + * d/patches/0003-cmd-vendor-github.com-google-pprof-cherry-pick-fix-t.patch: + Add to fix test failure when $HOME is not writable. + * d/rules: Set GOCACHE to "off" during build to avoid shipping cache files. + + -- Michael Hudson-Doyle Wed, 31 Jan 2018 14:46:12 +1300 + +golang-1.9 (1.9.2-4) unstable; urgency=medium + + * Enable building on mips, mipsel and mips64. (Closes: 879764) + + -- Michael Hudson-Doyle Fri, 08 Dec 2017 14:09:24 +1300 + +golang-1.9 (1.9.2-3) unstable; urgency=medium + + * Remove workaround for now fixed debhelper bug #879762 + * Backport three patches from upstream to fix ftbfs on ppc64el with new kernel. + + -- Michael Hudson-Doyle Tue, 31 Oct 2017 12:16:17 +1300 + +golang-1.9 (1.9.2-2) unstable; urgency=medium + + [ Martín Ferrari ] + * Add debian/patches/0003-Do-not-use-SP-as-index-reg.patch (Closes: #877541) + + -- Michael Stapelberg Fri, 27 Oct 2017 08:55:32 +0200 + +golang-1.9 (1.9.2-1) unstable; urgency=medium + + * New upstream version 1.9.2 + * Work around debhelper bug #879762 + + -- Michael Hudson-Doyle Thu, 26 Oct 2017 13:46:40 +1300 + +golang-1.9 (1.9.1-2) unstable; urgency=medium + + * Update debian/copyright (Closes: #873740) + + -- Michael Stapelberg Mon, 09 Oct 2017 18:03:49 +0200 + +golang-1.9 (1.9.1-1) unstable; urgency=medium + + * New upstream release. + * Use my @debian.org address in Uploaders. + + -- Michael Hudson-Doyle Fri, 06 Oct 2017 13:04:46 +1300 + +golang-1.9 (1.9-1) unstable; urgency=medium + + [ Michael Hudson-Doyle ] + * New upstream release. + * Suppress some new lintian errors in golang-1.9-src. + + [ Michael Stapelberg ] + * Add debian/patches/0002-reproducible-BUILD_PATH_PREFIX_MAP.patch + + -- Michael Hudson-Doyle Wed, 30 Aug 2017 16:31:09 +1200 + +golang-1.8 (1.8.3-1) unstable; urgency=medium + + * New upstream release. (Closes: 863292, 863307) + + -- Michael Hudson-Doyle Thu, 01 Jun 2017 21:06:00 +1200 + +golang-1.8 (1.8.1-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Hudson-Doyle Mon, 10 Apr 2017 13:29:28 +1200 + +golang-1.8 (1.8-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Hudson-Doyle Thu, 02 Mar 2017 10:11:55 +1300 + +golang-1.8 (1.8~rc3-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Hudson-Doyle Fri, 27 Jan 2017 10:23:56 +1300 + +golang-1.8 (1.8~rc2-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Hudson-Doyle Fri, 20 Jan 2017 12:15:27 +1300 + +golang-1.8 (1.8~rc1-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Hudson-Doyle Mon, 16 Jan 2017 15:51:54 +1300 + +golang-1.8 (1.8~beta2-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Hudson-Doyle Tue, 20 Dec 2016 14:19:55 +1300 + +golang-1.8 (1.8~beta1-1) unstable; urgency=medium + + * New upstream release. + * Remove d/patches/cl-29995--tzdata-2016g.patch, included upstream. + + -- Michael Hudson-Doyle Wed, 07 Dec 2016 17:38:57 -0800 + +golang-1.7 (1.7.4-1) unstable; urgency=medium + + * Update to 1.7.4 upstream release (Closes: #846545) + - https://groups.google.com/d/topic/golang-announce/2lP5z9i9ySY/discussion + - https://golang.org/issue/17965 (potential DoS vector in net/http) + - https://github.com/golang/go/compare/go1.7.3...go1.7.4 + + -- Tianon Gravi Fri, 02 Dec 2016 13:30:36 -0800 + +golang-1.7 (1.7.3-1) unstable; urgency=medium + + * New upstream release. + * Delete d/patches/cl-28850.patch, applied upstream. + + -- Michael Hudson-Doyle Thu, 20 Oct 2016 09:10:47 +1300 + +golang-1.7 (1.7.1-3) unstable; urgency=medium + + * Backport CL 29995 for tzdata 2016g changes (Closes: #839317) + + -- Tianon Gravi Mon, 03 Oct 2016 15:12:28 -0700 + +golang-1.7 (1.7.1-2) unstable; urgency=medium + + * Add upstream patch for s390x FTBFS + + -- Tianon Gravi Mon, 12 Sep 2016 09:32:10 -0700 + +golang-1.7 (1.7.1-1) unstable; urgency=medium + + * New upstream release. + * Re-enable tests on s390x now that gcc-6 has been fixed in unstable. + + -- Michael Hudson-Doyle Thu, 08 Sep 2016 13:04:33 +1200 + +golang-1.7 (1.7-3) unstable; urgency=medium + + * Add "s390x" to Architectures + + -- Tianon Gravi Tue, 23 Aug 2016 07:35:16 -0700 + +golang-1.7 (1.7-2) unstable; urgency=medium + + * Disable tests on armel. + + -- Michael Hudson-Doyle Tue, 16 Aug 2016 15:18:07 +1200 + +golang-1.7 (1.7-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Hudson-Doyle Tue, 16 Aug 2016 11:37:34 +1200 + +golang-1.7 (1.7~rc4-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Hudson-Doyle Tue, 02 Aug 2016 15:10:22 +1200 + +golang-1.7 (1.7~rc3-1) unstable; urgency=medium + + [ Tianon Gravi ] + * Remove outdated README files (README.source and README.Debian) + + [ Michael Hudson-Doyle ] + * New upstream release. + * Suppress inaccurate source-is-missing lintian warnings. + * Update Standards-Version to 3.9.8 (no changes required). + + -- Tianon Gravi Mon, 11 Jul 2016 18:31:57 -0700 + +golang-1.7 (1.7~rc2-1) unstable; urgency=medium + + * Update to 1.7rc2 upstream release. + + -- Michael Hudson-Doyle Tue, 19 Jul 2016 14:40:14 +1200 + +golang-1.7 (1.7~rc1-1) unstable; urgency=medium + + [ Paul Tagliamonte ] + * Use a secure transport for the Vcs-Git and Vcs-Browser URL + + [ Tianon Gravi ] + * Update to 1.7rc1 upstream release (new packages, not used by default; see + also src:golang-defaults) + * Update Vcs-Git to reference a particular branch + + -- Tianon Gravi Mon, 11 Jul 2016 16:10:12 -0700 + +golang-1.6 (1.6.2-2) unstable; urgency=medium + + * Update "golang-any" in "Build-Depends" to fallback to "golang-go | gccgo" + (will help with backporting) + + -- Tianon Gravi Thu, 23 Jun 2016 20:01:00 -0700 + +golang-1.6 (1.6.2-1) unstable; urgency=medium + + * Update to 1.6.2 upstream release (Closes: #825696) + * Build-Depend on golang-any instead of golang-go (Closes: #824421) + + -- Michael Hudson-Doyle Fri, 03 Jun 2016 07:50:44 -0700 + +golang-1.6 (1.6.1-1) unstable; urgency=medium + + * Build golang version-specific packages (Closes: #818415) + * Things that (conceptually at least) move to new golang version independent + golang-defaults source package: + - Man pages. + - Suggesting golang-golang-x-tools. + - Breaks/Replace-ing of old golang-go-$GOOS-$GOARCH packages. + * Stop using alternatives to manage /usr/bin/go. + * sed trickery in debian/rules to support easy changes to new golang versions. + + -- Michael Hudson-Doyle Wed, 01 Jun 2016 10:04:53 -0700 + +golang (2:1.6.1-2) unstable; urgency=medium + + * Don't strip testdata files, causes build failures on some platforms. + + -- Michael Hudson-Doyle Wed, 13 Apr 2016 15:47:46 -0700 + +golang (2:1.6.1-1) unstable; urgency=medium + + [ Michael Hudson-Doyle ] + * Breaks/Replaces: older golang-golang-x-tools, not Conflicts, to ensure + smooth upgrades. + * Strip the binaries as it has worked for the last five years or so and + upstream sees no reason to disable it. + + [ Tianon Gravi ] + * Update to 1.6.1 upstream release (Closes: #820369) + - Fix CVE-2016-3959: infinite loop in several big integer routines + + -- Tianon Gravi Tue, 12 Apr 2016 23:06:43 -0700 + +golang (2:1.6-1) unstable; urgency=medium + + * Update to 1.6 upstream release (thanks Hilko!) + - change "ar" arguments to quiet spurious warnings while using gccgo + (Closes: #807138) + - skip multicast listen test (Closes: #814849) + - skip userns tests when chrooted (Closes: #807303) + - use correct ELF header for armhf binaries (Closes: #734357) + - Update debian/rules clean for new location of generated file. + + [ Michael Hudson-Doyle ] + * Respect "nocheck" in DEB_BUILD_OPTIONS while building to skip tests + (Closes: #807290) + * Trim Build-Depends (Closes: #807299) + * Fix several minor debian/copyright issues (Closes: #807304) + * Remove inconsistently included race-built packages (Closes: #807294) + + [ Tianon Gravi ] + * Add "-k" to "run.bash" invocation so that we do a full test run every time + + -- Tianon Gravi Mon, 29 Feb 2016 16:10:32 -0800 + +golang (2:1.5.3-1) unstable; urgency=high + + * Update to 1.5.3 upstream release + - Fix CVE-2015-8618: Carry propagation in Int.Exp Montgomery code in + math/big library (Closes: #809168) + * Add "Breaks" to properly complement our "Replaces" (Closes: #810595) + + -- Tianon Gravi Thu, 14 Jan 2016 07:41:44 -0800 + +golang (2:1.5.2-1) unstable; urgency=medium + + * Update to 1.5.2 upstream release (Closes: #807136) + + -- Tianon Gravi Tue, 05 Jan 2016 19:59:22 -0800 + +golang (2:1.5.1-4) unstable; urgency=medium + + * Add Conflicts to force newer golang-go.tools too (Closes: #803559) + + -- Tianon Gravi Tue, 03 Nov 2015 21:57:54 -0800 + +golang (2:1.5.1-3) unstable; urgency=medium + + * Remove architecture qualification on golang-go Build-Depend now that + golang-go is available for more architectures. + + -- Tianon Gravi Thu, 29 Oct 2015 07:40:38 -0700 + +golang (2:1.5.1-2) unstable; urgency=medium + + * Add Conflicts to force newer golang-golang-x-tools (Closes: #802945). + + -- Tianon Gravi Tue, 27 Oct 2015 13:28:56 -0700 + +golang (2:1.5.1-1) unstable; urgency=medium + + * Upload to unstable. + * Update to 1.5.1 upstream release (see notes from experimental uploads for + what's changed). + * Skip tests on architectures where the tests fail. + + -- Tianon Gravi Sat, 24 Oct 2015 10:22:02 -0700 + +golang (2:1.4.3-3) unstable; urgency=medium + + * Fix FTBFS for non-amd64 architectures due to handling of "-race". + + -- Tianon Gravi Mon, 05 Oct 2015 02:04:07 -0700 + +golang (2:1.5.1-1~exp2) experimental; urgency=medium + + * Upload to experimental. + * Add arch-qualifiers to "golang-go" build-depends to unblock the buildds + (Closes: #800479); thanks Tim! + + -- Tianon Gravi Wed, 30 Sep 2015 11:19:26 -0700 + +golang (2:1.4.3-2) unstable; urgency=medium + + * Update Recommends/Suggests, especially to add gcc, etc. + * Refactor "debian/rules" to utilize debhelper more effectively, especially + for arch vs indep building (mostly backported from the 1.5+ changes), which + fixes the "arch:all" FTBFS. + + -- Tianon Gravi Sun, 27 Sep 2015 22:06:07 -0700 + +golang (2:1.5.1-1~exp1) experimental; urgency=low + + * Upload to experimental. + * Update to 1.5.1 upstream release (Closes: #796150). + - Compiler and runtime written entirely in Go. + - Concurrent garbage collector. + - GOMAXPROCS=runtime.NumCPU() by default. + - "internal" packages for all, not just core. + - Experimental "vendoring" support. + - Cross-compilation no longer requires a complete rebuild of the stdlib in + GOROOT, and thus the golang-go-GOHOST-GOARCH packages are removed. + * Sync debian/copyright with the Ubuntu delta. (thanks doko!) + * Remove patches that no longer apply. + * Add more supported arches to "debian/rules" code for detecting + appropriate GOARCH/GOHOSTARCH values; thanks mwhudson and tpot! + (Closes: #799907) + * Refactor "debian/rules" to utilize debhelper more effectively, especially + for arch vs indep building. + * Move "dpkg-architecture" to "GOOS"/"GOARCH" code into a simple shell script + for easier maintenance. + + -- Tianon Gravi Fri, 25 Sep 2015 14:36:53 -0700 + +golang (2:1.4.3-1) unstable; urgency=medium + + * New upstream version (https://golang.org/doc/devel/release.html#go1.4.minor) + - includes previous CVE and non-CVE security fixes, especially + TEMP-0000000-1C4729 + + -- Tianon Gravi Fri, 25 Sep 2015 00:02:31 -0700 + +golang (2:1.4.2-4) unstable; urgency=high + + * Apply backported CVE fixes (Closes: #795106). + - CVE-2015-5739: Invalid headers are parsed as valid headers + - CVE-2015-5740: RFC 7230 3.3.3 4 violation + - CVE-2015-5741: other discoveries of security-relevant RFC 7230 violations + + -- Tianon Gravi Mon, 14 Sep 2015 12:27:57 -0700 + +golang (2:1.4.2-3) unstable; urgency=medium + + * Add missing "prerm" for our new alternatives (thanks piuparts). + + -- Tianon Gravi Tue, 05 May 2015 17:38:37 -0600 + +golang (2:1.4.2-2) unstable; urgency=medium + + * Move "go" and "gofmt" into "/usr/lib/go" and use alternatives to provide + appropriate symlinks (Closes: #779503, #782301). + * Relax "golang-go.tools" relationship to Suggests (from Recommends). + * Add "go get" VCS options to Suggests for golang-go (bzr, git, mercurial, + subversion). + + -- Tianon Gravi Tue, 05 May 2015 00:37:53 -0600 + +golang (2:1.4.2-1) unstable; urgency=medium + + * New upstream version + (https://golang.org/doc/devel/release.html#go1.4.minor) + + -- Tianon Gravi Sat, 02 May 2015 10:06:34 -0600 + +golang (2:1.4.1-1~exp1) experimental; urgency=low + + * New upstream version (https://golang.org/doc/go1.4) + - all editor support files have been removed from misc/ upstream upstream, + so golang-mode, kate-syntax-go, and vim-syntax-go can no longer be + provided; see https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins + for an upstream-maintained list of potential replacements + + -- Tianon Gravi Fri, 16 Jan 2015 00:52:10 -0500 + +golang (2:1.3.3-1) unstable; urgency=medium + + * New upstream version (https://code.google.com/p/go/source/list?name=go1.3.3) + - time: removed from tests now obsolete assumption about Australian tz + abbreviations + - net: temporarily skip TestAcceptIgnoreSomeErrors + - runtime: hide cgocallback_gofunc calling cgocallbackg from linker + - runtime: fix GOTRACEBACK reading on Windows, Plan 9 + - nacltest.bash: unset GOROOT + - cmd/5l, cmd/6l, cmd/8l: fix nacl binary corruption bug + * Add Paul and myself as uploaders. Many, many thanks to Michael for his work + so far on this package (and hopefully more to come). + + -- Tianon Gravi Fri, 12 Dec 2014 16:11:02 -0500 + +golang (2:1.3.2-1) unstable; urgency=medium + + * New upstream version + + -- Michael Stapelberg Fri, 26 Sep 2014 23:21:45 +0200 + +golang (2:1.3.1-1) unstable; urgency=medium + + * New upstream version + + -- Michael Stapelberg Wed, 13 Aug 2014 09:15:58 +0200 + +golang (2:1.3-4) unstable; urgency=medium + + [ Tianon Gravi ] + * update debian/watch for upstream's latest move (Closes: #756415) + * backport archive/tar patch to fix PAX headers (Closes: #756416) + + -- Michael Stapelberg Sat, 02 Aug 2014 21:02:24 +0200 + +golang (2:1.3-3) unstable; urgency=medium + + * don’t depend on emacs23, depend on emacs instead (Closes: #754013) + * install include/ in golang-src, VERSION in golang-go (Closes: #693186) + + -- Michael Stapelberg Mon, 07 Jul 2014 08:30:50 +0200 + +golang (2:1.3-2) unstable; urgency=medium + + * Add /usr/lib/go/test symlink + * Build with GO386=387 to favor the 387 floating point unit over sse2 + instructions (Closes: #753160) + * Add debian/patches/0001-backport-delete-whole-line.patch to fix a + deprecation warning about flet in the emacs part of golang-mode + (Closes: #753607) + * Migrate to emacsen >2 (Closes: #753607) + * Backport two patches to improve archive/tar performance (for docker): + debian/patches/0002-archive-tar-reuse-temporary-buffer-in-writeHeader.patch + debian/patches/0003-archive-tar-reuse-temporary-buffer-in-readHeader.patch + + -- Michael Stapelberg Thu, 03 Jul 2014 23:33:46 +0200 + +golang (2:1.3-1) unstable; urgency=medium + + * New upstream version. + * Drop patches merged upstream: + - debian/patches/add-tar-xattr-support.patch + - debian/patches/add-tar-xattr-support.patch + * Fix debian/watch (Thanks Tianon) (Closes: #748290) + * Remove dangling symlink /usr/lib/go/lib/godoc (Closes: #747968) + + -- Michael Stapelberg Thu, 19 Jun 2014 09:23:36 +0200 + +golang (2:1.2.1-2) unstable; urgency=low + + * Re-apply debian/patches/add-tar-xattr-support.patch which got lost when + uploading 1.2.1-1; sorry about that. + + -- Michael Stapelberg Sat, 08 Mar 2014 20:01:12 +0100 + +golang (2:1.2.1-1) unstable; urgency=low + + * New upstream release. + + -- Michael Stapelberg Mon, 03 Mar 2014 17:40:57 +0100 + +golang (2:1.2-3) unstable; urgency=low + + * add debian/patches/add-tar-xattr-support.patch to have xattr support in + tar (cherry-picked from upstream) (Thanks proppy) (Closes: #739586) + + -- Michael Stapelberg Mon, 24 Feb 2014 19:34:16 +0100 + +golang (2:1.2-2) unstable; urgency=low + + * add patches/add-src-pkg-debug-elf-testdata-hello.patch to provide source + for the testdata/ ELF binaries (Closes: #716853) + + -- Michael Stapelberg Tue, 31 Dec 2013 18:28:29 +0100 + +golang (2:1.2-1) unstable; urgency=low + + * New upstream release. + * drop patches/archive-tar-fix-links-and-pax.patch, it is merged upstream + * godoc(1) is now in the Debian package golang-go.tools, it was moved into a + separate repository by upstream. + * move patches/godoc-symlinks.diff to golang-go.tools + + -- Michael Stapelberg Mon, 02 Dec 2013 23:57:24 +0100 + +golang (2:1.1.2-3) unstable; urgency=low + + * cherry-pick upstream commit: archive-tar-fix-links-and-pax.patch + (Closes: #730566) + + -- Michael Stapelberg Tue, 26 Nov 2013 18:59:27 +0100 + +golang (2:1.1.2-2) unstable; urgency=low + + * Build golang-go-linux-* for each architecture (Thanks James Page) + (Closes: #719611) + * Update lintian-overrides to override statically-linked-binary and + unstripped-binary-or-object for all of golang-go + + -- Michael Stapelberg Tue, 20 Aug 2013 08:13:40 +0200 + +golang (2:1.1.2-1) unstable; urgency=low + + * New upstream release. + * Relicense debian/ under the Go license to match upstream. All copyright + holders agreed to this. (Closes: #716907) + * golang-mode: don’t install for a number of emacs versions which are not + supported upstream (Thanks Kevin Ryde) (Closes: #702511, #717521) + + -- Michael Stapelberg Tue, 13 Aug 2013 13:47:58 +0200 + +golang (2:1.1.1-4) unstable; urgency=low + + * Disable stripping, it breaks go binaries on some architectures. This drops + the golang-dbg package which would be empty now. (Thanks Robie Basak) + (Closes: #717172) + + -- Michael Stapelberg Wed, 17 Jul 2013 19:15:18 +0200 + +golang (2:1.1.1-3) unstable; urgency=low + + * Ship */runtime/cgo.a in golang-go to ensure it is present. It can only be + used on the native architecture anyway (cannot be used when + cross-compiling), so having it in golang-go-$GOOS-$GOARCH is not + necessary. Even worse, since these packages are arch: all, they will be + built precisely once, and only the runtime/cgo.a for the buildd’s native + arch will be present. (Closes: #715025) + + -- Michael Stapelberg Thu, 11 Jul 2013 20:25:52 +0200 + +golang (2:1.1.1-2) unstable; urgency=low + + [ James Page ] + * Ensure smooth upgrade path from << 2:1.1-2 (Closes: #714838) + + -- Michael Stapelberg Wed, 03 Jul 2013 18:05:58 +0200 + +golang (2:1.1.1-1) unstable; urgency=low + + * Imported Upstream version 1.1.1 + + -- Ingo Oeser Fri, 14 Jun 2013 23:25:44 +0200 + +golang (2:1.1-2) unstable; urgency=low + + [ Ondřej Surý ] + * Promote Michael to Maintainer + + [ Michael Stapelberg ] + * Build golang-go-$GOOS-$GOARCH packages for cross-compiling (Closes: #710090) + * Build race detector on linux/amd64 (only supported arch) (Closes: #710691) + * Switch compression to xz (50% smaller binaries) + + -- Michael Stapelberg Fri, 07 Jun 2013 23:18:09 +0200 + +golang (2:1.1-1) unstable; urgency=low + + * New upstream release: Go 1.1! + * Remove the long obsolete goinstall debconf question and config file. + goinstall does not exist anymore since a long time. + This also obsoletes the need for any translations + (Closes: #685923, #692478) + * Emacs go-mode auto-mode-alist entry was fixed upstream (Closes: #670371) + + -- Michael Stapelberg Tue, 14 May 2013 19:36:04 +0200 + +golang (2:1.1~hg20130405-1) experimental; urgency=low + + * Provide a new hg tip snapshot. This includes what was recently released as + Go 1.1 beta. + + -- Michael Stapelberg Fri, 05 Apr 2013 18:24:36 +0200 + +golang (2:1.1~hg20130323-1) experimental; urgency=low + + * Provide a new hg tip snapshot. + * Add debian/watch (Closes: #699698) + + -- Michael Stapelberg Sat, 23 Mar 2013 11:31:26 +0100 + +golang (2:1.1~hg20130304-2) experimental; urgency=low + + * Fix FTBFS of binary-arch only builds (as performed by buildds) + caused by 'rm' not finding jquery.js in golang-doc + (Thanks Peter Green) + + -- Michael Stapelberg Tue, 05 Mar 2013 00:49:27 +0100 + +golang (2:1.1~hg20130304-1) experimental; urgency=low + + * Provide a hg tip snapshot (2013-03-04) in Debian experimental. + Current hg tip is a good approximation to Go 1.1 and should get + some testing within Debian in order to package Go 1.1 well when + it is released. Thanks to Andrew Gerrand. + + -- Michael Stapelberg Mon, 04 Mar 2013 21:28:58 +0100 + +golang (2:1.0.2-2) unstable; urgency=low + + * Add myself to uploaders, as discussed in #683421. + * cherry-pick r820ffde8c396 (net/http: non-keepalive connections close + successfully) (Closes: #683421) + + -- Michael Stapelberg Thu, 02 Aug 2012 14:25:58 +0200 + +golang (2:1.0.2-1.1) unstable; urgency=low + + * Non-maintainer upload. (as discussed with Ondřej in #679692) + * Fix godoc-symlinks.diff (godoc didn’t find docs) (Closes: #679692) + + -- Michael Stapelberg Fri, 20 Jul 2012 17:59:38 +0200 + +golang (2:1.0.2-1) unstable; urgency=low + + [ Ondřej Surý ] + * Imported Upstream version 1.0.2 + * Update Vcs fields to reflect new git repository location + * Kill get-orig-source, since 1.0.0, the tarballs can be downloaded from + webpage + + [ Michael Stapelberg ] + * golang-mode: use debian-pkg-add-load-path-item (Closes: #664802) + * add manpages (Closes: #632964) + * Use updated pt.po from Pedro Ribeiro (Closes: #674958) + + -- Ondřej Surý Thu, 28 Jun 2012 12:14:15 +0200 + +golang (2:1.0.1-1) unstable; urgency=low + + * Imported Upstream version 1.0.1 + * Apply godoc patch to display package list correctly (Closes: #669354) + + -- Ondřej Surý Wed, 02 May 2012 15:44:59 +0200 + +golang (2:1-6) unstable; urgency=low + + * Merge upstream patch to fix homedir issue + (http://code.google.com/p/go/source/detail?r=709120aecee0) + * Disable GNU/KFreeBSD build (Closes: #668794) + + -- Ondřej Surý Wed, 18 Apr 2012 09:53:30 +0200 + +golang (2:1-5) unstable; urgency=low + + * Rewrite test conditions to make them more readable + (and fix the debian/rules to really not check on armel+kfreebsd) + * Patch upstream test to not fail on missing home directory + + -- Ondřej Surý Sun, 15 Apr 2012 12:35:53 +0200 + +golang (2:1-4) unstable; urgency=low + + * Disable tests on Debian GNU/KFreeBSD, they just hang now (Closes: #668794) + * Disable tests on armel, but the invalid instruction needs fixing in + upstream + * Create fake home directory to pass the os/user test + + -- Ondřej Surý Sun, 15 Apr 2012 10:49:09 +0200 + +golang (2:1-3) unstable; urgency=high + + * Use VERSION provided by upstream for packaging purposes + * Run tests as a part of a build process + * Install full src tree (except pkg/debug) because go command depend + on sources available + * Install sources without testdata and *_test.go + * Remove circular dependency golang-go->golang-doc->golang-go + * Make sure that timestamp on installed binaries and libraries is same + because go build/install recompiles everything if the go binary has + more recent timestamp than libraries (Closes: #668235) + + Need to update timestamps at postinst time because already created + directories can have time in the past + * Fix couple of lintian errors and warnings + + -- Ondřej Surý Wed, 11 Apr 2012 23:21:47 +0200 + +golang (2:1-2) unstable; urgency=low + + * Remove preserving of old -tools settings, there are too many options + now anyway (Closes: #666007) + + -- Ondřej Surý Fri, 06 Apr 2012 16:52:13 +0200 + +golang (2:1-1) unstable; urgency=low + + * New major upstream release Go 1 (Closes: #666942) + * Bumb epoch to 2, since 1 < 60 < 2011 (I wonder if next version will be 0 :) + * Debconf templates and debian/control reviewed by the debian-l10n- + english team as part of the Smith review project. (Closes: #663181) + * [Debconf translation updates] + + Pick existing translations from golang-weekly and do appropriate + sed magic to fit golang templates. (Closes: #666884, #666880, #666881) + + Dutch; (Jeroen Schot). (Closes: #664598) + + Czech (Michal Simunek). (Closes: #665385) + + Spanish; (Camaleón). (Closes: #666177) + + Danish (Joe Hansen). (Closes: #666526) + + -- Ondřej Surý Fri, 06 Apr 2012 16:04:17 +0200 + +golang (1:60.3-2) unstable; urgency=low + + * debconf-gettextize package templates + + -- Ondřej Surý Mon, 20 Feb 2012 22:01:10 +0100 + +golang (1:60.3-1) unstable; urgency=low + + * Imported Upstream version 60.3 + + -- Ondřej Surý Mon, 28 Nov 2011 08:46:18 +0100 + +golang (1:60.2-1) unstable; urgency=low + + * Imported Upstream version 60.2 + + -- Ondřej Surý Thu, 06 Oct 2011 08:57:00 +0200 + +golang (1:60.1-1) unstable; urgency=low + + * Imported Upstream version 60.1 + + -- Ondřej Surý Mon, 19 Sep 2011 10:18:12 +0200 + +golang (1:60-1) unstable; urgency=low + + * Imported Upstream version 60 + * Save upstream VERSION to the archive + * Use GOVERSION as generated by src/version.bash on hg archive time + * Add support for goinstall dashboard debconf question in the Debian + packaging + * Read goinstall dashboard option from debian configuration file + * Remove 005-goinstall_dont_call_home_by_default.patch; replaced by + configuration option + * Fix directory name for upstream archive checkout + + -- Ondřej Surý Tue, 13 Sep 2011 13:13:59 +0200 + +golang (1:59-1) unstable; urgency=low + + * Imported Upstream version 59 + * Refresh patches to a new release + * Fix FTBFS on ARM (Closes: #634270) + * Update version.bash to work with Debian packaging and not hg + repository + + -- Ondřej Surý Wed, 03 Aug 2011 17:04:59 +0200 + +golang (1:58.1-2) unstable; urgency=low + + * Install golang-doc package by default (Recommends from golang-tools, + Depends from golang) + + -- Ondřej Surý Mon, 18 Jul 2011 09:13:43 +0200 + +golang (1:58.1-1) unstable; urgency=low + + * Imported Upstream version 58.1 + + -- Ondřej Surý Wed, 13 Jul 2011 08:39:04 +0200 + +golang (1:58-1) unstable; urgency=low + + * Imported Upstream version 58 + + Add NEWS file with upstream API changes + * Remove patch to not update standard package, fixed in upstream + + -- Ondřej Surý Thu, 30 Jun 2011 15:36:35 +0200 + +golang (1:57.2-1) unstable; urgency=low + + * Imported Upstream version 57.2 + * More spelling fixes (Closes: #630660) + + -- Ondřej Surý Thu, 16 Jun 2011 11:10:58 +0200 + +golang (1:57.1-4) unstable; urgency=low + + * Description update to have proper articles and capitalization + (Closes: #630189) + * Add extended description about Go being experimental and that the + languager can change between releases + + -- Ondřej Surý Tue, 14 Jun 2011 21:38:11 +0200 + +golang (1:57.1-3) unstable; urgency=low + + * Fix "the Google's Go implementation" in extended description + (Closes: #627814) + * Update Vcs-* links + * Install vim ftplugin files into correct directory (Closes: #629844) + + -- Ondřej Surý Thu, 09 Jun 2011 10:10:41 +0200 + +golang (1:57.1-2) unstable; urgency=low + + * Bump standards version to 3.9.2 + * Capitalize Kate (Closes: #627036) + * Import slightly modified patch to be more clear about $GOPATH + installs for non-root users + * Remove don't install deps patch from goinstall; deprecated by + $GOPATH installs + + -- Ondřej Surý Mon, 23 May 2011 11:07:11 +0200 + +golang (1:57.1-1) unstable; urgency=low + + * Add support for dot-minor releases + * Imported Upstream version 57.1 + + -- Ondřej Surý Mon, 16 May 2011 11:45:53 +0200 + +golang (1:57-3) unstable; urgency=low + + [ Florian Weimer ] + * golang-tools: install gofix binary + + [ Ondřej Surý ] + * Add lintian-overrides for gofix binary + + -- Ondřej Surý Sat, 07 May 2011 20:41:58 +0200 + +golang (1:57-2) unstable; urgency=low + + * Remove weekly code from debian/rules + * Add golang meta-package + * Don't create tool chain symlinks twice + * Make debian/rules more generic for simpler sync between weekly + and release branches + + -- Ondřej Surý Wed, 04 May 2011 16:48:24 +0200 + +golang (1:57-1) unstable; urgency=low + + * Imported Upstream version r57 + * Bumped epoch version to 1, to convert from date based versions + to release number based version + * Allow release to migrate to testing (Closes: #624408) + * Add kate and vim syntax highlighting (Closes: #624544) + * Add -dbg package with debugging symbols + + -- Ondřej Surý Wed, 04 May 2011 01:20:07 +0200 + +golang (2011.04.27-2) unstable; urgency=low + + * Fix yet another build failure on kfreebsd (use linux userspace) + + -- Ondřej Surý Fri, 29 Apr 2011 16:22:47 +0200 + +golang (2011.04.27-1) unstable; urgency=low + + * Imported Upstream version 2011.04.27 + * Update debian/rules to allow pulling weekly upstream releases + * Don't remove RUNPATH from binaries; fixed upstream (golang#1527) + * Set GOHOSTOS and GOHOSTARCH to match dpkg-architecture variables + * Add support for kfreebsd-i386, kfreebsd-amd64, armel and armhf + architectures + + 006-fix_kfreebsd_build.patch: + - Add GNU/KFreeBSD support by replacing all uname calls by $(GOOS) + + 007-use_native_dynamic_linker_on_kfreebsd.patch: + - Use native kfreebsd dynamic linker (/lib/ld-*.so.1) + * Add information about available architectures (Closes: #623877) + * Don't strip gotest + * Add Depends: golang-go to golang-tools + * Add better support for armhf + + -- Ondřej Surý Thu, 28 Apr 2011 16:14:39 +0200 + +golang (2011.04.13-1) unstable; urgency=low + + [ Florian Weimer ] + * Delete bin directory in clean target + * Enable parallel build + * golang-src: install source files directly + * Use proper symlink targets for architecture-independent toolchain + names + * Emacs mode: indent keys in struct literals properly + + [ Ondřej Surý ] + * Imported Upstream weekly version 2011.04.13 + * Update patches to new weekly release + * Add lintian-override for gotest binary + + -- Ondřej Surý Tue, 26 Apr 2011 09:59:28 +0200 + +golang (2011.03.07.1-1) unstable; urgency=low + + * Imported Upstream version 2011.03.07.1 + * Install to /usr/lib/go + * Remove xkcd strip to get rid of CC-NC-BY + * Update golang-src.install to new upstream + * Remove 002-use_GOROOT_FINAL_in_generated_binaries.patch; merged + upstream + * Make all .go files no-executable + * Update lintian-overrides to include both types of syntax + + -- Ondřej Surý Wed, 20 Apr 2011 17:36:48 +0200 + +golang (2011.02.15-2) unstable; urgency=low + + [ Ondřej Surý ] + * Add ${misc:Depends} to golang-mode to shutup lintian + * Rehaul build system and add golang-src package with .go source files + * goinstall: do not automatically install prerequisities + * goinstall: don't report to dashboard by default + * Add a README.Debian about local modifications to goinstall + * Add warning about local modifications also directly to goinstall command + + [ Florian Weimer ] + * Fix syntax error in 004- + dont_reinstall_dependencies_in_goinstall.patch + + -- Ondřej Surý Fri, 18 Feb 2011 16:02:09 +0100 + +golang (2011.02.15-1) unstable; urgency=low + + [ Obey Arthur Liu ] + * Added pkg-google git repo to control file + + [ Florian Weimer ] + * Build golang-mode package + + [ Ondřej Surý ] + * Imported Upstream version 2011.02.15 + * Don't compress godoc documentation + * Correctly use $GOROOT_FINAL in the build chain + * Remove RPATH/RUNPATH from go binaries + + -- Ondřej Surý Fri, 18 Feb 2011 11:39:10 +0100 + +golang (2011.02.01.1-1) unstable; urgency=low + + [ Ivan Wong ] + * Initial release (Closes: #574371) + + [ Jonathan Nieder ] + * Fill out copyright file + * Rewrite debian/rules using dh driver + * debian: fix get-orig-source rule + * debian: do not install extra files on repeated build + * debian: fix reversed ‘if’ + * debian: do not leave around stale debian/env.sh+ file + * debian: Build-Depends on awk instead of gawk + * debian: add run-time dependency on perl + * debian: add build-time dependency on perl + * debian: fix setting of GOARM on arm + * debian: do not compress files in web page + * debian: install favicon + + [ Ondřej Surý ] + * Make myself a maintainer + * Add patch to allow IPv4 on IPv6 sockets (Courtesy of Florian Weimer) + * Use GOROOT_FINAL and change GOBIN to /usr/bin + * Get rid of env.sh and wrappers + * Add support for building in i386 pbuilder on amd64 architecture + * Rename source package to golang to match upstream repository name + * Add golang-doc package + * Split package into compiler, docs and tools + * Don't install quietgcc and hgpatch + * Don't generate fake gomake + * Update golang-doc package + * Export GOHOSTARCH and GOHOSTOS + * Disable build time checks + * Fail on missed installed files + * Revert s{tmp{golang-go{ change in DESTDIR + * Relicence debian/ files from versionless GPL to GPL-3 + * Move golang-doc to doc section + * Add more lintian overrides for Go binaries + * Install all 6,8,5 variants of commands + * Install golang-* symlinks for 6,8,5* commands + * Don't strip govet as well + * Remove ${shlibs:Depends} where it doesn't belong + * Move more html files to golang-doc package + * Remove codereview directory - some python code to deal with mercurial + + -- Ondřej Surý Mon, 14 Feb 2011 17:42:39 +0100 diff --git a/compat b/compat new file mode 100644 index 0000000..b4de394 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +11 diff --git a/control b/control new file mode 100644 index 0000000..a260122 --- /dev/null +++ b/control @@ -0,0 +1,99 @@ +# +# WARNING: "debian/control" is generated via "debian/rules gencontrol" (sourced from "debian/control.in") +# + +Source: golang-1.11 +Section: devel +Priority: optional +Maintainer: Go Compiler Team +Uploaders: Michael Stapelberg , + Paul Tagliamonte , + Tianon Gravi , + Michael Hudson-Doyle , + Dr. Tobias Quathamer +Vcs-Browser: https://salsa.debian.org/go-team/compiler/golang/tree/golang-1.11 +Vcs-Git: https://salsa.debian.org/go-team/compiler/golang.git -b golang-1.11 +Build-Depends: debhelper (>= 11), + golang-any (>= 2:1.4~) | golang-go (>= 2:1.4~) | gccgo (>= 4:5~), + netbase +Standards-Version: 4.3.0 +Homepage: https://golang.org + +Package: golang-1.11-go +Architecture: amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64 ppc64el s390x +Depends: golang-1.11-src (>= ${source:Version}), + ${misc:Depends}, + ${perl:Depends}, + ${shlibs:Depends} +Recommends: g++, gcc, libc6-dev, pkg-config +Suggests: bzr | brz, ca-certificates, git, mercurial, subversion +Description: Go programming language compiler, linker, compiled stdlib + The Go programming language is an open source project to make programmers more + productive. Go is expressive, concise, clean, and efficient. Its concurrency + mechanisms make it easy to write programs that get the most out of multicore + and networked machines, while its novel type system enables flexible and + modular program construction. Go compiles quickly to machine code yet has the + convenience of garbage collection and the power of run-time reflection. It's a + fast, statically typed, compiled language that feels like a dynamically typed, + interpreted language. + . + This package provides an assembler, compiler, linker, and compiled libraries + for the Go programming language. + . + Go supports cross-compilation, but as of Go 1.5, it is no longer necessary to + pre-compile the standard library inside GOROOT for cross-compilation to work. + +Package: golang-1.11-src +Architecture: amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64 ppc64el s390x +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: Go programming language - source files + The Go programming language is an open source project to make programmers more + productive. Go is expressive, concise, clean, and efficient. Its concurrency + mechanisms make it easy to write programs that get the most out of multicore + and networked machines, while its novel type system enables flexible and + modular program construction. Go compiles quickly to machine code yet has the + convenience of garbage collection and the power of run-time reflection. It's a + fast, statically typed, compiled language that feels like a dynamically typed, + interpreted language. + . + This package provides the Go programming language source files needed for + cross-compilation. + +Package: golang-1.11-doc +Depends: golang-1.11-go, ${misc:Depends} +Architecture: all +Section: doc +Description: Go programming language - documentation + The Go programming language is an open source project to make + programmers more productive. Go is expressive, concise, clean, and + efficient. Its concurrency mechanisms make it easy to write programs + that get the most out of multicore and networked machines, while its + novel type system enables flexible and modular program construction. + Go compiles quickly to machine code yet has the convenience of + garbage collection and the power of run-time reflection. It's a fast, + statically typed, compiled language that feels like a dynamically + typed, interpreted language. + . + This package provides the documentation for the Go programming + language. You can view the formatted documentation by running "godoc + --http=:6060", and then visiting http://localhost:6060/doc/install.html. + +Package: golang-1.11 +Depends: golang-1.11-doc (>= ${source:Version}), + golang-1.11-go (>= ${source:Version}), + golang-1.11-src (>= ${source:Version}), + ${misc:Depends} +Architecture: all +Description: Go programming language compiler - metapackage + The Go programming language is an open source project to make + programmers more productive. Go is expressive, concise, clean, and + efficient. Its concurrency mechanisms make it easy to write programs + that get the most out of multicore and networked machines, while its + novel type system enables flexible and modular program construction. + Go compiles quickly to machine code yet has the convenience of + garbage collection and the power of run-time reflection. It's a + fast, statically typed, compiled language that feels like a + dynamically typed, interpreted language. + . + This package is a metapackage that, when installed, guarantees + that (most of) a full Go development environment is installed. diff --git a/control.in b/control.in new file mode 100644 index 0000000..36022db --- /dev/null +++ b/control.in @@ -0,0 +1,95 @@ +Source: golang-X.Y +Section: devel +Priority: optional +Maintainer: Go Compiler Team +Uploaders: Michael Stapelberg , + Paul Tagliamonte , + Tianon Gravi , + Michael Hudson-Doyle , + Dr. Tobias Quathamer +Vcs-Browser: https://salsa.debian.org/go-team/compiler/golang/tree/golang-X.Y +Vcs-Git: https://salsa.debian.org/go-team/compiler/golang.git -b golang-X.Y +Build-Depends: debhelper (>= 11), + golang-any (>= 2:1.4~) | golang-go (>= 2:1.4~) | gccgo (>= 4:5~), + netbase +Standards-Version: 4.3.0 +Homepage: https://golang.org + +Package: golang-X.Y-go +Architecture: amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64 ppc64el s390x +Depends: golang-X.Y-src (>= ${source:Version}), + ${misc:Depends}, + ${perl:Depends}, + ${shlibs:Depends} +Recommends: g++, gcc, libc6-dev, pkg-config +Suggests: bzr | brz, ca-certificates, git, mercurial, subversion +Description: Go programming language compiler, linker, compiled stdlib + The Go programming language is an open source project to make programmers more + productive. Go is expressive, concise, clean, and efficient. Its concurrency + mechanisms make it easy to write programs that get the most out of multicore + and networked machines, while its novel type system enables flexible and + modular program construction. Go compiles quickly to machine code yet has the + convenience of garbage collection and the power of run-time reflection. It's a + fast, statically typed, compiled language that feels like a dynamically typed, + interpreted language. + . + This package provides an assembler, compiler, linker, and compiled libraries + for the Go programming language. + . + Go supports cross-compilation, but as of Go 1.5, it is no longer necessary to + pre-compile the standard library inside GOROOT for cross-compilation to work. + +Package: golang-X.Y-src +Architecture: amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64 ppc64el s390x +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: Go programming language - source files + The Go programming language is an open source project to make programmers more + productive. Go is expressive, concise, clean, and efficient. Its concurrency + mechanisms make it easy to write programs that get the most out of multicore + and networked machines, while its novel type system enables flexible and + modular program construction. Go compiles quickly to machine code yet has the + convenience of garbage collection and the power of run-time reflection. It's a + fast, statically typed, compiled language that feels like a dynamically typed, + interpreted language. + . + This package provides the Go programming language source files needed for + cross-compilation. + +Package: golang-X.Y-doc +Depends: golang-X.Y-go, ${misc:Depends} +Architecture: all +Section: doc +Description: Go programming language - documentation + The Go programming language is an open source project to make + programmers more productive. Go is expressive, concise, clean, and + efficient. Its concurrency mechanisms make it easy to write programs + that get the most out of multicore and networked machines, while its + novel type system enables flexible and modular program construction. + Go compiles quickly to machine code yet has the convenience of + garbage collection and the power of run-time reflection. It's a fast, + statically typed, compiled language that feels like a dynamically + typed, interpreted language. + . + This package provides the documentation for the Go programming + language. You can view the formatted documentation by running "godoc + --http=:6060", and then visiting http://localhost:6060/doc/install.html. + +Package: golang-X.Y +Depends: golang-X.Y-doc (>= ${source:Version}), + golang-X.Y-go (>= ${source:Version}), + golang-X.Y-src (>= ${source:Version}), + ${misc:Depends} +Architecture: all +Description: Go programming language compiler - metapackage + The Go programming language is an open source project to make + programmers more productive. Go is expressive, concise, clean, and + efficient. Its concurrency mechanisms make it easy to write programs + that get the most out of multicore and networked machines, while its + novel type system enables flexible and modular program construction. + Go compiles quickly to machine code yet has the convenience of + garbage collection and the power of run-time reflection. It's a + fast, statically typed, compiled language that feels like a + dynamically typed, interpreted language. + . + This package is a metapackage that, when installed, guarantees + that (most of) a full Go development environment is installed. diff --git a/copyright b/copyright new file mode 100644 index 0000000..ca36ccf --- /dev/null +++ b/copyright @@ -0,0 +1,731 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: golang +Source: https://github.com/golang/go + +Files: * +Copyright: © 2009, 2010, The Go Authors. All rights reserved. +License: Go + +Files: + src/cmd/compile/internal/gc/gsubr.go + src/cmd/internal/objabi/autotype.go + src/cmd/internal/objabi/head.go + src/cmd/internal/objabi/reloctype.go + src/cmd/internal/objabi/symkind.go + src/cmd/internal/obj/arm64/a.out.go + src/cmd/internal/obj/arm64/asm7.go + src/cmd/internal/obj/arm64/list7.go + src/cmd/internal/obj/arm64/obj7.go + src/cmd/internal/obj/arm/a.out.go + src/cmd/internal/obj/arm/asm5.go + src/cmd/internal/obj/arm/list5.go + src/cmd/internal/obj/arm/obj5.go + src/cmd/internal/obj/mips/a.out.go + src/cmd/internal/obj/mips/asm0.go + src/cmd/internal/obj/mips/list0.go + src/cmd/internal/obj/mips/obj0.go + src/cmd/internal/obj/ppc64/a.out.go + src/cmd/internal/obj/ppc64/asm9.go + src/cmd/internal/obj/ppc64/list9.go + src/cmd/internal/obj/ppc64/obj9.go + src/cmd/internal/obj/s390x/asmz.go + src/cmd/internal/obj/s390x/a.out.go + src/cmd/internal/obj/s390x/listz.go + src/cmd/internal/obj/s390x/objz.go + src/cmd/internal/obj/data.go + src/cmd/internal/obj/ld.go + src/cmd/internal/obj/link.go + src/cmd/internal/obj/pass.go + src/cmd/internal/obj/sym.go + src/cmd/internal/obj/x86/a.out.go + src/cmd/internal/obj/x86/asm6.go + src/cmd/internal/obj/x86/list6.go + src/cmd/internal/obj/x86/obj6.go + src/cmd/link/internal/amd64/asm.go + src/cmd/link/internal/amd64/l.go + src/cmd/link/internal/amd64/obj.go + src/cmd/link/internal/arm64/asm.go + src/cmd/link/internal/arm64/l.go + src/cmd/link/internal/arm64/obj.go + src/cmd/link/internal/arm/asm.go + src/cmd/link/internal/arm/l.go + src/cmd/link/internal/arm/obj.go + src/cmd/link/internal/ld/ar.go + src/cmd/link/internal/ld/data.go + src/cmd/link/internal/ld/ld.go + src/cmd/link/internal/ld/lib.go + src/cmd/link/internal/ld/link.go + src/cmd/link/internal/ld/main.go + src/cmd/link/internal/ld/sym.go + src/cmd/link/internal/ld/symtab.go + src/cmd/link/internal/mips/asm.go + src/cmd/link/internal/mips/l.go + src/cmd/link/internal/mips/obj.go + src/cmd/link/internal/mips64/asm.go + src/cmd/link/internal/mips64/l.go + src/cmd/link/internal/mips64/obj.go + src/cmd/link/internal/ppc64/asm.go + src/cmd/link/internal/ppc64/l.go + src/cmd/link/internal/ppc64/obj.go + src/cmd/link/internal/s390x/asm.go + src/cmd/link/internal/s390x/l.go + src/cmd/link/internal/s390x/obj.go + src/cmd/link/internal/sym/segment.go + src/cmd/link/internal/sym/symbols.go + src/cmd/link/internal/sym/symkind.go + src/cmd/link/internal/x86/asm.go + src/cmd/link/internal/x86/l.go + src/cmd/link/internal/x86/obj.go + src/cmd/vendor/golang.org/x/arch/x86/x86asm/testdata/libmach8db.c + src/runtime/memclr_arm.s + src/runtime/memmove_386.s + src/runtime/memmove_amd64.s + src/runtime/memmove_arm.s + src/runtime/memmove_plan9_386.s + src/runtime/memmove_plan9_amd64.s + src/runtime/vlop_386.s + src/runtime/vlop_arm.s + src/runtime/vlrt.go +Origin: Plan 9 from User Space include/, src/lib9/, src/libmach/ + Inferno utils/include/, utils/libmach/, utils/6c/, utils/iar/, + utils/6l/, utils/6a/, utils/5c/, utils/8c/, utils/iyacc/, + utils/5l/, utils/6c/, utils/8l/, utils/nm/, utils/cc/, + utils/5a/, utils/8a/, lib9/, libkern/, libbio/ +Copyright: © 1994-1999 Lucent Technologies Inc. All rights reserved. + Portions © 1997-1999 Vita Nuova Limited + Portions © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com) + Portions © 2001-2007 Russ Cox. All rights reserved. + Portions © 2004,2006 Bruce Ellis + Portions © 1995-2007 C H Forsyth (forsyth@terzarima.net) + Revisions © 2000-2007 Lucent Technologies Inc. and others + Portions © 2009 The Go Authors. All rights reserved. +License: X11 + +Files: src/debug/dwarf/testdata/typedef.macho + src/debug/dwarf/testdata/typedef.elf +Source: src/debug/dwarf/testdata/typedef.c +Copyright: © 2009, The Go Authors. All rights reserved. +License: Go + +Files: + src/debug/macho/testdata/fat-gcc* + src/debug/macho/testdata/clang* + src/debug/macho/testdata/gcc* +Source: src/debug/macho/testdata/hello.c +Copyright: © 2009, 2010, The Go Authors. All rights reserved. +License: Go + +Files: + src/debug/elf/testdata/*-exec + src/debug/elf/testdata/*.obj + src/debug/elf/testdata/hello-world-core.gz +Source: src/debug/elf/testdata/hello.c +Copyright: © 2009, 2010, The Go Authors. All rights reserved. +License: Go + +Files: src/debug/elf/elf.go + src/cmd/link/internal/ld/elf.go +Origin: FreeBSD src/sys/sys/elf{32,64,_common}.h, src/sys/*/include/elf.h +Copyright: © 1996-1998 John D. Polstra. All rights reserved. + © 2001 David E. O'Brien + Portions © 2009 The Go Authors. All rights reserved. +License: FreeBSD + +Files: src/math/cmplx/asin.go + src/math/cmplx/exp.go + src/math/cmplx/log.go + src/math/cmplx/pow.go + src/math/cmplx/sin.go + src/math/cmplx/sqrt.go + src/math/cmplx/tan.go + src/math/atan.go + src/math/gamma.go + src/math/sin.go + src/math/tan.go + src/math/tanh.go +Copyright: © 2009, 2011 The Go Authors. All rights reserved. + Based on code © 1984, 1987, 1989, 1992, 2000 by Stephen L. Moshier +License: Go + +Files: src/math/log1p.go + src/math/acosh.go + src/math/asinh.go + src/math/atanh.go + src/math/cbrt.go + src/math/erf.go + src/math/exp.go + src/math/expm1.go + src/math/j0.go + src/math/j1.go + src/math/jn.go + src/math/lgamma.go + src/math/log.go + src/math/remainder.go + src/math/sqrt.go +Copyright: © 2010 The Go Authors. All rights reserved. + Based on code © 1993 by Sun Microsystems, Inc. All rights reserved. +License: Go +Comment: + Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + . + Developed at SunPro, a Sun Microsystems, Inc. business. + Permission to use, copy, modify, and distribute this + software is freely granted, provided that this notice + is preserved. + +Files: src/image/jpeg/idct.go +Origin: Translated from idct.c in the MPEG-2 (ISO/IEC 13818-4) + technical report video software verifier (mpeg2decode) + version 960109 +Copyright: © 1996, MPEG Software Simulation Group. All Rights Reserved. +License: MPEG + +Files: src/image/png/testdata/pngsuite/* +Origin: libpng 1.2.40, contrib/pngsuite/* +Copyright: © Willem van Schaik, 1999 +License: noderivs + Permission to use, copy, and distribute these images for any purpose and + without fee is hereby granted. + +Files: src/cmd/vendor/github.com/google/pprof/* +Copyright: 2014, 2016 Google Inc. +License: Apache-2.0 + +Files: src/cmd/vendor/github.com/google/pprof/third_party/svg/svgpan.go +Copyright: 2009-2017 Andrea Leofreddi +License: BSD-2-clause-svgpan + +Files: favicon.ico + doc/gopher/* +Copyright: Renée French +License: CC-BY-3.0 +Comment: + The mascot and logo were designed by + Renée French , who also designed + Glenda , + the Plan 9 bunny. + The gopher is derived from one she used for an WFMU + T-shirt design some years ago. + The logo and mascot are covered by the + Creative Commons Attribution 3.0 + license. + +Files: misc/trace/* +Copyright: 2012 The Chromium Authors +License: BSD-3-clause + +Files: debian/* +Copyright: 2010 Ivan Wong + 2010 Ondřej Surý + 2012 Michael Stapelberg + 2014 Canonical Ltd + 2014 Tianon Gravi +License: Go + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: Go + Copyright © 2009 The Go Authors. All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + . + Subject to the terms and conditions of this License, Google hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, + royalty-free, irrevocable (except as stated in this section) patent + license to make, have made, use, offer to sell, sell, import, and + otherwise transfer this implementation of Go, where such license + applies only to those patent claims licensable by Google that are + necessarily infringed by use of this implementation of Go. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that this + implementation of Go or a Contribution incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, then any patent licenses granted to You under this + License for this implementation of Go shall terminate as of the date + such litigation is filed. + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian systems, the Apache License, Version 2.0 can be found at + /usr/share/common-licenses/Apache-2.0. + +License: X11 + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +License: FreeBSD + Copyright (c) 1996-1998 John D. Polstra. All rights reserved. + Copyright (c) 2001 David E. O'Brien + Portions Copyright 2009 The Go Authors. All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +License: MPEG + These software programs are available to the user without any license fee or + royalty on an "as is" basis. The MPEG Software Simulation Group disclaims + any and all warranties, whether express, implied, or statuary, including any + implied warranties or merchantability or of fitness for a particular + purpose. In no event shall the copyright-holder be liable for any + incidental, punitive, or consequential damages of any kind whatsoever + arising from the use of these programs. + . + This disclaimer of warranty extends to the user of these programs and user's + customers, employees, agents, transferees, successors, and assigns. + . + The MPEG Software Simulation Group does not represent or warrant that the + programs furnished hereunder are free of infringement of any third-party + patents. + . + Commercial implementations of MPEG-1 and MPEG-2 video, including shareware, + are subject to royalty fees to patent holders. Many of these patents are + general enough such that they are unavoidable regardless of implementation + design. + +License: CC-BY-3.0 + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS + CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS + PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE + WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS + PROHIBITED. + . + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND + AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS + LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU + THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH + TERMS AND CONDITIONS. + . + 1. Definitions + . + a. "Adaptation" means a work based upon the Work, or upon the Work + and other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and + includes cinematographic adaptations or any other form in which + the Work may be recast, transformed, or adapted including in any + form recognizably derived from the original, except that a work + that constitutes a Collection will not be considered an + Adaptation for the purpose of this License. For the avoidance of + doubt, where the Work is a musical work, performance or + phonogram, the synchronization of the Work in timed-relation + with a moving image ("synching") will be considered an + Adaptation for the purpose of this License. + . + b. "Collection" means a collection of literary or artistic works, + such as encyclopedias and anthologies, or performances, + phonograms or broadcasts, or other works or subject matter other + than works listed in Section 1(f) below, which, by reason of the + selection and arrangement of their contents, constitute + intellectual creations, in which the Work is included in its + entirety in unmodified form along with one or more other + contributions, each constituting separate and independent works + in themselves, which together are assembled into a collective + whole. A work that constitutes a Collection will not be + considered an Adaptation (as defined above) for the purposes of + this License. + . + c. "Distribute" means to make available to the public the original + and copies of the Work or Adaptation, as appropriate, through + sale or other transfer of ownership. + . + d. "Licensor" means the individual, individuals, entity or entities + that offer(s) the Work under the terms of this License. + . + e. "Original Author" means, in the case of a literary or artistic + work, the individual, individuals, entity or entities who + created the Work or if no individual or entity can be + identified, the publisher; and in addition (i) in the case of a + performance the actors, singers, musicians, dancers, and other + persons who act, sing, deliver, declaim, play in, interpret or + otherwise perform literary or artistic works or expressions of + folklore; (ii) in the case of a phonogram the producer being the + person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of + broadcasts, the organization that transmits the broadcast. + . + f. "Work" means the literary and/or artistic work offered under the + terms of this License including without limitation any + production in the literary, scientific and artistic domain, + whatever may be the mode or form of its expression including + digital form, such as a book, pamphlet and other writing; a + lecture, address, sermon or other work of the same nature; a + dramatic or dramatico-musical work; a choreographic work or + entertainment in dumb show; a musical composition with or + without words; a cinematographic work to which are assimilated + works expressed by a process analogous to cinematography; a work + of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of + applied art; an illustration, map, plan, sketch or + three-dimensional work relative to geography, topography, + architecture or science; a performance; a broadcast; a + phonogram; a compilation of data to the extent it is protected + as a copyrightable work; or a work performed by a variety or + circus performer to the extent it is not otherwise considered a + literary or artistic work. + . + g. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this + License with respect to the Work, or who has received express + permission from the Licensor to exercise rights under this + License despite a previous violation. + . + h. "Publicly Perform" means to perform public recitations of the + Work and to communicate to the public those public recitations, + by any means or process, including by wire or wireless means or + public digital performances; to make available to the public + Works in such a way that members of the public may access these + Works from a place and at a place individually chosen by them; + to perform the Work to the public by any means or process and + the communication to the public of the performances of the Work, + including by public digital performance; to broadcast and + rebroadcast the Work by any means including signs, sounds or + images. + . + i. "Reproduce" means to make copies of the Work by any means + including without limitation by sound or visual recordings and + the right of fixation and reproducing fixations of the Work, + including storage of a protected performance or phonogram in + digital form or other electronic medium. + . + 2. Fair Dealing Rights. Nothing in this License is intended to + reduce, limit, or restrict any uses free from copyright or rights + arising from limitations or exceptions that are provided for in + connection with the copyright protection under copyright law or other + applicable laws. + . + 3. License Grant. Subject to the terms and conditions of this License, + Licensor hereby grants You a worldwide, royalty-free, non-exclusive, + perpetual (for the duration of the applicable copyright) license to + exercise the rights in the Work as stated below: + . + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + . + b. to create and Reproduce Adaptations provided that any such + Adaptation, including any translation in any medium, takes + reasonable steps to clearly label, demarcate or otherwise + identify that changes were made to the original Work. For + example, a translation could be marked "The original work was + translated from English to Spanish," or a modification could + indicate "The original work has been modified."; + . + c. to Distribute and Publicly Perform the Work including as + incorporated in Collections; and, + . + d. to Distribute and Publicly Perform Adaptations. + . + e. For the avoidance of doubt: + . + i. Non-waivable Compulsory License Schemes. In those + jurisdictions in which the right to collect royalties + through any statutory or compulsory licensing scheme cannot + be waived, the Licensor reserves the exclusive right to + collect such royalties for any exercise by You of the + rights granted under this License; + . + ii. Waivable Compulsory License Schemes. In those jurisdictions + in which the right to collect royalties through any + statutory or compulsory licensing scheme can be waived, the + Licensor waives the exclusive right to collect such + royalties for any exercise by You of the rights granted + under this License; and, + . + iii. Voluntary License Schemes. The Licensor waives the right to + collect royalties, whether individually or, in the event + that the Licensor is a member of a collecting society that + administers voluntary licensing schemes, via that society, + from any exercise by You of the rights granted under this + License. + . + The above rights may be exercised in all media and formats whether + now known or hereafter devised. The above rights include the right to + make such modifications as are technically necessary to exercise the + rights in other media and formats. Subject to Section 8(f), all + rights not expressly granted by Licensor are hereby reserved. + . + 4. Restrictions. The license granted in Section 3 above is expressly + made subject to and limited by the following restrictions: + . + a. You may Distribute or Publicly Perform the Work only under the + terms of this License. You must include a copy of, or the + Uniform Resource Identifier (URI) for, this License with every + copy of the Work You Distribute or Publicly Perform. You may not + offer or impose any terms on the Work that restrict the terms of + this License or the ability of the recipient of the Work to + exercise the rights granted to that recipient under the terms of + the License. You may not sublicense the Work. You must keep + intact all notices that refer to this License and to the + disclaimer of warranties with every copy of the Work You + Distribute or Publicly Perform. When You Distribute or Publicly + Perform the Work, You may not impose any effective technological + measures on the Work that restrict the ability of a recipient of + the Work from You to exercise the rights granted to that + recipient under the terms of the License. This Section 4(a) + applies to the Work as incorporated in a Collection, but this + does not require the Collection apart from the Work itself to be + made subject to the terms of this License. If You create a + Collection, upon notice from any Licensor You must, to the + extent practicable, remove from the Collection any credit as + required by Section 4(b), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the + extent practicable, remove from the Adaptation any credit as + required by Section 4(b), as requested. + . + b. If You Distribute, or Publicly Perform the Work or any + Adaptations or Collections, You must, unless a request has been + made pursuant to Section 4(a), keep intact all copyright notices + for the Work and provide, reasonable to the medium or means You + are utilizing: (i) the name of the Original Author (or + pseudonym, if applicable) if supplied, and/or if the Original + Author and/or Licensor designate another party or parties (e.g., + a sponsor institute, publishing entity, journal) for attribution + ("Attribution Parties") in Licensor's copyright notice, terms of + service or by other reasonable means, the name of such party or + parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does + not refer to the copyright notice or licensing information for + the Work; and (iv) , consistent with Section 3(b), in the case + of an Adaptation, a credit identifying the use of the Work in + the Adaptation (e.g., "French translation of the Work by + Original Author," or "Screenplay based on original Work by + Original Author"). The credit required by this Section 4 (b) may + be implemented in any reasonable manner; provided, however, that + in the case of a Adaptation or Collection, at a minimum such + credit will appear, if a credit for all contributing authors of + the Adaptation or Collection appears, then as part of these + credits and in a manner at least as prominent as the credits for + the other contributing authors. For the avoidance of doubt, You + may only use the credit required by this Section for the purpose + of attribution in the manner set out above and, by exercising + Your rights under this License, You may not implicitly or + explicitly assert or imply any connection with, sponsorship or + endorsement by the Original Author, Licensor and/or Attribution + Parties, as appropriate, of You or Your use of the Work, without + the separate, express prior written permission of the Original + Author, Licensor and/or Attribution Parties. + . + c. Except as otherwise agreed in writing by the Licensor or as may + be otherwise permitted by applicable law, if You Reproduce, + Distribute or Publicly Perform the Work either by itself or as + part of any Adaptations or Collections, You must not distort, + mutilate, modify or take other derogatory action in relation to + the Work which would be prejudicial to the Original Author's + honor or reputation. Licensor agrees that in those jurisdictions + (e.g. Japan), in which any exercise of the right granted in + Section 3(b) of this License (the right to make Adaptations) + would be deemed to be a distortion, mutilation, modification or + other derogatory action prejudicial to the Original Author's + honor and reputation, the Licensor will waive or not assert, as + appropriate, this Section, to the fullest extent permitted by + the applicable national law, to enable You to reasonably + exercise Your right under Section 3(b) of this License (right to + make Adaptations) but not otherwise. + . + 5. Representations, Warranties and Disclaimer + . + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, + LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR + WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, + STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF + TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, + NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, + OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. + SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, + SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + . + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY + APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY + LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR + EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, + EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + . + 7. Termination + . + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this + License. Individuals or entities who have received Adaptations + or Collections from You under this License, however, will not + have their licenses terminated provided such individuals or + entities remain in full compliance with those licenses. + Sections 1, 2, 5, 6, 7, and 8 will survive any termination of + this License. + . + b. Subject to the above terms and conditions, the license granted + here is perpetual (for the duration of the applicable copyright + in the Work). Notwithstanding the above, Licensor reserves the + right to release the Work under different license terms or to + stop distributing the Work at any time; provided, however that + any such election will not serve to withdraw this License (or + any other license that has been, or is required to be, granted + under the terms of this License), and this License will continue + in full force and effect unless terminated as stated above. + . + 8. Miscellaneous + . + a. Each time You Distribute or Publicly Perform the Work or a + Collection, the Licensor offers to the recipient a license to + the Work on the same terms and conditions as the license granted + to You under this License. + . + b. Each time You Distribute or Publicly Perform an Adaptation, + Licensor offers to the recipient a license to the original Work + on the same terms and conditions as the license granted to You + under this License. + . + c. If any provision of this License is invalid or unenforceable + under applicable law, it shall not affect the validity or + enforceability of the remainder of the terms of this License, + and without further action by the parties to this agreement, + such provision shall be reformed to the minimum extent necessary + to make such provision valid and enforceable. + . + d. No term or provision of this License shall be deemed waived and + no breach consented to unless such waiver or consent shall be in + writing and signed by the party to be charged with such waiver + or consent. + . + e. This License constitutes the entire agreement between the + parties with respect to the Work licensed here. There are no + understandings, agreements or representations with respect to + the Work not specified here. Licensor shall not be bound by any + additional provisions that may appear in any communication from + You. This License may not be modified without the mutual written + agreement of the Licensor and You. + . + f. The rights granted under, and the subject matter referenced, in + this License were drafted utilizing the terminology of the Berne + Convention for the Protection of Literary and Artistic Works (as + amended on September 28, 1979), the Rome Convention of 1961, the + WIPO Copyright Treaty of 1996, the WIPO Performances and + Phonograms Treaty of 1996 and the Universal Copyright Convention + (as revised on July 24, 1971). These rights and subject matter + take effect in the relevant jurisdiction in which the License + terms are sought to be enforced according to the corresponding + provisions of the implementation of those treaty provisions in + the applicable national law. If the standard suite of rights + granted under applicable copyright law includes additional + rights not granted under this License, such additional rights + are deemed to be included in the License; this License is not + intended to restrict the license of any rights under applicable law. + +License: BSD-2-clause-svgpan + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + EVENT SHALL Andrea Leofreddi OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + . + The views and conclusions contained in the software and documentation are those + of the authors and should not be interpreted as representing official policies, + either expressed or implied, of Andrea Leofreddi. diff --git a/docs b/docs new file mode 100644 index 0000000..4ad6ffb --- /dev/null +++ b/docs @@ -0,0 +1,3 @@ +AUTHORS +CONTRIBUTORS +README.md diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000..3220e67 --- /dev/null +++ b/gbp.conf @@ -0,0 +1,13 @@ +# +# WARNING: "debian/gbp.conf" is generated via "debian/rules gencontrol" (sourced from "debian/gbp.conf.in") +# + +[DEFAULT] +debian-branch = debian/1.11/buster +debian-tag = debian/%(version)s +upstream-branch = upstream-1.11 +upstream-tag = upstream/%(version)s +pristine-tar = True + +[dch] +meta = 1 diff --git a/gbp.conf.in b/gbp.conf.in new file mode 100644 index 0000000..d2b8866 --- /dev/null +++ b/gbp.conf.in @@ -0,0 +1,9 @@ +[DEFAULT] +debian-branch = debian/1.11/buster +debian-tag = debian/%(version)s +upstream-branch = upstream-X.Y +upstream-tag = upstream/%(version)s +pristine-tar = True + +[dch] +meta = 1 diff --git a/golang-X.Y-doc.dirs b/golang-X.Y-doc.dirs new file mode 100644 index 0000000..8c724f4 --- /dev/null +++ b/golang-X.Y-doc.dirs @@ -0,0 +1 @@ +usr/share/doc/golang-X.Y-doc/html diff --git a/golang-X.Y-doc.install b/golang-X.Y-doc.install new file mode 100644 index 0000000..5fa12e2 --- /dev/null +++ b/golang-X.Y-doc.install @@ -0,0 +1,2 @@ +doc/* /usr/share/doc/golang-X.Y-doc/html/ +favicon.ico /usr/share/doc/golang-X.Y-doc diff --git a/golang-X.Y-doc.links b/golang-X.Y-doc.links new file mode 100644 index 0000000..1215c30 --- /dev/null +++ b/golang-X.Y-doc.links @@ -0,0 +1,2 @@ +usr/share/doc/golang-X.Y-doc/favicon.ico /usr/lib/go-X.Y/favicon.ico +usr/share/doc/golang-X.Y-doc/html /usr/lib/go-X.Y/doc diff --git a/golang-X.Y-doc.lintian-overrides b/golang-X.Y-doc.lintian-overrides new file mode 100644 index 0000000..f4aa785 --- /dev/null +++ b/golang-X.Y-doc.lintian-overrides @@ -0,0 +1,5 @@ +# While golang-X.Y-doc ships HTML files, they are not intended to be viewed +# directly in a browser or other HTML-capable tool. Instead, they have to be +# served by using e.g. “godoc -http=:6060”, see also +# http://bugs.debian.org/702642 +golang-X.Y-doc: possible-documentation-but-no-doc-base-registration diff --git a/golang-X.Y-go.dirs b/golang-X.Y-go.dirs new file mode 100644 index 0000000..979785e --- /dev/null +++ b/golang-X.Y-go.dirs @@ -0,0 +1,2 @@ +usr/lib/go-X.Y +usr/share/go-X.Y/src/ diff --git a/golang-X.Y-go.install b/golang-X.Y-go.install new file mode 100644 index 0000000..300f172 --- /dev/null +++ b/golang-X.Y-go.install @@ -0,0 +1,6 @@ +VERSION /usr/lib/go-X.Y/ +bin/go /usr/lib/go-X.Y/bin/ +bin/gofmt /usr/lib/go-X.Y/bin/ +pkg/*_* /usr/lib/go-X.Y/pkg/ +pkg/include /usr/share/go-X.Y/pkg/ +pkg/tool /usr/lib/go-X.Y/pkg/ diff --git a/golang-X.Y-go.links b/golang-X.Y-go.links new file mode 100644 index 0000000..107242d --- /dev/null +++ b/golang-X.Y-go.links @@ -0,0 +1,3 @@ +usr/share/go-X.Y/pkg/include /usr/lib/go-X.Y/pkg/include +usr/share/go-X.Y/src /usr/lib/go-X.Y/src +usr/share/go-X.Y/test /usr/lib/go-X.Y/test diff --git a/golang-X.Y-go.lintian-overrides b/golang-X.Y-go.lintian-overrides new file mode 100644 index 0000000..6a44c73 --- /dev/null +++ b/golang-X.Y-go.lintian-overrides @@ -0,0 +1,5 @@ +# Go always links statically. +golang-X.Y-go: statically-linked-binary + +# False positive, the file does not use one of the binaries in sensible-utils +golang-X.Y-go: missing-depends-on-sensible-utils usr/lib/go-X.Y/pkg/linux_amd64/cmd/vendor/github.com/google/pprof/internal/driver.a diff --git a/golang-X.Y-go.postinst b/golang-X.Y-go.postinst new file mode 100644 index 0000000..1609572 --- /dev/null +++ b/golang-X.Y-go.postinst @@ -0,0 +1,13 @@ +#!/bin/sh +set -e + +case "$1" in + configure) + # Very ugly hack to set timestamps same as /usr/lib/go-X.Y/bin/go + find /usr/lib/go-X.Y/pkg -exec touch -r /usr/lib/go-X.Y/bin/go {} \; + ;; + *) + ;; +esac + +#DEBHELPER# diff --git a/golang-X.Y-src.install b/golang-X.Y-src.install new file mode 100644 index 0000000..b78e2c0 --- /dev/null +++ b/golang-X.Y-src.install @@ -0,0 +1,4 @@ +api /usr/share/go-X.Y/ +misc /usr/share/go-X.Y/ +src /usr/share/go-X.Y/ +test /usr/share/go-X.Y/ diff --git a/golang-X.Y-src.lintian-overrides b/golang-X.Y-src.lintian-overrides new file mode 100644 index 0000000..630d224 --- /dev/null +++ b/golang-X.Y-src.lintian-overrides @@ -0,0 +1,27 @@ +# golang-X.Y-src ships ELF object files and binaries as testdata for the +# debug/dwarf, debug/elf and runtime/pprof packages. +golang-X.Y-src: arch-dependent-file-in-usr-share +golang-X.Y-src: unstripped-binary-or-object +golang-X.Y-src: binary-from-other-architecture +golang-X.Y-src: statically-linked-binary + +# False positive, the file does not use one of the binaries in sensible-utils +golang-X.Y-src: missing-depends-on-sensible-utils usr/share/go-X.Y/src/cmd/vendor/github.com/google/pprof/internal/driver/commands.go + +# These files are only testdata +golang-X.Y-src: executable-not-elf-or-script usr/share/go-X.Y/src/cmd/internal/buildid/testdata/a.pe +golang-X.Y-src: executable-not-elf-or-script usr/share/go-X.Y/src/cmd/vendor/github.com/google/pprof/internal/binutils/testdata/exe_mac_64 +golang-X.Y-src: executable-not-elf-or-script usr/share/go-X.Y/src/cmd/internal/buildid/testdata/a.macho +golang-X.Y-src: executable-not-elf-or-script usr/share/go-X.Y/src/cmd/vendor/github.com/google/pprof/internal/binutils/testdata/lib_mac_64 + +# These files are only testdata +golang-X.Y-src: hardening-no-pie usr/share/go-X.Y/src/cmd/vendor/github.com/google/pprof/internal/binutils/testdata/exe_linux_64 +golang-X.Y-src: hardening-no-pie usr/share/go-X.Y/src/debug/dwarf/testdata/line-clang.elf +golang-X.Y-src: hardening-no-pie usr/share/go-X.Y/src/debug/dwarf/testdata/line-gcc.elf +golang-X.Y-src: hardening-no-pie usr/share/go-X.Y/src/debug/dwarf/testdata/ranges.elf +golang-X.Y-src: hardening-no-pie usr/share/go-X.Y/src/debug/dwarf/testdata/split.elf +golang-X.Y-src: hardening-no-pie usr/share/go-X.Y/src/debug/dwarf/testdata/typedef.elf +golang-X.Y-src: hardening-no-relro usr/share/go-X.Y/src/debug/elf/testdata/gcc-386-freebsd-exec +golang-X.Y-src: hardening-no-pie usr/share/go-X.Y/src/debug/elf/testdata/gcc-386-freebsd-exec +golang-X.Y-src: hardening-no-relro usr/share/go-X.Y/src/debug/elf/testdata/gcc-amd64-linux-exec +golang-X.Y-src: hardening-no-pie usr/share/go-X.Y/src/debug/elf/testdata/gcc-amd64-linux-exec diff --git a/helpers/goenv.sh b/helpers/goenv.sh new file mode 100755 index 0000000..d7f6417 --- /dev/null +++ b/helpers/goenv.sh @@ -0,0 +1,56 @@ +#!/bin/sh +set -e + +__goos__deb_arch_os() { + case "$1" in + kfreebsd) echo freebsd ;; + linux) echo "$1" ;; + *) echo >&2 "error: unrecongized DEB_*_ARCH_OS: $1"; exit 1 ;; + esac +} + +__goarch__deb_arch_cpu() { + case "$1" in + amd64|arm|arm64|mips|ppc64|s390x) echo "$1" ;; + i386) echo 386 ;; + mips64el) echo mips64le ;; + mipsel) echo mipsle ;; + ppc64el) echo ppc64le ;; + *) echo >&2 "error: unrecongized DEB_*_ARCH_CPU: $1"; exit 1 ;; + esac +} + +# build machine +# The machine the package is built on. +# +# host machine +# The machine the package is built for. + +export GOHOSTOS="$(__goos__deb_arch_os "$(dpkg-architecture -qDEB_BUILD_ARCH_OS 2>/dev/null)")" +export GOOS="$(__goos__deb_arch_os "$(dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)")" + +export GOHOSTARCH="$(__goarch__deb_arch_cpu "$(dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null)")" +export GOARCH="$(__goarch__deb_arch_cpu "$(dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null)")" + +if [ -z "$GOHOSTOS" -o -z "$GOOS" -o -z "$GOHOSTARCH" -o -z "$GOARCH" ]; then + exit 1 +fi + +# Always use the 387 floating point unit instead of sse2. This is important to +# ensure that the binaries we build (both when compiling golang on the buildds +# and when users cross-compile for 386) can actually run on older CPUs (where +# old means e.g. an AMD Athlon XP 2400+). See http://bugs.debian.org/753160 and +# https://code.google.com/p/go/issues/detail?id=8152 +export GO386=387 + +unset GOARM +if [ "$GOARCH" = 'arm' ]; then + # start with GOARM=5 for maximum compatibility (see note about GO386 above) + GOARM=5 + case "$(dpkg-architecture -qDEB_HOST_ARCH 2>/dev/null)" in + armhf) GOARM=6 ;; + esac +fi +export GOARM + +eval "$@" diff --git a/patches/0001-Reproducible-BUILD_PATH_PREFIX_MAP.patch b/patches/0001-Reproducible-BUILD_PATH_PREFIX_MAP.patch new file mode 100644 index 0000000..ceff0e3 --- /dev/null +++ b/patches/0001-Reproducible-BUILD_PATH_PREFIX_MAP.patch @@ -0,0 +1,140 @@ +From: Michael Stapelberg +Date: Thu, 8 Feb 2018 10:00:00 +0100 +Subject: Reproducible BUILD_PATH_PREFIX_MAP + +Make builds reproducible by honoring BUILD_PATH_PREFIX_MAP +Upstream has rejected the patch in this form and promised to implement an +alternative they are happy with instead. That hasn't happened yet though. + +Bug: https://github.com/golang/go/issues/22491, https://github.com/golang/go/issues/16860 +Forwarded: https://golang.org/cl/73291 (rejected upstream though) +--- + src/cmd/go/internal/work/gc.go | 5 ++- + src/cmd/link/internal/ld/buildpathprefix.go | 56 +++++++++++++++++++++++++++++ + src/cmd/link/internal/ld/dwarf.go | 4 +-- + src/cmd/link/internal/ld/pcln.go | 4 +-- + 4 files changed, 64 insertions(+), 5 deletions(-) + create mode 100644 src/cmd/link/internal/ld/buildpathprefix.go + +diff --git a/src/cmd/go/internal/work/gc.go b/src/cmd/go/internal/work/gc.go +index 6e5333c..f91edb6 100644 +--- a/src/cmd/go/internal/work/gc.go ++++ b/src/cmd/go/internal/work/gc.go +@@ -466,7 +466,10 @@ func (gcToolchain) ld(b *Builder, root *Action, out, importcfg, mainpkg string) + dir, out = filepath.Split(out) + } + +- return b.run(root, dir, root.Package.ImportPath, nil, cfg.BuildToolexec, base.Tool("link"), "-o", out, "-importcfg", importcfg, ldflags, mainpkg) ++ // Apply the rewrite of $WORK to /tmp/go-build also to DWARF file tables: ++ env := []string{"BUILD_PATH_PREFIX_MAP=/tmp/go-build=" + b.WorkDir + ":" + os.Getenv("BUILD_PATH_PREFIX_MAP")} ++ ++ return b.run(root, dir, root.Package.ImportPath, env, cfg.BuildToolexec, base.Tool("link"), "-o", out, "-importcfg", importcfg, ldflags, mainpkg) + } + + func (gcToolchain) ldShared(b *Builder, root *Action, toplevelactions []*Action, out, importcfg string, allactions []*Action) error { +diff --git a/src/cmd/link/internal/ld/buildpathprefix.go b/src/cmd/link/internal/ld/buildpathprefix.go +new file mode 100644 +index 0000000..8cda8a5 +--- /dev/null ++++ b/src/cmd/link/internal/ld/buildpathprefix.go +@@ -0,0 +1,56 @@ ++// Copyright 2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package ld ++ ++import ( ++ "log" ++ "os" ++ "strings" ++ "sync" ++) ++ ++func decode(s string) string { ++ s = strings.Replace(s, "%.", ":", -1) ++ s = strings.Replace(s, "%+", "=", -1) ++ s = strings.Replace(s, "%#", "%", -1) ++ return s ++} ++ ++type prefixMapEntry struct { ++ target string ++ source string ++} ++ ++var ( ++ buildPathPrefixMap []prefixMapEntry ++ buildPathPrefixMapOnce sync.Once ++) ++ ++// See https://reproducible-builds.org/specs/build-path-prefix-map/ ++func applyBuildPathPrefixMap(dir string) string { ++ // Parse the BUILD_PATH_PREFIX_MAP only once; this function gets called for ++ // every compiled file. ++ buildPathPrefixMapOnce.Do(func() { ++ for _, item := range strings.Split(os.Getenv("BUILD_PATH_PREFIX_MAP"), ":") { ++ if strings.TrimSpace(item) == "" { ++ continue ++ } ++ parts := strings.Split(item, "=") ++ if got, want := len(parts), 2; got != want { ++ log.Fatalf("parsing BUILD_PATH_PREFIX_MAP: incorrect number of = separators in item %q: got %d, want %d", item, got-1, want-1) ++ } ++ buildPathPrefixMap = append(buildPathPrefixMap, prefixMapEntry{ ++ target: decode(parts[0]), ++ source: decode(parts[1]), ++ }) ++ } ++ }) ++ for _, e := range buildPathPrefixMap { ++ if strings.HasPrefix(dir, e.source) { ++ return e.target + strings.TrimPrefix(dir, e.source) ++ } ++ } ++ return dir ++} +diff --git a/src/cmd/link/internal/ld/dwarf.go b/src/cmd/link/internal/ld/dwarf.go +index ae6f90b..6d9dd59 100644 +--- a/src/cmd/link/internal/ld/dwarf.go ++++ b/src/cmd/link/internal/ld/dwarf.go +@@ -1132,7 +1132,7 @@ func writelines(ctxt *Link, lib *sym.Library, textp []*sym.Symbol, ls *sym.Symbo + newattr(dwinfo, dwarf.DW_AT_language, dwarf.DW_CLS_CONSTANT, int64(lang), 0) + newattr(dwinfo, dwarf.DW_AT_stmt_list, dwarf.DW_CLS_PTR, ls.Size, ls) + // OS X linker requires compilation dir or absolute path in comp unit name to output debug info. +- compDir := getCompilationDir() ++ compDir := applyBuildPathPrefixMap(getCompilationDir()) + // TODO: Make this be the actual compilation directory, not + // the linker directory. If we move CU construction into the + // compiler, this should happen naturally. +@@ -1188,7 +1188,7 @@ func writelines(ctxt *Link, lib *sym.Library, textp []*sym.Symbol, ls *sym.Symbo + } + // File indexes are 1-based. + fileNums[int(f.Value)] = len(fileNums) + 1 +- Addstring(ls, f.Name) ++ Addstring(ls, applyBuildPathPrefixMap(f.Name)) + ls.AddUint8(0) + ls.AddUint8(0) + ls.AddUint8(0) +diff --git a/src/cmd/link/internal/ld/pcln.go b/src/cmd/link/internal/ld/pcln.go +index 7b7f706..8941d51 100644 +--- a/src/cmd/link/internal/ld/pcln.go ++++ b/src/cmd/link/internal/ld/pcln.go +@@ -301,7 +301,7 @@ func (ctxt *Link) pclntab() { + off = int32(ftab.SetAddr(ctxt.Arch, int64(off), s)) + + // name int32 +- nameoff := nameToOffset(s.Name) ++ nameoff := nameToOffset(applyBuildPathPrefixMap(s.Name)) + off = int32(ftab.SetUint32(ctxt.Arch, int64(off), uint32(nameoff))) + + // args int32 +@@ -444,7 +444,7 @@ func (ctxt *Link) pclntab() { + ftab.SetUint32(ctxt.Arch, int64(start), uint32(len(ctxt.Filesyms)+1)) + for i := len(ctxt.Filesyms) - 1; i >= 0; i-- { + s := ctxt.Filesyms[i] +- ftab.SetUint32(ctxt.Arch, int64(start)+s.Value*4, uint32(ftabaddstring(ctxt, ftab, s.Name))) ++ ftab.SetUint32(ctxt.Arch, int64(start)+s.Value*4, uint32(ftabaddstring(ctxt, ftab, applyBuildPathPrefixMap(s.Name)))) + } + + ftab.Size = int64(len(ftab.P)) diff --git a/patches/0002-Fix-Lintian-warnings-about-wrong-interpreter-path.patch b/patches/0002-Fix-Lintian-warnings-about-wrong-interpreter-path.patch new file mode 100644 index 0000000..fbd00a2 --- /dev/null +++ b/patches/0002-Fix-Lintian-warnings-about-wrong-interpreter-path.patch @@ -0,0 +1,208 @@ +From: "Dr. Tobias Quathamer" +Date: Wed, 19 Dec 2018 13:16:45 +0100 +Subject: Fix Lintian warnings about wrong interpreter path + +The command used for this change is as follows: + +grep -rH "/usr/bin/env perl" * | cut -d: -f1 | xargs -n1 sed -i -e "s,/usr/bin/env perl,/usr/bin/perl," +--- + src/cmd/vendor/golang.org/x/sys/unix/mksyscall.pl | 2 +- + src/cmd/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl | 2 +- + src/cmd/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl | 2 +- + src/cmd/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl | 2 +- + src/cmd/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl | 2 +- + src/cmd/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl | 2 +- + src/cmd/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl | 2 +- + src/cmd/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl | 2 +- + src/syscall/mksyscall.pl | 2 +- + src/syscall/mksyscall_solaris.pl | 2 +- + src/syscall/mksysctl_openbsd.pl | 2 +- + src/syscall/mksysnum_darwin.pl | 2 +- + src/syscall/mksysnum_dragonfly.pl | 2 +- + src/syscall/mksysnum_freebsd.pl | 2 +- + src/syscall/mksysnum_linux.pl | 2 +- + src/syscall/mksysnum_netbsd.pl | 2 +- + src/syscall/mksysnum_openbsd.pl | 2 +- + test/errchk | 2 +- + 18 files changed, 18 insertions(+), 18 deletions(-) + +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/mksyscall.pl b/src/cmd/vendor/golang.org/x/sys/unix/mksyscall.pl +index 1f6b926..4c91625 100755 +--- a/src/cmd/vendor/golang.org/x/sys/unix/mksyscall.pl ++++ b/src/cmd/vendor/golang.org/x/sys/unix/mksyscall.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl b/src/cmd/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl +index 3e6ed9d..432da9c 100755 +--- a/src/cmd/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl ++++ b/src/cmd/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl b/src/cmd/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl +index 49f186f..69b78cb 100755 +--- a/src/cmd/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl ++++ b/src/cmd/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + + # Copyright 2011 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl +index 5453c53..fd16c4b 100755 +--- a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl ++++ b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl +index 6804f41..02a3836 100755 +--- a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl ++++ b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl +index a0a22bf..2d4fd80 100755 +--- a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl ++++ b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl +index 85988b1..e5c135b 100755 +--- a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl ++++ b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl +index 84edf60..f52e80e 100755 +--- a/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl ++++ b/src/cmd/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/syscall/mksyscall.pl b/src/syscall/mksyscall.pl +index ccce82e..3da9cad 100755 +--- a/src/syscall/mksyscall.pl ++++ b/src/syscall/mksyscall.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/syscall/mksyscall_solaris.pl b/src/syscall/mksyscall_solaris.pl +index 9172975..db6f18e 100755 +--- a/src/syscall/mksyscall_solaris.pl ++++ b/src/syscall/mksyscall_solaris.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/syscall/mksysctl_openbsd.pl b/src/syscall/mksysctl_openbsd.pl +index ea462a7..7e8a3e2 100755 +--- a/src/syscall/mksysctl_openbsd.pl ++++ b/src/syscall/mksysctl_openbsd.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + + # Copyright 2011 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style +diff --git a/src/syscall/mksysnum_darwin.pl b/src/syscall/mksysnum_darwin.pl +index af21e85..9e59261 100755 +--- a/src/syscall/mksysnum_darwin.pl ++++ b/src/syscall/mksysnum_darwin.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/syscall/mksysnum_dragonfly.pl b/src/syscall/mksysnum_dragonfly.pl +index e9a634b..a8df18d 100755 +--- a/src/syscall/mksysnum_dragonfly.pl ++++ b/src/syscall/mksysnum_dragonfly.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/syscall/mksysnum_freebsd.pl b/src/syscall/mksysnum_freebsd.pl +index c04ada9..f9b7b91 100755 +--- a/src/syscall/mksysnum_freebsd.pl ++++ b/src/syscall/mksysnum_freebsd.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/syscall/mksysnum_linux.pl b/src/syscall/mksysnum_linux.pl +index 5fb1d0e..ebeb9a8 100755 +--- a/src/syscall/mksysnum_linux.pl ++++ b/src/syscall/mksysnum_linux.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/syscall/mksysnum_netbsd.pl b/src/syscall/mksysnum_netbsd.pl +index 4f5150a..53783ff 100755 +--- a/src/syscall/mksysnum_netbsd.pl ++++ b/src/syscall/mksysnum_netbsd.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/src/syscall/mksysnum_openbsd.pl b/src/syscall/mksysnum_openbsd.pl +index 0b0c9df..41e8f47 100755 +--- a/src/syscall/mksysnum_openbsd.pl ++++ b/src/syscall/mksysnum_openbsd.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. +diff --git a/test/errchk b/test/errchk +index 1cb57bb..a69b29d 100755 +--- a/test/errchk ++++ b/test/errchk +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++#!/usr/bin/perl + # Copyright 2009 The Go Authors. All rights reserved. + # Use of this source code is governed by a BSD-style + # license that can be found in the LICENSE file. diff --git a/patches/0003-arm64-arm64asm-recognise-new-ssbb-pssbb-mnemonics-fr.patch b/patches/0003-arm64-arm64asm-recognise-new-ssbb-pssbb-mnemonics-fr.patch new file mode 100644 index 0000000..42eea8d --- /dev/null +++ b/patches/0003-arm64-arm64asm-recognise-new-ssbb-pssbb-mnemonics-fr.patch @@ -0,0 +1,42 @@ +From: Michael Hudson-Doyle +Date: Thu, 20 Sep 2018 09:20:31 +0200 +Subject: arm64/arm64asm: recognise new ssbb/pssbb mnemonics from objdump + +Fixes golang/go#27754 + +Change-Id: I8fcc3bc3c718cf0d93afbd1d383df48316b522d4 +Reviewed-on: https://go-review.googlesource.com/136455 +Run-TryBot: Michael Hudson-Doyle +TryBot-Result: Gobot Gobot +Reviewed-by: Cherry Zhang +--- + .../vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/cmd/vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go b/src/cmd/vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go +index 261c7ca..3baf8a1 100644 +--- a/src/cmd/vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go ++++ b/src/cmd/vendor/golang.org/x/arch/arm64/arm64asm/objdump_test.go +@@ -103,6 +103,13 @@ func allowedMismatchObjdump(text string, inst *Inst, dec ExtInst) bool { + return true + } + } ++ // New objdump supports some newer mnemonics than this package. This ++ // package should be updated to support the new mnemonics and the sense ++ // of this reversed to continue passing with older objdumps but that ++ // requires internal ARM tooling. ++ if newForm, ok := newMnemonics[text]; ok && newForm == dec.text { ++ return true ++ } + // GNU objdump misses spaces between operands for some instructions (e.g., "ld1 {v10.2s, v11.2s}, [x23],#16") + if strings.Replace(text, " ", "", -1) == strings.Replace(dec.text, " ", "", -1) { + return true +@@ -148,3 +155,8 @@ var oldObjdumpMismatch = map[string]string{ + "strh": "sturh", + "prfm": "prfum", + } ++ ++var newMnemonics = map[string]string{ ++ "dsb #0x00": "ssbb", ++ "dsb #0x04": "pssbb", ++} diff --git a/patches/0004-fix-Fstatat-by-using-fillStat_t-on-linux-mips64x.patch b/patches/0004-fix-Fstatat-by-using-fillStat_t-on-linux-mips64x.patch new file mode 100644 index 0000000..b3ffe39 --- /dev/null +++ b/patches/0004-fix-Fstatat-by-using-fillStat_t-on-linux-mips64x.patch @@ -0,0 +1,154 @@ +From: Anthony Fok +Date: Fri, 28 Dec 2018 06:18:00 -0700 +Subject: [PATCH] unix: fix Fstatat by using fillStat_t on linux/mips64x + +The stat structure on linux/mips64x differ between C library and the kernel, +as described in the stat(2) man page. + +Fstat, Lstat and Stat on linux/mips64x already converts the stat structure +using a fillStat_t function, very similar to __xstat_conv in GLIBC. +Doing the same for Fstatat before calling SYS_NEWFSTATAT fixes the +"Fstatat: returned stat does not match Stat/Lstat" error in TestFstatat. + +Fixes golang/go#29401 + +Change-Id: I0b2a7b274acc3c7c9fc7ae2afe722dd6225da383 +Reviewed-on: https://go-review.googlesource.com/c/155747 +Reviewed-by: Ian Lance Taylor +Reviewed-by: Tobias Klauser +--- + .../golang.org/x/sys/unix/syscall_linux_mips64x.go | 9 ++++++- + .../golang.org/x/sys/unix/zsyscall_linux_mips64.go | 30 +++++++++++----------- + .../x/sys/unix/zsyscall_linux_mips64le.go | 30 +++++++++++----------- + 3 files changed, 38 insertions(+), 31 deletions(-) + +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/src/cmd/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +index ad99103..18541dc 100644 +--- a/src/cmd/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go ++++ b/src/cmd/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +@@ -12,7 +12,6 @@ package unix + //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) + //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 + //sys Fchown(fd int, uid int, gid int) (err error) +-//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT + //sys Fstatfs(fd int, buf *Statfs_t) (err error) + //sys Ftruncate(fd int, length int64) (err error) + //sysnb Getegid() (egid int) +@@ -148,6 +147,7 @@ type stat_t struct { + } + + //sys fstat(fd int, st *stat_t) (err error) ++//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT + //sys lstat(path string, st *stat_t) (err error) + //sys stat(path string, st *stat_t) (err error) + +@@ -158,6 +158,13 @@ func Fstat(fd int, s *Stat_t) (err error) { + return + } + ++func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) { ++ st := &stat_t{} ++ err = fstatat(dirfd, path, st, flags) ++ fillStat_t(s, st) ++ return ++} ++ + func Lstat(path string, s *Stat_t) (err error) { + st := &stat_t{} + err = lstat(path, st) +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/src/cmd/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +index 382e072..9edc1f4 100644 +--- a/src/cmd/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go ++++ b/src/cmd/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +@@ -1547,21 +1547,6 @@ func Fchown(fd int, uid int, gid int) (err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { +- var _p0 *byte +- _p0, err = BytePtrFromString(path) +- if err != nil { +- return +- } +- _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) +- } +- return +-} +- +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +- + func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { +@@ -2121,6 +2106,21 @@ func fstat(fd int, st *stat_t) (err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func lstat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) +diff --git a/src/cmd/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/src/cmd/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +index da33eb1..9e65776 100644 +--- a/src/cmd/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go ++++ b/src/cmd/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +@@ -1547,21 +1547,6 @@ func Fchown(fd int, uid int, gid int) (err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +-func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { +- var _p0 *byte +- _p0, err = BytePtrFromString(path) +- if err != nil { +- return +- } +- _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) +- if e1 != 0 { +- err = errnoErr(e1) +- } +- return +-} +- +-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +- + func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { +@@ -2121,6 +2106,21 @@ func fstat(fd int, st *stat_t) (err error) { + + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + ++func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ + func lstat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) diff --git a/patches/0005-Fix-CVE-2019-9512-and-CVE-2019-9514.patch b/patches/0005-Fix-CVE-2019-9512-and-CVE-2019-9514.patch new file mode 100644 index 0000000..1e49eb9 --- /dev/null +++ b/patches/0005-Fix-CVE-2019-9512-and-CVE-2019-9514.patch @@ -0,0 +1,138 @@ +From: "Dr. Tobias Quathamer" +Date: Thu, 15 Aug 2019 21:34:14 +0200 +Subject: Fix CVE-2019-9512 and CVE-2019-9514 + +Cherry-picked from upstream: +https://github.com/golang/go/commit/e152b01a468a1c18a290bf9aec52ccea7693c7f2 +--- + src/net/http/h2_bundle.go | 54 +++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 45 insertions(+), 9 deletions(-) + +diff --git a/src/net/http/h2_bundle.go b/src/net/http/h2_bundle.go +index 2cd2b86..6182495 100644 +--- a/src/net/http/h2_bundle.go ++++ b/src/net/http/h2_bundle.go +@@ -3835,10 +3835,11 @@ func (p *http2pipe) Done() <-chan struct{} { + } + + const ( +- http2prefaceTimeout = 10 * time.Second +- http2firstSettingsTimeout = 2 * time.Second // should be in-flight with preface anyway +- http2handlerChunkWriteSize = 4 << 10 +- http2defaultMaxStreams = 250 // TODO: make this 100 as the GFE seems to? ++ http2prefaceTimeout = 10 * time.Second ++ http2firstSettingsTimeout = 2 * time.Second // should be in-flight with preface anyway ++ http2handlerChunkWriteSize = 4 << 10 ++ http2defaultMaxStreams = 250 // TODO: make this 100 as the GFE seems to? ++ http2maxQueuedControlFrames = 10000 + ) + + var ( +@@ -3946,6 +3947,15 @@ func (s *http2Server) maxConcurrentStreams() uint32 { + return http2defaultMaxStreams + } + ++// maxQueuedControlFrames is the maximum number of control frames like ++// SETTINGS, PING and RST_STREAM that will be queued for writing before ++// the connection is closed to prevent memory exhaustion attacks. ++func (s *http2Server) maxQueuedControlFrames() int { ++ // TODO: if anybody asks, add a Server field, and remember to define the ++ // behavior of negative values. ++ return http2maxQueuedControlFrames ++} ++ + type http2serverInternalState struct { + mu sync.Mutex + activeConns map[*http2serverConn]struct{} +@@ -4254,6 +4264,7 @@ type http2serverConn struct { + sawFirstSettings bool // got the initial SETTINGS frame after the preface + needToSendSettingsAck bool + unackedSettings int // how many SETTINGS have we sent without ACKs? ++ queuedControlFrames int // control frames in the writeSched queue + clientMaxStreams uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit) + advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client + curClientStreams uint32 // number of open streams initiated by the client +@@ -4644,6 +4655,14 @@ func (sc *http2serverConn) serve() { + } + } + ++ // If the peer is causing us to generate a lot of control frames, ++ // but not reading them from us, assume they are trying to make us ++ // run out of memory. ++ if sc.queuedControlFrames > sc.srv.maxQueuedControlFrames() { ++ sc.vlogf("http2: too many control frames in send queue, closing connection") ++ return ++ } ++ + // Start the shutdown timer after sending a GOAWAY. When sending GOAWAY + // with no error code (graceful shutdown), don't start the timer until + // all open streams have been completed. +@@ -4845,6 +4864,14 @@ func (sc *http2serverConn) writeFrame(wr http2FrameWriteRequest) { + } + + if !ignoreWrite { ++ if wr.isControl() { ++ sc.queuedControlFrames++ ++ // For extra safety, detect wraparounds, which should not happen, ++ // and pull the plug. ++ if sc.queuedControlFrames < 0 { ++ sc.conn.Close() ++ } ++ } + sc.writeSched.Push(wr) + } + sc.scheduleFrameWrite() +@@ -4962,10 +4989,8 @@ func (sc *http2serverConn) wroteFrame(res http2frameWriteResult) { + // If a frame is already being written, nothing happens. This will be called again + // when the frame is done being written. + // +-// If a frame isn't being written we need to send one, the best frame +-// to send is selected, preferring first things that aren't +-// stream-specific (e.g. ACKing settings), and then finding the +-// highest priority stream. ++// If a frame isn't being written and we need to send one, the best frame ++// to send is selected by writeSched. + // + // If a frame isn't being written and there's nothing else to send, we + // flush the write buffer. +@@ -4993,6 +5018,9 @@ func (sc *http2serverConn) scheduleFrameWrite() { + } + if !sc.inGoAway || sc.goAwayCode == http2ErrCodeNo { + if wr, ok := sc.writeSched.Pop(); ok { ++ if wr.isControl() { ++ sc.queuedControlFrames-- ++ } + sc.startFrameWrite(wr) + continue + } +@@ -5285,6 +5313,8 @@ func (sc *http2serverConn) processSettings(f *http2SettingsFrame) error { + if err := f.ForeachSetting(sc.processSetting); err != nil { + return err + } ++ // TODO: judging by RFC 7540, Section 6.5.3 each SETTINGS frame should be ++ // acknowledged individually, even if multiple are received before the ACK. + sc.needToSendSettingsAck = true + sc.scheduleFrameWrite() + return nil +@@ -9476,7 +9506,7 @@ type http2WriteScheduler interface { + + // Pop dequeues the next frame to write. Returns false if no frames can + // be written. Frames with a given wr.StreamID() are Pop'd in the same +- // order they are Push'd. ++ // order they are Push'd. No frames should be discarded except by CloseStream. + Pop() (wr http2FrameWriteRequest, ok bool) + } + +@@ -9520,6 +9550,12 @@ func (wr http2FrameWriteRequest) StreamID() uint32 { + return wr.stream.id + } + ++// isControl reports whether wr is a control frame for MaxQueuedControlFrames ++// purposes. That includes non-stream frames and RST_STREAM frames. ++func (wr http2FrameWriteRequest) isControl() bool { ++ return wr.stream == nil ++} ++ + // DataSize returns the number of flow control bytes that must be consumed + // to write this entire frame. This is 0 for non-DATA frames. + func (wr http2FrameWriteRequest) DataSize() int { diff --git a/patches/0006-Fix-CVE-2019-14809.patch b/patches/0006-Fix-CVE-2019-14809.patch new file mode 100644 index 0000000..dcfa82f --- /dev/null +++ b/patches/0006-Fix-CVE-2019-14809.patch @@ -0,0 +1,235 @@ +From: "Dr. Tobias Quathamer" +Date: Thu, 15 Aug 2019 21:37:24 +0200 +Subject: Fix CVE-2019-14809 + +Cherry-picked from upstream: +https://github.com/golang/go/commit/c1d9ca70995dc232a2145e3214f94e03409f6fcc +--- + src/net/http/transport.go | 2 ++ + src/net/http/transport_test.go | 2 +- + src/net/url/url.go | 54 +++++++++++++++--------------- + src/net/url/url_test.go | 76 ++++++++++++++++++++++-------------------- + 4 files changed, 69 insertions(+), 65 deletions(-) + +diff --git a/src/net/http/transport.go b/src/net/http/transport.go +index 40947ba..0a9812e 100644 +--- a/src/net/http/transport.go ++++ b/src/net/http/transport.go +@@ -640,6 +640,8 @@ func resetProxyConfig() { + } + + func (t *Transport) connectMethodForRequest(treq *transportRequest) (cm connectMethod, err error) { ++ // TODO: the validPort check is redundant after CL 189258, as url.URL.Port ++ // only returns valid ports now. golang.org/issue/33600 + if port := treq.URL.Port(); !validPort(port) { + return cm, fmt.Errorf("invalid URL port %q", port) + } +diff --git a/src/net/http/transport_test.go b/src/net/http/transport_test.go +index aa8beb9..b2036df 100644 +--- a/src/net/http/transport_test.go ++++ b/src/net/http/transport_test.go +@@ -4111,7 +4111,7 @@ func TestTransportRejectsAlphaPort(t *testing.T) { + t.Fatalf("got %#v; want *url.Error", err) + } + got := ue.Err.Error() +- want := `invalid URL port "123foo"` ++ want := `invalid port ":123foo" after host` + if got != want { + t.Errorf("got error %q; want %q", got, want) + } +diff --git a/src/net/url/url.go b/src/net/url/url.go +index 8d2a856..b13677c 100644 +--- a/src/net/url/url.go ++++ b/src/net/url/url.go +@@ -636,6 +636,11 @@ func parseHost(host string) (string, error) { + } + return host1 + host2 + host3, nil + } ++ } else if i := strings.LastIndex(host, ":"); i != -1 { ++ colonPort := host[i:] ++ if !validOptionalPort(colonPort) { ++ return "", fmt.Errorf("invalid port %q after host", colonPort) ++ } + } + + var err error +@@ -1033,44 +1038,39 @@ func (u *URL) RequestURI() string { + return result + } + +-// Hostname returns u.Host, without any port number. ++// Hostname returns u.Host, stripping any valid port number if present. + // +-// If Host is an IPv6 literal with a port number, Hostname returns the +-// IPv6 literal without the square brackets. IPv6 literals may include +-// a zone identifier. ++// If the result is enclosed in square brackets, as literal IPv6 addresses are, ++// the square brackets are removed from the result. + func (u *URL) Hostname() string { +- return stripPort(u.Host) ++ host, _ := splitHostPort(u.Host) ++ return host + } + + // Port returns the port part of u.Host, without the leading colon. +-// If u.Host doesn't contain a port, Port returns an empty string. ++// ++// If u.Host doesn't contain a valid numeric port, Port returns an empty string. + func (u *URL) Port() string { +- return portOnly(u.Host) ++ _, port := splitHostPort(u.Host) ++ return port + } + +-func stripPort(hostport string) string { +- colon := strings.IndexByte(hostport, ':') +- if colon == -1 { +- return hostport +- } +- if i := strings.IndexByte(hostport, ']'); i != -1 { +- return strings.TrimPrefix(hostport[:i], "[") +- } +- return hostport[:colon] +-} ++// splitHostPort separates host and port. If the port is not valid, it returns ++// the entire input as host, and it doesn't check the validity of the host. ++// Unlike net.SplitHostPort, but per RFC 3986, it requires ports to be numeric. ++func splitHostPort(hostport string) (host, port string) { ++ host = hostport + +-func portOnly(hostport string) string { +- colon := strings.IndexByte(hostport, ':') +- if colon == -1 { +- return "" +- } +- if i := strings.Index(hostport, "]:"); i != -1 { +- return hostport[i+len("]:"):] ++ colon := strings.LastIndexByte(host, ':') ++ if colon != -1 && validOptionalPort(host[colon:]) { ++ host, port = host[:colon], host[colon+1:] + } +- if strings.Contains(hostport, "]") { +- return "" ++ ++ if strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") { ++ host = host[1 : len(host)-1] + } +- return hostport[colon+len(":"):] ++ ++ return + } + + // Marshaling interface implementations. +diff --git a/src/net/url/url_test.go b/src/net/url/url_test.go +index 369ea6c..babdaec 100644 +--- a/src/net/url/url_test.go ++++ b/src/net/url/url_test.go +@@ -422,10 +422,10 @@ var urltests = []URLTest{ + }, + // worst case host, still round trips + { +- "scheme://!$&'()*+,;=hello!:port/path", ++ "scheme://!$&'()*+,;=hello!:1/path", + &URL{ + Scheme: "scheme", +- Host: "!$&'()*+,;=hello!:port", ++ Host: "!$&'()*+,;=hello!:1", + Path: "/path", + }, + "", +@@ -1420,11 +1420,13 @@ func TestParseErrors(t *testing.T) { + {"http://[::1]", false}, + {"http://[::1]:80", false}, + {"http://[::1]:namedport", true}, // rfc3986 3.2.3 ++ {"http://x:namedport", true}, // rfc3986 3.2.3 + {"http://[::1]/", false}, + {"http://[::1]a", true}, + {"http://[::1]%23", true}, + {"http://[::1%25en0]", false}, // valid zone id + {"http://[::1]:", false}, // colon, but no port OK ++ {"http://x:", false}, // colon, but no port OK + {"http://[::1]:%38%30", true}, // not allowed: % encoding only for non-ASCII + {"http://[::1%25%41]", false}, // RFC 6874 allows over-escaping in zone + {"http://[%10::1]", true}, // no %xx escapes in IP address +@@ -1616,46 +1618,46 @@ func TestURLErrorImplementsNetError(t *testing.T) { + } + } + +-func TestURLHostname(t *testing.T) { ++func TestURLHostnameAndPort(t *testing.T) { + tests := []struct { +- host string // URL.Host field +- want string ++ in string // URL.Host field ++ host string ++ port string + }{ +- {"foo.com:80", "foo.com"}, +- {"foo.com", "foo.com"}, +- {"FOO.COM", "FOO.COM"}, // no canonicalization (yet?) +- {"1.2.3.4", "1.2.3.4"}, +- {"1.2.3.4:80", "1.2.3.4"}, +- {"[1:2:3:4]", "1:2:3:4"}, +- {"[1:2:3:4]:80", "1:2:3:4"}, +- {"[::1]:80", "::1"}, ++ {"foo.com:80", "foo.com", "80"}, ++ {"foo.com", "foo.com", ""}, ++ {"foo.com:", "foo.com", ""}, ++ {"FOO.COM", "FOO.COM", ""}, // no canonicalization ++ {"1.2.3.4", "1.2.3.4", ""}, ++ {"1.2.3.4:80", "1.2.3.4", "80"}, ++ {"[1:2:3:4]", "1:2:3:4", ""}, ++ {"[1:2:3:4]:80", "1:2:3:4", "80"}, ++ {"[::1]:80", "::1", "80"}, ++ {"[::1]", "::1", ""}, ++ {"[::1]:", "::1", ""}, ++ {"localhost", "localhost", ""}, ++ {"localhost:443", "localhost", "443"}, ++ {"some.super.long.domain.example.org:8080", "some.super.long.domain.example.org", "8080"}, ++ {"[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:17000", "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "17000"}, ++ {"[2001:0db8:85a3:0000:0000:8a2e:0370:7334]", "2001:0db8:85a3:0000:0000:8a2e:0370:7334", ""}, ++ ++ // Ensure that even when not valid, Host is one of "Hostname", ++ // "Hostname:Port", "[Hostname]" or "[Hostname]:Port". ++ // See https://golang.org/issue/29098. ++ {"[google.com]:80", "google.com", "80"}, ++ {"google.com]:80", "google.com]", "80"}, ++ {"google.com:80_invalid_port", "google.com:80_invalid_port", ""}, ++ {"[::1]extra]:80", "::1]extra", "80"}, ++ {"google.com]extra:extra", "google.com]extra:extra", ""}, + } + for _, tt := range tests { +- u := &URL{Host: tt.host} +- got := u.Hostname() +- if got != tt.want { +- t.Errorf("Hostname for Host %q = %q; want %q", tt.host, got, tt.want) ++ u := &URL{Host: tt.in} ++ host, port := u.Hostname(), u.Port() ++ if host != tt.host { ++ t.Errorf("Hostname for Host %q = %q; want %q", tt.in, host, tt.host) + } +- } +-} +- +-func TestURLPort(t *testing.T) { +- tests := []struct { +- host string // URL.Host field +- want string +- }{ +- {"foo.com", ""}, +- {"foo.com:80", "80"}, +- {"1.2.3.4", ""}, +- {"1.2.3.4:80", "80"}, +- {"[1:2:3:4]", ""}, +- {"[1:2:3:4]:80", "80"}, +- } +- for _, tt := range tests { +- u := &URL{Host: tt.host} +- got := u.Port() +- if got != tt.want { +- t.Errorf("Port for Host %q = %q; want %q", tt.host, got, tt.want) ++ if port != tt.port { ++ t.Errorf("Port for Host %q = %q; want %q", tt.in, port, tt.port) + } + } + } diff --git a/patches/0007-Fix-CVE-2019-16276.patch b/patches/0007-Fix-CVE-2019-16276.patch new file mode 100644 index 0000000..d1d5179 --- /dev/null +++ b/patches/0007-Fix-CVE-2019-16276.patch @@ -0,0 +1,120 @@ +From: "Dr. Tobias Quathamer" +Date: Thu, 26 Sep 2019 11:46:46 +0200 +Subject: Fix CVE-2019-16276 + +Cherry-picked from upstream: +https://github.com/golang/go/commit/6e6f4aaf70c8b1cc81e65a26332aa9409de03ad8 +--- + src/net/http/serve_test.go | 4 ++++ + src/net/http/transport_test.go | 27 +++++++++++++++++++++++++++ + src/net/textproto/reader.go | 10 ++-------- + src/net/textproto/reader_test.go | 13 ++++++------- + 4 files changed, 39 insertions(+), 15 deletions(-) + +diff --git a/src/net/http/serve_test.go b/src/net/http/serve_test.go +index a438541..18edf98 100644 +--- a/src/net/http/serve_test.go ++++ b/src/net/http/serve_test.go +@@ -4725,6 +4725,10 @@ func TestServerValidatesHeaders(t *testing.T) { + {"foo\xffbar: foo\r\n", 400}, // binary in header + {"foo\x00bar: foo\r\n", 400}, // binary in header + {"Foo: " + strings.Repeat("x", 1<<21) + "\r\n", 431}, // header too large ++ // Spaces between the header key and colon are not allowed. ++ // See RFC 7230, Section 3.2.4. ++ {"Foo : bar\r\n", 400}, ++ {"Foo\t: bar\r\n", 400}, + + {"foo: foo foo\r\n", 200}, // LWS space is okay + {"foo: foo\tfoo\r\n", 200}, // LWS tab is okay +diff --git a/src/net/http/transport_test.go b/src/net/http/transport_test.go +index b2036df..dff940e 100644 +--- a/src/net/http/transport_test.go ++++ b/src/net/http/transport_test.go +@@ -4838,3 +4838,30 @@ func TestClientTimeoutKillsConn_AfterHeaders(t *testing.T) { + t.Fatal("timeout") + } + } ++ ++func TestInvalidHeaderResponse(t *testing.T) { ++ setParallel(t) ++ defer afterTest(t) ++ cst := newClientServerTest(t, h1Mode, HandlerFunc(func(w ResponseWriter, r *Request) { ++ conn, buf, _ := w.(Hijacker).Hijack() ++ buf.Write([]byte("HTTP/1.1 200 OK\r\n" + ++ "Date: Wed, 30 Aug 2017 19:09:27 GMT\r\n" + ++ "Content-Type: text/html; charset=utf-8\r\n" + ++ "Content-Length: 0\r\n" + ++ "Foo : bar\r\n\r\n")) ++ buf.Flush() ++ conn.Close() ++ })) ++ defer cst.close() ++ res, err := cst.c.Get(cst.ts.URL) ++ if err != nil { ++ t.Fatal(err) ++ } ++ defer res.Body.Close() ++ if v := res.Header.Get("Foo"); v != "" { ++ t.Errorf(`unexpected "Foo" header: %q`, v) ++ } ++ if v := res.Header.Get("Foo "); v != "bar" { ++ t.Errorf(`bad "Foo " header value: %q, want %q`, v, "bar") ++ } ++} +diff --git a/src/net/textproto/reader.go b/src/net/textproto/reader.go +index feb464b..6a37b2d 100644 +--- a/src/net/textproto/reader.go ++++ b/src/net/textproto/reader.go +@@ -492,18 +492,12 @@ func (r *Reader) ReadMIMEHeader() (MIMEHeader, error) { + return m, err + } + +- // Key ends at first colon; should not have trailing spaces +- // but they appear in the wild, violating specs, so we remove +- // them if present. ++ // Key ends at first colon. + i := bytes.IndexByte(kv, ':') + if i < 0 { + return m, ProtocolError("malformed MIME header line: " + string(kv)) + } +- endKey := i +- for endKey > 0 && kv[endKey-1] == ' ' { +- endKey-- +- } +- key := canonicalMIMEHeaderKey(kv[:endKey]) ++ key := canonicalMIMEHeaderKey(kv[:i]) + + // As per RFC 7230 field-name is a token, tokens consist of one or more chars. + // We could return a ProtocolError here, but better to be liberal in what we +diff --git a/src/net/textproto/reader_test.go b/src/net/textproto/reader_test.go +index 7cff7b4..3af77d2 100644 +--- a/src/net/textproto/reader_test.go ++++ b/src/net/textproto/reader_test.go +@@ -188,11 +188,10 @@ func TestLargeReadMIMEHeader(t *testing.T) { + } + } + +-// Test that we read slightly-bogus MIME headers seen in the wild, +-// with spaces before colons, and spaces in keys. ++// TestReadMIMEHeaderNonCompliant checks that we don't normalize headers ++// with spaces before colons, and accept spaces in keys. + func TestReadMIMEHeaderNonCompliant(t *testing.T) { +- // Invalid HTTP response header as sent by an Axis security +- // camera: (this is handled by IE, Firefox, Chrome, curl, etc.) ++ // These invalid headers will be rejected by net/http according to RFC 7230. + r := reader("Foo: bar\r\n" + + "Content-Language: en\r\n" + + "SID : 0\r\n" + +@@ -202,9 +201,9 @@ func TestReadMIMEHeaderNonCompliant(t *testing.T) { + want := MIMEHeader{ + "Foo": {"bar"}, + "Content-Language": {"en"}, +- "Sid": {"0"}, +- "Audio Mode": {"None"}, +- "Privilege": {"127"}, ++ "SID ": {"0"}, ++ "Audio Mode ": {"None"}, ++ "Privilege ": {"127"}, + } + if !reflect.DeepEqual(m, want) || err != nil { + t.Fatalf("ReadMIMEHeader =\n%v, %v; want:\n%v", m, err, want) diff --git a/patches/0008-Fix-CVE-2019-17596.patch b/patches/0008-Fix-CVE-2019-17596.patch new file mode 100644 index 0000000..2f7246f --- /dev/null +++ b/patches/0008-Fix-CVE-2019-17596.patch @@ -0,0 +1,24 @@ +From: "Dr. Tobias Quathamer" +Date: Sat, 19 Oct 2019 14:03:22 +0200 +Subject: Fix CVE-2019-17596 + +Cherry-picked from upstream: +https://github.com/golang/go/commit/2017d88dbc096381d4f348d2fb08bfb3c2b7ed73 +--- + src/crypto/dsa/dsa.go | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/crypto/dsa/dsa.go b/src/crypto/dsa/dsa.go +index 575314b..2fc4f1f 100644 +--- a/src/crypto/dsa/dsa.go ++++ b/src/crypto/dsa/dsa.go +@@ -279,6 +279,9 @@ func Verify(pub *PublicKey, hash []byte, r, s *big.Int) bool { + } + + w := new(big.Int).ModInverse(s, pub.Q) ++ if w == nil { ++ return false ++ } + + n := pub.Q.BitLen() + if n&7 != 0 { diff --git a/patches/0009-Fix-CVE-2020-7919.patch b/patches/0009-Fix-CVE-2020-7919.patch new file mode 100644 index 0000000..f7e4e17 --- /dev/null +++ b/patches/0009-Fix-CVE-2020-7919.patch @@ -0,0 +1,59 @@ +From: "Dr. Tobias Quathamer" +Date: Fri, 31 Jan 2020 22:15:57 +0100 +Subject: Fix CVE-2020-7919 + +Cherry-picked from upstream: +https://github.com/golang/go/commit/b13ce14c4a6aa59b7b041ad2b6eed2d23e15b574 +--- + src/vendor/golang_org/x/crypto/cryptobyte/asn1.go | 5 +++-- + src/vendor/golang_org/x/crypto/cryptobyte/string.go | 7 +------ + 2 files changed, 4 insertions(+), 8 deletions(-) + +diff --git a/src/vendor/golang_org/x/crypto/cryptobyte/asn1.go b/src/vendor/golang_org/x/crypto/cryptobyte/asn1.go +index 08314b4..e7c32e3 100644 +--- a/src/vendor/golang_org/x/crypto/cryptobyte/asn1.go ++++ b/src/vendor/golang_org/x/crypto/cryptobyte/asn1.go +@@ -470,7 +470,8 @@ func (s *String) ReadASN1GeneralizedTime(out *time.Time) bool { + // It reports whether the read was successful. + func (s *String) ReadASN1BitString(out *encoding_asn1.BitString) bool { + var bytes String +- if !s.ReadASN1(&bytes, asn1.BIT_STRING) || len(bytes) == 0 { ++ if !s.ReadASN1(&bytes, asn1.BIT_STRING) || len(bytes) == 0 || ++ len(bytes)*8/8 != len(bytes) { + return false + } + +@@ -740,7 +741,7 @@ func (s *String) readASN1(out *String, outTag *asn1.Tag, skipHeader bool) bool { + length = headerLen + len32 + } + +- if uint32(int(length)) != length || !s.ReadBytes((*[]byte)(out), int(length)) { ++ if int(length) < 0 || !s.ReadBytes((*[]byte)(out), int(length)) { + return false + } + if skipHeader && !out.Skip(int(headerLen)) { +diff --git a/src/vendor/golang_org/x/crypto/cryptobyte/string.go b/src/vendor/golang_org/x/crypto/cryptobyte/string.go +index 39bf98a..589d297 100644 +--- a/src/vendor/golang_org/x/crypto/cryptobyte/string.go ++++ b/src/vendor/golang_org/x/crypto/cryptobyte/string.go +@@ -24,7 +24,7 @@ type String []byte + // read advances a String by n bytes and returns them. If less than n bytes + // remain, it returns nil. + func (s *String) read(n int) []byte { +- if len(*s) < n { ++ if len(*s) < n || n < 0 { + return nil + } + v := (*s)[:n] +@@ -105,11 +105,6 @@ func (s *String) readLengthPrefixed(lenLen int, outChild *String) bool { + length = length << 8 + length = length | uint32(b) + } +- if int(length) < 0 { +- // This currently cannot overflow because we read uint24 at most, but check +- // anyway in case that changes in the future. +- return false +- } + v := s.read(int(length)) + if v == nil { + return false diff --git a/patches/0010-Fix-CVE-2020-15586.patch b/patches/0010-Fix-CVE-2020-15586.patch new file mode 100644 index 0000000..c5360f5 --- /dev/null +++ b/patches/0010-Fix-CVE-2020-15586.patch @@ -0,0 +1,108 @@ +From: Russ Cox +Date: Mon, 13 Jul 2020 13:27:22 -0400 +Subject: Fix CVE-2020-15586 + +Cherry-picked from upstream: +https://github.com/golang/go/commit/fa98f46741f818913a8c11b877520a548715131f +--- + src/net/http/server.go | 43 ++++++++++++++++++++++++++++++++++++------- + 1 file changed, 36 insertions(+), 7 deletions(-) + +diff --git a/src/net/http/server.go b/src/net/http/server.go +index c24ad75..e1c4a73 100644 +--- a/src/net/http/server.go ++++ b/src/net/http/server.go +@@ -423,6 +423,16 @@ type response struct { + wants10KeepAlive bool // HTTP/1.0 w/ Connection "keep-alive" + wantsClose bool // HTTP request has Connection "close" + ++ // canWriteContinue is a boolean value accessed as an atomic int32 ++ // that says whether or not a 100 Continue header can be written ++ // to the connection. ++ // writeContinueMu must be held while writing the header. ++ // These two fields together synchronize the body reader ++ // (the expectContinueReader, which wants to write 100 Continue) ++ // against the main writer. ++ canWriteContinue atomicBool ++ writeContinueMu sync.Mutex ++ + w *bufio.Writer // buffers output in chunks to chunkWriter + cw chunkWriter + +@@ -513,6 +523,7 @@ type atomicBool int32 + + func (b *atomicBool) isSet() bool { return atomic.LoadInt32((*int32)(b)) != 0 } + func (b *atomicBool) setTrue() { atomic.StoreInt32((*int32)(b), 1) } ++func (b *atomicBool) setFalse() { atomic.StoreInt32((*int32)(b), 0) } + + // declareTrailer is called for each Trailer header when the + // response header is written. It notes that a header will need to be +@@ -877,21 +888,27 @@ type expectContinueReader struct { + resp *response + readCloser io.ReadCloser + closed bool +- sawEOF bool ++ sawEOF atomicBool + } + + func (ecr *expectContinueReader) Read(p []byte) (n int, err error) { + if ecr.closed { + return 0, ErrBodyReadAfterClose + } +- if !ecr.resp.wroteContinue && !ecr.resp.conn.hijacked() { +- ecr.resp.wroteContinue = true +- ecr.resp.conn.bufw.WriteString("HTTP/1.1 100 Continue\r\n\r\n") +- ecr.resp.conn.bufw.Flush() ++ w := ecr.resp ++ if !w.wroteContinue && w.canWriteContinue.isSet() && !w.conn.hijacked() { ++ w.wroteContinue = true ++ w.writeContinueMu.Lock() ++ if w.canWriteContinue.isSet() { ++ w.conn.bufw.WriteString("HTTP/1.1 100 Continue\r\n\r\n") ++ w.conn.bufw.Flush() ++ w.canWriteContinue.setFalse() ++ } ++ w.writeContinueMu.Unlock() + } + n, err = ecr.readCloser.Read(p) + if err == io.EOF { +- ecr.sawEOF = true ++ ecr.sawEOF.setTrue() + } + return + } +@@ -1289,7 +1306,7 @@ func (cw *chunkWriter) writeHeader(p []byte) { + // because we don't know if the next bytes on the wire will be + // the body-following-the-timer or the subsequent request. + // See Issue 11549. +- if ecr, ok := w.req.Body.(*expectContinueReader); ok && !ecr.sawEOF { ++ if ecr, ok := w.req.Body.(*expectContinueReader); ok && !ecr.sawEOF.isSet() { + w.closeAfterReply = true + } + +@@ -1533,6 +1550,17 @@ func (w *response) write(lenData int, dataB []byte, dataS string) (n int, err er + } + return 0, ErrHijacked + } ++ ++ if w.canWriteContinue.isSet() { ++ // Body reader wants to write 100 Continue but hasn't yet. ++ // Tell it not to. The store must be done while holding the lock ++ // because the lock makes sure that there is not an active write ++ // this very moment. ++ w.writeContinueMu.Lock() ++ w.canWriteContinue.setFalse() ++ w.writeContinueMu.Unlock() ++ } ++ + if !w.wroteHeader { + w.WriteHeader(StatusOK) + } +@@ -1823,6 +1851,7 @@ func (c *conn) serve(ctx context.Context) { + if req.ProtoAtLeast(1, 1) && req.ContentLength != 0 { + // Wrap the Body reader with one that replies on the connection + req.Body = &expectContinueReader{readCloser: req.Body, resp: w} ++ w.canWriteContinue.setTrue() + } + } else if req.Header.get("Expect") != "" { + w.sendExpectationFailed() diff --git a/patches/0011-Fix-CVE-2020-16845.patch b/patches/0011-Fix-CVE-2020-16845.patch new file mode 100644 index 0000000..8af2022 --- /dev/null +++ b/patches/0011-Fix-CVE-2020-16845.patch @@ -0,0 +1,77 @@ +From: Katie Hockman +Date: Tue, 4 Aug 2020 11:45:32 -0400 +Subject: Fix CVE-2020-16845 + +Cherry-picked from upstream: +https://github.com/golang/go/commit/027d7241ce050d197e7fabea3d541ffbe3487258 +--- + src/encoding/binary/varint.go | 5 +++-- + src/encoding/binary/varint_test.go | 18 ++++++++++++------ + 2 files changed, 15 insertions(+), 8 deletions(-) + +diff --git a/src/encoding/binary/varint.go b/src/encoding/binary/varint.go +index bcb8ac9..38af610 100644 +--- a/src/encoding/binary/varint.go ++++ b/src/encoding/binary/varint.go +@@ -106,13 +106,13 @@ var overflow = errors.New("binary: varint overflows a 64-bit integer") + func ReadUvarint(r io.ByteReader) (uint64, error) { + var x uint64 + var s uint +- for i := 0; ; i++ { ++ for i := 0; i < MaxVarintLen64; i++ { + b, err := r.ReadByte() + if err != nil { + return x, err + } + if b < 0x80 { +- if i > 9 || i == 9 && b > 1 { ++ if i == 9 && b > 1 { + return x, overflow + } + return x | uint64(b)< MaxVarintLen64 { ++ t.Errorf("ReadUvarint(%v): read more than MaxVarintLen64 bytes, got %d", buf, read) + } + } + + func TestOverflow(t *testing.T) { +- testOverflow(t, []byte{0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2}, -10, overflow) +- testOverflow(t, []byte{0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0, 0}, -13, overflow) ++ testOverflow(t, []byte{0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2}, 0, -10, overflow) ++ testOverflow(t, []byte{0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0, 0}, 0, -13, overflow) ++ testOverflow(t, []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, 1<<64-1, 0, overflow) // 11 bytes, should overflow + } + + func TestNonCanonicalZero(t *testing.T) { diff --git a/patches/0012-Fix-CVE-2021-3114.patch b/patches/0012-Fix-CVE-2021-3114.patch new file mode 100644 index 0000000..a9a5286 --- /dev/null +++ b/patches/0012-Fix-CVE-2021-3114.patch @@ -0,0 +1,415 @@ +From: Filippo Valsorda +Date: Fri, 8 Jan 2021 03:56:58 +0100 +Subject: Fixes CVE-2021-3114 + +Cherry-pick from upstream: +https://github.com/golang/go/commit/d95ca9138026cbe40e0857d76a81a16d03230871 +--- + src/crypto/elliptic/p224.go | 41 +++--- + src/crypto/elliptic/p224_test.go | 277 ++++++++++++++++++++++++++++++++++++++- + 2 files changed, 298 insertions(+), 20 deletions(-) + +diff --git a/src/crypto/elliptic/p224.go b/src/crypto/elliptic/p224.go +index 2ea63f3..8c76021 100644 +--- a/src/crypto/elliptic/p224.go ++++ b/src/crypto/elliptic/p224.go +@@ -386,10 +386,11 @@ func p224Invert(out, in *p224FieldElement) { + // p224Contract converts a FieldElement to its unique, minimal form. + // + // On entry, in[i] < 2**29 +-// On exit, in[i] < 2**28 ++// On exit, out[i] < 2**28 and out < p + func p224Contract(out, in *p224FieldElement) { + copy(out[:], in[:]) + ++ // First, carry the bits above 28 to the higher limb. + for i := 0; i < 7; i++ { + out[i+1] += out[i] >> 28 + out[i] &= bottom28Bits +@@ -397,10 +398,13 @@ func p224Contract(out, in *p224FieldElement) { + top := out[7] >> 28 + out[7] &= bottom28Bits + ++ // Use the reduction identity to carry the overflow. ++ // ++ // a + top * 2²²⁴ = a + top * 2⁹⁶ - top + out[0] -= top + out[3] += top << 12 + +- // We may just have made out[i] negative. So we carry down. If we made ++ // We may just have made out[0] negative. So we carry down. If we made + // out[0] negative then we know that out[3] is sufficiently positive + // because we just added to it. + for i := 0; i < 3; i++ { +@@ -425,13 +429,12 @@ func p224Contract(out, in *p224FieldElement) { + // There are two cases to consider for out[3]: + // 1) The first time that we eliminated top, we didn't push out[3] over + // 2**28. In this case, the partial carry chain didn't change any values +- // and top is zero. ++ // and top is now zero. + // 2) We did push out[3] over 2**28 the first time that we eliminated top. +- // The first value of top was in [0..16), therefore, prior to eliminating +- // the first top, 0xfff1000 <= out[3] <= 0xfffffff. Therefore, after +- // overflowing and being reduced by the second carry chain, out[3] <= +- // 0xf000. Thus it cannot have overflowed when we eliminated top for the +- // second time. ++ // The first value of top was in [0..2], therefore, after overflowing ++ // and being reduced by the second carry chain, out[3] <= 2<<12 - 1. ++ // In both cases, out[3] cannot have overflowed when we eliminated top for ++ // the second time. + + // Again, we may just have made out[0] negative, so do the same carry down. + // As before, if we made out[0] negative then we know that out[3] is +@@ -470,12 +473,11 @@ func p224Contract(out, in *p224FieldElement) { + bottom3NonZero |= bottom3NonZero >> 1 + bottom3NonZero = uint32(int32(bottom3NonZero<<31) >> 31) + +- // Everything depends on the value of out[3]. +- // If it's > 0xffff000 and top4AllOnes != 0 then the whole value is >= p +- // If it's = 0xffff000 and top4AllOnes != 0 and bottom3NonZero != 0, +- // then the whole value is >= p ++ // Assuming top4AllOnes != 0, everything depends on the value of out[3]. ++ // If it's > 0xffff000 then the whole value is > p ++ // If it's = 0xffff000 and bottom3NonZero != 0, then the whole value is >= p + // If it's < 0xffff000, then the whole value is < p +- n := out[3] - 0xffff000 ++ n := 0xffff000 - out[3] + out3Equal := n + out3Equal |= out3Equal >> 16 + out3Equal |= out3Equal >> 8 +@@ -484,8 +486,8 @@ func p224Contract(out, in *p224FieldElement) { + out3Equal |= out3Equal >> 1 + out3Equal = ^uint32(int32(out3Equal<<31) >> 31) + +- // If out[3] > 0xffff000 then n's MSB will be zero. +- out3GT := ^uint32(int32(n) >> 31) ++ // If out[3] > 0xffff000 then n's MSB will be one. ++ out3GT := uint32(int32(n) >> 31) + + mask := top4AllOnes & ((out3Equal & bottom3NonZero) | out3GT) + out[0] -= 1 & mask +@@ -494,6 +496,15 @@ func p224Contract(out, in *p224FieldElement) { + out[5] -= 0xfffffff & mask + out[6] -= 0xfffffff & mask + out[7] -= 0xfffffff & mask ++ ++ // Do one final carry down, in case we made out[0] negative. One of ++ // out[0..3] needs to be positive and able to absorb the -1 or the value ++ // would have been < p, and the subtraction wouldn't have happened. ++ for i := 0; i < 3; i++ { ++ mask := uint32(int32(out[i]) >> 31) ++ out[i] += (1 << 28) & mask ++ out[i+1] -= 1 & mask ++ } + } + + // Group element functions. +diff --git a/src/crypto/elliptic/p224_test.go b/src/crypto/elliptic/p224_test.go +index 8b4fa04..c3141b6 100644 +--- a/src/crypto/elliptic/p224_test.go ++++ b/src/crypto/elliptic/p224_test.go +@@ -6,7 +6,11 @@ package elliptic + + import ( + "math/big" ++ "math/bits" ++ "math/rand" ++ "reflect" + "testing" ++ "testing/quick" + ) + + var toFromBigTests = []string{ +@@ -21,16 +25,16 @@ func p224AlternativeToBig(in *p224FieldElement) *big.Int { + ret := new(big.Int) + tmp := new(big.Int) + +- for i := uint(0); i < 8; i++ { ++ for i := len(in) - 1; i >= 0; i-- { ++ ret.Lsh(ret, 28) + tmp.SetInt64(int64(in[i])) +- tmp.Lsh(tmp, 28*i) + ret.Add(ret, tmp) + } +- ret.Mod(ret, p224.P) ++ ret.Mod(ret, P224().Params().P) + return ret + } + +-func TestToFromBig(t *testing.T) { ++func TestP224ToFromBig(t *testing.T) { + for i, test := range toFromBigTests { + n, _ := new(big.Int).SetString(test, 16) + var x p224FieldElement +@@ -41,7 +45,270 @@ func TestToFromBig(t *testing.T) { + } + q := p224AlternativeToBig(&x) + if n.Cmp(q) != 0 { +- t.Errorf("#%d: %x != %x (alternative)", i, n, m) ++ t.Errorf("#%d: %x != %x (alternative)", i, n, q) + } + } + } ++ ++// quickCheckConfig32 will make each quickcheck test run (32 * -quickchecks) ++// times. The default value of -quickchecks is 100. ++var quickCheckConfig32 = &quick.Config{MaxCountScale: 32} ++ ++// weirdLimbs can be combined to generate a range of edge-case field elements. ++var weirdLimbs = [...]uint32{ ++ 0, 1, (1 << 29) - 1, ++ (1 << 12), (1 << 12) - 1, ++ (1 << 28), (1 << 28) - 1, ++} ++ ++func generateLimb(rand *rand.Rand) uint32 { ++ const bottom29Bits = 0x1fffffff ++ n := rand.Intn(len(weirdLimbs) + 3) ++ switch n { ++ case len(weirdLimbs): ++ // Random value. ++ return uint32(rand.Int31n(1 << 29)) ++ case len(weirdLimbs) + 1: ++ // Sum of two values. ++ k := generateLimb(rand) + generateLimb(rand) ++ return k & bottom29Bits ++ case len(weirdLimbs) + 2: ++ // Difference of two values. ++ k := generateLimb(rand) - generateLimb(rand) ++ return k & bottom29Bits ++ default: ++ return weirdLimbs[n] ++ } ++} ++ ++func (p224FieldElement) Generate(rand *rand.Rand, size int) reflect.Value { ++ return reflect.ValueOf(p224FieldElement{ ++ generateLimb(rand), ++ generateLimb(rand), ++ generateLimb(rand), ++ generateLimb(rand), ++ generateLimb(rand), ++ generateLimb(rand), ++ generateLimb(rand), ++ generateLimb(rand), ++ }) ++} ++ ++func isInBounds(x *p224FieldElement) bool { ++ return bits.Len32(x[0]) <= 29 && ++ bits.Len32(x[1]) <= 29 && ++ bits.Len32(x[2]) <= 29 && ++ bits.Len32(x[3]) <= 29 && ++ bits.Len32(x[4]) <= 29 && ++ bits.Len32(x[5]) <= 29 && ++ bits.Len32(x[6]) <= 29 && ++ bits.Len32(x[7]) <= 29 ++} ++ ++func TestP224Mul(t *testing.T) { ++ mulMatchesBigInt := func(a, b, out p224FieldElement) bool { ++ var tmp p224LargeFieldElement ++ p224Mul(&out, &a, &b, &tmp) ++ ++ exp := new(big.Int).Mul(p224AlternativeToBig(&a), p224AlternativeToBig(&b)) ++ exp.Mod(exp, P224().Params().P) ++ got := p224AlternativeToBig(&out) ++ if exp.Cmp(got) != 0 || !isInBounds(&out) { ++ t.Logf("a = %x", a) ++ t.Logf("b = %x", b) ++ t.Logf("p224Mul(a, b) = %x = %v", out, got) ++ t.Logf("a * b = %v", exp) ++ return false ++ } ++ ++ return true ++ } ++ ++ a := p224FieldElement{0xfffffff, 0xfffffff, 0xf00ffff, 0x20f, 0x0, 0x0, 0x0, 0x0} ++ b := p224FieldElement{1, 0, 0, 0, 0, 0, 0, 0} ++ if !mulMatchesBigInt(a, b, p224FieldElement{}) { ++ t.Fail() ++ } ++ ++ if err := quick.Check(mulMatchesBigInt, quickCheckConfig32); err != nil { ++ t.Error(err) ++ } ++} ++ ++func TestP224Square(t *testing.T) { ++ squareMatchesBigInt := func(a, out p224FieldElement) bool { ++ var tmp p224LargeFieldElement ++ p224Square(&out, &a, &tmp) ++ ++ exp := p224AlternativeToBig(&a) ++ exp.Mul(exp, exp) ++ exp.Mod(exp, P224().Params().P) ++ got := p224AlternativeToBig(&out) ++ if exp.Cmp(got) != 0 || !isInBounds(&out) { ++ t.Logf("a = %x", a) ++ t.Logf("p224Square(a, b) = %x = %v", out, got) ++ t.Logf("a * a = %v", exp) ++ return false ++ } ++ ++ return true ++ } ++ ++ if err := quick.Check(squareMatchesBigInt, quickCheckConfig32); err != nil { ++ t.Error(err) ++ } ++} ++ ++func TestP224Add(t *testing.T) { ++ addMatchesBigInt := func(a, b, out p224FieldElement) bool { ++ p224Add(&out, &a, &b) ++ ++ exp := new(big.Int).Add(p224AlternativeToBig(&a), p224AlternativeToBig(&b)) ++ exp.Mod(exp, P224().Params().P) ++ got := p224AlternativeToBig(&out) ++ if exp.Cmp(got) != 0 { ++ t.Logf("a = %x", a) ++ t.Logf("b = %x", b) ++ t.Logf("p224Add(a, b) = %x = %v", out, got) ++ t.Logf("a + b = %v", exp) ++ return false ++ } ++ ++ return true ++ } ++ ++ if err := quick.Check(addMatchesBigInt, quickCheckConfig32); err != nil { ++ t.Error(err) ++ } ++} ++ ++func TestP224Reduce(t *testing.T) { ++ reduceMatchesBigInt := func(a p224FieldElement) bool { ++ out := a ++ // TODO: generate higher values for functions like p224Reduce that are ++ // expected to work with higher input bounds. ++ p224Reduce(&out) ++ ++ exp := p224AlternativeToBig(&a) ++ got := p224AlternativeToBig(&out) ++ if exp.Cmp(got) != 0 || !isInBounds(&out) { ++ t.Logf("a = %x = %v", a, exp) ++ t.Logf("p224Reduce(a) = %x = %v", out, got) ++ return false ++ } ++ ++ return true ++ } ++ ++ if err := quick.Check(reduceMatchesBigInt, quickCheckConfig32); err != nil { ++ t.Error(err) ++ } ++} ++ ++func TestP224Contract(t *testing.T) { ++ contractMatchesBigInt := func(a, out p224FieldElement) bool { ++ p224Contract(&out, &a) ++ ++ exp := p224AlternativeToBig(&a) ++ got := p224AlternativeToBig(&out) ++ if exp.Cmp(got) != 0 { ++ t.Logf("a = %x = %v", a, exp) ++ t.Logf("p224Contract(a) = %x = %v", out, got) ++ return false ++ } ++ ++ // Check that out < P. ++ for i := range p224P { ++ k := 8 - i - 1 ++ if out[k] > p224P[k] { ++ t.Logf("p224Contract(a) = %x", out) ++ return false ++ } ++ if out[k] < p224P[k] { ++ return true ++ } ++ } ++ t.Logf("p224Contract(a) = %x", out) ++ return false ++ } ++ ++ if !contractMatchesBigInt(p224P, p224FieldElement{}) { ++ t.Error("p224Contract(p) is broken") ++ } ++ pMinus1 := p224FieldElement{0, 0, 0, 0xffff000, 0xfffffff, 0xfffffff, 0xfffffff, 0xfffffff} ++ if !contractMatchesBigInt(pMinus1, p224FieldElement{}) { ++ t.Error("p224Contract(p - 1) is broken") ++ } ++ // Check that we can handle input above p, but lowest limb zero. ++ a := p224FieldElement{0, 1, 0, 0xffff000, 0xfffffff, 0xfffffff, 0xfffffff, 0xfffffff} ++ if !contractMatchesBigInt(a, p224FieldElement{}) { ++ t.Error("p224Contract(p + 2²⁸) is broken") ++ } ++ // Check that we can handle input above p, but lowest three limbs zero. ++ b := p224FieldElement{0, 0, 0, 0xffff001, 0xfffffff, 0xfffffff, 0xfffffff, 0xfffffff} ++ if !contractMatchesBigInt(b, p224FieldElement{}) { ++ t.Error("p224Contract(p + 2⁸⁴) is broken") ++ } ++ ++ if err := quick.Check(contractMatchesBigInt, quickCheckConfig32); err != nil { ++ t.Error(err) ++ } ++} ++ ++func TestP224IsZero(t *testing.T) { ++ if got := p224IsZero(&p224FieldElement{}); got != 1 { ++ t.Errorf("p224IsZero(0) = %d, expected 1", got) ++ } ++ if got := p224IsZero((*p224FieldElement)(&p224P)); got != 1 { ++ t.Errorf("p224IsZero(p) = %d, expected 1", got) ++ } ++ if got := p224IsZero(&p224FieldElement{1}); got != 0 { ++ t.Errorf("p224IsZero(1) = %d, expected 0", got) ++ } ++ ++ isZeroMatchesBigInt := func(a p224FieldElement) bool { ++ isZero := p224IsZero(&a) ++ ++ big := p224AlternativeToBig(&a) ++ if big.Sign() == 0 && isZero != 1 { ++ return false ++ } ++ if big.Sign() != 0 && isZero != 0 { ++ return false ++ } ++ return true ++ } ++ ++ if err := quick.Check(isZeroMatchesBigInt, quickCheckConfig32); err != nil { ++ t.Error(err) ++ } ++} ++ ++func TestP224Invert(t *testing.T) { ++ var out p224FieldElement ++ ++ p224Invert(&out, &p224FieldElement{}) ++ if got := p224IsZero(&out); got != 1 { ++ t.Errorf("p224Invert(0) = %x, expected 0", out) ++ } ++ ++ p224Invert(&out, (*p224FieldElement)(&p224P)) ++ if got := p224IsZero(&out); got != 1 { ++ t.Errorf("p224Invert(p) = %x, expected 0", out) ++ } ++ ++ p224Invert(&out, &p224FieldElement{1}) ++ p224Contract(&out, &out) ++ if out != (p224FieldElement{1}) { ++ t.Errorf("p224Invert(1) = %x, expected 1", out) ++ } ++ ++ var tmp p224LargeFieldElement ++ a := p224FieldElement{1, 2, 3, 4, 5, 6, 7, 8} ++ p224Invert(&out, &a) ++ p224Mul(&out, &out, &a, &tmp) ++ p224Contract(&out, &out) ++ if out != (p224FieldElement{1}) { ++ t.Errorf("p224Invert(a) * a = %x, expected 1", out) ++ } ++} diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..8759bff --- /dev/null +++ b/patches/series @@ -0,0 +1,12 @@ +0001-Reproducible-BUILD_PATH_PREFIX_MAP.patch +0002-Fix-Lintian-warnings-about-wrong-interpreter-path.patch +0003-arm64-arm64asm-recognise-new-ssbb-pssbb-mnemonics-fr.patch +0004-fix-Fstatat-by-using-fillStat_t-on-linux-mips64x.patch +0005-Fix-CVE-2019-9512-and-CVE-2019-9514.patch +0006-Fix-CVE-2019-14809.patch +0007-Fix-CVE-2019-16276.patch +0008-Fix-CVE-2019-17596.patch +0009-Fix-CVE-2020-7919.patch +0010-Fix-CVE-2020-15586.patch +0011-Fix-CVE-2020-16845.patch +0012-Fix-CVE-2021-3114.patch diff --git a/rules b/rules new file mode 100755 index 0000000..43f34f2 --- /dev/null +++ b/rules @@ -0,0 +1,118 @@ +#!/usr/bin/make -f +# This file is in the public domain. +# You may freely use, modify, distribute, and relicense it. + +export GOVER := $(shell perl -w -mDpkg::Version -e 'Dpkg::Version->new(`dpkg-parsechangelog -SVersion`)->version() =~ /^([0-9]+\.[0-9]+)/ && print("$$1\n")') + +export GOROOT := $(CURDIR) +export GOROOT_FINAL := /usr/lib/go-$(GOVER) + +# We need DEB_HOST_ARCH, so include the needed makefile snippet +include /usr/share/dpkg/architecture.mk + +RUN_TESTS := true +# armel: ??? +# ppc64: ??? +ifneq (,$(filter armel ppc64,$(DEB_HOST_ARCH))) + RUN_TESTS := false +endif +ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + RUN_TESTS := false +endif + +%: + +dh $@ $(opt_no_act) + +gencontrol: + for file in control gbp.conf source/lintian-overrides watch; do \ + { \ + echo '#'; \ + echo '# WARNING: "debian/'$$file'" is generated via "debian/rules gencontrol" (sourced from "debian/'$$file'.in")'; \ + echo '#'; \ + echo; \ + sed -e 's/X.Y/$(GOVER)/g' debian/$$file.in; \ + } > debian/$$file; \ + done + +override_dh_auto_clean: gencontrol + # remove autogenerated files + rm -f \ + src/cmd/cgo/zdefaultcc.go \ + src/cmd/go/zdefaultcc.go \ + src/cmd/internal/obj/zbootstrap.go \ + src/runtime/internal/sys/zversion.go + # remove built objects + rm -rf bin pkg + @set -e; cd debian; for x in golang-X.Y-*; do \ + rm -f -v golang-$(GOVER)-$${x##golang-X.Y-}; \ + done + +override_dh_prep: + dh_prep + @set -e; cd debian; for x in golang-X.Y-*; do \ + sed -e 's/X.Y/$(GOVER)/g' $$x > golang-$(GOVER)-$${x##golang-X.Y-}; \ + done + + +override_dh_auto_test-arch: +ifeq (true, $(RUN_TESTS)) + set -ex; \ + cd src; \ + export PATH="$(GOROOT)/bin:$$PATH"; \ + eval "$$(go tool dist env)"; \ + bash run.bash -k -no-rebuild; + # -k keep going even when error occurred + # -no-rebuild don't rebuild std and cmd packages + + # On linux/amd64 run.bash installs some race enabled standard library + # packages. Delete them again to avoid accidentally including them in + # the package. + set -ex; \ + export PATH="$(GOROOT)/bin:$$PATH"; \ + eval "$$(go tool dist env)"; \ + rm -rf "$(GOROOT)/pkg/$${GOOS}_$${GOARCH}_race/" +else + # skip the tests on platforms where they fail +endif + # Remove GOCACHE files + rm -rf pkg/obj + +override_dh_compress-indep: + dh_compress -Xusr/share/doc/golang-$(GOVER)-doc/html -Xusr/share/doc/golang-$(GOVER)-doc/favicon.ico + +override_dh_install-indep: + dh_install --fail-missing + +override_dh_install-arch: + dh_install --fail-missing + # Remove Plan9 rc(1) scripts + find debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src -type f -name '*.rc' -delete + # Remove empty /usr/share/go-$(GOVER)/src from golang-$(GOVER)-go, it is provided by golang-$(GOVER)-src + find debian/golang-$(GOVER)-go/usr/share/go-$(GOVER)/src -type d -delete + # Touch built and installed files and directories to have same timestamp + touch debian/golang-$(GOVER)-go/usr/lib/go-$(GOVER)/pkg + find debian/golang-$(GOVER)-go/usr/lib/go-$(GOVER)/pkg -exec touch -r $(CURDIR)/debian/golang-$(GOVER)-go/usr/lib/go-$(GOVER)/pkg {} \; + # Make two scripts executable which have been missed by upstream + chmod a+x debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src/cmp.bash + chmod a+x debian/golang-$(GOVER)-src/usr/share/go-$(GOVER)/src/runtime/mknacl.sh + +override_dh_strip: + dh_strip -Xtestdata + +override_dh_strip_nondeterminism: + dh_strip_nondeterminism -Xtestdata + +override_dh_shlibdeps: + dh_shlibdeps -Xtestdata -Xtest + +override_dh_auto_build-arch: + [ -f VERSION ] || echo "debian snapshot +$$(dpkg-parsechangelog -SVersion)" > VERSION + export GOROOT_BOOTSTRAP=$$(env -i go env GOROOT) \ + && cd src \ + && $(CURDIR)/debian/helpers/goenv.sh \ + bash ./make.bash --no-banner + +opt_no_act := +ifneq (,$(findstring n,$(MAKEFLAGS))) + opt_no_act := --no-act +endif diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/lintian-overrides b/source/lintian-overrides new file mode 100644 index 0000000..3920b54 --- /dev/null +++ b/source/lintian-overrides @@ -0,0 +1,54 @@ +# +# WARNING: "debian/source/lintian-overrides" is generated via "debian/rules gencontrol" (sourced from "debian/source/lintian-overrides.in") +# + +golang-1.11 source: source-contains-prebuilt-binary src/cmd/internal/buildid/testdata/a.elf +golang-1.11 source: source-contains-prebuilt-binary src/cmd/vendor/github.com/google/pprof/internal/report/testdata/sample.bin +golang-1.11 source: source-contains-prebuilt-binary src/debug/dwarf/testdata/cycle.elf +golang-1.11 source: source-contains-prebuilt-binary src/debug/dwarf/testdata/line-clang.elf +golang-1.11 source: source-contains-prebuilt-binary src/debug/dwarf/testdata/line-gcc.elf +golang-1.11 source: source-contains-prebuilt-binary src/debug/dwarf/testdata/ranges.elf +golang-1.11 source: source-contains-prebuilt-binary src/debug/dwarf/testdata/split.elf +golang-1.11 source: source-contains-prebuilt-binary src/debug/dwarf/testdata/typedef.elf +golang-1.11 source: source-contains-prebuilt-binary src/debug/dwarf/testdata/typedef.elf4 +golang-1.11 source: source-contains-prebuilt-binary src/debug/elf/testdata/gcc-386-freebsd-exec +golang-1.11 source: source-contains-prebuilt-binary src/debug/elf/testdata/gcc-amd64-linux-exec +golang-1.11 source: source-contains-prebuilt-binary src/debug/elf/testdata/*.obj +golang-1.11 source: source-contains-prebuilt-binary src/go/internal/gccgoimporter/testdata/escapeinfo.gox +golang-1.11 source: source-contains-prebuilt-binary src/go/internal/gccgoimporter/testdata/time.gox +golang-1.11 source: source-contains-prebuilt-binary src/go/internal/gccgoimporter/testdata/unicode.gox +golang-1.11 source: source-contains-prebuilt-binary src/runtime/pprof/testdata/test32 +golang-1.11 source: source-contains-prebuilt-binary src/runtime/pprof/testdata/test32be +golang-1.11 source: source-contains-prebuilt-binary src/runtime/pprof/testdata/test64 +golang-1.11 source: source-contains-prebuilt-binary src/runtime/pprof/testdata/test64be +golang-1.11 source: source-contains-prebuilt-binary src/runtime/race/*.syso +golang-1.11 source: source-contains-prebuilt-windows-binary src/cmd/internal/buildid/testdata/a.pe +golang-1.11 source: source-contains-prebuilt-windows-binary src/debug/dwarf/testdata/line-gcc-win.bin +golang-1.11 source: source-contains-prebuilt-windows-binary src/debug/pe/testdata/gcc-386-mingw-exec +golang-1.11 source: source-contains-prebuilt-windows-binary src/debug/pe/testdata/gcc-386-mingw-no-symbols-exec +golang-1.11 source: source-contains-prebuilt-windows-binary src/debug/pe/testdata/gcc-amd64-mingw-exec + +golang-1.11 source: source-is-missing src/runtime/race/*.syso +golang-1.11 source: source-is-missing src/cmd/internal/buildid/testdata/a.elf +golang-1.11 source: source-is-missing src/cmd/vendor/github.com/google/pprof/internal/report/testdata/sample.bin +golang-1.11 source: source-is-missing src/cmd/vendor/github.com/google/pprof/internal/binutils/testdata/exe_linux_64 + +# All these files are compiled from src/debug/elf/testdata/hello.c +# with various toolchain and options to be used as test data for the +# elf parser. +golang-1.11 source: source-is-missing src/debug/elf/testdata/gcc-386-freebsd-exec +golang-1.11 source: source-is-missing src/debug/elf/testdata/gcc-amd64-linux-exec +golang-1.11 source: source-is-missing src/debug/elf/testdata/*.obj + +# These files are compiled from src/debug/dwarf/testdata/line2.c with clang and gcc. +golang-1.11 source: source-is-missing src/debug/dwarf/testdata/line-clang.elf +golang-1.11 source: source-is-missing src/debug/dwarf/testdata/line-gcc.elf + +# Compiled from src/debug/dwarf/testdata/typedef.c with dwarf version 4. +golang-1.11 source: source-is-missing src/debug/dwarf/testdata/typedef.elf4 + +golang-1.11 source: source-is-missing src/runtime/pprof/testdata/test* +golang-1.11 source: source-is-missing src/go/internal/gccgoimporter/testdata/*.gox + +# This is not a typo. +golang-1.11 source: unknown-file-in-debian-source lintian-overrides.in diff --git a/source/lintian-overrides.in b/source/lintian-overrides.in new file mode 100644 index 0000000..ccc9430 --- /dev/null +++ b/source/lintian-overrides.in @@ -0,0 +1,50 @@ +golang-X.Y source: source-contains-prebuilt-binary src/cmd/internal/buildid/testdata/a.elf +golang-X.Y source: source-contains-prebuilt-binary src/cmd/vendor/github.com/google/pprof/internal/report/testdata/sample.bin +golang-X.Y source: source-contains-prebuilt-binary src/debug/dwarf/testdata/cycle.elf +golang-X.Y source: source-contains-prebuilt-binary src/debug/dwarf/testdata/line-clang.elf +golang-X.Y source: source-contains-prebuilt-binary src/debug/dwarf/testdata/line-gcc.elf +golang-X.Y source: source-contains-prebuilt-binary src/debug/dwarf/testdata/ranges.elf +golang-X.Y source: source-contains-prebuilt-binary src/debug/dwarf/testdata/split.elf +golang-X.Y source: source-contains-prebuilt-binary src/debug/dwarf/testdata/typedef.elf +golang-X.Y source: source-contains-prebuilt-binary src/debug/dwarf/testdata/typedef.elf4 +golang-X.Y source: source-contains-prebuilt-binary src/debug/elf/testdata/gcc-386-freebsd-exec +golang-X.Y source: source-contains-prebuilt-binary src/debug/elf/testdata/gcc-amd64-linux-exec +golang-X.Y source: source-contains-prebuilt-binary src/debug/elf/testdata/*.obj +golang-X.Y source: source-contains-prebuilt-binary src/go/internal/gccgoimporter/testdata/escapeinfo.gox +golang-X.Y source: source-contains-prebuilt-binary src/go/internal/gccgoimporter/testdata/time.gox +golang-X.Y source: source-contains-prebuilt-binary src/go/internal/gccgoimporter/testdata/unicode.gox +golang-X.Y source: source-contains-prebuilt-binary src/runtime/pprof/testdata/test32 +golang-X.Y source: source-contains-prebuilt-binary src/runtime/pprof/testdata/test32be +golang-X.Y source: source-contains-prebuilt-binary src/runtime/pprof/testdata/test64 +golang-X.Y source: source-contains-prebuilt-binary src/runtime/pprof/testdata/test64be +golang-X.Y source: source-contains-prebuilt-binary src/runtime/race/*.syso +golang-X.Y source: source-contains-prebuilt-windows-binary src/cmd/internal/buildid/testdata/a.pe +golang-X.Y source: source-contains-prebuilt-windows-binary src/debug/dwarf/testdata/line-gcc-win.bin +golang-X.Y source: source-contains-prebuilt-windows-binary src/debug/pe/testdata/gcc-386-mingw-exec +golang-X.Y source: source-contains-prebuilt-windows-binary src/debug/pe/testdata/gcc-386-mingw-no-symbols-exec +golang-X.Y source: source-contains-prebuilt-windows-binary src/debug/pe/testdata/gcc-amd64-mingw-exec + +golang-X.Y source: source-is-missing src/runtime/race/*.syso +golang-X.Y source: source-is-missing src/cmd/internal/buildid/testdata/a.elf +golang-X.Y source: source-is-missing src/cmd/vendor/github.com/google/pprof/internal/report/testdata/sample.bin +golang-X.Y source: source-is-missing src/cmd/vendor/github.com/google/pprof/internal/binutils/testdata/exe_linux_64 + +# All these files are compiled from src/debug/elf/testdata/hello.c +# with various toolchain and options to be used as test data for the +# elf parser. +golang-X.Y source: source-is-missing src/debug/elf/testdata/gcc-386-freebsd-exec +golang-X.Y source: source-is-missing src/debug/elf/testdata/gcc-amd64-linux-exec +golang-X.Y source: source-is-missing src/debug/elf/testdata/*.obj + +# These files are compiled from src/debug/dwarf/testdata/line2.c with clang and gcc. +golang-X.Y source: source-is-missing src/debug/dwarf/testdata/line-clang.elf +golang-X.Y source: source-is-missing src/debug/dwarf/testdata/line-gcc.elf + +# Compiled from src/debug/dwarf/testdata/typedef.c with dwarf version 4. +golang-X.Y source: source-is-missing src/debug/dwarf/testdata/typedef.elf4 + +golang-X.Y source: source-is-missing src/runtime/pprof/testdata/test* +golang-X.Y source: source-is-missing src/go/internal/gccgoimporter/testdata/*.gox + +# This is not a typo. +golang-X.Y source: unknown-file-in-debian-source lintian-overrides.in diff --git a/watch b/watch new file mode 100644 index 0000000..afb5eea --- /dev/null +++ b/watch @@ -0,0 +1,8 @@ +# +# WARNING: "debian/watch" is generated via "debian/rules gencontrol" (sourced from "debian/watch.in") +# + +version=3 +opts=\ +uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/,\ + https://golang.org/dl/ .*/go(1.11\S*)\.src\.tar\.gz diff --git a/watch.in b/watch.in new file mode 100644 index 0000000..79cc373 --- /dev/null +++ b/watch.in @@ -0,0 +1,4 @@ +version=3 +opts=\ +uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/,\ + https://golang.org/dl/ .*/go(X.Y\S*)\.src\.tar\.gz