检查 Ubuntu 软件包是否包含所需更新

检查 Ubuntu 软件包是否包含所需更新

让我们以 Clang 为例。Clang 的 ABI 兼容性与 GCC5 不同,在 Ubuntu 16.04 中使用 Clang 编译东西变得相当困难。在某个时候,补丁已提交并最终合并到 Clang 3.8

Clang 3.8 也可以在 Ubuntu 仓库中使用,当我添加LLVM 仓库我自己更新源列表并尝试安装 Clang-3.8,来自 Ubuntu repos 的版本将作为最新版本安装(apt设置为始终优先使用最高版本)。

在不尝试编译代码来查看会发生什么的情况下,有没有一个好方法来检查该补丁是否已经在 Ubuntu 存储库中?

答案1

一种方法是检查软件包变更日志:

$ zgrep abi_tag /usr/share/doc/clang-3.8/changelog.Debian.gz
  * Add support for gcc's attribute abi_tag (needed for compatibility with

更新日志也可用在线的http://packages.ubuntu.com

因此看起来您想要的补丁已包含在内。


另一种方法是检查打包时应用的补丁。你可以下载打包源代码并检查它:

$ apt-get source clang-3.8
Reading package lists... Done
Picking 'llvm-toolchain-3.8' as source package instead of 'clang-3.8'
NOTICE: 'llvm-toolchain-3.8' packaging is maintained in the 'Svn' version control system at:
svn://anonscm.debian.org/svn/pkg-llvm/llvm-toolchain/branches/3.8/
Need to get 37.8 MB of source archives.
Get:1 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main llvm-toolchain-3.8 1:3.8-2ubuntu4 (dsc) [5,787 B]
Get:2 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main llvm-toolchain-3.8 1:3.8-2ubuntu4 (tar) [358 kB]
Get:3 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main llvm-toolchain-3.8 1:3.8-2ubuntu4 (tar) [10.6 MB]
Get:4 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main llvm-toolchain-3.8 1:3.8-2ubuntu4 (tar) [1,641 kB]
Get:5 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main llvm-toolchain-3.8 1:3.8-2ubuntu4 (tar) [3,974 kB]
Get:6 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main llvm-toolchain-3.8 1:3.8-2ubuntu4 (tar) [1,996 kB]
Get:7 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main llvm-toolchain-3.8 1:3.8-2ubuntu4 (tar) [19.2 MB]
Get:8 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main llvm-toolchain-3.8 1:3.8-2ubuntu4 (diff) [60.1 kB]
Fetched 37.8 MB in 2s (14.7 MB/s)
dpkg-source: info: extracting llvm-toolchain-3.8 in llvm-toolchain-3.8-3.8
dpkg-source: info: unpacking llvm-toolchain-3.8_3.8.orig.tar.bz2
dpkg-source: info: unpacking llvm-toolchain-3.8_3.8.orig-clang.tar.bz2
dpkg-source: info: unpacking llvm-toolchain-3.8_3.8.orig-clang-tools-extra.tar.bz2
dpkg-source: info: unpacking llvm-toolchain-3.8_3.8.orig-compiler-rt.tar.bz2
dpkg-source: info: unpacking llvm-toolchain-3.8_3.8.orig-lldb.tar.bz2
dpkg-source: info: unpacking llvm-toolchain-3.8_3.8.orig-polly.tar.bz2
dpkg-source: info: unpacking llvm-toolchain-3.8_3.8-2ubuntu4.debian.tar.xz
dpkg-source: info: applying 18-soname.patch
dpkg-source: info: applying 19-clang_debian_version.patch
dpkg-source: info: applying 23-strlcpy_strlcat_warning_removed.diff
dpkg-source: info: applying 27-fix_clang_stdint.diff
dpkg-source: info: applying 26-set-correct-float-abi.diff
dpkg-source: info: applying 0003-Debian-version-info-and-bugreport.patch
dpkg-source: info: applying 0021-shared-lib-debian.patch
dpkg-source: info: applying 0023-link-libopagent.patch
dpkg-source: info: applying 0044-soname.diff
dpkg-source: info: applying scan-build-clang-path.diff
dpkg-source: info: applying declare_clear_cache.diff
dpkg-source: info: applying 31-powerpcspe.diff
dpkg-source: info: applying 34-powerpc-no-altivec.diff
dpkg-source: info: applying clang-format-version.diff
dpkg-source: info: applying disable-execinfo-usage.diff
dpkg-source: info: applying unwind-chain-inclusion.diff
dpkg-source: info: applying hurd-pathmax.diff
dpkg-source: info: applying use-deb-json.diff
dpkg-source: info: applying atomic_library_1.diff
dpkg-source: info: applying atomic_library_2.diff
dpkg-source: info: applying python-clangpath.diff
dpkg-source: info: applying removeduplicatedeclaration.diff
dpkg-source: info: applying fix-clang-path-and-build.diff
dpkg-source: info: applying do-not-fail-on-unexpected-pass.diff
dpkg-source: info: applying silent-more-tests.diff
dpkg-source: info: applying disable-display-PASS-UNSUPPORTED-XFAIL.diff
dpkg-source: info: applying lldb-link-atomic.diff
dpkg-source: info: applying fix-llvm-config-obj-src-root.patch
dpkg-source: info: applying compiler-rt-path.diff
dpkg-source: info: applying lldb-soname.diff
dpkg-source: info: applying force-link-pass.o.diff
dpkg-source: info: applying follow-parallel-var.diff
dpkg-source: info: applying hurd-EIEIO-undef.diff
dpkg-source: info: applying silent-MCJIIT-tests.diff
dpkg-source: info: applying lldb-libname.diff
dpkg-source: info: applying compiler-rt-i586.diff
dpkg-source: info: applying clang-analyzer-force-version.diff
dpkg-source: info: applying fix-cmake-config-prefix.diff
dpkg-source: info: applying llvm25468-lldb-swig-format-security.diff
dpkg-source: info: applying llvm26003-sanitizer-check-env.diff
dpkg-source: info: applying drop-avx512-from-skylake.diff
dpkg-source: info: applying D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff
dpkg-source: info: applying D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.diff

目前已应用了许多补丁,其中包括:

$ grep abi_tag llvm-toolchain-3.8-3.8/debian/patches -Rm1
llvm-toolchain-3.8-3.8/debian/patches/D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.diff:+  // abi_tag is a gcc attribute, taking one or more strings called "tags".
llvm-toolchain-3.8-3.8/debian/patches/series:D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff
llvm-toolchain-3.8-3.8/debian/patches/D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff:+This text tries to describe gcc semantic for mangling "abi_tag" attributes

因此您至少申请了两个补丁abi_tag

相关内容