Backporting để ép / ổn định là có thể, nhưng không tầm thường. Đây là một bản vá chống lại các tệp trong debian
thư mục áp dụng cho các 4.7.0-1
nguồn Debian trong thử nghiệm (cũng nên hoạt động với phiên bản có lẽ hơi khác nhau 4.7.0-3
ở mức không ổn định) và nên cho phép một bản dựng thành công khi nén, mặc dù tôi chưa kiểm tra bản vá trực tiếp bằng cách áp dụng nó cho các nguồn nguyên sơ. Rõ ràng, cài đặt các gói nhị phân từ thử nghiệm trên ổn định là có thể, nhưng nói chung không phải là một ý tưởng tốt. Làm những việc như vậy là một công thức cho sự bất ổn, và đánh bại mục đích sử dụng ổn định ngay từ đầu. Tuy nhiên, việc nhập lại theo kiểu này không nên buộc bất kỳ nâng cấp bổ sung nào và không gây ra vấn đề gì với hệ thống của bạn.
Tôi không nhớ đã thực hiện các thay đổi rules.parameters
, nhưng hầu hết các bản vá còn lại là những thay đổi tôi đã thực hiện, trái ngược với các thay đổi do máy tạo ra. Hãy thử áp dụng bản vá này cho các nguồn Debian và chạy debuild binary
hoặc tương tự. Tôi có thể tải lên các bản vá ở đâu đó nếu có hứng thú và nếu nhận được nó từ tin nhắn này không thuận tiện. Báo cáo thành công và thất bại hoan nghênh.
Ghi chú:
- Điều này sẽ yêu cầu cài đặt một loạt các phụ thuộc của bản dựng, nhưng chỉ từ việc nén
và apt-get build-dep
sẽ không hoạt động vì các phụ thuộc của bản dựng đã bị
thay đổi cục bộ - bạn sẽ phải thực hiện thủ công.
- Bản dựng của
libgcc1-dbg
đã đưa ra lỗi, vì vậy tôi lấy nó ra.
- Bộ kiểm tra có một số vấn đề, vì vậy tôi đã vô hiệu hóa chúng. Xem các dòng
with_check
:= disabled by hand
. Vấn đề không phải là các bài kiểm tra thất bại, nhưng bản dựng không thể tìm thấy một số tệp liên quan đến các bài kiểm tra, vì vậy nó bị lỗi.
- Tôi thay thế
binutils
bằng phiên bản trong bóp, cụ thể là binutils (>=
2.20.1)
.
- Tôi đã vô hiệu hóa
multilib
, vì bóp không sử dụng nó.
- Phiên bản này đã được thử nghiệm trên amd64, nhưng ít nhất cũng nên hoạt động trong i386.
#
diff -r 04f0dc0998f4 -r 77371b9693ea control
--- a/control Tue Apr 03 04:38:21 2012 -0400
+++ b/control Sun Apr 15 03:46:44 2012 -0400
@@ -4,7 +4,7 @@
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Uploaders: Matthias Klose <doko@debian.org>
Standards-Version: 3.9.3
-Build-Depends: dpkg-dev (>= 1.16.0~ubuntu4), debhelper (>= 5.0.62), g++-multilib [amd64 i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390 s390x sparc], libc6.1-dev (>= 2.13-5) [alpha ia64] | libc0.3-dev (>= 2.13-5) [hurd-i386] | libc0.1-dev (>= 2.13-5) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= 2.13-5), libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 s390x], lib64gcc1 [i386 powerpc sparc s390], libc6-dev-mips64 [mips mipsel], libc6-dev-mipsn32 [mips mipsel], m4, libtool, autoconf2.64, automake (>= 1:1.11), automake (<< 1:1.12), libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], zlib1g-dev, gawk, lzma, xz-utils, patchutils, binutils (>= 2.21.1) | binutils-multiarch (>= 2.21.1), binutils-hppa64 (>= 2.21.1) [hppa], gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, texinfo (>= 4.3), locales [!knetbsd-i386 !knetbsd-alpha], procps, sharutils, binutils-spu (>= 2.21.1) [powerpc ppc64], newlib-spu (>= 1.16.0) [powerpc ppc64], libcloog-ppl-dev (>= 0.15.9-2~), libmpc-dev, libmpfr-dev (>= 3.0.0-9~), libgmp-dev (>= 2:5.0.1~), libelfg0-dev (>= 0.8.12), dejagnu [!m68k !hurd-i386 !hurd-alpha], autogen, realpath (>= 1.9.12), chrpath, lsb-release, make (>= 3.81), quilt
+Build-Depends: dpkg-dev (>= 1.14.15), debhelper (>= 5.0.62), g++-multilib [amd64 i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390 s390x sparc], libc6.1-dev (>= 2.11) [alpha ia64] | libc0.3-dev (>= 2.11) [hurd-i386] | libc0.1-dev (>= 2.11) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= 2.11), libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 s390x], lib64gcc1 [i386 powerpc sparc s390], libc6-dev-mips64 [mips mipsel], libc6-dev-mipsn32 [mips mipsel], m4, libtool, autoconf2.64, automake (>= 1:1.11), automake (<< 1:1.12), libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], zlib1g-dev, gawk, lzma, xz-utils, patchutils, binutils (>= 2.20.1) | binutils-multiarch (>= 2.20.1), binutils-hppa64 (>= 2.20.1) [hppa], gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, texinfo (>= 4.3), locales [!knetbsd-i386 !knetbsd-alpha], procps, sharutils, binutils-spu (>= 2.20.1) [powerpc ppc64], newlib-spu (>= 1.16.0) [powerpc ppc64], libcloog-ppl-dev (>= 0.15.9-2~), libmpc-dev, libmpfr-dev, libgmp3-dev, libelfg0-dev (>= 0.8.12), dejagnu [!m68k !hurd-i386 !hurd-alpha], autogen, realpath (>= 1.9.12), chrpath, lsb-release, make (>= 3.81), quilt
Build-Conflicts: binutils-gold
Homepage: http://gcc.gnu.org/
XS-Vcs-Browser: http://svn.debian.org/viewsvn/gcccvs/branches/sid/gcc-4.7/
@@ -12,7 +12,6 @@
Package: gcc-4.7-base
Architecture: any
-Multi-Arch: same
Section: libs
Priority: required
Depends: ${misc:Depends}
@@ -27,33 +26,32 @@
Section: libs
Priority: required
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
-Multi-Arch: same
-Pre-Depends: multiarch-support
-Breaks: ${multiarch:breaks}
Provides: libgcc1-armel [armel], libgcc1-armhf [armhf]
Description: GCC support library
Shared version of the support library, a library of internal subroutines
that GCC uses to overcome shortcomings of particular machines, or
special needs for some languages.
-Package: libgcc1-dbg
-Architecture: any
-Section: debug
-Priority: extra
-Depends: gcc-4.7-base (= ${gcc:Version}), libgcc1 (= ${gcc:EpochVersion}), ${misc:Depends}
-Multi-Arch: same
-Provides: libgcc1-dbg-armel [armel], libgcc1-dbg-armhf [armhf]
-Description: GCC support library (debug symbols)
- Debug symbols for the GCC support library.
+# Package: libgcc1-dbg`'LS
+# Architecture: ifdef(`TARGET',`all',`any')
+# Section: debug
+# Priority: extra
+# Depends: BASEDEP, libgcc1`'LS (= ${gcc:EpochVersion}), ${misc:Depends}
+# ifdef(`TARGET',`dnl',ifdef(`MULTIARCH', `Multi-Arch: same'))
+# ifdef(`TARGET',`dnl',`Provides: libgcc1-dbg-armel [armel], libgcc1-dbg-armhf [armhf]')
+# Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `')
+# Debug symbols for the GCC support library.
+# ifdef(`TARGET', `dnl
+# .
+# This package contains files for TARGET architecture, for use in cross-compile
+# environment.
+# ')`'dnl
Package: libgcc2
Architecture: m68k
Section: libs
Priority: required
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
-Multi-Arch: same
-Pre-Depends: multiarch-support
-Breaks: ${multiarch:breaks}
Description: GCC support library
Shared version of the support library, a library of internal subroutines
that GCC uses to overcome shortcomings of particular machines, or
@@ -64,15 +62,11 @@
Section: debug
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libgcc2 (= ${gcc:Version}), ${misc:Depends}
-Multi-Arch: same
Description: GCC support library (debug symbols)
Debug symbols for the GCC support library.
Package: libgcc4
Architecture: hppa
-Multi-Arch: same
-Pre-Depends: multiarch-support
-Breaks: ${multiarch:breaks}
Section: libs
Priority: required
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -83,7 +77,6 @@
Package: libgcc4-dbg
Architecture: hppa
-Multi-Arch: same
Section: debug
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libgcc4 (= ${gcc:Version}), ${misc:Depends}
@@ -174,7 +167,7 @@
Architecture: any
Section: devel
Priority: optional
-Depends: gcc-4.7-base (= ${gcc:Version}), gcc-4.7 (= ${gcc:Version}), libgmp-dev (>= 2:5.0.1~), ${shlibs:Depends}, ${misc:Depends}
+Depends: gcc-4.7-base (= ${gcc:Version}), gcc-4.7 (= ${gcc:Version}), libgmp3-dev, ${shlibs:Depends}, ${misc:Depends}
Description: Files for GNU GCC plugin development.
This package contains (header) files for GNU GCC plugin development. It
is only used for the development of GCC plugins, but not needed to run
@@ -268,9 +261,6 @@
Package: libmudflap0
Architecture: any
-Multi-Arch: same
-Pre-Depends: multiarch-support
-Breaks: ${multiarch:breaks}
Provides: libmudflap0-armel [armel], libmudflap0-armhf [armhf]
Section: libs
Priority: optional
@@ -281,7 +271,6 @@
Package: libmudflap0-dbg
Architecture: any
-Multi-Arch: same
Provides: libmudflap0-dbg-armel [armel], libmudflap0-dbg-armhf [armhf]
Section: debug
Priority: extra
@@ -364,9 +353,6 @@
Package: libgomp1
Section: libs
Architecture: any
-Multi-Arch: same
-Pre-Depends: multiarch-support
-Breaks: ${multiarch:breaks}
Provides: libgomp1-armel [armel], libgomp1-armhf [armhf]
Priority: optional
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -379,7 +365,6 @@
Section: debug
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libgomp1 (= ${gcc:Version}), ${misc:Depends}
-Multi-Arch: same
Provides: libgomp1-dbg-armel [armel], libgomp1-dbg-armhf [armhf]
Description: GCC OpenMP (GOMP) support library (debug symbols)
GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers
@@ -442,8 +427,6 @@
Package: libitm1
Section: libs
Architecture: any
-Multi-Arch: same
-Pre-Depends: multiarch-support
Provides: libitm1-armel [armel], libitm1-armhf [armhf]
Priority: optional
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -457,7 +440,6 @@
Section: debug
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libitm1 (= ${gcc:Version}), ${misc:Depends}
-Multi-Arch: same
Provides: libitm1-dbg-armel [armel], libitm1-dbg-armhf [armhf]
Description: GNU Transactional Memory Library (debug symbols)
This manual documents the usage and internals of libitm. It provides
@@ -528,8 +510,6 @@
Package: libquadmath0
Section: libs
Architecture: any
-Multi-Arch: same
-Pre-Depends: multiarch-support
Priority: optional
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: GCC Quad-Precision Math Library
@@ -542,7 +522,6 @@
Section: debug
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libquadmath0 (= ${gcc:Version}), ${misc:Depends}
-Multi-Arch: same
Description: GCC Quad-Precision Math Library (debug symbols)
A library, which provides quad-precision mathematical functions on targets
supporting the __float128 datatype.
@@ -654,8 +633,6 @@
Package: libobjc4
Section: libs
Architecture: any
-Multi-Arch: same
-Pre-Depends: multiarch-support
Provides: libobjc4-armel [armel], libobjc4-armhf [armhf]
Priority: optional
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -665,7 +642,6 @@
Package: libobjc4-dbg
Section: debug
Architecture: any
-Multi-Arch: same
Provides: libobjc4-dbg-armel [armel], libobjc4-dbg-armhf [armhf]
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libobjc4 (= ${gcc:Version}), libgcc1-dbg, ${misc:Depends}
@@ -748,9 +724,6 @@
Package: libgfortran3
Section: libs
Architecture: any
-Multi-Arch: same
-Pre-Depends: multiarch-support
-Breaks: ${multiarch:breaks}
Provides: libgfortran3-armel [armel], libgfortran3-armhf [armhf]
Priority: optional
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -761,7 +734,6 @@
Package: libgfortran3-dbg
Section: debug
Architecture: any
-Multi-Arch: same
Provides: libgfortran3-dbg-armel [armel], libgfortran3-dbg-armhf [armhf]
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libgfortran3 (= ${gcc:Version}), ${misc:Depends}
@@ -850,8 +822,6 @@
Package: libgo0
Section: libs
Architecture: any
-Multi-Arch: same
-Pre-Depends: multiarch-support
Provides: libgo0-armel [armel], libgo0-armhf [armhf]
Priority: optional
Depends: gcc-4.7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -862,7 +832,6 @@
Package: libgo0-dbg
Section: debug
Architecture: any
-Multi-Arch: same
Provides: libgo0-dbg-armel [armel], libgo0-dbg-armhf [armhf]
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libgo0 (= ${gcc:Version}), ${misc:Depends}
@@ -930,9 +899,6 @@
Section: libs
Priority: important
Depends: gcc-4.7-base (= ${gcc:Version}), ${dep:libc}, ${shlibs:Depends}, ${misc:Depends}
-Multi-Arch: same
-Pre-Depends: multiarch-support
-Breaks: ${multiarch:breaks}
Provides: libstdc++6-armel [armel], libstdc++6-armhf [armhf]
Conflicts: scim (<< 1.4.2-1)
Description: GNU Standard C++ Library v3
@@ -1011,7 +977,6 @@
Section: debug
Priority: extra
Depends: gcc-4.7-base (= ${gcc:Version}), libstdc++6 (>= ${gcc:Version}), libgcc1-dbg, ${shlibs:Depends}, ${misc:Depends}
-Multi-Arch: same
Provides: libstdc++6-4.7-dbg-armel [armel], libstdc++6-4.7-dbg-armhf [armhf]
Recommends: libstdc++6-4.7-dev (= ${gcc:Version})
Conflicts: libstdc++5-dbg, libstdc++5-3.3-dbg, libstdc++6-dbg, libstdc++6-4.0-dbg, libstdc++6-4.1-dbg, libstdc++6-4.2-dbg, libstdc++6-4.3-dbg, libstdc++6-4.4-dbg, libstdc++6-4.5-dbg, libstdc++6-4.6-dbg
diff -r 04f0dc0998f4 -r 77371b9693ea control.m4
--- a/control.m4 Tue Apr 03 04:38:21 2012 -0400
+++ b/control.m4 Sun Apr 15 03:46:44 2012 -0400
@@ -182,20 +182,20 @@
environment.
')`'dnl
-Package: libgcc1-dbg`'LS
-Architecture: ifdef(`TARGET',`all',`any')
-Section: debug
-Priority: extra
-Depends: BASEDEP, libgcc1`'LS (= ${gcc:EpochVersion}), ${misc:Depends}
-ifdef(`TARGET',`dnl',ifdef(`MULTIARCH', `Multi-Arch: same'))
-ifdef(`TARGET',`dnl',`Provides: libgcc1-dbg-armel [armel], libgcc1-dbg-armhf [armhf]')
-Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `')
- Debug symbols for the GCC support library.
-ifdef(`TARGET', `dnl
- .
- This package contains files for TARGET architecture, for use in cross-compile
- environment.
-')`'dnl
+# Package: libgcc1-dbg`'LS
+# Architecture: ifdef(`TARGET',`all',`any')
+# Section: debug
+# Priority: extra
+# Depends: BASEDEP, libgcc1`'LS (= ${gcc:EpochVersion}), ${misc:Depends}
+# ifdef(`TARGET',`dnl',ifdef(`MULTIARCH', `Multi-Arch: same'))
+# ifdef(`TARGET',`dnl',`Provides: libgcc1-dbg-armel [armel], libgcc1-dbg-armhf [armhf]')
+# Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `')
+# Debug symbols for the GCC support library.
+# ifdef(`TARGET', `dnl
+# .
+# This package contains files for TARGET architecture, for use in cross-compile
+# environment.
+# ')`'dnl
Package: libgcc2`'LS
Architecture: ifdef(`TARGET',`all',`m68k')
diff -r 04f0dc0998f4 -r 77371b9693ea rules.conf
--- a/rules.conf Tue Apr 03 04:38:21 2012 -0400
+++ b/rules.conf Sun Apr 15 03:46:44 2012 -0400
@@ -132,9 +132,9 @@
# We need binutils (>= 2.19.1) for a new dwarf unwind expression opcode.
# See http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01713.html
ifeq ($(trunk_build),yes)
- BINUTILSV = 2.22
+ BINUTILSV = 2.20.1
else
- BINUTILSV = 2.21.1
+ BINUTILSV = 2.20.1
endif
ifeq ($(DEB_CROSS),yes)
BINUTILS_BUILD_DEP = binutils$(TS) (>= $(BINUTILSV)), binutils-multiarch (>= $(BINUTILSV))
diff -r 04f0dc0998f4 -r 77371b9693ea rules.d/binary-libgcc.mk
--- a/rules.d/binary-libgcc.mk Tue Apr 03 04:38:21 2012 -0400
+++ b/rules.d/binary-libgcc.mk Sun Apr 15 03:46:44 2012 -0400
@@ -65,16 +65,14 @@
)
debian/dh_doclink -p$(p_l) $(if $(3),$(3),$(p_base))
- debian/dh_doclink -p$(p_d) $(if $(3),$(3),$(p_base))
debian/dh_rmemptydirs -p$(p_l)
- debian/dh_rmemptydirs -p$(p_d)
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ dh_strip -p$(p_l)
# see Debian #533843 for the __aeabi symbol handling; this construct is
# just to include the symbols for dpkg versions older than 1.15.3 which
# didn't allow bypassing the symbol blacklist
$(if $(filter yes,$(with_shared_libgcc)),
- dh_makeshlibs -p$(p_l) -p$(p_d) \
+ dh_makeshlibs -p$(p_l) \
-- -v$(DEB_LIBGCC_VERSION)
$(call cross_mangle_shlibs,$(p_l))
$(if $(filter arm-linux-gnueabi%,$(DEB_TARGET_GNU_TYPE)),
@@ -89,9 +87,9 @@
DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l)
$(call cross_mangle_substvars,$(p_l))
- dh_compress -p$(p_l) -p$(p_d)
- dh_fixperms -p$(p_l) -p$(p_d)
- dh_gencontrol -p$(p_l) -p$(p_d) \
+ dh_compress -p$(p_l)
+ dh_fixperms -p$(p_l)
+ dh_gencontrol -p$(p_l) \
-- -v$(DEB_LIBGCC_VERSION) $(common_substvars)
$(call cross_mangle_control,$(p_l))
@@ -101,9 +99,9 @@
> $(d_l)/usr/share/lintian/overrides/$(p_l)
)
- dh_installdeb -p$(p_l) -p$(p_d)
- dh_md5sums -p$(p_l) -p$(p_d)
- dh_builddeb -p$(p_l) -p$(p_d)
+ dh_installdeb -p$(p_l)
+ dh_md5sums -p$(p_l)
+ dh_builddeb -p$(p_l)
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
endef
diff -r 04f0dc0998f4 -r 77371b9693ea rules.defs
--- a/rules.defs Tue Apr 03 04:38:21 2012 -0400
+++ b/rules.defs Sun Apr 15 03:46:44 2012 -0400
@@ -991,7 +991,7 @@
# run testsuite ---------------
with_check := yes
# if you don't want to run the gcc testsuite, uncomment the next line
-#with_check := disabled by hand
+with_check := disabled by hand
ifeq ($(with_base_only),yes)
with_check := no
endif
diff -r 04f0dc0998f4 -r 77371b9693ea rules.parameters
--- a/rules.parameters Tue Apr 03 04:38:21 2012 -0400
+++ b/rules.parameters Sun Apr 15 03:46:44 2012 -0400
@@ -2,15 +2,15 @@
GCC_VERSION := 4.7.0
NEXT_GCC_VERSION := 4.7.1
BASE_VERSION := 4.7
-SOURCE_VERSION := 4.7.0~rc2-1
-DEB_VERSION := 4.7.0~rc2-1
-DEB_EVERSION := 1:4.7.0~rc2-1
+SOURCE_VERSION := 4.7.0-1
+DEB_VERSION := 4.7.0-1
+DEB_EVERSION := 1:4.7.0-1
GDC_BASE_VERSION :=
DEB_GDC_VERSION :=
DEB_SOVERSION := 4.7
DEB_SOEVERSION := 1:4.7
DEB_LIBGCC_SOVERSION := 1:4.7
-DEB_LIBGCC_VERSION := 1:4.7.0~rc2-1
+DEB_LIBGCC_VERSION := 1:4.7.0-1
DEB_STDCXX_SOVERSION := 4.7
DEB_GCJ_SOVERSION := 4.7
PKG_GCJ_EXT := 13