first commit
This commit is contained in:
commit
528f89a79b
90 changed files with 13567 additions and 0 deletions
1
dev-lang/odin/Manifest
Normal file
1
dev-lang/odin/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST dev-2024-10.tar.gz 135410967 BLAKE2B d0983bb79988e3e468bc39fea8863d6d6bde52a46ef30f719fd57c052ba3f569c275474421e473794570845627c10e8bd9a279a307fbabb4451e33ca9f211591 SHA512 37f41b55575b68cf95b9378f3e333736d4e39c357102db6c6bcf43c74fef9e9eea1824c69f1e0c27e21abed70ce5d225a1f20fbe9e513612937fdaf1ceb45dfa
|
14
dev-lang/odin/metadata.xml
Normal file
14
dev-lang/odin/metadata.xml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>tetris123480@gmail.com</email>
|
||||||
|
<name>Bogdan Ivanyuk</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<bugs-to>https://github.com/odin-lang/Odin/issues</bugs-to>
|
||||||
|
<changelog>https://github.com/odin-lang/Odin/releases</changelog>
|
||||||
|
<doc>https://odin-lang.org/docs/</doc>
|
||||||
|
<remote-id type="github">odin-lang/Odin</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
51
dev-lang/odin/odin-2024.10.ebuild
Normal file
51
dev-lang/odin/odin-2024.10.ebuild
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
LLVM_COMPAT=(14 17 18)
|
||||||
|
inherit llvm-r1
|
||||||
|
|
||||||
|
DESCRIPTION="The Data-Oriented Language for Sane Software Development."
|
||||||
|
|
||||||
|
HOMEPAGE="https://odin-lang.org/"
|
||||||
|
|
||||||
|
MY_PV="${PV/./-}"
|
||||||
|
SRC_URI="https://github.com/odin-lang/Odin/archive/refs/tags/dev-${MY_PV}.tar.gz"
|
||||||
|
|
||||||
|
# Source directory; the dir where the sources can be found (automatically
|
||||||
|
# unpacked) inside ${WORKDIR}. The default value for S is ${WORKDIR}/${P}
|
||||||
|
# If you don't need to change it, leave the S= line out of the ebuild
|
||||||
|
# to keep it tidy.
|
||||||
|
S="${WORKDIR}/Odin-dev-${MY_PV}"
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
$(llvm_gen_dep "
|
||||||
|
sys-devel/clang:${LLVM_SLOT}=
|
||||||
|
sys-devel/llvm:${LLVM_SLOT}=
|
||||||
|
")
|
||||||
|
"
|
||||||
|
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
|
||||||
|
# build_odin.sh sets its own flags. Some gcc flags cause build failures
|
||||||
|
CPPFLAGS=""
|
||||||
|
CXXFLAGS=""
|
||||||
|
src_compile() {
|
||||||
|
./build_odin.sh release || die "failed to build odin"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
insinto usr/lib/odin
|
||||||
|
exeinto usr/lib/odin
|
||||||
|
|
||||||
|
doexe odin
|
||||||
|
doins -r base core vendor
|
||||||
|
dosym -r /usr/lib/odin/odin /usr/bin/odin
|
||||||
|
}
|
1
dev-libs/libqt5pas/Manifest
Normal file
1
dev-libs/libqt5pas/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST libqt5pas-1.2.15.tar.gz 87513233 BLAKE2B 26e8492194541453230832591445b97827e65b61531078cb4bd1c9f549bcd0aa531fef036f701de885e96f9e56476b0dd1c9465e2388ea43080ba418acbd097e SHA512 85cb3548fab017f2fd97f5fb141d59a0d0ec1412a161f98fea726ad5d6ed32ee2eb6ef6573e058d4df7dfcc067256e842acf994b73c9a50ebfb064657db33881
|
35
dev-libs/libqt5pas/libqt5pas-1.2.15.ebuild
Normal file
35
dev-libs/libqt5pas/libqt5pas-1.2.15.ebuild
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# Copyright 2020-2022 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit qmake-utils
|
||||||
|
|
||||||
|
MY_P="lazarus-3.0-0"
|
||||||
|
|
||||||
|
DESCRIPTION="Free Pascal Qt5 bindings library updated by lazarus IDE."
|
||||||
|
HOMEPAGE="https://gitlab.com/freepascal.org/lazarus/lazarus"
|
||||||
|
SRC_URI="mirror://sourceforge/lazarus/${MY_P}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
|
||||||
|
LICENSE="LGPL-3"
|
||||||
|
SLOT="0/2.2"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
dev-qt/qtnetwork:5
|
||||||
|
dev-qt/qtprintsupport:5
|
||||||
|
dev-qt/qtx11extras:5
|
||||||
|
dev-qt/qtcore:5
|
||||||
|
dev-qt/qtwidgets:5
|
||||||
|
"
|
||||||
|
|
||||||
|
S="${WORKDIR}/lazarus/lcl/interfaces/qt5/cbindings"
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
eqmake5 "QT += x11extras" Qt5Pas.pro
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
emake INSTALL_ROOT="${D}" install
|
||||||
|
}
|
16
dev-libs/libqt5pas/metadata.xml
Normal file
16
dev-libs/libqt5pas/metadata.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>amynka@gentoo.org</email>
|
||||||
|
<name>Amy Liffey</name>
|
||||||
|
</maintainer>
|
||||||
|
<maintainer type="person" proxied="yes">
|
||||||
|
<email>voron1@gmail.com</email>
|
||||||
|
<name>Michael Corvinus</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="gitlab">freepascal.org/lazarus</remote-id>
|
||||||
|
<remote-id type="sourceforge">lazarus</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
1
dev-libs/libqt6pas/Manifest
Normal file
1
dev-libs/libqt6pas/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST libqt6pas-6.2.7.tar.gz 87513233 BLAKE2B 26e8492194541453230832591445b97827e65b61531078cb4bd1c9f549bcd0aa531fef036f701de885e96f9e56476b0dd1c9465e2388ea43080ba418acbd097e SHA512 85cb3548fab017f2fd97f5fb141d59a0d0ec1412a161f98fea726ad5d6ed32ee2eb6ef6573e058d4df7dfcc067256e842acf994b73c9a50ebfb064657db33881
|
30
dev-libs/libqt6pas/libqt6pas-6.2.7.ebuild
Normal file
30
dev-libs/libqt6pas/libqt6pas-6.2.7.ebuild
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# Copyright 2020-2022 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit qmake-utils
|
||||||
|
|
||||||
|
MY_P="lazarus-3.0-0"
|
||||||
|
|
||||||
|
DESCRIPTION="Free Pascal Qt6 bindings library updated by lazarus IDE."
|
||||||
|
HOMEPAGE="https://gitlab.com/freepascal.org/lazarus/lazarus"
|
||||||
|
SRC_URI="mirror://sourceforge/lazarus/${MY_P}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
|
||||||
|
LICENSE="LGPL-3"
|
||||||
|
SLOT="0/2.2"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
>=dev-qt/qtbase-6.2:6[X,gui,network,widgets,cups]
|
||||||
|
>=dev-qt/qtsvg-6.2:6"
|
||||||
|
|
||||||
|
S="${WORKDIR}/lazarus/lcl/interfaces/qt6/cbindings"
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
eqmake6 Qt6Pas.pro
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
emake INSTALL_ROOT="${D}" install
|
||||||
|
}
|
2
games-emulation/dosbox-x/Manifest
Normal file
2
games-emulation/dosbox-x/Manifest
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
DIST dosbox-x-v2024.03.01.tar.gz 119593920 BLAKE2B 42c994247e55c1b2d67ed9e1bf90e99ddf9a08476b18ab802757becc0ee6959231d3665e39cfaef02a6b1c234e3faff10597d396d8d30ce01d8123b5107327bc SHA512 0eb835da3fdfd7f1c6160aa1a32a7eff7c38f46184f7cee088e0fb8edf09327f058fd45e7995955a7f335c704ddd69c1627731899a01687563990bb06f4d9cd1
|
||||||
|
DIST dosbox-x-v2024.07.01.tar.gz 119702042 BLAKE2B 1c046a54b5a94deef6413592c48be08542c6d9c6d5b437880a354eb9df137fafb5da57d5f99e4bdcd83eea99a7a3550117c8ed66adcbca38aea484b116321068 SHA512 e6a0478be160b115ab09ffe13d7574d604fc7778105171da3591bd4239903cb5766118e0b05d158a89344bbbd1383885aa4fd724dce4601595438634724b2f24
|
85
games-emulation/dosbox-x/dosbox-x-2024.03.01.ebuild
Normal file
85
games-emulation/dosbox-x/dosbox-x-2024.03.01.ebuild
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
# Copyright 2021-2022 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools
|
||||||
|
|
||||||
|
DESCRIPTION="Cross-platform DOS emulation package."
|
||||||
|
HOMEPAGE="https://dosbox-x.com/"
|
||||||
|
SRC_URI="https://github.com/joncampbell123/dosbox-x/archive/refs/tags/${PN}-v${PV}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~ppc64 ~x86"
|
||||||
|
IUSE="X +core-inline debug dynrec ffmpeg +fluidsynth +freetype +fpu hardened midi mt-32 opengl printer +screenshots slirp unaligned +xbrz"
|
||||||
|
REQUIRED_USE="hardened? ( !dynrec )"
|
||||||
|
|
||||||
|
DEPEND="debug? ( sys-libs/ncurses:0= )
|
||||||
|
ffmpeg? ( media-video/ffmpeg )
|
||||||
|
freetype? ( media-libs/freetype )
|
||||||
|
fluidsynth? (
|
||||||
|
media-sound/fluid-soundfont
|
||||||
|
media-sound/fluidsynth
|
||||||
|
)
|
||||||
|
mt-32? ( media-libs/munt-mt32emu )
|
||||||
|
screenshots? ( media-libs/libpng:0= )
|
||||||
|
X? (
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXext
|
||||||
|
x11-libs/libXrandr
|
||||||
|
x11-libs/libxkbfile
|
||||||
|
)
|
||||||
|
media-libs/alsa-lib
|
||||||
|
opengl? ( media-libs/libglvnd[X?] )
|
||||||
|
media-libs/libsdl2[X?]
|
||||||
|
media-libs/sdl2-net
|
||||||
|
net-libs/libpcap
|
||||||
|
sys-libs/zlib"
|
||||||
|
RDEPEND="${DEPEND}"
|
||||||
|
BDEPEND="dev-lang/nasm"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-fix-rpath.patch"
|
||||||
|
"${FILESDIR}/${PN}-invert-1624f04.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
S="${WORKDIR}/${PN}-${PN}-v${PV}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local fpu_arg='--disable-fpu-x86 --disable-fpu-x64'
|
||||||
|
if use fpu; then
|
||||||
|
if use x86; then
|
||||||
|
fpu_arg=--enable-fpu-x86
|
||||||
|
elif use amd64; then
|
||||||
|
fpu_arg=--enable-fpu-x64
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ac_cv_lib_X11_main=$(usex X yes no) \
|
||||||
|
econf \
|
||||||
|
"$(use_enable !hardened dynamic-core)" \
|
||||||
|
"$(use_enable !hardened dynamic-x86)" \
|
||||||
|
"$(use_enable X x11)" \
|
||||||
|
"$(use_enable core-inline)" \
|
||||||
|
"$(use_enable debug)" \
|
||||||
|
"$(use_enable dynrec)" \
|
||||||
|
"$(use_enable ffmpeg avcodec)" \
|
||||||
|
"$(use_enable fluidsynth libfluidsynth)" \
|
||||||
|
"$(use_enable fpu "${fpu_arg}")" \
|
||||||
|
"$(use_enable freetype)" \
|
||||||
|
"$(use_enable midi alsa-midi)" \
|
||||||
|
"$(use_enable mt-32 mt32)" \
|
||||||
|
"$(use_enable opengl)" \
|
||||||
|
"$(use_enable printer)" \
|
||||||
|
"$(use_enable screenshots)" \
|
||||||
|
"$(use_enable slirp libslirp)" \
|
||||||
|
"$(use_enable unaligned unaligned-memory)" \
|
||||||
|
"$(use_enable xbrz)" \
|
||||||
|
--disable-optimize \
|
||||||
|
--enable-sdl2
|
||||||
|
}
|
85
games-emulation/dosbox-x/dosbox-x-2024.07.01.ebuild
Normal file
85
games-emulation/dosbox-x/dosbox-x-2024.07.01.ebuild
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
# Copyright 2021-2022 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools
|
||||||
|
|
||||||
|
DESCRIPTION="Cross-platform DOS emulation package."
|
||||||
|
HOMEPAGE="https://dosbox-x.com/"
|
||||||
|
SRC_URI="https://github.com/joncampbell123/dosbox-x/archive/refs/tags/${PN}-v${PV}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~ppc64 ~x86"
|
||||||
|
IUSE="X +core-inline debug dynrec ffmpeg +fluidsynth +freetype +fpu hardened midi mt-32 opengl printer +screenshots slirp unaligned +xbrz"
|
||||||
|
REQUIRED_USE="hardened? ( !dynrec )"
|
||||||
|
|
||||||
|
DEPEND="debug? ( sys-libs/ncurses:0= )
|
||||||
|
ffmpeg? ( media-video/ffmpeg )
|
||||||
|
freetype? ( media-libs/freetype )
|
||||||
|
fluidsynth? (
|
||||||
|
media-sound/fluid-soundfont
|
||||||
|
media-sound/fluidsynth
|
||||||
|
)
|
||||||
|
mt-32? ( media-libs/munt-mt32emu )
|
||||||
|
screenshots? ( media-libs/libpng:0= )
|
||||||
|
X? (
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXext
|
||||||
|
x11-libs/libXrandr
|
||||||
|
x11-libs/libxkbfile
|
||||||
|
)
|
||||||
|
media-libs/alsa-lib
|
||||||
|
opengl? ( media-libs/libglvnd[X?] )
|
||||||
|
media-libs/libsdl2[X?]
|
||||||
|
media-libs/sdl2-net
|
||||||
|
net-libs/libpcap
|
||||||
|
sys-libs/zlib"
|
||||||
|
RDEPEND="${DEPEND}"
|
||||||
|
BDEPEND="dev-lang/nasm"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-fix-rpath.patch"
|
||||||
|
"${FILESDIR}/${PN}-invert-1624f04.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
S="${WORKDIR}/${PN}-${PN}-v${PV}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local fpu_arg='--disable-fpu-x86 --disable-fpu-x64'
|
||||||
|
if use fpu; then
|
||||||
|
if use x86; then
|
||||||
|
fpu_arg=--enable-fpu-x86
|
||||||
|
elif use amd64; then
|
||||||
|
fpu_arg=--enable-fpu-x64
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ac_cv_lib_X11_main=$(usex X yes no) \
|
||||||
|
econf \
|
||||||
|
"$(use_enable !hardened dynamic-core)" \
|
||||||
|
"$(use_enable !hardened dynamic-x86)" \
|
||||||
|
"$(use_enable X x11)" \
|
||||||
|
"$(use_enable core-inline)" \
|
||||||
|
"$(use_enable debug)" \
|
||||||
|
"$(use_enable dynrec)" \
|
||||||
|
"$(use_enable ffmpeg avcodec)" \
|
||||||
|
"$(use_enable fluidsynth libfluidsynth)" \
|
||||||
|
"$(use_enable fpu "${fpu_arg}")" \
|
||||||
|
"$(use_enable freetype)" \
|
||||||
|
"$(use_enable midi alsa-midi)" \
|
||||||
|
"$(use_enable mt-32 mt32)" \
|
||||||
|
"$(use_enable opengl)" \
|
||||||
|
"$(use_enable printer)" \
|
||||||
|
"$(use_enable screenshots)" \
|
||||||
|
"$(use_enable slirp libslirp)" \
|
||||||
|
"$(use_enable unaligned unaligned-memory)" \
|
||||||
|
"$(use_enable xbrz)" \
|
||||||
|
--disable-optimize \
|
||||||
|
--enable-sdl2
|
||||||
|
}
|
12
games-emulation/dosbox-x/files/dosbox-x-fix-rpath.patch
Normal file
12
games-emulation/dosbox-x/files/dosbox-x-fix-rpath.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 8e98dc4e9..a21cb36f4 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -422,6 +422,7 @@ if test -n "$SDL2_LIBS"; then
|
||||||
|
CPPFLAGS="$CPPFLAGS $SDL2_CFLAGS"
|
||||||
|
else
|
||||||
|
if test -n "$SDL_LIBS"; then
|
||||||
|
+ SDL_LIBS="$(echo "$SDL_LIBS" | sed -e 's/-Wl,-rpath,[[^ ]]\+ //')"
|
||||||
|
LIBS="$LIBS $SDL_LIBS"
|
||||||
|
CPPFLAGS="$CPPFLAGS $SDL_CFLAGS"
|
||||||
|
else
|
30
games-emulation/dosbox-x/files/dosbox-x-invert-1624f04.patch
Normal file
30
games-emulation/dosbox-x/files/dosbox-x-invert-1624f04.patch
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
--- b/src/output/output_opengl.cpp
|
||||||
|
+++ a/src/output/output_opengl.cpp
|
||||||
|
@@ -199,11 +199,7 @@
|
||||||
|
|
||||||
|
#if DOSBOXMENU_TYPE == DOSBOXMENU_SDLDRAW
|
||||||
|
/* scale the menu bar if the window is large enough */
|
||||||
|
+ {
|
||||||
|
- /* SDL drawn menus cannot coexist with 3Dfx emulation. In fact, there is a serious
|
||||||
|
- * bug in SDL1 builds that rapidly expands the vertical size of the menu every frame. */
|
||||||
|
- if (Voodoo_OGL_GetWidth() != 0 && Voodoo_OGL_GetHeight() != 0 && Voodoo_OGL_Active() && sdl.desktop.prevent_fullscreen) {
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
int cw = fixedWidth, ch = fixedHeight;
|
||||||
|
int scale = 1;
|
||||||
|
|
||||||
|
@@ -259,12 +255,8 @@
|
||||||
|
#if DOSBOXMENU_TYPE == DOSBOXMENU_SDLDRAW
|
||||||
|
if (mainMenu.isVisible() && !sdl.desktop.fullscreen)
|
||||||
|
{
|
||||||
|
+ windowHeight += mainMenu.menuBox.h;
|
||||||
|
+ sdl.clip.y += mainMenu.menuBox.h;
|
||||||
|
- if (Voodoo_OGL_GetWidth() != 0 && Voodoo_OGL_GetHeight() != 0 && Voodoo_OGL_Active() && sdl.desktop.prevent_fullscreen) {
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- windowHeight += mainMenu.menuBox.h;
|
||||||
|
- sdl.clip.y += mainMenu.menuBox.h;
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
25
games-emulation/dosbox-x/metadata.xml
Normal file
25
games-emulation/dosbox-x/metadata.xml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>audvare@gmail.com</email>
|
||||||
|
<name>Andrew Udvare</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">joncampbell123/dosbox-x</remote-id>
|
||||||
|
</upstream>
|
||||||
|
<use>
|
||||||
|
<flag name="core-inline">Enable memory-increasing inlines for better performance but requiring more build time</flag>
|
||||||
|
<flag name="dynrec">Use recompiling cpu core instead of dynamic x86/x64 specific cpu core</flag>
|
||||||
|
<flag name="fluidsynth">Use media-sound/fluidsynth for MIDI emulation</flag>
|
||||||
|
<flag name="fpu">Enable FPU emulation</flag>
|
||||||
|
<flag name="freetype">Enable FreeType support</flag>
|
||||||
|
<flag name="midi">Enable MIDI support (with ALSA)</flag>
|
||||||
|
<flag name="mt-32">Use media-libs/munt-mt32emu for MT-32 emulation</flag>
|
||||||
|
<flag name="printer">Enable printer emulation</flag>
|
||||||
|
<flag name="screenshots">Screenshots and movie recording</flag>
|
||||||
|
<flag name="slirp">Enable libslirp support</flag>
|
||||||
|
<flag name="unaligned">Enable unaligned memory access</flag>
|
||||||
|
<flag name="xbrz">Enable support for xBRZ pixel scaler</flag>
|
||||||
|
</use>
|
||||||
|
</pkgmetadata>
|
1
games-fps/zandronum/Manifest
Normal file
1
games-fps/zandronum/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST zandronum-3.1.tar.gz 6872680 BLAKE2B 928cde28afba3d934fb75e1c596bac09e2fb6a8329f953be8e83c197fe2a10f2ffb6ff31647245219c303129a122b072cd9ce23b96148725a02c5d1c89e69840 SHA512 708781e09902a2f18a0193bda886758873c23a4974a7ab309c3a60d44f83842a40472a9c5cae03408e8dfdcccdea1b94027c80e9a3ba1c16a08cba8e76f096ed
|
26
games-fps/zandronum/files/remove-revision-check.patch
Normal file
26
games-fps/zandronum/files/remove-revision-check.patch
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
--- a/src/CMakeLists.txt 2019-10-13 21:38:53.000000000 +0200
|
||||||
|
+++ b/src/CMakeLists.txt 2021-11-24 10:55:32.946070583 +0100
|
||||||
|
@@ -636,15 +636,6 @@
|
||||||
|
add_definitions( -DBACKPATCH )
|
||||||
|
endif( BACKPATCH )
|
||||||
|
|
||||||
|
-# Update gitinfo.h
|
||||||
|
-
|
||||||
|
-get_target_property( UPDATEREVISION_EXE updaterevision LOCATION )
|
||||||
|
-
|
||||||
|
-add_custom_target( revision_check ALL
|
||||||
|
- COMMAND ${UPDATEREVISION_EXE} src/gitinfo.h
|
||||||
|
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
|
- DEPENDS updaterevision )
|
||||||
|
-
|
||||||
|
# Libraries ZDoom needs
|
||||||
|
|
||||||
|
message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
|
||||||
|
@@ -1459,7 +1450,6 @@
|
||||||
|
${CMAKE_BINARY_DIR}/gdtoa
|
||||||
|
${SYSTEM_SOURCES_DIR} )
|
||||||
|
|
||||||
|
-add_dependencies( zdoom revision_check )
|
||||||
|
# [TP]
|
||||||
|
add_dependencies( zdoom protocolspec )
|
||||||
|
|
12
games-fps/zandronum/metadata.xml
Normal file
12
games-fps/zandronum/metadata.xml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<use>
|
||||||
|
<flag name="dedicated">Build zandronum-server</flag>
|
||||||
|
<flag name="gtk">Build graphical IWAD picker</flag>
|
||||||
|
<flag name="opengl">Build zandronum client</flag>
|
||||||
|
<flag name="system-sqlite">Use system-wide installed dev-db/sqlite instead of bundled one</flag>
|
||||||
|
<flag name="system-dumb">Use system-wide installed media-libs/dumb instead of bundled one</flag>
|
||||||
|
<flag name="system-geoip">Use system-wide installed dev-libs/geoip instead of bundled one</flag>
|
||||||
|
</use>
|
||||||
|
</pkgmetadata>
|
138
games-fps/zandronum/zandronum-3.1.ebuild
Normal file
138
games-fps/zandronum/zandronum-3.1.ebuild
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake desktop
|
||||||
|
|
||||||
|
MY_TAG="ZA_3.1"
|
||||||
|
MY_TAG_COMMIT="zandronum-stable-ZA_3.1"
|
||||||
|
MY_COMMIT_UTC_TIMESTAMP="1639258555"
|
||||||
|
|
||||||
|
DESCRIPTION="OpenGL ZDoom port with Client/Server multiplayer"
|
||||||
|
HOMEPAGE="https://zandronum.com/"
|
||||||
|
#SRC_URI="https://osdn.dl.osdn.net/scmarchive/g/${PN}/hg/${PN}-stable/${MY_COMMIT:0:2}/${MY_COMMIT:2:4}/${PN}-stable-${MY_COMMIT:0:6}.tar.gz -> ${P}.tar.gz"
|
||||||
|
SRC_URI="https://foss.heptapod.net/zandronum/zandronum-stable/-/archive/${MY_TAG}/${MY_TAG_COMMIT}.tar.gz -> ${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="Sleepycat"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE="cpu_flags_x86_mmx dedicated +gtk +opengl system-dumb system-geoip +system-sqlite timidity"
|
||||||
|
|
||||||
|
REQUIRED_USE="|| ( dedicated opengl )
|
||||||
|
gtk? ( opengl )
|
||||||
|
timidity? ( opengl )"
|
||||||
|
|
||||||
|
RDEPEND="gtk? ( x11-libs/gtk+:2 )
|
||||||
|
timidity? ( media-sound/timidity++ )
|
||||||
|
opengl? ( media-libs/fmod
|
||||||
|
media-libs/game-music-emu
|
||||||
|
media-libs/glew
|
||||||
|
media-libs/libsdl[opengl]
|
||||||
|
virtual/glu
|
||||||
|
virtual/jpeg
|
||||||
|
virtual/opengl
|
||||||
|
)
|
||||||
|
system-dumb? ( >=media-libs/dumb-2 )
|
||||||
|
system-geoip? ( dev-libs/geoip )
|
||||||
|
system-sqlite? ( dev-db/sqlite )
|
||||||
|
app-arch/bzip2
|
||||||
|
dev-libs/openssl:0
|
||||||
|
sys-libs/zlib"
|
||||||
|
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
cpu_flags_x86_mmx? ( || ( dev-lang/nasm dev-lang/yasm ) )"
|
||||||
|
|
||||||
|
#S="${WORKDIR}/${PN}-stable-${MY_COMMIT:0:6}"
|
||||||
|
S="${WORKDIR}/${MY_TAG_COMMIT}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Normally Mercurial would generate gitinfo.h for NETGAMEVERSION
|
||||||
|
# let's do it without Mercurial
|
||||||
|
eapply "${FILESDIR}/remove-revision-check.patch"
|
||||||
|
echo "#define HG_REVISION_NUMBER ${MY_COMMIT_UTC_TIMESTAMP}" > src/gitinfo.h
|
||||||
|
echo "#define HG_REVISION_HASH_STRING \"0\"" >> src/gitinfo.h
|
||||||
|
echo "#define HG_TIME \"\"" >> src/gitinfo.h
|
||||||
|
|
||||||
|
# Use system libs
|
||||||
|
# (lzma can't be system-libbed as the Gentoo ebuild provides no sources)
|
||||||
|
for lib in dumb geoip sqlite; do
|
||||||
|
use system-$lib && sed -i -e "/add_subdirectory( $lib )/Id" CMakeLists.txt
|
||||||
|
done
|
||||||
|
|
||||||
|
# Use default data path
|
||||||
|
sed -i -e "s:/usr/local/share/:/usr/share/doom/:" src/sdl/i_system.h || die
|
||||||
|
|
||||||
|
# Fix building with gcc-5
|
||||||
|
use system-dumb || sed -i -e 's/ restrict/ _restrict/g' dumb/include/dumb.h dumb/src/it/*.c || die
|
||||||
|
|
||||||
|
cmake_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
mycmakeargs=(
|
||||||
|
-DFORCE_INTERNAL_GME="OFF"
|
||||||
|
-DNO_ASM="$(usex cpu_flags_x86_mmx OFF ON)"
|
||||||
|
-DNO_GTK="$(usex gtk OFF ON)"
|
||||||
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
|
)
|
||||||
|
|
||||||
|
# Can't build both client and server at once... so separate them
|
||||||
|
if use opengl; then
|
||||||
|
BUILD_DIR="${WORKDIR}/${P}_client"
|
||||||
|
cmake_src_configure
|
||||||
|
fi
|
||||||
|
if use dedicated; then
|
||||||
|
BUILD_DIR="${WORKDIR}/${P}_server"
|
||||||
|
mycmakeargs+=(-DSERVERONLY=1)
|
||||||
|
cmake_src_configure
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
if use opengl; then
|
||||||
|
BUILD_DIR="${WORKDIR}/${P}_client"
|
||||||
|
cmake_build
|
||||||
|
fi
|
||||||
|
if use dedicated; then
|
||||||
|
BUILD_DIR="${WORKDIR}/${P}_server"
|
||||||
|
cmake_build
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dodoc docs/{commands,zandronum*}.txt docs/console.{css,html}
|
||||||
|
|
||||||
|
cd "${BUILD_DIR}"
|
||||||
|
insinto "/usr/share/doom"
|
||||||
|
doins *.pk3
|
||||||
|
|
||||||
|
if use opengl; then
|
||||||
|
dobin "${WORKDIR}/${P}_client/${PN}"
|
||||||
|
doicon "${S}/src/win32/zandronum.ico"
|
||||||
|
make_desktop_entry "${PN}" "Zandronum" "${PN}.ico" "Game;ActionGame;"
|
||||||
|
fi
|
||||||
|
if use dedicated; then
|
||||||
|
dobin "${WORKDIR}/${P}_server/${PN}-server"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't install this now
|
||||||
|
rm "${D}/usr/share/doom/brightmaps.pk3"
|
||||||
|
}
|
||||||
|
pkg_postinst() {
|
||||||
|
# install here to avoid collisions with games-fps/gzdoom
|
||||||
|
# hacky, i know. should've listened to juippis :) please don't hit me.
|
||||||
|
# note: brightmaps.pk3 NEEDS TO KEEP ITS NAME to not break online play
|
||||||
|
# on servers that mistakenly add it as a required pwad.
|
||||||
|
#cp -n "${BUILD_DIR}/brightmaps.pk3" "${EPREFIX}/usr/share/doom/"
|
||||||
|
|
||||||
|
ewarn "For parity with the gzdoom ebuild, the data path has been changed yet again!"
|
||||||
|
ewarn "It is ${EPREFIX}/usr/share/doom - copy/link wad files there or in \$HOME/.config/zandronum"
|
||||||
|
ewarn "If after an upgrade the game complains about not finding zandronum.pk3,"
|
||||||
|
ewarn "edit the [*Search.Directories] sections in \$HOME/.config/zandronum/zandronum.ini."
|
||||||
|
|
||||||
|
if use opengl; then
|
||||||
|
elog
|
||||||
|
elog "To play online, install games-util/doomseeker"
|
||||||
|
fi
|
||||||
|
}
|
138
games-fps/zandronum/zandronum-3.2-alpha.ebuild
Normal file
138
games-fps/zandronum/zandronum-3.2-alpha.ebuild
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake desktop
|
||||||
|
|
||||||
|
MY_TAG="ZA_3.1"
|
||||||
|
MY_TAG_COMMIT="zandronum-stable-ZA_3.1"
|
||||||
|
MY_COMMIT_UTC_TIMESTAMP="1639258555"
|
||||||
|
|
||||||
|
DESCRIPTION="OpenGL ZDoom port with Client/Server multiplayer"
|
||||||
|
HOMEPAGE="https://zandronum.com/"
|
||||||
|
#SRC_URI="https://osdn.dl.osdn.net/scmarchive/g/${PN}/hg/${PN}-stable/${MY_COMMIT:0:2}/${MY_COMMIT:2:4}/${PN}-stable-${MY_COMMIT:0:6}.tar.gz -> ${P}.tar.gz"
|
||||||
|
SRC_URI="https://foss.heptapod.net/zandronum/zandronum-stable/-/archive/${MY_TAG}/${MY_TAG_COMMIT}.tar.gz -> ${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="Sleepycat"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE="cpu_flags_x86_mmx dedicated +gtk +opengl system-dumb system-geoip +system-sqlite timidity"
|
||||||
|
|
||||||
|
REQUIRED_USE="|| ( dedicated opengl )
|
||||||
|
gtk? ( opengl )
|
||||||
|
timidity? ( opengl )"
|
||||||
|
|
||||||
|
RDEPEND="gtk? ( x11-libs/gtk+:2 )
|
||||||
|
timidity? ( media-sound/timidity++ )
|
||||||
|
opengl? ( media-libs/fmod
|
||||||
|
media-libs/game-music-emu
|
||||||
|
media-libs/glew
|
||||||
|
media-libs/libsdl[opengl]
|
||||||
|
virtual/glu
|
||||||
|
virtual/jpeg
|
||||||
|
virtual/opengl
|
||||||
|
)
|
||||||
|
system-dumb? ( >=media-libs/dumb-2 )
|
||||||
|
system-geoip? ( dev-libs/geoip )
|
||||||
|
system-sqlite? ( dev-db/sqlite )
|
||||||
|
app-arch/bzip2
|
||||||
|
dev-libs/openssl:0
|
||||||
|
sys-libs/zlib"
|
||||||
|
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
cpu_flags_x86_mmx? ( || ( dev-lang/nasm dev-lang/yasm ) )"
|
||||||
|
|
||||||
|
#S="${WORKDIR}/${PN}-stable-${MY_COMMIT:0:6}"
|
||||||
|
S="${WORKDIR}/${MY_TAG_COMMIT}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Normally Mercurial would generate gitinfo.h for NETGAMEVERSION
|
||||||
|
# let's do it without Mercurial
|
||||||
|
eapply "${FILESDIR}/remove-revision-check.patch"
|
||||||
|
echo "#define HG_REVISION_NUMBER ${MY_COMMIT_UTC_TIMESTAMP}" > src/gitinfo.h
|
||||||
|
echo "#define HG_REVISION_HASH_STRING \"0\"" >> src/gitinfo.h
|
||||||
|
echo "#define HG_TIME \"\"" >> src/gitinfo.h
|
||||||
|
|
||||||
|
# Use system libs
|
||||||
|
# (lzma can't be system-libbed as the Gentoo ebuild provides no sources)
|
||||||
|
for lib in dumb geoip sqlite; do
|
||||||
|
use system-$lib && sed -i -e "/add_subdirectory( $lib )/Id" CMakeLists.txt
|
||||||
|
done
|
||||||
|
|
||||||
|
# Use default data path
|
||||||
|
sed -i -e "s:/usr/local/share/:/usr/share/doom/:" src/sdl/i_system.h || die
|
||||||
|
|
||||||
|
# Fix building with gcc-5
|
||||||
|
use system-dumb || sed -i -e 's/ restrict/ _restrict/g' dumb/include/dumb.h dumb/src/it/*.c || die
|
||||||
|
|
||||||
|
cmake_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
mycmakeargs=(
|
||||||
|
-DFORCE_INTERNAL_GME="OFF"
|
||||||
|
-DNO_ASM="$(usex cpu_flags_x86_mmx OFF ON)"
|
||||||
|
-DNO_GTK="$(usex gtk OFF ON)"
|
||||||
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
|
)
|
||||||
|
|
||||||
|
# Can't build both client and server at once... so separate them
|
||||||
|
if use opengl; then
|
||||||
|
BUILD_DIR="${WORKDIR}/${P}_client"
|
||||||
|
cmake_src_configure
|
||||||
|
fi
|
||||||
|
if use dedicated; then
|
||||||
|
BUILD_DIR="${WORKDIR}/${P}_server"
|
||||||
|
mycmakeargs+=(-DSERVERONLY=1)
|
||||||
|
cmake_src_configure
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
if use opengl; then
|
||||||
|
BUILD_DIR="${WORKDIR}/${P}_client"
|
||||||
|
cmake_build
|
||||||
|
fi
|
||||||
|
if use dedicated; then
|
||||||
|
BUILD_DIR="${WORKDIR}/${P}_server"
|
||||||
|
cmake_build
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dodoc docs/{commands,zandronum*}.txt docs/console.{css,html}
|
||||||
|
|
||||||
|
cd "${BUILD_DIR}"
|
||||||
|
insinto "/usr/share/doom"
|
||||||
|
doins *.pk3
|
||||||
|
|
||||||
|
if use opengl; then
|
||||||
|
dobin "${WORKDIR}/${P}_client/${PN}"
|
||||||
|
doicon "${S}/src/win32/zandronum.ico"
|
||||||
|
make_desktop_entry "${PN}" "Zandronum" "${PN}.ico" "Game;ActionGame;"
|
||||||
|
fi
|
||||||
|
if use dedicated; then
|
||||||
|
dobin "${WORKDIR}/${P}_server/${PN}-server"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# don't install this now
|
||||||
|
rm "${D}/usr/share/doom/brightmaps.pk3"
|
||||||
|
}
|
||||||
|
pkg_postinst() {
|
||||||
|
# install here to avoid collisions with games-fps/gzdoom
|
||||||
|
# hacky, i know. should've listened to juippis :) please don't hit me.
|
||||||
|
# note: brightmaps.pk3 NEEDS TO KEEP ITS NAME to not break online play
|
||||||
|
# on servers that mistakenly add it as a required pwad.
|
||||||
|
#cp -n "${BUILD_DIR}/brightmaps.pk3" "${EPREFIX}/usr/share/doom/"
|
||||||
|
|
||||||
|
ewarn "For parity with the gzdoom ebuild, the data path has been changed yet again!"
|
||||||
|
ewarn "It is ${EPREFIX}/usr/share/doom - copy/link wad files there or in \$HOME/.config/zandronum"
|
||||||
|
ewarn "If after an upgrade the game complains about not finding zandronum.pk3,"
|
||||||
|
ewarn "edit the [*Search.Directories] sections in \$HOME/.config/zandronum/zandronum.ini."
|
||||||
|
|
||||||
|
if use opengl; then
|
||||||
|
elog
|
||||||
|
elog "To play online, install games-util/doomseeker"
|
||||||
|
fi
|
||||||
|
}
|
1
games-util/slade/Manifest
Normal file
1
games-util/slade/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST slade-3.2.6.tar.gz 7027328 BLAKE2B ba0db4926f5706166ec2439cbb539a9d5330e2d3ea3dbd8e29b586cf57a23b7b254823d84b7ba79b604a86ed0e5753b4e7c4fcf825ba7d3217c52824f36c5be4 SHA512 d09631b24c83769482480c24dfc1f6992ae293bdfe4c8661d967d6ac0fcbba6f0e1bf58c58afc84a82fb5f900d9e0e99413800a42edc353a4f7f1f52781db54f
|
|
@ -0,0 +1,27 @@
|
||||||
|
From dc0057d1200f9bb6b67f1b1a2094b7e402d1d370 Mon Sep 17 00:00:00 2001
|
||||||
|
From: James Le Cuirot <chewi@gentoo.org>
|
||||||
|
Date: Sat, 20 Feb 2021 12:28:48 +0000
|
||||||
|
Subject: [PATCH] Don't force FluidSynth to use ALSA on Linux
|
||||||
|
|
||||||
|
---
|
||||||
|
src/Audio/MIDIPlayer.cpp | 4 ----
|
||||||
|
1 file changed, 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/Audio/MIDIPlayer.cpp b/src/Audio/MIDIPlayer.cpp
|
||||||
|
index bb001339..f33ffe67 100644
|
||||||
|
--- a/src/Audio/MIDIPlayer.cpp
|
||||||
|
+++ b/src/Audio/MIDIPlayer.cpp
|
||||||
|
@@ -344,10 +344,6 @@ public:
|
||||||
|
fs_initialised_ = false;
|
||||||
|
file_ = "";
|
||||||
|
|
||||||
|
- // Set fluidsynth driver to alsa in linux (no idea why it defaults to jack)
|
||||||
|
- if (app::platform() == app::Platform::Linux && fs_driver.value.empty())
|
||||||
|
- fs_driver = "alsa";
|
||||||
|
-
|
||||||
|
// Init soundfont path
|
||||||
|
if (fs_soundfont_path.value.empty())
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.30.0
|
||||||
|
|
25
games-util/slade/files/slade-3.2.2-wayland.patch
Normal file
25
games-util/slade/files/slade-3.2.2-wayland.patch
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
SFML's render window only supports X11 under Linux, so SLADE crashes if GDK
|
||||||
|
chooses the Wayland backend. This patch tells GDK to prefer the X11 backend.
|
||||||
|
SLADE 3.3.0 will apparently not use the render window.
|
||||||
|
|
||||||
|
diff --git a/src/Application/SLADEWxApp.cpp b/src/Application/SLADEWxApp.cpp
|
||||||
|
index 3dadf241..de01e340 100644
|
||||||
|
--- a/src/Application/SLADEWxApp.cpp
|
||||||
|
+++ b/src/Application/SLADEWxApp.cpp
|
||||||
|
@@ -52,6 +52,16 @@
|
||||||
|
using namespace slade;
|
||||||
|
|
||||||
|
|
||||||
|
+#ifdef __WXGTK__
|
||||||
|
+#include <gdk/gdk.h>
|
||||||
|
+
|
||||||
|
+struct PreferX11 {
|
||||||
|
+ PreferX11() { gdk_set_allowed_backends("x11,*"); }
|
||||||
|
+};
|
||||||
|
+static PreferX11 preferx11;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Variables
|
14
games-util/slade/metadata.xml
Normal file
14
games-util/slade/metadata.xml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="project">
|
||||||
|
<email>games@gentoo.org</email>
|
||||||
|
<name>Gentoo Games Project</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">sirjuddington/SLADE</remote-id>
|
||||||
|
</upstream>
|
||||||
|
<use>
|
||||||
|
<flag name="fluidsynth">Enable MIDI software synthesis using <pkg>media-sound/fluidsynth</pkg></flag>
|
||||||
|
</use>
|
||||||
|
</pkgmetadata>
|
80
games-util/slade/slade-3.2.6.ebuild
Normal file
80
games-util/slade/slade-3.2.6.ebuild
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
LUA_COMPAT=( lua5-{1..3} )
|
||||||
|
WX_GTK_VER="3.2-gtk3"
|
||||||
|
|
||||||
|
inherit cmake lua-single wxwidgets
|
||||||
|
|
||||||
|
MY_PV="${PV/beta/b}"
|
||||||
|
DESCRIPTION="Modern editor for Doom-engine based games and source ports"
|
||||||
|
HOMEPAGE="https://slade.mancubus.net/"
|
||||||
|
SRC_URI="https://github.com/sirjuddington/${PN^^}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
LICENSE="GPL-2 MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
IUSE="fluidsynth timidity webkit"
|
||||||
|
REQUIRED_USE="${LUA_REQUIRED_USE}"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
${LUA_DEPS}
|
||||||
|
app-arch/bzip2:=
|
||||||
|
dev-libs/libfmt:=
|
||||||
|
>=media-libs/dumb-2:=
|
||||||
|
media-libs/freeimage[jpeg,png,tiff]
|
||||||
|
media-libs/glew:0=
|
||||||
|
media-libs/libsfml:=
|
||||||
|
media-sound/mpg123
|
||||||
|
net-misc/curl
|
||||||
|
sys-libs/zlib
|
||||||
|
x11-libs/wxGTK:${WX_GTK_VER}[opengl,webkit?,X]
|
||||||
|
fluidsynth? ( media-sound/fluidsynth:= )
|
||||||
|
"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
|
timidity? ( media-sound/timidity++ )
|
||||||
|
"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
app-arch/p7zip
|
||||||
|
virtual/pkgconfig
|
||||||
|
"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${PN^^}-${MY_PV}"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-3.2.0_beta2-fluidsynth-driver.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.2.2-wayland.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
# Delete bundled libraries just in case.
|
||||||
|
rm -r thirdparty/dumb/ thirdparty/fmt/ || die
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local luav=$(lua_get_version)
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DLua_FIND_VERSION_MAJOR=$(ver_cut 1 "${luav}")
|
||||||
|
-DLua_FIND_VERSION_MINOR=$(ver_cut 2 "${luav}")
|
||||||
|
-DLua_FIND_VERSION_COUNT=2
|
||||||
|
-DLua_FIND_VERSION_EXACT=ON
|
||||||
|
-DNO_COTIRE=ON
|
||||||
|
-DNO_FLUIDSYNTH=$(usex fluidsynth OFF ON)
|
||||||
|
-DNO_WEBVIEW=$(usex webkit OFF ON)
|
||||||
|
-DUSE_SFML_RENDERWINDOW=ON
|
||||||
|
-DUSE_SYSTEM_DUMB=ON
|
||||||
|
-DUSE_SYSTEM_FMT=ON
|
||||||
|
-DWX_GTK3=ON
|
||||||
|
)
|
||||||
|
|
||||||
|
setup-wxwidgets
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
1
gui-apps/yambar/Manifest
Normal file
1
gui-apps/yambar/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST yambar-1.10.0.tar.gz 190288 BLAKE2B 35bfd50b27241724fa29f0ea6b1031dad793d1ff2c8342f5ed40bdc1fb390a32813d17b6c3063184109769a54fb5c5bce876a83974cdbb17679fd80a88d9d797 SHA512 c8d1e807017f62886cba65dab9933913f473eeeae8cbf8d44ddd4953754a55c81def9a02506b28a7ea7264325748db0a0ca4cdff39ba74a06f531e6e55878b35
|
11
gui-apps/yambar/metadata.xml
Normal file
11
gui-apps/yambar/metadata.xml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>floss@bsd.ac</email>
|
||||||
|
<name>Aisha Tammy</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="modules">Build plugins as dynamically loaded shared librarie</flag>
|
||||||
|
</use>
|
||||||
|
</pkgmetadata>
|
62
gui-apps/yambar/yambar-1.10.0.ebuild
Normal file
62
gui-apps/yambar/yambar-1.10.0.ebuild
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# Copyright 2021 Aisha Tammy
|
||||||
|
# Distributed under the terms of the ISC License
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit meson xdg
|
||||||
|
|
||||||
|
DESCRIPTION="Modular status panel for X11 and Wayland"
|
||||||
|
HOMEPAGE="https://codeberg.org/dnkl/yambar"
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://codeberg.org/dnkl/yambar"
|
||||||
|
else
|
||||||
|
SRC_URI="https://codeberg.org/dnkl/yambar/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
S="${WORKDIR}"/${PN}
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="modules"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
dev-libs/libyaml
|
||||||
|
dev-libs/wayland
|
||||||
|
media-libs/fcft
|
||||||
|
media-libs/libmpdclient
|
||||||
|
x11-libs/cairo
|
||||||
|
x11-libs/gtk+:3
|
||||||
|
x11-libs/libnotify
|
||||||
|
x11-libs/libxcb
|
||||||
|
x11-libs/pango
|
||||||
|
x11-libs/xcb-util
|
||||||
|
x11-libs/xcb-util-cursor
|
||||||
|
x11-libs/xcb-util-wm
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
dev-libs/tllist
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
app-text/scdoc
|
||||||
|
dev-libs/wayland-protocols
|
||||||
|
virtual/pkgconfig
|
||||||
|
"
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local emesonargs=(
|
||||||
|
-Dwerror=false
|
||||||
|
-Dbackend-x11=enabled
|
||||||
|
-Dbackend-wayland=enabled
|
||||||
|
$(meson_use modules core-plugins-as-shared-libraries)
|
||||||
|
)
|
||||||
|
meson_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
meson_src_install
|
||||||
|
rm -r "${ED}/usr/share/doc/${PN}" || die
|
||||||
|
local -x DOCS=( LICENSE README.md CHANGELOG.md )
|
||||||
|
einstalldocs
|
||||||
|
}
|
1
media-libs/fmod/Manifest
Normal file
1
media-libs/fmod/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST fmodapi44464linux.tar.gz 25520093 BLAKE2B 4a702aed24c1a42d35462341290a1c71717e208229c640931c06b9d80580f4e5f0b984ab2c7ee024defc1dc7b9d0e21bd13c1148a2814e1e3bb3aea0f8409f6a SHA512 af365f82eea8b7e38bb8c3910470b28626ac58d46ae8122bbdaf51b5339810504cd0f541334c5e989180b3a6b2ecdcf7bc82c00ce3ef1f6af5278df20a20d611
|
48
media-libs/fmod/fmod-4.44.64.ebuild
Normal file
48
media-libs/fmod/fmod-4.44.64.ebuild
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
MY_PV=$(ver_rs 1- '')
|
||||||
|
|
||||||
|
DESCRIPTION="Libraries of the fmodex audio engine"
|
||||||
|
HOMEPAGE="https://zdoom.org/files/fmod/ https://www.fmod.com/"
|
||||||
|
SRC_URI="https://zdoom.org/files/fmod/fmodapi${MY_PV}linux.tar.gz"
|
||||||
|
S="${WORKDIR}/fmodapi${MY_PV}linux"
|
||||||
|
|
||||||
|
# Ogg Vorbis: BSD
|
||||||
|
# Android: BSD-2
|
||||||
|
LICENSE="BSD BSD-2 fmod"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
|
||||||
|
RESTRICT="strip test"
|
||||||
|
|
||||||
|
QA_PREBUILT="*"
|
||||||
|
|
||||||
|
src_compile() { :; }
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cd "${S}/api/lib/" || die
|
||||||
|
for lib in libfmodex libfmodexL
|
||||||
|
do
|
||||||
|
dolib.so ${lib}64-${PV}.so
|
||||||
|
dolib.so ${lib}64.so
|
||||||
|
dolib.so ${lib}-${PV}.so
|
||||||
|
dolib.so ${lib}.so
|
||||||
|
done
|
||||||
|
|
||||||
|
cd "${S}/fmoddesignerapi/api/lib/" || die
|
||||||
|
for lib in libfmodevent libfmodeventL libfmodeventnet libfmodeventnetL
|
||||||
|
do
|
||||||
|
dolib.so ${lib}64-${PV}.so
|
||||||
|
dolib.so ${lib}64.so
|
||||||
|
dolib.so ${lib}-${PV}.so
|
||||||
|
dolib.so ${lib}.so
|
||||||
|
done
|
||||||
|
|
||||||
|
cd "${S}/api/inc/" || die
|
||||||
|
doheader *
|
||||||
|
cd "${S}/fmoddesignerapi/api/inc/" || die
|
||||||
|
doheader *
|
||||||
|
}
|
1
media-libs/libsdl3/Manifest
Normal file
1
media-libs/libsdl3/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST libsdl3-3.1.6.tar.gz 7773892 BLAKE2B 6701e4d65816bc2845096f69479ca2759a24c365d1bb25be2e7588b96dbe9eeec1eb7e7031d1b72911fbe198d3358f67feb308a23cc8cc80e509731dddda8b1b SHA512 a0ca7263cd2f1b883829c39ae0ee2ea18d814f8dde768c8be9a49487193bc856bb45870764fd70169e75d2ec80457e5b45811c07a926479f1ac4f9d3157f40a4
|
203
media-libs/libsdl3/libsdl3-3.1.6.ebuild
Normal file
203
media-libs/libsdl3/libsdl3-3.1.6.ebuild
Normal file
|
@ -0,0 +1,203 @@
|
||||||
|
# Copyright 2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake-multilib flag-o-matic
|
||||||
|
|
||||||
|
DESCRIPTION="Simple Direct Media Layer"
|
||||||
|
HOMEPAGE="https://www.libsdl.org/"
|
||||||
|
SRC_URI="https://github.com/libsdl-org/SDL/archive/refs/tags/preview-${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
S="${WORKDIR}/SDL-preview-${PV}"
|
||||||
|
|
||||||
|
LICENSE="ZLIB"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~x86"
|
||||||
|
|
||||||
|
IUSE="X alsa +sound cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 \
|
||||||
|
cpu_flags_x86_sse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 camera custom-cflags dbus debug doc gles1 gles2 +haptic ibus \
|
||||||
|
jack +joystick kms opengl pipewire pulseaudio sndio static-libs \
|
||||||
|
test udev +video vulkan wayland xscreensaver"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
REQUIRED_USE="
|
||||||
|
alsa? ( sound )
|
||||||
|
haptic? ( joystick )
|
||||||
|
ibus? ( dbus )
|
||||||
|
jack? ( sound )
|
||||||
|
gles1? ( video )
|
||||||
|
gles2? ( video )
|
||||||
|
opengl? ( video )
|
||||||
|
pipewire? ( sound )
|
||||||
|
pulseaudio? ( sound )
|
||||||
|
sndio? ( sound )
|
||||||
|
vulkan? ( video )
|
||||||
|
wayland? ( gles2 )
|
||||||
|
xscreensaver? ( X )
|
||||||
|
"
|
||||||
|
|
||||||
|
COMMON_DEPEND="
|
||||||
|
X? (
|
||||||
|
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||||
|
>=x11-libs/libXcursor-1.1.14[${MULTILIB_USEDEP}]
|
||||||
|
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||||
|
>=x11-libs/libXfixes-6.0.0[${MULTILIB_USEDEP}]
|
||||||
|
>=x11-libs/libXi-1.7.2[${MULTILIB_USEDEP}]
|
||||||
|
>=x11-libs/libXrandr-1.4.2[${MULTILIB_USEDEP}]
|
||||||
|
xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] )
|
||||||
|
)
|
||||||
|
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||||
|
dbus? ( >=sys-apps/dbus-1.6.18-r1[${MULTILIB_USEDEP}] )
|
||||||
|
ibus? ( app-i18n/ibus )
|
||||||
|
jack? ( virtual/jack[${MULTILIB_USEDEP}] )
|
||||||
|
kms? (
|
||||||
|
>=x11-libs/libdrm-2.4.82[${MULTILIB_USEDEP}]
|
||||||
|
>=media-libs/mesa-9.0.0[${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
opengl? (
|
||||||
|
>=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}]
|
||||||
|
>=virtual/glu-9.0-r1[${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
pipewire? ( media-video/pipewire:=[${MULTILIB_USEDEP}] )
|
||||||
|
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
||||||
|
sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
|
||||||
|
udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP}] )
|
||||||
|
virtual/libiconv[${MULTILIB_USEDEP}]
|
||||||
|
wayland? (
|
||||||
|
>=dev-libs/wayland-1.20[${MULTILIB_USEDEP}]
|
||||||
|
gui-libs/libdecor[${MULTILIB_USEDEP}]
|
||||||
|
>=media-libs/mesa-9.1.6[${MULTILIB_USEDEP},wayland]
|
||||||
|
>=x11-libs/libxkbcommon-0.2.0[${MULTILIB_USEDEP}]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
${COMMON_DEPEND}
|
||||||
|
opengl? ( media-libs/mesa[${MULTILIB_USEDEP},opengl(+)] )
|
||||||
|
vulkan? (
|
||||||
|
media-libs/mesa[${MULTILIB_USEDEP},vulkan(+)]
|
||||||
|
vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
|
||||||
|
)
|
||||||
|
"
|
||||||
|
DEPEND="
|
||||||
|
${COMMON_DEPEND}
|
||||||
|
gles1? ( media-libs/libglvnd )
|
||||||
|
gles2? ( media-libs/libglvnd )
|
||||||
|
ibus? ( dev-libs/glib:2 )
|
||||||
|
test? ( x11-libs/libX11[${MULTILIB_USEDEP}] )
|
||||||
|
vulkan? ( dev-util/vulkan-headers )
|
||||||
|
X? ( x11-base/xorg-proto )
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
virtual/pkgconfig
|
||||||
|
doc? (
|
||||||
|
app-text/doxygen
|
||||||
|
media-gfx/graphviz
|
||||||
|
)
|
||||||
|
wayland? ( >=dev-util/wayland-scanner-1.20 )
|
||||||
|
"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
# Unbundle some headers.
|
||||||
|
rm -r src/video/khronos || die
|
||||||
|
ln -s "${ESYSROOT}/usr/include" src/video/khronos || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
use custom-cflags || strip-flags
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DSDL_ALSA=$(usex alsa)
|
||||||
|
-DSDL_ALSA_SHARED=OFF
|
||||||
|
-DSDL_ASAN=$(usex debug)
|
||||||
|
-DSDL_ASSEMBLY=ON
|
||||||
|
-DSDL_ASSERTIONS=$(usex debug enabled disabled)
|
||||||
|
-DSDL_AUDIO=$(usex sound)
|
||||||
|
-DSDL_AVX=$(usex cpu_flags_x86_avx)
|
||||||
|
-DSDL_AVX2=$(usex cpu_flags_x86_avx2)
|
||||||
|
-DSDL_AVX512F=$(usex cpu_flags_x86_avx512f)
|
||||||
|
-DSDL_CAMERA=$(usex camera)
|
||||||
|
-DSDL_CCACHE=OFF
|
||||||
|
-DSDL_DBUS=$(usex dbus)
|
||||||
|
-DSDL_DIALOG=ON
|
||||||
|
-DSDL_DISABLE_INSTALL=OFF
|
||||||
|
-DSDL_DISABLE_INSTALL_CPACK=OFF
|
||||||
|
-DSDL_DISABLE_INSTALL_DOCS=$(usex doc OFF ON)
|
||||||
|
-DSDL_DISKAUDIO=$(usex sound)
|
||||||
|
-DSDL_DUMMYAUDIO=$(use sound)
|
||||||
|
-DSDL_DUMMYCAMERA=$(use camera)
|
||||||
|
-DSDL_DUMMYVIDEO=$(use video)
|
||||||
|
-DSDL_EXAMPLES=$(usex doc)
|
||||||
|
-DSDL_EXAMPLES_LINK_SHARED=OFF
|
||||||
|
-DSDL_GCC_ATOMICS=ON
|
||||||
|
-DSDL_GPU=$(usex video)
|
||||||
|
-DSDL_HAPTIC=$(usex haptic)
|
||||||
|
-DSDL_IBUS=$(usex ibus)
|
||||||
|
-DSDL_JACK=$(usex jack)
|
||||||
|
-DSDL_JACK_SHARED=OFF
|
||||||
|
-DSDL_JOYSTICK=$(usex joystick)
|
||||||
|
-DSDL_HIDAPI=ON
|
||||||
|
-DSDL_KMSDRM=$(usex kms)
|
||||||
|
-DSDL_KMSDRM_SHARED=OFF
|
||||||
|
-DSDL_LIBC=ON
|
||||||
|
-DSDL_LIBICONV=ON
|
||||||
|
-DSDL_SYSTEM_ICONV=ON
|
||||||
|
-DSDL_LIBUDEV=$(usex udev)
|
||||||
|
-DSDL_MMX=$(usex cpu_flags_x86_mmx)
|
||||||
|
-DSDL_OPENGL=$(usex opengl)
|
||||||
|
-DSDL_OPENGLES=$(usex gles1 || usex gles2 && echo ON || echo OFF)
|
||||||
|
-DSDL_PIPEWIRE=$(usex pipewire)
|
||||||
|
-DSDL_PIPEWIRE_SHARED=OFF
|
||||||
|
-DSDL_PULSEAUDIO=$(usex pulseaudio)
|
||||||
|
-DSDL_PULSEAUDIO_SHARED=OFF
|
||||||
|
-DSDL_RENDER=$(use video)
|
||||||
|
-DSDL_RENDER_GPU=$(use video)
|
||||||
|
-DSDL_RENDER_VULKAN=$(usex vulkan)
|
||||||
|
-DSDL_RPATH=OFF
|
||||||
|
-DSDL_RPI=OFF
|
||||||
|
-DSDL_SNDIO=$(usex sndio)
|
||||||
|
-DSDL_SNDIO_SHARED=OFF
|
||||||
|
-DSDL_SSE=$(usex cpu_flags_x86_sse)
|
||||||
|
-DSDL_SSE2=$(usex cpu_flags_x86_sse2)
|
||||||
|
-DSDL_SSE3=$(usex cpu_flags_x86_sse3)
|
||||||
|
-DSDL_SSE4_1=$(usex cpu_flags_x86_sse4_1)
|
||||||
|
-DSDL_SSE4_2=$(usex cpu_flags_x86_sse4_2)
|
||||||
|
-DSDL_STATIC=$(usex static-libs)
|
||||||
|
-DSDL_TESTS=$(usex test)
|
||||||
|
-DSDL_TESTS_LINK_SHARED=OFF
|
||||||
|
-DSDL_TEST_LIBRARY=$(usex test)
|
||||||
|
-DSDL_VIDEO=$(usex video)
|
||||||
|
-DSDL_VIRTUAL_JOYSTICK=$(usex joystick)
|
||||||
|
-DSDL_VULKAN=$(usex vulkan)
|
||||||
|
-DSDL_WAYLAND=$(usex wayland)
|
||||||
|
-DSDL_WAYLAND_LIBDECOR=$(usex wayland)
|
||||||
|
-DSDL_WAYLAND_LIBDECOR_SHARED=OFF
|
||||||
|
-DSDL_WAYLAND_SHARED=OFF
|
||||||
|
-DSDL_WERROR=$(usex debug)
|
||||||
|
-DSDL_X11=$(usex X)
|
||||||
|
-DSDL_X11_SHARED=OFF
|
||||||
|
-DSDL_X11_XSCRNSAVER=$(usex xscreensaver)
|
||||||
|
)
|
||||||
|
cmake-multilib_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cmake-multilib_src_compile
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
cd docs || die
|
||||||
|
doxygen || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
unset SDL_GAMECONTROLLERCONFIG SDL_GAMECONTROLLER_USE_BUTTON_LABELS
|
||||||
|
cmake-multilib_src_test
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install_all() {
|
||||||
|
rm -r "${ED}"/usr/share/licenses/ || die
|
||||||
|
dodoc {BUGS,README-SDL,WhatsNew}.txt CREDITS.md README.md docs/README*.md
|
||||||
|
use doc && dodoc -r docs/output/html/
|
||||||
|
}
|
37
media-libs/libsdl3/metadata.xml
Normal file
37
media-libs/libsdl3/metadata.xml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>noreply@local</email>
|
||||||
|
<name>nil</name>
|
||||||
|
</maintainer>
|
||||||
|
<longdescription>
|
||||||
|
Simple DirectMedia Layer is a cross-platform multimedia library
|
||||||
|
designed to provide low level access to audio, keyboard, mouse,
|
||||||
|
joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is
|
||||||
|
used by MPEG playback software, emulators, and many popular games,
|
||||||
|
including the award winning Linux port of "Civilization: Call To
|
||||||
|
Power."
|
||||||
|
|
||||||
|
Simple DirectMedia Layer supports Linux, Windows, BeOS, MacOS
|
||||||
|
Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.
|
||||||
|
There is also code, but no official support, for Windows CE,
|
||||||
|
AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS, and
|
||||||
|
SymbianOS.
|
||||||
|
|
||||||
|
SDL is written in C, but works with C++ natively, and has bindings
|
||||||
|
to several other languages, including Ada, Eiffel, Java, Lua, ML,
|
||||||
|
Perl, PHP, Pike, Python, and Ruby.
|
||||||
|
</longdescription>
|
||||||
|
<use>
|
||||||
|
<flag name="camera">Enable camera subsystem.</flag>
|
||||||
|
<flag name="video">Control video support (disable at your own risk).</flag>
|
||||||
|
<flag name="sound">Control audio support (disable at your own risk).</flag>
|
||||||
|
<flag name="gles1">Include OpenGL ES 1.0 support.</flag>
|
||||||
|
<flag name="haptic">Enable the haptic (force feedback) subsystem</flag>
|
||||||
|
<flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag>
|
||||||
|
<flag name="pipewire">Enable support for the <pkg>media-video/pipewire</pkg> audio backend</flag>
|
||||||
|
<flag name="ibus">Enable support for app-i18n/ibus.</flag>
|
||||||
|
<flag name="kms">Build the KMSDRM video driver.</flag>
|
||||||
|
</use>
|
||||||
|
</pkgmetadata>
|
1
media-libs/raylib/Manifest
Normal file
1
media-libs/raylib/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST raylib-5.0.tar.gz 32701105 BLAKE2B ee8ef069cd2a7b91efd1d97e8ed9076620c216fb0bf2eb7517624472d157c2d20919a6c54d7f8160e34c1d1a889f1766f5a94c6577bbb68f779e76a5160229dd SHA512 5956bc1646b99baac6eb1652c4d72e96af874337158672155ba144f131de8a4fd19291a58335a92fcaaa2fc818682f93ff4230af0f815efb8b49f7d2a162e9b0
|
19
media-libs/raylib/metadata.xml
Normal file
19
media-libs/raylib/metadata.xml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>noreply@local</email>
|
||||||
|
<name>nil</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="alsa">Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture).</flag>
|
||||||
|
<flag name="examples">Build and install examples.</flag>
|
||||||
|
<flag name="static-libs">Build static version of dynamic libraries as well.</flag>
|
||||||
|
<flag name="system-glfw">Use system glfw instead of build it.</flag>
|
||||||
|
<flag name="X">Add support for X11.</flag>
|
||||||
|
<flag name="wayland">Enable dev-libs/wayland backend.</flag>
|
||||||
|
</use>
|
||||||
|
<description>
|
||||||
|
raylib is a simple and easy-to-use library to enjoy videogames programming.
|
||||||
|
</description>
|
||||||
|
</pkgmetadata>
|
65
media-libs/raylib/raylib-5.0.ebuild
Normal file
65
media-libs/raylib/raylib-5.0.ebuild
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
# Copyright 2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake
|
||||||
|
|
||||||
|
DESCRIPTION="A simple and easy-to-use library to learn videogames programming"
|
||||||
|
HOMEPAGE="https://www.raylib.com/"
|
||||||
|
|
||||||
|
LICENSE="ZLIB"
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
IUSE="alsa examples static-libs +system-glfw +X wayland"
|
||||||
|
REQUIRED_USE="|| ( system-glfw || ( X wayland ) )"
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]] ; then
|
||||||
|
EGIT_REPO_URI="https://github.com/raysan5/raylib.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/raysan5/raylib/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
S="${WORKDIR}/raylib-${PV}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
alsa? ( media-libs/alsa-lib )
|
||||||
|
X? (
|
||||||
|
virtual/opengl
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXcursor
|
||||||
|
x11-libs/libXi
|
||||||
|
x11-libs/libXinerama
|
||||||
|
x11-libs/libXrandr
|
||||||
|
x11-libs/libXxf86vm
|
||||||
|
)
|
||||||
|
wayland? (
|
||||||
|
dev-libs/wayland
|
||||||
|
media-libs/mesa[wayland]
|
||||||
|
)
|
||||||
|
system-glfw? ( >=media-libs/glfw-3.2.1 )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DBUILD_SHARED_LIBS=$(usex !static-libs ON OFF)
|
||||||
|
-DUSE_AUDIO=$(usex alsa ON OFF)
|
||||||
|
-DUSE_EXTERNAL_GLFW=$(usex system-glfw ON OFF)
|
||||||
|
-DBUILD_EXAMPLES=OFF
|
||||||
|
)
|
||||||
|
if use !system-glfw; then
|
||||||
|
mycmakeargs+=(-DGLFW_BUILD_WAYLAND=$(usex wayland ON OFF))
|
||||||
|
mycmakeargs+=(-DGLFW_BUILD_X11=$(usex X ON OFF))
|
||||||
|
fi
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
dodoc -r "${S}"/examples/*
|
||||||
|
fi
|
||||||
|
}
|
65
media-libs/raylib/raylib-9999.ebuild
Normal file
65
media-libs/raylib/raylib-9999.ebuild
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
# Copyright 2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake
|
||||||
|
|
||||||
|
DESCRIPTION="A simple and easy-to-use library to learn videogames programming"
|
||||||
|
HOMEPAGE="https://www.raylib.com/"
|
||||||
|
|
||||||
|
LICENSE="ZLIB"
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
IUSE="alsa examples static-libs +system-glfw +X wayland"
|
||||||
|
REQUIRED_USE="|| ( system-glfw || ( X wayland ) )"
|
||||||
|
|
||||||
|
if [[ ${PV} == *9999 ]] ; then
|
||||||
|
EGIT_REPO_URI="https://github.com/raysan5/raylib.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/raysan5/raylib/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
S="${WORKDIR}/raylib-${PV}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
alsa? ( media-libs/alsa-lib )
|
||||||
|
X? (
|
||||||
|
virtual/opengl
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXcursor
|
||||||
|
x11-libs/libXi
|
||||||
|
x11-libs/libXinerama
|
||||||
|
x11-libs/libXrandr
|
||||||
|
x11-libs/libXxf86vm
|
||||||
|
)
|
||||||
|
wayland? (
|
||||||
|
dev-libs/wayland
|
||||||
|
media-libs/mesa[wayland]
|
||||||
|
)
|
||||||
|
system-glfw? ( >=media-libs/glfw-3.2.1 )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DBUILD_SHARED_LIBS=$(usex !static-libs ON OFF)
|
||||||
|
-DUSE_AUDIO=$(usex alsa ON OFF)
|
||||||
|
-DUSE_EXTERNAL_GLFW=$(usex system-glfw ON OFF)
|
||||||
|
-DBUILD_EXAMPLES=OFF
|
||||||
|
)
|
||||||
|
if use !system-glfw; then
|
||||||
|
mycmakeargs+=(-DGLFW_BUILD_WAYLAND=$(usex wayland ON OFF))
|
||||||
|
mycmakeargs+=(-DGLFW_BUILD_X11=$(usex X ON OFF))
|
||||||
|
fi
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
if use examples; then
|
||||||
|
dodoc -r "${S}"/examples/*
|
||||||
|
fi
|
||||||
|
}
|
1
media-libs/shaderc/Manifest
Normal file
1
media-libs/shaderc/Manifest
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DIST shaderc-2024.1.tar.gz 227211 BLAKE2B a4c9790cb117e4cf2d528ed294ef0599dc3c17ac367a4f658254ff9e161f82b3338a2d70a033fabcdb7a2925c2f4668ee89cfff0d4b88cd2b22fcfb3f2786ea9 SHA512 017d8625c66da7eb5b431f595b27a4ddf146aaa12ef56777cb8c3f7f0f15eb01c3286e5905c5268de55d07cc19d5ffae4d4c08987d105b0a6be74616a467b736
|
13
media-libs/shaderc/files/shaderc-2020.4-fix-build.patch
Normal file
13
media-libs/shaderc/files/shaderc-2020.4-fix-build.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/libshaderc_util/src/compiler.cc b/libshaderc_util/src/compiler.cc
|
||||||
|
index c5ce37e..4703634 100644
|
||||||
|
--- a/libshaderc_util/src/compiler.cc
|
||||||
|
+++ b/libshaderc_util/src/compiler.cc
|
||||||
|
@@ -20,7 +20,7 @@
|
||||||
|
#include <thread>
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
|
-#include "SPIRV/GlslangToSpv.h"
|
||||||
|
+#include "glslang/SPIRV/GlslangToSpv.h"
|
||||||
|
#include "libshaderc_util/format.h"
|
||||||
|
#include "libshaderc_util/io.h"
|
||||||
|
#include "libshaderc_util/message.h"
|
11
media-libs/shaderc/metadata.xml
Normal file
11
media-libs/shaderc/metadata.xml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>sarnex@gentoo.org</email>
|
||||||
|
<name>Nick Sarnie</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">google/shaderc</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
79
media-libs/shaderc/shaderc-2024.1-r1.ebuild
Normal file
79
media-libs/shaderc/shaderc-2024.1-r1.ebuild
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{10..13} )
|
||||||
|
inherit cmake-multilib python-any-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Collection of tools, libraries and tests for shader compilation"
|
||||||
|
HOMEPAGE="https://github.com/google/shaderc"
|
||||||
|
EGIT_COMMIT="${PV}"
|
||||||
|
SRC_URI="https://github.com/google/${PN}/archive/v${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
|
||||||
|
S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="amd64 ~loong ppc64 ~riscv x86"
|
||||||
|
IUSE="doc"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
~dev-util/glslang-1.3.290.0:=[${MULTILIB_USEDEP}]
|
||||||
|
~dev-util/spirv-tools-1.3.290.0[${MULTILIB_USEDEP}]
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
~dev-util/spirv-headers-1.3.290.0"
|
||||||
|
|
||||||
|
BDEPEND="doc? ( dev-ruby/asciidoctor )"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-2020.4-fix-build.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
# https://github.com/google/shaderc/issues/470
|
||||||
|
RESTRICT=test
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_comment_add_subdirectory examples
|
||||||
|
|
||||||
|
# Unbundle glslang, spirv-headers, spirv-tools
|
||||||
|
cmake_comment_add_subdirectory third_party
|
||||||
|
sed -i \
|
||||||
|
-e "s|\$<TARGET_FILE:spirv-dis>|${EPREFIX}/usr/bin/spirv-dis|" \
|
||||||
|
glslc/test/CMakeLists.txt || die
|
||||||
|
|
||||||
|
# Disable git versioning
|
||||||
|
sed -i -e '/build-version/d' glslc/CMakeLists.txt || die
|
||||||
|
|
||||||
|
# Manually create build-version.inc as we disabled git versioning
|
||||||
|
cat <<- EOF > glslc/src/build-version.inc || die
|
||||||
|
"${P}\n"
|
||||||
|
"$(best_version dev-util/spirv-tools)\n"
|
||||||
|
"$(best_version dev-util/glslang)\n"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cmake_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DSHADERC_SKIP_TESTS="true"
|
||||||
|
-DSHADERC_ENABLE_WERROR_COMPILE="false"
|
||||||
|
)
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_compile() {
|
||||||
|
if multilib_is_native_abi && use doc; then
|
||||||
|
cmake_src_compile glslc_doc_README
|
||||||
|
fi
|
||||||
|
cmake_src_compile
|
||||||
|
}
|
||||||
|
|
||||||
|
multilib_src_install() {
|
||||||
|
if multilib_is_native_abi; then
|
||||||
|
use doc && local HTML_DOCS=( "${BUILD_DIR}/glslc/README.html" )
|
||||||
|
fi
|
||||||
|
cmake_src_install
|
||||||
|
}
|
3
metadata/layout.conf
Normal file
3
metadata/layout.conf
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
masters = gentoo
|
||||||
|
thin-manifests = true
|
||||||
|
sign-manifests = false
|
12
metadata/md5-cache/dev-libs/libqt5pas-1.2.15
Normal file
12
metadata/md5-cache/dev-libs/libqt5pas-1.2.15
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
DEFINED_PHASES=configure install
|
||||||
|
DEPEND=dev-qt/qtgui:5 dev-qt/qtnetwork:5 dev-qt/qtprintsupport:5 dev-qt/qtx11extras:5 dev-qt/qtcore:5 dev-qt/qtwidgets:5
|
||||||
|
DESCRIPTION=Free Pascal Qt5 bindings library updated by lazarus IDE.
|
||||||
|
EAPI=8
|
||||||
|
HOMEPAGE=https://gitlab.com/freepascal.org/lazarus/lazarus
|
||||||
|
INHERIT=qmake-utils
|
||||||
|
KEYWORDS=~amd64 ~x86
|
||||||
|
LICENSE=LGPL-3
|
||||||
|
SLOT=0/2.2
|
||||||
|
SRC_URI=mirror://sourceforge/lazarus/lazarus-3.0-0.tar.gz -> libqt5pas-1.2.15.tar.gz
|
||||||
|
_eclasses_=toolchain-funcs e56c7649b804f051623c8bc1a1c44084 multilib c19072c3cd7ac5cb21de013f7e9832e0 qmake-utils a8dd17b1d94586164f5e3fc12b1c6b81
|
||||||
|
_md5_=b2e7fefc30b158b65ce9d002200ec092
|
2
net-misc/megasync/Manifest
Normal file
2
net-misc/megasync/Manifest
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
DIST megasync-5.4.1.0.tar.gz 24718226 BLAKE2B ab89ed026efc0e28ef5c21554db259e74199d12d1194ecf358ad658b0ecee5a7c421ce374e3ba54a752e813c38b535034c04e9749b1f9d876a7df88951d2250a SHA512 d908308135cdd717555002d58c4faa1917bd049a0a2f99ae0b487f2ccfda6d7a00c9dee72aae52210079e656f3031bf3cf414020090e4a6b600e3cef5af11901
|
||||||
|
DIST megasync-sdk-5.4.1.0.tar.gz 4248625 BLAKE2B 96e76e6e421b2f4b7423d5870f0cfcf89bbec6392191e84b2ee7daa0ac4a6a9c6c9599773bd124ce5189abf7a80db981c0f260eec18be8ef7825bba5422123f4 SHA512 740dad61901775ef2e93861c4a42e9e20a779c7189084ed8336cb06d64a3743638e7ca499279b71d2e8bf68d225a3a6397fdfff1a89c18d413ab44eec489c7ea
|
27
net-misc/megasync/files/megasync-4.10.0.0_ffmpeg6.patch
Normal file
27
net-misc/megasync/files/megasync-4.10.0.0_ffmpeg6.patch
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
diff -Naur a/src/MEGASync/mega/src/gfx/freeimage.cpp b/src/MEGASync/mega/src/gfx/freeimage.cpp
|
||||||
|
--- a/src/MEGASync/mega/src/gfx/freeimage.cpp 2023-09-27 22:20:26.000000000 +0900
|
||||||
|
+++ b/src/MEGASync/mega/src/gfx/freeimage.cpp 2023-11-03 11:01:24.526257561 +0900
|
||||||
|
@@ -209,12 +209,6 @@
|
||||||
|
|
||||||
|
#ifdef HAVE_FFMPEG
|
||||||
|
|
||||||
|
-#ifdef AV_CODEC_CAP_TRUNCATED
|
||||||
|
-#define CAP_TRUNCATED AV_CODEC_CAP_TRUNCATED
|
||||||
|
-#else
|
||||||
|
-#define CAP_TRUNCATED CODEC_CAP_TRUNCATED
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
const char *GfxProviderFreeImage::supportedformatsFfmpeg()
|
||||||
|
{
|
||||||
|
return ".264.265.3g2.3gp.3gpa.3gpp.3gpp2.mp3"
|
||||||
|
@@ -330,10 +324,6 @@
|
||||||
|
|
||||||
|
// Force seeking to key frames
|
||||||
|
formatContext->seek2any = false;
|
||||||
|
- if (decoder->capabilities & CAP_TRUNCATED)
|
||||||
|
- {
|
||||||
|
- codecContext->flags |= CAP_TRUNCATED;
|
||||||
|
- }
|
||||||
|
|
||||||
|
AVPixelFormat sourcePixelFormat = static_cast<AVPixelFormat>(codecParm->format);
|
||||||
|
AVPixelFormat targetPixelFormat = AV_PIX_FMT_BGR24; //raw data expected by freeimage is in this format
|
45
net-misc/megasync/files/megasync-4.10.0.0_fix-build.patch
Normal file
45
net-misc/megasync/files/megasync-4.10.0.0_fix-build.patch
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
diff --git a/src/MEGAShellExtNautilus/MEGAShellExtNautilus.pro b/src/MEGAShellExtNautilus/MEGAShellExtNautilus.pro
|
||||||
|
index 06cbb08cd..7ca767132 100644
|
||||||
|
--- a/src/MEGAShellExtNautilus/MEGAShellExtNautilus.pro
|
||||||
|
+++ b/src/MEGAShellExtNautilus/MEGAShellExtNautilus.pro
|
||||||
|
@@ -52,5 +52,4 @@ INSTALLS += emblems32 emblems64
|
||||||
|
!contains(DEFINES, no_desktop) {
|
||||||
|
update_cache.commands = gtk-update-icon-cache -f -t $${HICOLOR} || true
|
||||||
|
update_cache.path = $${HICOLOR}
|
||||||
|
- INSTALLS += update_cache
|
||||||
|
}
|
||||||
|
diff --git a/src/MEGAShellExtNemo/MEGAShellExtNemo.pro b/src/MEGAShellExtNemo/MEGAShellExtNemo.pro
|
||||||
|
index 33668b4ee..061e0d445 100644
|
||||||
|
--- a/src/MEGAShellExtNemo/MEGAShellExtNemo.pro
|
||||||
|
+++ b/src/MEGAShellExtNemo/MEGAShellExtNemo.pro
|
||||||
|
@@ -43,5 +43,4 @@ INSTALLS += emblems32 emblems64
|
||||||
|
!contains(DEFINES, no_desktop) {
|
||||||
|
update_cache.commands = gtk-update-icon-cache -f -t $${HICOLOR} || true
|
||||||
|
update_cache.path = $$PWD
|
||||||
|
- INSTALLS += update_cache
|
||||||
|
}
|
||||||
|
diff --git a/src/MEGASync/google_breakpad/google_breakpad.pri b/src/MEGASync/google_breakpad/google_breakpad.pri
|
||||||
|
index 122268aba..cd141a5f9 100644
|
||||||
|
--- a/src/MEGASync/google_breakpad/google_breakpad.pri
|
||||||
|
+++ b/src/MEGASync/google_breakpad/google_breakpad.pri
|
||||||
|
@@ -43,8 +43,6 @@ unix:!macx {
|
||||||
|
SOURCES += $$PWD/common/linux/elfutils.cc
|
||||||
|
SOURCES += $$PWD/common/string_conversion.cc
|
||||||
|
SOURCES += $$PWD/common/convert_UTF.c
|
||||||
|
-
|
||||||
|
- QMAKE_CXXFLAGS+=-g
|
||||||
|
}
|
||||||
|
|
||||||
|
win32 {
|
||||||
|
diff --git a/src/MEGASync/platform/platform.pri b/src/MEGASync/platform/platform.pri
|
||||||
|
index 99f4dbd4f..ef5553508 100644
|
||||||
|
--- a/src/MEGASync/platform/platform.pri
|
||||||
|
+++ b/src/MEGASync/platform/platform.pri
|
||||||
|
@@ -89,7 +89,6 @@ unix:!macx {
|
||||||
|
# desktop
|
||||||
|
desktop.path = $$DESKTOP_DESTDIR/share/applications
|
||||||
|
desktop.files = $$PWD/linux/data/megasync.desktop
|
||||||
|
- desktop.commands = update-desktop-database &> /dev/null || true
|
||||||
|
INSTALLS += desktop
|
||||||
|
|
||||||
|
HICOLOR = $$DESKTOP_DESTDIR/share/icons/hicolor
|
|
@ -0,0 +1,27 @@
|
||||||
|
--- a/contrib/cmake/modules/desktopapp_configuration.cmake
|
||||||
|
+++ b/contrib/cmake/modules/desktopapp_configuration.cmake
|
||||||
|
@@ -29,8 +29,6 @@ if(UNIX AND NOT APPLE)
|
||||||
|
# Note: using cmake --install --prefix /some/prefix will keep the RPATH as configured above.
|
||||||
|
# Used for building packages: in which install dir is a path construction folder that will not be there in packages
|
||||||
|
|
||||||
|
- set(CMAKE_INSTALL_LIBDIR "opt/megasync/lib") # override default "lib" from GNUInstallDirs
|
||||||
|
- set(CMAKE_INSTALL_BINDIR "usr/bin") # override default "bin" from GNUInstallDirs
|
||||||
|
|
||||||
|
# Override CMAKE_INSTALL_PREFIX
|
||||||
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) # In consecutive runs it will always be undef/false
|
||||||
|
--- a/src/MEGASync/CMakeLists.txt
|
||||||
|
+++ b/src/MEGASync/CMakeLists.txt
|
||||||
|
@@ -142,13 +142,6 @@ if (UNIX AND NOT APPLE)
|
||||||
|
|
||||||
|
set(vcpkg_lib_folder "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/$<$<CONFIG:Debug>:debug/>lib/")
|
||||||
|
|
||||||
|
- install(DIRECTORY "${vcpkg_lib_folder}"
|
||||||
|
- TYPE LIB # In CMAKE_INSTALL_LIBDIR directory
|
||||||
|
- FILES_MATCHING
|
||||||
|
- PATTERN "*.so*"
|
||||||
|
- PATTERN "manual-link" EXCLUDE
|
||||||
|
- PATTERN "pkgconfig" EXCLUDE
|
||||||
|
- )
|
||||||
|
|
||||||
|
if(DEPLOY_QT_LIBRARIES)
|
||||||
|
include(desktopapp_deploy_qt)
|
12
net-misc/megasync/files/megasync-5.3.0.0-link-zlib.patch
Normal file
12
net-misc/megasync/files/megasync-5.3.0.0-link-zlib.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
--- a/src/MEGASync/control/control.cmake
|
||||||
|
+++ b/src/MEGASync/control/control.cmake
|
||||||
|
@@ -71,6 +71,9 @@ set(DESKTOP_APP_CONTROL_SOURCES
|
||||||
|
control/StatsEventHandler.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
+find_package(ZLIB REQUIRED)
|
||||||
|
+target_link_libraries(MEGAsync PRIVATE ZLIB::ZLIB)
|
||||||
|
+
|
||||||
|
target_sources(MEGAsync
|
||||||
|
PRIVATE
|
||||||
|
${DESKTOP_APP_CONTROL_HEADERS}
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/src/MEGASync/mega/contrib/cmake/modules/sdklib_libraries.cmake
|
||||||
|
+++ b/src/MEGASync/mega/contrib/cmake/modules/sdklib_libraries.cmake
|
||||||
|
@@ -95,7 +95,7 @@ macro(load_sdklib_libraries)
|
||||||
|
|
||||||
|
find_package(PkgConfig REQUIRED) # For libraries loaded using pkg-config
|
||||||
|
|
||||||
|
- pkg_check_modules(cryptopp REQUIRED IMPORTED_TARGET libcrypto++)
|
||||||
|
+ pkg_check_modules(cryptopp REQUIRED IMPORTED_TARGET libcryptopp)
|
||||||
|
target_link_libraries(SDKlib PUBLIC PkgConfig::cryptopp) # TODO: Private for SDK core
|
||||||
|
|
||||||
|
pkg_check_modules(sodium REQUIRED IMPORTED_TARGET libsodium)
|
176
net-misc/megasync/megasync-5.4.1.0.ebuild
Normal file
176
net-misc/megasync/megasync-5.4.1.0.ebuild
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
# Copyright 2023-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake flag-o-matic qmake-utils xdg
|
||||||
|
|
||||||
|
DESCRIPTION="The official Qt-based program for syncing your MEGA account in your PC"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://mega.io
|
||||||
|
https://github.com/meganz/MEGAsync
|
||||||
|
"
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]];then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/meganz/MEGAsync"
|
||||||
|
EGIT_BRANCH="master"
|
||||||
|
EGIT_SUBMODULES=( '*' )
|
||||||
|
else
|
||||||
|
MEGA_SDK_REV="159dcc4a61d43dfdf5997cf8113755fbe2452bd7" # commit of src/MEGASync/mega submodule
|
||||||
|
MEGA_TAG_SUFFIX="Linux"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/meganz/MEGAsync/archive/v${PV}_${MEGA_TAG_SUFFIX}.tar.gz -> ${P}.tar.gz
|
||||||
|
https://github.com/meganz/sdk/archive/${MEGA_SDK_REV}.tar.gz -> ${PN}-sdk-${PV}.tar.gz
|
||||||
|
"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
S="${WORKDIR}"/MEGAsync-${PV}_${MEGA_TAG_SUFFIX}
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="MEGA"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="dolphin mediainfo nautilus nemo thumbnail thunar"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-db/sqlite:3
|
||||||
|
dev-libs/crypto++:=
|
||||||
|
dev-libs/icu:=
|
||||||
|
dev-libs/libsodium:=
|
||||||
|
dev-libs/libuv:=
|
||||||
|
dev-libs/openssl:0=
|
||||||
|
dev-qt/qtconcurrent:5
|
||||||
|
dev-qt/qtcore:5
|
||||||
|
dev-qt/qtdbus:5
|
||||||
|
dev-qt/qtdeclarative:5
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
dev-qt/qtnetwork:5
|
||||||
|
dev-qt/qtimageformats:5
|
||||||
|
dev-qt/qtsvg:5
|
||||||
|
dev-qt/qtwidgets:5
|
||||||
|
dev-qt/qtx11extras:5
|
||||||
|
net-dns/c-ares:=
|
||||||
|
net-misc/curl[ssl]
|
||||||
|
sys-libs/zlib
|
||||||
|
x11-libs/libxcb:=
|
||||||
|
dolphin? (
|
||||||
|
kde-apps/dolphin:5
|
||||||
|
kde-frameworks/kcoreaddons:5
|
||||||
|
kde-frameworks/kio:5
|
||||||
|
kde-frameworks/kwidgetsaddons:5
|
||||||
|
)
|
||||||
|
mediainfo? (
|
||||||
|
media-libs/libmediainfo
|
||||||
|
media-libs/libzen
|
||||||
|
)
|
||||||
|
nautilus? (
|
||||||
|
dev-libs/glib:2
|
||||||
|
>=gnome-base/nautilus-43
|
||||||
|
)
|
||||||
|
nemo? (
|
||||||
|
dev-libs/glib:2
|
||||||
|
gnome-extra/nemo
|
||||||
|
)
|
||||||
|
thumbnail? (
|
||||||
|
media-libs/freeimage
|
||||||
|
media-video/ffmpeg:=
|
||||||
|
)
|
||||||
|
thunar? ( xfce-base/thunar:= )
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
|
dev-qt/qtquickcontrols:5
|
||||||
|
dev-qt/qtquickcontrols2:5
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
dev-qt/linguist-tools:5
|
||||||
|
dolphin? ( kde-frameworks/extra-cmake-modules )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-4.10.0.0_ffmpeg6.patch"
|
||||||
|
"${FILESDIR}/${PN}-4.10.0.0_fix-build.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.3.0.0-link-zlib.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.3.0.0-fix-install-dir.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.3.0.0-rename-libcryptopp.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
BUILD_DIR_DOLPHIN="${S}_dolphin"
|
||||||
|
|
||||||
|
dolphin_run() {
|
||||||
|
if use dolphin; then
|
||||||
|
cd "${S}/src/MEGAShellExtDolphin" || die
|
||||||
|
BUILD_DIR="${BUILD_DIR_DOLPHIN}" CMAKE_USE_DIR="${S}/src/MEGAShellExtDolphin" "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
nautilus_run() {
|
||||||
|
if use nautilus; then
|
||||||
|
cd "${S}/src/MEGAShellExtNautilus" || die
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
nemo_run() {
|
||||||
|
if use nemo; then
|
||||||
|
cd "${S}/src/MEGAShellExtNemo" || die
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
thunar_run() {
|
||||||
|
if use thunar; then
|
||||||
|
cd "${S}/src/MEGAShellExtThunar" || die
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ ${PV} != 9999 ]]; then
|
||||||
|
rmdir src/MEGASync/mega || die
|
||||||
|
mv "${WORKDIR}/sdk-${MEGA_SDK_REV}" src/MEGASync/mega || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmake_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# https://github.com/meganz/sdk/issues/2679
|
||||||
|
append-cppflags -DNDEBUG
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
# build internal libs as static
|
||||||
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
|
-DCMAKE_MODULE_PATH="${S}/src/MEGASync/mega/contrib/cmake/modules/packages"
|
||||||
|
-DENABLE_DESKTOP_UPDATE_GEN=OFF
|
||||||
|
-DUSE_FFMPEG=$(usex thumbnail)
|
||||||
|
-DUSE_FREEIMAGE=$(usex thumbnail)
|
||||||
|
-DUSE_MEDIAINFO=$(usex mediainfo)
|
||||||
|
-DUSE_PDFIUM=OFF
|
||||||
|
-DUSE_READLINE=OFF
|
||||||
|
)
|
||||||
|
cmake_src_configure
|
||||||
|
|
||||||
|
unset mycmakeargs
|
||||||
|
dolphin_run cmake_src_configure
|
||||||
|
nautilus_run eqmake5
|
||||||
|
nemo_run eqmake5
|
||||||
|
thunar_run eqmake5
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cmake_src_compile
|
||||||
|
|
||||||
|
dolphin_run cmake_src_compile
|
||||||
|
nautilus_run emake
|
||||||
|
nemo_run emake
|
||||||
|
thunar_run emake
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
dolphin_run cmake_src_install
|
||||||
|
nautilus_run emake INSTALL_ROOT="${D}" install
|
||||||
|
nemo_run emake INSTALL_ROOT="${D}" install
|
||||||
|
thunar_run emake INSTALL_ROOT="${D}" install
|
||||||
|
}
|
176
net-misc/megasync/megasync-9999.ebuild
Normal file
176
net-misc/megasync/megasync-9999.ebuild
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
# Copyright 2023-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake flag-o-matic qmake-utils xdg
|
||||||
|
|
||||||
|
DESCRIPTION="The official Qt-based program for syncing your MEGA account in your PC"
|
||||||
|
HOMEPAGE="
|
||||||
|
https://mega.io
|
||||||
|
https://github.com/meganz/MEGAsync
|
||||||
|
"
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]];then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/meganz/MEGAsync"
|
||||||
|
EGIT_BRANCH="master"
|
||||||
|
EGIT_SUBMODULES=( '*' )
|
||||||
|
else
|
||||||
|
MEGA_SDK_REV="eb8dba09149e1aad0210c3591f3ef6e50022f714" # commit of src/MEGASync/mega submodule
|
||||||
|
MEGA_TAG_SUFFIX="Linux"
|
||||||
|
SRC_URI="
|
||||||
|
https://github.com/meganz/MEGAsync/archive/v${PV}_${MEGA_TAG_SUFFIX}.tar.gz -> ${P}.tar.gz
|
||||||
|
https://github.com/meganz/sdk/archive/${MEGA_SDK_REV}.tar.gz -> ${PN}-sdk-${PV}.tar.gz
|
||||||
|
"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
S="${WORKDIR}"/MEGAsync-${PV}_${MEGA_TAG_SUFFIX}
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="MEGA"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="dolphin mediainfo nautilus nemo thumbnail thunar"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-db/sqlite:3
|
||||||
|
dev-libs/crypto++:=
|
||||||
|
dev-libs/icu:=
|
||||||
|
dev-libs/libsodium:=
|
||||||
|
dev-libs/libuv:=
|
||||||
|
dev-libs/openssl:0=
|
||||||
|
dev-qt/qtconcurrent:5
|
||||||
|
dev-qt/qtcore:5
|
||||||
|
dev-qt/qtdbus:5
|
||||||
|
dev-qt/qtdeclarative:5
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
dev-qt/qtnetwork:5
|
||||||
|
dev-qt/qtimageformats:5
|
||||||
|
dev-qt/qtsvg:5
|
||||||
|
dev-qt/qtwidgets:5
|
||||||
|
dev-qt/qtx11extras:5
|
||||||
|
net-dns/c-ares:=
|
||||||
|
net-misc/curl[ssl]
|
||||||
|
sys-libs/zlib
|
||||||
|
x11-libs/libxcb:=
|
||||||
|
dolphin? (
|
||||||
|
kde-apps/dolphin:5
|
||||||
|
kde-frameworks/kcoreaddons:5
|
||||||
|
kde-frameworks/kio:5
|
||||||
|
kde-frameworks/kwidgetsaddons:5
|
||||||
|
)
|
||||||
|
mediainfo? (
|
||||||
|
media-libs/libmediainfo
|
||||||
|
media-libs/libzen
|
||||||
|
)
|
||||||
|
nautilus? (
|
||||||
|
dev-libs/glib:2
|
||||||
|
>=gnome-base/nautilus-43
|
||||||
|
)
|
||||||
|
nemo? (
|
||||||
|
dev-libs/glib:2
|
||||||
|
gnome-extra/nemo
|
||||||
|
)
|
||||||
|
thumbnail? (
|
||||||
|
media-libs/freeimage
|
||||||
|
media-video/ffmpeg:=
|
||||||
|
)
|
||||||
|
thunar? ( xfce-base/thunar:= )
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
${DEPEND}
|
||||||
|
dev-qt/qtquickcontrols:5
|
||||||
|
dev-qt/qtquickcontrols2:5
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
dev-qt/linguist-tools:5
|
||||||
|
dolphin? ( kde-frameworks/extra-cmake-modules )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${PN}-4.10.0.0_ffmpeg6.patch"
|
||||||
|
"${FILESDIR}/${PN}-4.10.0.0_fix-build.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.3.0.0-link-zlib.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.3.0.0-fix-install-dir.patch"
|
||||||
|
"${FILESDIR}/${PN}-5.3.0.0-rename-libcryptopp.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
BUILD_DIR_DOLPHIN="${S}_dolphin"
|
||||||
|
|
||||||
|
dolphin_run() {
|
||||||
|
if use dolphin; then
|
||||||
|
cd "${S}/src/MEGAShellExtDolphin" || die
|
||||||
|
BUILD_DIR="${BUILD_DIR_DOLPHIN}" CMAKE_USE_DIR="${S}/src/MEGAShellExtDolphin" "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
nautilus_run() {
|
||||||
|
if use nautilus; then
|
||||||
|
cd "${S}/src/MEGAShellExtNautilus" || die
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
nemo_run() {
|
||||||
|
if use nemo; then
|
||||||
|
cd "${S}/src/MEGAShellExtNemo" || die
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
thunar_run() {
|
||||||
|
if use thunar; then
|
||||||
|
cd "${S}/src/MEGAShellExtThunar" || die
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ ${PV} != 9999 ]]; then
|
||||||
|
rmdir src/MEGASync/mega || die
|
||||||
|
mv "${WORKDIR}/sdk-${MEGA_SDK_REV}" src/MEGASync/mega || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmake_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# https://github.com/meganz/sdk/issues/2679
|
||||||
|
append-cppflags -DNDEBUG
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
# build internal libs as static
|
||||||
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
|
-DCMAKE_MODULE_PATH="${S}/src/MEGASync/mega/contrib/cmake/modules/packages"
|
||||||
|
-DENABLE_DESKTOP_UPDATE_GEN=OFF
|
||||||
|
-DUSE_FFMPEG=$(usex thumbnail)
|
||||||
|
-DUSE_FREEIMAGE=$(usex thumbnail)
|
||||||
|
-DUSE_MEDIAINFO=$(usex mediainfo)
|
||||||
|
-DUSE_PDFIUM=OFF
|
||||||
|
-DUSE_READLINE=OFF
|
||||||
|
)
|
||||||
|
cmake_src_configure
|
||||||
|
|
||||||
|
unset mycmakeargs
|
||||||
|
dolphin_run cmake_src_configure
|
||||||
|
nautilus_run eqmake5
|
||||||
|
nemo_run eqmake5
|
||||||
|
thunar_run eqmake5
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cmake_src_compile
|
||||||
|
|
||||||
|
dolphin_run cmake_src_compile
|
||||||
|
nautilus_run emake
|
||||||
|
nemo_run emake
|
||||||
|
thunar_run emake
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
dolphin_run cmake_src_install
|
||||||
|
nautilus_run emake INSTALL_ROOT="${D}" install
|
||||||
|
nemo_run emake INSTALL_ROOT="${D}" install
|
||||||
|
thunar_run emake INSTALL_ROOT="${D}" install
|
||||||
|
}
|
16
net-misc/megasync/metadata.xml
Normal file
16
net-misc/megasync/metadata.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>noreply@local</email>
|
||||||
|
<name>nil</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="dolphin">Add support for kde-apps/dolphin.</flag>
|
||||||
|
<flag name="nautilus">Add support for gnome-base/nautilus.</flag>
|
||||||
|
<flag name="nemo">Add support for gnome-extra/nemo.</flag>
|
||||||
|
<flag name="thunar">Add support for xfce-base/thunar.</flag>
|
||||||
|
<flag name="mediainfo">Use media-libs/libmediainfo to determine media properties.</flag>
|
||||||
|
<flag name="thumbnail">Enable support for thumbnail generation.</flag>
|
||||||
|
</use>
|
||||||
|
</pkgmetadata>
|
1
profiles/eapi
Normal file
1
profiles/eapi
Normal file
|
@ -0,0 +1 @@
|
||||||
|
8
|
1
profiles/repo_name
Normal file
1
profiles/repo_name
Normal file
|
@ -0,0 +1 @@
|
||||||
|
localrepo
|
25
sys-devel/binutils/Manifest
Normal file
25
sys-devel/binutils/Manifest
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
DIST binutils-2.32-patches-3.tar.xz 151372 BLAKE2B 70d5f78d9f3e3bf9ff096b6f24babcc35c63395a5e1155a981a5ceb4b7a5706ad2ee0c77c74e910fc0eefeaed19763113186deb9665eed538dc3b8e227bef12d SHA512 5e91eff63332c2aca86a82a287ca4959a6098065ed88078265a3d79a2c851abd113e9736b75d8102a208996ed1191b0e23569921217ece975f1d9005a55afd0d
|
||||||
|
DIST binutils-2.32.tar.xz 20774880 BLAKE2B d1bdbd9c8487c091665c197974ce4bdf520b7a67ed6997a81b87e6a0af9514a091458244f583acec5ae580ac2ee5e908f67f483b8e5263cd18ced794cb235da6 SHA512 d326408f12a03d9a61a9de56584c2af12f81c2e50d2d7e835d51565df8314df01575724afa1e43bd0db45cfc9916b41519b67dfce03232aa4978704492a6994a
|
||||||
|
DIST binutils-2.33.1-patches-2.tar.xz 18636 BLAKE2B 0e0757329b6a83aeff4f4c450c95e73fd48fcc89f83e63f294568632bee0972552cf2f57494352c5d9a7c16a51cdbc4108b38fa6028d4388c8e76046b3da9212 SHA512 d982f68d1f5fdb384309a2a1b7426bf840a90e7a85b37229b4223b62c36cab9dd9ec0c08382c85c68adf996dec21133df3180a2fc649363adae8645f8282f71d
|
||||||
|
DIST binutils-2.33.1.tar.xz 21490848 BLAKE2B c336a8412938dc8c224f40a763a8bea9937cca0462a8fb80e62f14aabe590107fc061a3f4b9327e1f4652cb026384d36a91b4766d4d469d2d0680932874b638c SHA512 b7a6767c6c7ca6b5cafa7080e6820b7bb3a53b7148348c438d99905defbdf0d30c9744a484ee01c9441a8153901808513366b15ba9533e20c9673c262ade36ac
|
||||||
|
DIST binutils-2.34-patches-6.tar.xz 103028 BLAKE2B d0e866d0941d2b550c7d7f23530c6ee393fa13b4f2f27832f07790989476f11d1beddb5ad5a9be5c65c1d4dff9d4598d21adcb00c1d0490f69a99127f4527447 SHA512 e05ed8886acb5cb95a3e97c5bc0564215f7d44b604610f5c4545997fd9625d6de909c37063127e819926cd1548a48d3529dd3e82e98ee6a5dbaced028c57355d
|
||||||
|
DIST binutils-2.34.tar.xz 21637796 BLAKE2B 07dd23916a7d27f71c3f160c8c16abe2bd4fce294c738c665a012a3be6a87dbe8160d0c38740524f9025e01d438e99b2a94bcf9f9f79ee214f5dd033de8aad3d SHA512 2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd
|
||||||
|
DIST binutils-2.35.2-patches-1.tar.xz 11836 BLAKE2B 0141349c9618992d1ab1e0309f7ed8fbc43b60a58be1dfed05eae8a8fee857241d9e112ae673da6fc9778767675f536ece818cb85567367bb1c8f87a0693623f SHA512 35de5f227c745c5fb800784fe657b2a6216faf43e2498e8481e7b0dc79b0d2f86b3b6a10b896e060319a77a51c61d2e1b7a951ae962b3a6ef8c1a2a261d9bb6c
|
||||||
|
DIST binutils-2.35.2.tar.xz 22056908 BLAKE2B 9c392e0db2b482442f9476f30bd80cf2796321cbf7be79cf21af7bef167b6074c4ae009dcf9b438d2f2f4a23381c935176b2cfa85de1a526ab46e0fd844a7ca5 SHA512 9974ede5978d32e0d68fef23da48fa00bd06b0bff7ec45b00ca075c126d6bbe0cf2defc03ecc3f17bc6cc85b64271a13009c4049d7ba17de26e84e3a6e2c0348
|
||||||
|
DIST binutils-2.36.1-patches-5.tar.xz 44388 BLAKE2B 1dadb012fe35ec5fb0c5a15d348ab535bc5e3765375c97a3768c6b9f7126e0fda15d35163c9f9c33a4be98662dd120d7c1b21930a20c18dbb5345f56ecd9ecc1 SHA512 a2ce3388f1f1a77ff865481ff4b625121fd55f5234fed0a885312744f2f9c504717de1499b68252c6de64fa45866db7692df91c5838b43fbeb178938811cbe84
|
||||||
|
DIST binutils-2.36.1.tar.xz 22772248 BLAKE2B 03fbfbedd6dba2beaa836b1ed254eddd7a54a163d3061fd93edd2b9591cae24ba049b26658c524b5ccecc2f22d431dfa168218d2531aa356945c994fbbe896fa SHA512 cc24590bcead10b90763386b6f96bb027d7594c659c2d95174a6352e8b98465a50ec3e4088d0da038428abe059bbc4ae5f37b269f31a40fc048072c8a234f4e9
|
||||||
|
DIST binutils-2.37_p1-patches-2.tar.xz 31956 BLAKE2B 39c48628d0e2d7f3a8cf11be391b51dc64c7a534a3e64950fd992907c34fa36bebdf95cc5a184dd5b35e134e0c20376b5883abbf96ae57403c55377e615a6790 SHA512 c927aafa8c87e3b68ad28da5a17edf5647591ec26feeb56c743bc6637ffb10832b50ec6fd8442e80e40628b624e31b2f0f0b5f1193e77dc7e5442df0cb8cc8f1
|
||||||
|
DIST binutils-2.37_p1.tar.xz 22992196 BLAKE2B a8aa0f386d03a5b1466166ac7c40989c228351ccf0949a9b462b4d4615d70ab7e1a45351299140a42baf39c317b8007733c253eb547ee1dfadb612addde11621 SHA512 46c297ec2a7a5b81d1c6e3f16486a6dc2860a07520fe2dd8871d1eb5160065bbe2cc6b0415d5352bf12284133e5817a4e429e6077182d615e969bd1a8f52ed28
|
||||||
|
DIST binutils-2.38-patches-4.tar.xz 193852 BLAKE2B 5a83e20008e58464ed563a6817a367e50684c59d08c47345cc546054269c42463d1651441720f865851e4e182e917df1a095c68e64226e0351b64e975d524096 SHA512 6657e547bb02898632cc45a8f1894be098aa7472b6725b65f95393e621abb127e468b4e50310720bf03f7e8d0a68bc2c47af76fc43aaa8f32b2e4a149c0c6290
|
||||||
|
DIST binutils-2.38.tar.xz 23651408 BLAKE2B 19ede396ec97b88e632aded2f69f4684cc5053109e06c3c4a1934944e3f0ceaa9e4a2604528a440189771f778cb5d75edd510163970eeea31afba87fa256feba SHA512 8bf0b0d193c9c010e0518ee2b2e5a830898af206510992483b427477ed178396cd210235e85fd7bd99a96fc6d5eedbeccbd48317a10f752b7336ada8b2bb826d
|
||||||
|
DIST binutils-2.39-patches-6.tar.xz 92380 BLAKE2B 39f490f1134fb0e7dc80924a280d3113efe0ed094ee15de97c42ab751c83d2f5aa7448966d8cbbcde722b2af4999a36c1e5aa2f37ca6d2e3942b97b6d90ff152 SHA512 213cd7a86da83987966675f3195e843d898ca4ff412dfc29fd33ed80adb7bbf80a0b2919cd8e7dd49208c73a621ab7b720970f2259418bdc82ed2a568ff62064
|
||||||
|
DIST binutils-2.39.tar.xz 25167756 BLAKE2B ac6a5296c6586d53eaadcbffc5c399a6d79edf72450b9bb8b3525ce525129cef3d2eb90c85ef3bb3270b5a03b0e1ffb8f0b705f028158726f9777ebb8685066f SHA512 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3
|
||||||
|
DIST binutils-2.40-patches-7.tar.xz 299188 BLAKE2B 170cd2432e0458889b240c3603461d0b4bfa62d5314634b101a629db455d87235ac14ad44c63920b713d5235fa8b73902960df1019153873ef06a33aa7050b4b SHA512 a60da163caee68fe1fa355385d404e8998ebed0e390d50e0713e95334733a8b4e37bc63d522817284c027953e43848dbc98042461a47131fb53bc69203b4ee87
|
||||||
|
DIST binutils-2.40.tar.xz 25241484 BLAKE2B 8d799f7c595f878b9af5b17a490021dd8b8300ac2fe0ed8574c012929d22d2d0493e003a3e631a9436e8e712da801779b777c566167fe42b0bde119ffa5ad1c2 SHA512 a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925
|
||||||
|
DIST binutils-2.41-patches-5.tar.xz 95176 BLAKE2B bbc94b3c7d70653a1056afe57a120b6eac9f0c8f51f05e95a1b5f80f2b7ef35e6355d740b49bc1ec2f3a13a838d5210ff4a205aa2bde5a72bc55c12100bce726 SHA512 ad293f97116f71322993f381c1af69fad1719a159f127ff16ddeca62f9b9b62aaf141abfa661985a61e9be7ae0639772148e69293a97364eebbf49182babb691
|
||||||
|
DIST binutils-2.41.tar.xz 26765692 BLAKE2B 3bccec2b52f7e82a727121bf2a2e51a6249ba63dcd74c665fd834e858645c912ffd8245d848435288b938852830b482905606f55c40df4061215fd75c52ffc75 SHA512 5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374
|
||||||
|
DIST binutils-2.42-patches-3.tar.xz 34768 BLAKE2B e4bfaf3b42147408a8a3dcb00f50378a6b49aef8e939731a92598680cfbf42dfdf842c3f5bf3458867f79c534eb92385bc64f34f7b1d6462ec4182b5f424fbe5 SHA512 3d75e0684bbfa2cc3fc6dfcb5488ac571db58f1a5833fcc754f231664137001ccb0f2ec750947b8021fa12daf614eb2cd21b598bd962d71a34bb8ea38805850d
|
||||||
|
DIST binutils-2.42-patches-6.tar.xz 50664 BLAKE2B f13b65a761cfba80caf2e4740c6383b40305558365b950fba22aca95a104e799e8bd476082f36fb9288de4f224b09f317792c1444e549c40d15a4b64cdf61989 SHA512 1203eca0a9e622411eac377509de8fd0db3ffcb282ac38ab7a0369b166cc1091197daad85b51b145b34a4832f1a1a4d573c8254e8d67aeb22f35adb1ab3ece1f
|
||||||
|
DIST binutils-2.42.tar.xz 27567160 BLAKE2B e67a5c028fba70e70088fd11b38ec8c9c4ed5a019badefda25abeb6275997b16f0891e7ff3424c4b82bbfae92e8992669826920dd53df61cd48469d8f7cd5bd1 SHA512 155f3ba14cd220102f4f29a4f1e5cfee3c48aa03b74603460d05afb73c70d6657a9d87eee6eb88bf13203fe6f31177a5c9addc04384e956e7da8069c8ecd20a6
|
||||||
|
DIST binutils-2.43-patches-1.tar.xz 11644 BLAKE2B 578ee67c3c5e67f9191a31a5c83ffcc781f757f8aaee3eea14d052db427cdd2bc769977dba16e9a8c653dcc4a94f11c149898683945d5035d0beeac128045b1a SHA512 e6db4eaf4fbea366e607a7e9a56e20851fcc34664532fd6aa1f0818271c3e2687eada3daca482e211a2b3e36be85e7e0b23158caaa0fdf9785d13a9156e8c734
|
||||||
|
DIST binutils-2.43.tar.xz 28175768 BLAKE2B 28b0a04a28273b76eab2d00e00160be889f155f77f5a9d8759ef8dce505c97e97641bf7ec70b92b731b520570a02b06e04e8215b068fcb1bb2573e9ef24732d9 SHA512 93e063163e54d6a6ee2bd48dc754270bf757a3635b49a702ed6b310e929e94063958512d191e66beaf44275f7ea60865dbde138b624626739679fcc306b133bb
|
423
sys-devel/binutils/binutils-2.32-r2.ebuild
Normal file
423
sys-devel/binutils/binutils-2.32-r2.ebuild
Normal file
|
@ -0,0 +1,423 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test"
|
||||||
|
REQUIRED_USE="default-gold? ( gold )"
|
||||||
|
|
||||||
|
# Variables that can be set here:
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=3
|
||||||
|
PATCH_DEV=slyfox
|
||||||
|
|
||||||
|
case ${PV} in
|
||||||
|
9999)
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
inherit git-r3
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
SLOT=${PV}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#
|
||||||
|
# The Gentoo patchset
|
||||||
|
#
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-slyfox}
|
||||||
|
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
# Disable gold testsuite since it always fails.
|
||||||
|
"${FILESDIR}/${PN}-2.29.1-nogoldtest.patch"
|
||||||
|
|
||||||
|
"${FILESDIR}"/${PN}-2.32-gcc-10.patch
|
||||||
|
"${FILESDIR}"/${PN}-2.33-gcc-10.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? ( dev-util/dejagnu )
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
case ${PV} in
|
||||||
|
*9999)
|
||||||
|
git-r3_src_unpack
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
default
|
||||||
|
mkdir -p "${MY_BUILDDIR}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ -n ${PATCH_VER} ]] ; then
|
||||||
|
# Use upstream patch to enable development mode
|
||||||
|
rm -v "${WORKDIR}/patch"/0000-Gentoo-Git-is-development.patch || die
|
||||||
|
|
||||||
|
einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}"
|
||||||
|
eapply "${WORKDIR}/patch"/*.patch
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered. #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Fix conflicts with newer glibc #272594
|
||||||
|
if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
|
||||||
|
sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
if use default-gold; then
|
||||||
|
myconf+=( --enable-gold=default )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches
|
||||||
|
# the bi-arch logic in toolchain.eclass. #446946
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
# glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
|
||||||
|
# on everyone in alpha (for now), we'll just enable it when possible
|
||||||
|
has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option. #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
${EXTRA_ECONF}
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree. #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
)
|
||||||
|
echo ./configure "${myconf[@]}"
|
||||||
|
"${S}"/configure "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug 637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH} #171905
|
||||||
|
cd "${ED}"/${LIBPATH}
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH}
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}"
|
||||||
|
dodoc README
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
416
sys-devel/binutils/binutils-2.33.1-r1.ebuild
Normal file
416
sys-devel/binutils/binutils-2.33.1-r1.ebuild
Normal file
|
@ -0,0 +1,416 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test"
|
||||||
|
REQUIRED_USE="default-gold? ( gold )"
|
||||||
|
|
||||||
|
# Variables that can be set here:
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=2
|
||||||
|
PATCH_DEV=slyfox
|
||||||
|
|
||||||
|
case ${PV} in
|
||||||
|
9999)
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
inherit git-r3
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
SLOT=${PV}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#
|
||||||
|
# The Gentoo patchset
|
||||||
|
#
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-slyfox}
|
||||||
|
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? ( dev-util/dejagnu )
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-2.33-gcc-10.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
case ${PV} in
|
||||||
|
*9999)
|
||||||
|
git-r3_src_unpack
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
default
|
||||||
|
mkdir -p "${MY_BUILDDIR}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ -n ${PATCH_VER} ]] ; then
|
||||||
|
einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}"
|
||||||
|
eapply "${WORKDIR}/patch"/*.patch
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered. #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Fix conflicts with newer glibc #272594
|
||||||
|
if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
|
||||||
|
sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
if use default-gold; then
|
||||||
|
myconf+=( --enable-gold=default )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches
|
||||||
|
# the bi-arch logic in toolchain.eclass. #446946
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
# glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
|
||||||
|
# on everyone in alpha (for now), we'll just enable it when possible
|
||||||
|
has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option. #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
${EXTRA_ECONF}
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree. #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
)
|
||||||
|
echo ./configure "${myconf[@]}"
|
||||||
|
"${S}"/configure "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug 637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH} #171905
|
||||||
|
cd "${ED}"/${LIBPATH}
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH}
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}"
|
||||||
|
dodoc README
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
417
sys-devel/binutils/binutils-2.34-r2.ebuild
Normal file
417
sys-devel/binutils/binutils-2.34-r2.ebuild
Normal file
|
@ -0,0 +1,417 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="default-gold doc +gold multitarget +nls +plugins static-libs test"
|
||||||
|
REQUIRED_USE="default-gold? ( gold )"
|
||||||
|
|
||||||
|
# Variables that can be set here:
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=6
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
case ${PV} in
|
||||||
|
9999)
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
inherit git-r3
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
SLOT=${PV}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#
|
||||||
|
# The Gentoo patchset
|
||||||
|
#
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-slyfox}
|
||||||
|
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? ( dev-util/dejagnu )
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
case ${PV} in
|
||||||
|
*9999)
|
||||||
|
git-r3_src_unpack
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
default
|
||||||
|
mkdir -p "${MY_BUILDDIR}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ -n ${PATCH_VER} ]] ; then
|
||||||
|
einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}"
|
||||||
|
eapply "${WORKDIR}/patch"/*.patch
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered. #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Fix conflicts with newer glibc #272594
|
||||||
|
if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
|
||||||
|
sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
if use default-gold; then
|
||||||
|
myconf+=( --enable-gold=default )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches
|
||||||
|
# the bi-arch logic in toolchain.eclass. #446946
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
# glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
|
||||||
|
# on everyone in alpha (for now), we'll just enable it when possible
|
||||||
|
has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option. #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
${EXTRA_ECONF}
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree. #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
# avoid automagic dependency on (currently prefix) systems
|
||||||
|
# systems with debuginfod library, bug #754753
|
||||||
|
--without-debuginfod
|
||||||
|
)
|
||||||
|
echo ./configure "${myconf[@]}"
|
||||||
|
"${S}"/configure "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug 637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH} #171905
|
||||||
|
cd "${ED}"/${LIBPATH}
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH}
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}"
|
||||||
|
dodoc README
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
441
sys-devel/binutils/binutils-2.35.2.ebuild
Normal file
441
sys-devel/binutils/binutils-2.35.2.ebuild
Normal file
|
@ -0,0 +1,441 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet default-gold doc +gold multitarget +nls +plugins static-libs test vanilla"
|
||||||
|
REQUIRED_USE="default-gold? ( gold )"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=1
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-slyfox}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/${PN}-2.35.1-cet.patch
|
||||||
|
"${FILESDIR}"/${PN}-2.35.2-powerpc-tests.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered. #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Fix conflicts with newer glibc #272594
|
||||||
|
if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
|
||||||
|
sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
if use default-gold; then
|
||||||
|
myconf+=( --enable-gold=default )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches
|
||||||
|
# the bi-arch logic in toolchain.eclass. #446946
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
# glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
|
||||||
|
# on everyone in alpha (for now), we'll just enable it when possible
|
||||||
|
has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option. #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
# Available from 2.35 on
|
||||||
|
--enable-textrel-check=warning
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
${EXTRA_ECONF}
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree. #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
# avoid automagic dependency on (currently prefix) systems
|
||||||
|
# systems with debuginfod library, bug #754753
|
||||||
|
--without-debuginfod
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
)
|
||||||
|
echo ./configure "${myconf[@]}"
|
||||||
|
"${S}"/configure "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug 637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH} #171905
|
||||||
|
cd "${ED}"/${LIBPATH}
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH}
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}"
|
||||||
|
dodoc README
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
436
sys-devel/binutils/binutils-2.36.1-r2.ebuild
Normal file
436
sys-devel/binutils/binutils-2.36.1-r2.ebuild
Normal file
|
@ -0,0 +1,436 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet default-gold doc +gold multitarget +nls +plugins static-libs test vanilla"
|
||||||
|
REQUIRED_USE="default-gold? ( gold )"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=5
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-slyfox}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered. #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Fix conflicts with newer glibc #272594
|
||||||
|
if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
|
||||||
|
sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
if use default-gold; then
|
||||||
|
myconf+=( --enable-gold=default )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches
|
||||||
|
# the bi-arch logic in toolchain.eclass. #446946
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
# glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
|
||||||
|
# on everyone in alpha (for now), we'll just enable it when possible
|
||||||
|
has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option. #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
# Available from 2.35 on
|
||||||
|
--enable-textrel-check=warning
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
${EXTRA_ECONF}
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree. #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
# avoid automagic dependency on (currently prefix) systems
|
||||||
|
# systems with debuginfod library, bug #754753
|
||||||
|
--without-debuginfod
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
)
|
||||||
|
echo ./configure "${myconf[@]}"
|
||||||
|
"${S}"/configure "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug 637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH} #171905
|
||||||
|
cd "${ED}"/${LIBPATH}
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH}
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}"
|
||||||
|
dodoc README
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
455
sys-devel/binutils/binutils-2.37_p1-r2.ebuild
Normal file
455
sys-devel/binutils/binutils-2.37_p1-r2.ebuild
Normal file
|
@ -0,0 +1,455 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet default-gold doc +gold multitarget +nls pgo +plugins static-libs test vanilla"
|
||||||
|
REQUIRED_USE="default-gold? ( gold )"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=2
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered. #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Fix conflicts with newer glibc #272594
|
||||||
|
if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
|
||||||
|
sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
if use default-gold; then
|
||||||
|
myconf+=( --enable-gold=default )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches
|
||||||
|
# the bi-arch logic in toolchain.eclass. #446946
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
# glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
|
||||||
|
# on everyone in alpha (for now), we'll just enable it when possible
|
||||||
|
has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option. #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
# Available from 2.35 on
|
||||||
|
--enable-textrel-check=warning
|
||||||
|
# Works better than vapier's patch... #808787
|
||||||
|
--enable-new-dtags
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
${EXTRA_ECONF}
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree. #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
# avoid automagic dependency on (currently prefix) systems
|
||||||
|
# systems with debuginfod library, bug #754753
|
||||||
|
--without-debuginfod
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
)
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build lto) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ./configure "${myconf[@]}"
|
||||||
|
"${S}"/configure "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug 637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH} #171905
|
||||||
|
cd "${ED}"/${LIBPATH}
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH}
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}"
|
||||||
|
dodoc README
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
463
sys-devel/binutils/binutils-2.38-r2.ebuild
Normal file
463
sys-devel/binutils/binutils-2.38-r2.ebuild
Normal file
|
@ -0,0 +1,463 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet default-gold doc +gold multitarget +nls pgo +plugins static-libs test vanilla"
|
||||||
|
REQUIRED_USE="default-gold? ( gold )"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=4
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered. #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Fix conflicts with newer glibc #272594
|
||||||
|
if [[ -e libiberty/testsuite/test-demangle.c ]] ; then
|
||||||
|
sed -i 's:\<getline\>:get_line:g' libiberty/testsuite/test-demangle.c
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
if use default-gold; then
|
||||||
|
myconf+=( --enable-gold=default )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches
|
||||||
|
# the bi-arch logic in toolchain.eclass. #446946
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
# glibc-2.3.6 lacks support for this ... so rather than force glibc-2.5+
|
||||||
|
# on everyone in alpha (for now), we'll just enable it when possible
|
||||||
|
has_version ">=${CATEGORY}/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
has_version ">=sys-libs/glibc-2.5" && myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
# (--disable-silent-rules should get passed automatically w/ econf which we use
|
||||||
|
# in >= 2.39, so can drop it then.)
|
||||||
|
--disable-silent-rules
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option. #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
# Available from 2.35 on
|
||||||
|
--enable-textrel-check=warning
|
||||||
|
# Works better than vapier's patch... #808787
|
||||||
|
--enable-new-dtags
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
${EXTRA_ECONF}
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree. #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
# avoid automagic dependency on (currently prefix) systems
|
||||||
|
# systems with debuginfod library, bug #754753
|
||||||
|
--without-debuginfod
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
)
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build lto) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ./configure "${myconf[@]}"
|
||||||
|
"${S}"/configure "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake V=1 tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake V=1 info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug 637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k V=1 check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}"
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake V=1 DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH} #171905
|
||||||
|
cd "${ED}"/${LIBPATH}
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH}
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}"
|
||||||
|
dodoc README
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
487
sys-devel/binutils/binutils-2.39-r5.ebuild
Normal file
487
sys-devel/binutils/binutils-2.39-r5.ebuild
Normal file
|
@ -0,0 +1,487 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet default-gold doc gold gprofng multitarget +nls pgo +plugins static-libs test vanilla"
|
||||||
|
REQUIRED_USE="default-gold? ( gold )"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=6
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered, bug #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through, bug #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
if use default-gold; then
|
||||||
|
myconf+=( --enable-gold=default )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
|
||||||
|
# logic in toolchain.eclass. bug #446946
|
||||||
|
#
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option, bug #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
# Available from 2.35 on
|
||||||
|
--enable-textrel-check=warning
|
||||||
|
|
||||||
|
# These hardening options are available from 2.39+ but
|
||||||
|
# they unconditionally enable the behaviour even on arches
|
||||||
|
# where e.g. execstacks can't be avoided.
|
||||||
|
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
|
||||||
|
#--enable-warn-execstack
|
||||||
|
#--enable-warn-rwx-segments
|
||||||
|
#--disable-default-execstack (or is it --enable-default-execstack=no? docs are confusing)
|
||||||
|
|
||||||
|
# Things to think about
|
||||||
|
#--enable-deterministic-archives
|
||||||
|
|
||||||
|
# Works better than vapier's patch, bug #808787
|
||||||
|
--enable-new-dtags
|
||||||
|
|
||||||
|
--disable-jansson
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree, bug #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. bug #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
# Avoid automagic dependency on (currently prefix) systems
|
||||||
|
# systems with debuginfod library, bug #754753
|
||||||
|
--without-debuginfod
|
||||||
|
|
||||||
|
# Avoid automagic dev-libs/msgpack dep, bug #865875
|
||||||
|
--without-msgpack
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
|
||||||
|
# We can enable this by default in future, but it's brand new
|
||||||
|
# in 2.39 with several bugs:
|
||||||
|
# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
|
||||||
|
# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
|
||||||
|
# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
|
||||||
|
# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
|
||||||
|
$(use_enable gprofng)
|
||||||
|
)
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build lto) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake V=1 tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake V=1 info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug #637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k V=1 check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake V=1 DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin || die
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
|
||||||
|
cd "${ED}"/${LIBPATH} || die
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH} || die
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
499
sys-devel/binutils/binutils-2.40-r9.ebuild
Normal file
499
sys-devel/binutils/binutils-2.40-r9.ebuild
Normal file
|
@ -0,0 +1,499 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet debuginfod doc gold gprofng multitarget +nls pgo +plugins static-libs test vanilla zstd"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=7
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
debuginfod? (
|
||||||
|
dev-libs/elfutils[debuginfod(-)]
|
||||||
|
)
|
||||||
|
zstd? ( app-arch/zstd:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
zstd? ( virtual/pkgconfig )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
|
||||||
|
# This is applied conditionally for now just out of caution.
|
||||||
|
# It should be okay on non-prefix systems though. See bug #892549.
|
||||||
|
if is_cross || use prefix; then
|
||||||
|
eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered, bug #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through, bug #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
use cet && filter-flags -mindirect-branch -mindirect-branch=*
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
|
||||||
|
# logic in toolchain.eclass. bug #446946
|
||||||
|
#
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
# portage's econf() does not detect presence of --d-d-t
|
||||||
|
# because it greps only top-level ./configure. But not
|
||||||
|
# libiberty's or bfd's configure.
|
||||||
|
--disable-dependency-tracking
|
||||||
|
--disable-silent-rules
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
# Newer versions (>=2.27) offer a configure flag now.
|
||||||
|
--enable-relro
|
||||||
|
# Newer versions (>=2.24) make this an explicit option, bug #497268
|
||||||
|
--enable-install-libiberty
|
||||||
|
# Available from 2.35 on
|
||||||
|
--enable-textrel-check=warning
|
||||||
|
|
||||||
|
# These hardening options are available from 2.39+ but
|
||||||
|
# they unconditionally enable the behaviour even on arches
|
||||||
|
# where e.g. execstacks can't be avoided.
|
||||||
|
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
|
||||||
|
#--enable-warn-execstack
|
||||||
|
#--enable-warn-rwx-segments
|
||||||
|
#--disable-default-execstack (or is it --enable-default-execstack=no? docs are confusing)
|
||||||
|
|
||||||
|
# Things to think about
|
||||||
|
#--enable-deterministic-archives
|
||||||
|
|
||||||
|
# Works better than vapier's patch, bug #808787
|
||||||
|
--enable-new-dtags
|
||||||
|
|
||||||
|
--disable-jansson
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
$(use_with zstd)
|
||||||
|
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree, bug #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags.
|
||||||
|
# https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across
|
||||||
|
# {native,cross}/binutils, binutils-libs. bug #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
$(use_with debuginfod)
|
||||||
|
|
||||||
|
# Avoid automagic dev-libs/msgpack dep, bug #865875
|
||||||
|
--without-msgpack
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
|
||||||
|
# We can enable this by default in future, but it's brand new
|
||||||
|
# in 2.39 with several bugs:
|
||||||
|
# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
|
||||||
|
# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
|
||||||
|
# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
|
||||||
|
# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
|
||||||
|
$(use_enable gprofng)
|
||||||
|
)
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build lto) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myconf[@]}" || die
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake tooldir="${EPREFIX}${TOOLPATH}" all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug #637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin || die
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
|
||||||
|
cd "${ED}"/${LIBPATH} || die
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH} || die
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
524
sys-devel/binutils/binutils-2.41-r5.ebuild
Normal file
524
sys-devel/binutils/binutils-2.41-r5.ebuild
Normal file
|
@ -0,0 +1,524 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet debuginfod doc gold gprofng hardened multitarget +nls pgo +plugins static-libs test vanilla zstd"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=5
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
debuginfod? (
|
||||||
|
dev-libs/elfutils[debuginfod(-)]
|
||||||
|
)
|
||||||
|
zstd? ( app-arch/zstd:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
zstd? ( virtual/pkgconfig )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
|
||||||
|
# This is applied conditionally for now just out of caution.
|
||||||
|
# It should be okay on non-prefix systems though. See bug #892549.
|
||||||
|
if is_cross || use prefix; then
|
||||||
|
eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch \
|
||||||
|
"${FILESDIR}"/binutils-2.41-linker-prefix.patch
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered, bug #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through, bug #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
use cet && filter-flags -mindirect-branch -mindirect-branch=*
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
|
||||||
|
# logic in toolchain.eclass. bug #446946
|
||||||
|
#
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
# portage's econf() does not detect presence of --d-d-t
|
||||||
|
# because it greps only top-level ./configure. But not
|
||||||
|
# libiberty's or bfd's configure.
|
||||||
|
--disable-dependency-tracking
|
||||||
|
--disable-silent-rules
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
--enable-relro
|
||||||
|
--enable-install-libiberty
|
||||||
|
--enable-textrel-check=$(usex hardened error warning)
|
||||||
|
# Things to think about
|
||||||
|
#--enable-deterministic-archives
|
||||||
|
--enable-new-dtags
|
||||||
|
--disable-jansson
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
$(use_with zstd)
|
||||||
|
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree, bug #490566
|
||||||
|
--disable-{gdb,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags: https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across {native,cross}/binutils, binutils-libs. bug #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
$(use_with debuginfod)
|
||||||
|
|
||||||
|
# Avoid automagic dev-libs/msgpack dep, bug #865875
|
||||||
|
--without-msgpack
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
|
||||||
|
# We can enable this by default in future, but it's brand new
|
||||||
|
# in 2.39 with several bugs:
|
||||||
|
# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
|
||||||
|
# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
|
||||||
|
# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
|
||||||
|
# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
|
||||||
|
$(use_enable gprofng)
|
||||||
|
)
|
||||||
|
|
||||||
|
case ${CTARGET} in
|
||||||
|
x86_64-*|aarch64*|arm64*|i[3456]*)
|
||||||
|
# These hardening options are available from 2.39+ but
|
||||||
|
# they unconditionally enable the behaviour even on arches
|
||||||
|
# where e.g. execstacks can't be avoided.
|
||||||
|
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so it doesn't
|
||||||
|
# create impossible broken combinations on some arches, like mips.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so --disable-* works
|
||||||
|
# as expected.
|
||||||
|
myconf+=(
|
||||||
|
--enable-warn-execstack=yes
|
||||||
|
--enable-warn-rwx-segments=yes
|
||||||
|
)
|
||||||
|
|
||||||
|
if use hardened ; then
|
||||||
|
myconf+=(
|
||||||
|
--enable-default-execstack=no
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if use elibc_musl ; then
|
||||||
|
# Override our earlier setting for musl, as textrels don't
|
||||||
|
# work there at all. See bug #707660.
|
||||||
|
myconf+=(
|
||||||
|
--enable-textrel-check=error
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build lto) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
# see linker prefix patch
|
||||||
|
emake \
|
||||||
|
tooldir="${EPREFIX}${TOOLPATH}" \
|
||||||
|
gentoo_prefix=$(usex prefix-guest "${EPREFIX}"/usr /usr) \
|
||||||
|
all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
# bug #637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin || die
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
|
||||||
|
cd "${ED}"/${LIBPATH} || die
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH} || die
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
docompress "${DATAPATH}"/{info,man}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
555
sys-devel/binutils/binutils-2.42-r1.ebuild
Normal file
555
sys-devel/binutils/binutils-2.42-r1.ebuild
Normal file
|
@ -0,0 +1,555 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet debuginfod doc gold gprofng hardened multitarget +nls pgo +plugins static-libs test vanilla zstd"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=3
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
debuginfod? (
|
||||||
|
dev-libs/elfutils[debuginfod(-)]
|
||||||
|
)
|
||||||
|
zstd? ( app-arch/zstd:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
pgo? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
zstd? ( virtual/pkgconfig )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
|
||||||
|
# This is applied conditionally for now just out of caution.
|
||||||
|
# It should be okay on non-prefix systems though. See bug #892549.
|
||||||
|
if is_cross || use prefix; then
|
||||||
|
eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch \
|
||||||
|
"${FILESDIR}"/binutils-2.41-linker-prefix.patch
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered, bug #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through, bug #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
use cet && filter-flags -mindirect-branch -mindirect-branch=*
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
|
||||||
|
# logic in toolchain.eclass. bug #446946
|
||||||
|
#
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
# portage's econf() does not detect presence of --d-d-t
|
||||||
|
# because it greps only top-level ./configure. But not
|
||||||
|
# libiberty's or bfd's configure.
|
||||||
|
--disable-dependency-tracking
|
||||||
|
--disable-silent-rules
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
--enable-relro
|
||||||
|
--enable-install-libiberty
|
||||||
|
--enable-textrel-check=$(usex hardened error warning)
|
||||||
|
# Things to think about
|
||||||
|
#--enable-deterministic-archives
|
||||||
|
--enable-new-dtags
|
||||||
|
--disable-jansson
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
$(use_with zstd)
|
||||||
|
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree, bug #490566
|
||||||
|
--disable-{gdb,gdbserver,libbacktrace,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags: https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across {native,cross}/binutils, binutils-libs. bug #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
$(use_with debuginfod)
|
||||||
|
|
||||||
|
# Avoid automagic dev-libs/msgpack dep, bug #865875
|
||||||
|
--without-msgpack
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
|
||||||
|
# We can enable this by default in future, but it's brand new
|
||||||
|
# in 2.39 with several bugs:
|
||||||
|
# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
|
||||||
|
# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
|
||||||
|
# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
|
||||||
|
# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
|
||||||
|
$(use_enable gprofng)
|
||||||
|
)
|
||||||
|
|
||||||
|
case ${CTARGET} in
|
||||||
|
x86_64-*|aarch64*|arm64*|i[3456]*)
|
||||||
|
# These hardening options are available from 2.39+ but
|
||||||
|
# they unconditionally enable the behaviour even on arches
|
||||||
|
# where e.g. execstacks can't be avoided.
|
||||||
|
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so it doesn't
|
||||||
|
# create impossible broken combinations on some arches, like mips.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so --disable-* works
|
||||||
|
# as expected.
|
||||||
|
myconf+=(
|
||||||
|
--enable-warn-execstack=yes
|
||||||
|
--enable-warn-rwx-segments=yes
|
||||||
|
)
|
||||||
|
|
||||||
|
if use hardened ; then
|
||||||
|
myconf+=(
|
||||||
|
# TOOD: breaks glibc test suite
|
||||||
|
#--enable-error-execstack=yes
|
||||||
|
#--enable-error-rwx-segments=yes
|
||||||
|
--enable-default-execstack=no
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if use elibc_musl ; then
|
||||||
|
# Override our earlier setting for musl, as textrels don't
|
||||||
|
# work there at all. See bug #707660.
|
||||||
|
myconf+=(
|
||||||
|
--enable-textrel-check=error
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use test || { use pgo && tc-is-lto ; } ; then
|
||||||
|
# -Wa,* needs to be consistent everywhere or lto-wrapper will complain
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build $(tc-is-lto && echo "lto" || echo "yes")) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# We let configure handle it for us because it has to run
|
||||||
|
# the testsuite later on for profiling, and LTO isn't compatible
|
||||||
|
# with the testsuite.
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
# see linker prefix patch
|
||||||
|
emake \
|
||||||
|
tooldir="${EPREFIX}${TOOLPATH}" \
|
||||||
|
gentoo_prefix=$(usex prefix-guest "${EPREFIX}"/usr /usr) \
|
||||||
|
all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
(
|
||||||
|
# Tests don't expect LTO
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
# lto-wrapper warnings which confuse tests
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
|
||||||
|
# bug #637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check \
|
||||||
|
CFLAGS_FOR_TARGET="${CFLAGS_FOR_TARGET:-${CFLAGS}}" \
|
||||||
|
CXXFLAGS_FOR_TARGET="${CXXFLAGS_FOR_TARGET:-${CXXFLAGS}}" \
|
||||||
|
LDFLAGS_FOR_TARGET="${LDFLAGS_FOR_TARGET:-${LDFLAGS}}" \
|
||||||
|
CFLAGS="${CFLAGS}" \
|
||||||
|
CXXFLAGS="${CXXFLAGS}" \
|
||||||
|
LDFLAGS="${LDFLAGS}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin || die
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
|
||||||
|
cd "${ED}"/${LIBPATH} || die
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH} || die
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
docompress "${DATAPATH}"/{info,man}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET}
|
||||||
|
else
|
||||||
|
binutils-config ${choice}
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
555
sys-devel/binutils/binutils-2.42-r2.ebuild
Normal file
555
sys-devel/binutils/binutils-2.42-r2.ebuild
Normal file
|
@ -0,0 +1,555 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet debuginfod doc gold gprofng hardened multitarget +nls pgo +plugins static-libs test vanilla zstd"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=6
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999* ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
debuginfod? (
|
||||||
|
dev-libs/elfutils[debuginfod(-)]
|
||||||
|
)
|
||||||
|
zstd? ( app-arch/zstd:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
pgo? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
zstd? ( virtual/pkgconfig )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999* ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == 9999* ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
|
||||||
|
# This is applied conditionally for now just out of caution.
|
||||||
|
# It should be okay on non-prefix systems though. See bug #892549.
|
||||||
|
if is_cross || use prefix; then
|
||||||
|
eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch \
|
||||||
|
"${FILESDIR}"/binutils-2.41-linker-prefix.patch
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered, bug #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through, bug #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
use cet && filter-flags -mindirect-branch -mindirect-branch=*
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
|
||||||
|
# logic in toolchain.eclass. bug #446946
|
||||||
|
#
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
# portage's econf() does not detect presence of --d-d-t
|
||||||
|
# because it greps only top-level ./configure. But not
|
||||||
|
# libiberty's or bfd's configure.
|
||||||
|
--disable-dependency-tracking
|
||||||
|
--disable-silent-rules
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
--enable-relro
|
||||||
|
--enable-install-libiberty
|
||||||
|
--enable-textrel-check=$(usex hardened error warning)
|
||||||
|
# Things to think about
|
||||||
|
#--enable-deterministic-archives
|
||||||
|
--enable-new-dtags
|
||||||
|
--disable-jansson
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
$(use_with zstd)
|
||||||
|
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree, bug #490566
|
||||||
|
--disable-{gdb,gdbserver,libbacktrace,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags: https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across {native,cross}/binutils, binutils-libs. bug #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
$(use_with debuginfod)
|
||||||
|
|
||||||
|
# Avoid automagic dev-libs/msgpack dep, bug #865875
|
||||||
|
--without-msgpack
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
|
||||||
|
# We can enable this by default in future, but it's brand new
|
||||||
|
# in 2.39 with several bugs:
|
||||||
|
# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
|
||||||
|
# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
|
||||||
|
# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
|
||||||
|
# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
|
||||||
|
$(use_enable gprofng)
|
||||||
|
)
|
||||||
|
|
||||||
|
case ${CTARGET} in
|
||||||
|
x86_64-*|aarch64*|arm64*|i[3456]*)
|
||||||
|
# These hardening options are available from 2.39+ but
|
||||||
|
# they unconditionally enable the behaviour even on arches
|
||||||
|
# where e.g. execstacks can't be avoided.
|
||||||
|
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so it doesn't
|
||||||
|
# create impossible broken combinations on some arches, like mips.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so --disable-* works
|
||||||
|
# as expected.
|
||||||
|
myconf+=(
|
||||||
|
--enable-warn-execstack=yes
|
||||||
|
--enable-warn-rwx-segments=yes
|
||||||
|
)
|
||||||
|
|
||||||
|
if use hardened ; then
|
||||||
|
myconf+=(
|
||||||
|
# TOOD: breaks glibc test suite
|
||||||
|
#--enable-error-execstack=yes
|
||||||
|
#--enable-error-rwx-segments=yes
|
||||||
|
--enable-default-execstack=no
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if use elibc_musl ; then
|
||||||
|
# Override our earlier setting for musl, as textrels don't
|
||||||
|
# work there at all. See bug #707660.
|
||||||
|
myconf+=(
|
||||||
|
--enable-textrel-check=error
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use test || { use pgo && tc-is-lto ; } ; then
|
||||||
|
# -Wa,* needs to be consistent everywhere or lto-wrapper will complain
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build $(tc-is-lto && echo "lto" || echo "yes")) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# We let configure handle it for us because it has to run
|
||||||
|
# the testsuite later on for profiling, and LTO isn't compatible
|
||||||
|
# with the testsuite.
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
# see linker prefix patch
|
||||||
|
emake \
|
||||||
|
tooldir="${EPREFIX}${TOOLPATH}" \
|
||||||
|
gentoo_prefix=$(usex prefix-guest "${EPREFIX}"/usr /usr) \
|
||||||
|
all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# https://sourceware.org/PR31327
|
||||||
|
local -x XZ_OPT="-T1"
|
||||||
|
local -x XZ_DEFAULTS="-T1"
|
||||||
|
|
||||||
|
(
|
||||||
|
# Tests don't expect LTO
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
# lto-wrapper warnings which confuse tests
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
|
||||||
|
# bug #637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check \
|
||||||
|
CFLAGS_FOR_TARGET="${CFLAGS_FOR_TARGET:-${CFLAGS}}" \
|
||||||
|
CXXFLAGS_FOR_TARGET="${CXXFLAGS_FOR_TARGET:-${CXXFLAGS}}" \
|
||||||
|
LDFLAGS_FOR_TARGET="${LDFLAGS_FOR_TARGET:-${LDFLAGS}}" \
|
||||||
|
CFLAGS="${CFLAGS}" \
|
||||||
|
CXXFLAGS="${CXXFLAGS}" \
|
||||||
|
LDFLAGS="${LDFLAGS}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin || die
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
|
||||||
|
cd "${ED}"/${LIBPATH} || die
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH} || die
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
docompress "${DATAPATH}"/{info,man}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV} || eerror binutils-config returned an error
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET} || eerror binutils-config returned an error
|
||||||
|
else
|
||||||
|
binutils-config ${choice} || eerror binutils-config returned an error
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV} || eerror binutils-config returned an error
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
557
sys-devel/binutils/binutils-2.43.9999.ebuild
Normal file
557
sys-devel/binutils/binutils-2.43.9999.ebuild
Normal file
|
@ -0,0 +1,557 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet debuginfod doc gold gprofng hardened multitarget +nls pgo +plugins static-libs test vanilla zstd"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=1
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
elif [[ ${PV} == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
debuginfod? (
|
||||||
|
dev-libs/elfutils[debuginfod(-)]
|
||||||
|
)
|
||||||
|
zstd? ( app-arch/zstd:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
pgo? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
zstd? ( virtual/pkgconfig )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == *9999 ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
if [[ ${PV} != 9999 ]] ; then
|
||||||
|
EGIT_BRANCH=binutils-$(ver_cut 1)_$(ver_cut 2)-branch
|
||||||
|
fi
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
elif [[ ${PV} == *9999 ]] ; then
|
||||||
|
patchsetname="from git branch ${EGIT_BRANCH}"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == *9999 ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
|
||||||
|
# This is applied conditionally for now just out of caution.
|
||||||
|
# It should be okay on non-prefix systems though. See bug #892549.
|
||||||
|
if is_cross || use prefix; then
|
||||||
|
eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch \
|
||||||
|
"${FILESDIR}"/binutils-2.41-linker-prefix.patch
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered, bug #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through, bug #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
use cet && filter-flags -mindirect-branch -mindirect-branch=*
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
|
||||||
|
# logic in toolchain.eclass. bug #446946
|
||||||
|
#
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
# portage's econf() does not detect presence of --d-d-t
|
||||||
|
# because it greps only top-level ./configure. But not
|
||||||
|
# libiberty's or bfd's configure.
|
||||||
|
--disable-dependency-tracking
|
||||||
|
--disable-silent-rules
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
--enable-relro
|
||||||
|
--enable-install-libiberty
|
||||||
|
--enable-textrel-check=$(usex hardened error warning)
|
||||||
|
# Things to think about
|
||||||
|
#--enable-deterministic-archives
|
||||||
|
--enable-new-dtags
|
||||||
|
--disable-jansson
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
$(use_with zstd)
|
||||||
|
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree, bug #490566
|
||||||
|
--disable-{gdb,gdbserver,libbacktrace,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags: https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across {native,cross}/binutils, binutils-libs. bug #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
$(use_with debuginfod)
|
||||||
|
|
||||||
|
# Avoid automagic dev-libs/msgpack dep, bug #865875
|
||||||
|
--without-msgpack
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
|
||||||
|
# We can enable this by default in future, but it's brand new
|
||||||
|
# in 2.39 with several bugs:
|
||||||
|
# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
|
||||||
|
# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
|
||||||
|
# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
|
||||||
|
# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
|
||||||
|
$(use_enable gprofng)
|
||||||
|
)
|
||||||
|
|
||||||
|
case ${CTARGET} in
|
||||||
|
x86_64-*|aarch64*|arm64*|i[3456]*)
|
||||||
|
# These hardening options are available from 2.39+ but
|
||||||
|
# they unconditionally enable the behaviour even on arches
|
||||||
|
# where e.g. execstacks can't be avoided.
|
||||||
|
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so it doesn't
|
||||||
|
# create impossible broken combinations on some arches, like mips.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so --disable-* works
|
||||||
|
# as expected.
|
||||||
|
myconf+=(
|
||||||
|
--enable-warn-execstack=yes
|
||||||
|
--enable-warn-rwx-segments=yes
|
||||||
|
)
|
||||||
|
|
||||||
|
if use hardened ; then
|
||||||
|
myconf+=(
|
||||||
|
# TOOD: breaks glibc test suite
|
||||||
|
#--enable-error-execstack=yes
|
||||||
|
#--enable-error-rwx-segments=yes
|
||||||
|
--enable-default-execstack=no
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if use elibc_musl ; then
|
||||||
|
# Override our earlier setting for musl, as textrels don't
|
||||||
|
# work there at all. See bug #707660.
|
||||||
|
myconf+=(
|
||||||
|
--enable-textrel-check=error
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use test || { use pgo && tc-is-lto ; } ; then
|
||||||
|
# -Wa,* needs to be consistent everywhere or lto-wrapper will complain
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build $(tc-is-lto && echo "lto" || echo "yes")) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# We let configure handle it for us because it has to run
|
||||||
|
# the testsuite later on for profiling, and LTO isn't compatible
|
||||||
|
# with the testsuite.
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
# see linker prefix patch
|
||||||
|
emake \
|
||||||
|
tooldir="${EPREFIX}${TOOLPATH}" \
|
||||||
|
gentoo_prefix=$(usex prefix-guest "${EPREFIX}"/usr /usr) \
|
||||||
|
all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
(
|
||||||
|
# Tests don't expect LTO
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
# lto-wrapper warnings which confuse tests
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
|
||||||
|
# bug #637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check \
|
||||||
|
CFLAGS_FOR_TARGET="${CFLAGS_FOR_TARGET:-${CFLAGS}}" \
|
||||||
|
CXXFLAGS_FOR_TARGET="${CXXFLAGS_FOR_TARGET:-${CXXFLAGS}}" \
|
||||||
|
LDFLAGS_FOR_TARGET="${LDFLAGS_FOR_TARGET:-${LDFLAGS}}" \
|
||||||
|
CFLAGS="${CFLAGS}" \
|
||||||
|
CXXFLAGS="${CXXFLAGS}" \
|
||||||
|
LDFLAGS="${LDFLAGS}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin || die
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
|
||||||
|
cd "${ED}"/${LIBPATH} || die
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH} || die
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
docompress "${DATAPATH}"/{info,man}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV} || eerror binutils-config returned an error
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET} || eerror binutils-config returned an error
|
||||||
|
else
|
||||||
|
binutils-config ${choice} || eerror binutils-config returned an error
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV} || eerror binutils-config returned an error
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
556
sys-devel/binutils/binutils-2.43.ebuild
Normal file
556
sys-devel/binutils/binutils-2.43.ebuild
Normal file
|
@ -0,0 +1,556 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet debuginfod doc gold gprofng hardened multitarget +nls pgo +plugins static-libs test vanilla zstd"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=1
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
elif [[ ${PV} == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
debuginfod? (
|
||||||
|
dev-libs/elfutils[debuginfod(-)]
|
||||||
|
)
|
||||||
|
zstd? ( app-arch/zstd:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
pgo? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
zstd? ( virtual/pkgconfig )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == *9999 ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
if [[ ${PV} != 9999 ]] ; then
|
||||||
|
EGIT_BRANCH=binutils-$(ver_cut 1)_$(ver_cut 2)-branch
|
||||||
|
fi
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
elif [[ ${PV} == *9999 ]] ; then
|
||||||
|
patchsetname="from git branch ${EGIT_BRANCH}"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == *9999 ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
|
||||||
|
# This is applied conditionally for now just out of caution.
|
||||||
|
# It should be okay on non-prefix systems though. See bug #892549.
|
||||||
|
if is_cross || use prefix; then
|
||||||
|
eapply "${FILESDIR}"/binutils-2.41-linker-prefix.patch
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered, bug #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through, bug #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
use cet && filter-flags -mindirect-branch -mindirect-branch=*
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
|
||||||
|
# logic in toolchain.eclass. bug #446946
|
||||||
|
#
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
# portage's econf() does not detect presence of --d-d-t
|
||||||
|
# because it greps only top-level ./configure. But not
|
||||||
|
# libiberty's or bfd's configure.
|
||||||
|
--disable-dependency-tracking
|
||||||
|
--disable-silent-rules
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
--enable-relro
|
||||||
|
--enable-install-libiberty
|
||||||
|
--enable-textrel-check=$(usex hardened error warning)
|
||||||
|
# Things to think about
|
||||||
|
#--enable-deterministic-archives
|
||||||
|
--enable-new-dtags
|
||||||
|
--disable-jansson
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
$(use_with zstd)
|
||||||
|
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree, bug #490566
|
||||||
|
--disable-{gdb,gdbserver,libbacktrace,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags: https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across {native,cross}/binutils, binutils-libs. bug #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
$(use_with debuginfod)
|
||||||
|
|
||||||
|
# Avoid automagic dev-libs/msgpack dep, bug #865875
|
||||||
|
--without-msgpack
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
|
||||||
|
# We can enable this by default in future, but it's brand new
|
||||||
|
# in 2.39 with several bugs:
|
||||||
|
# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
|
||||||
|
# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
|
||||||
|
# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
|
||||||
|
# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
|
||||||
|
$(use_enable gprofng)
|
||||||
|
)
|
||||||
|
|
||||||
|
case ${CTARGET} in
|
||||||
|
x86_64-*|aarch64*|arm64*|i[3456]*)
|
||||||
|
# These hardening options are available from 2.39+ but
|
||||||
|
# they unconditionally enable the behaviour even on arches
|
||||||
|
# where e.g. execstacks can't be avoided.
|
||||||
|
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so it doesn't
|
||||||
|
# create impossible broken combinations on some arches, like mips.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so --disable-* works
|
||||||
|
# as expected.
|
||||||
|
myconf+=(
|
||||||
|
--enable-warn-execstack=yes
|
||||||
|
--enable-warn-rwx-segments=yes
|
||||||
|
)
|
||||||
|
|
||||||
|
if use hardened ; then
|
||||||
|
myconf+=(
|
||||||
|
# TOOD: breaks glibc test suite
|
||||||
|
#--enable-error-execstack=yes
|
||||||
|
#--enable-error-rwx-segments=yes
|
||||||
|
--enable-default-execstack=no
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if use elibc_musl ; then
|
||||||
|
# Override our earlier setting for musl, as textrels don't
|
||||||
|
# work there at all. See bug #707660.
|
||||||
|
myconf+=(
|
||||||
|
--enable-textrel-check=error
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use test || { use pgo && tc-is-lto ; } ; then
|
||||||
|
# -Wa,* needs to be consistent everywhere or lto-wrapper will complain
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build $(tc-is-lto && echo "lto" || echo "yes")) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# We let configure handle it for us because it has to run
|
||||||
|
# the testsuite later on for profiling, and LTO isn't compatible
|
||||||
|
# with the testsuite.
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
# see linker prefix patch
|
||||||
|
emake \
|
||||||
|
tooldir="${EPREFIX}${TOOLPATH}" \
|
||||||
|
gentoo_prefix=$(usex prefix-guest "${EPREFIX}"/usr /usr) \
|
||||||
|
all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
(
|
||||||
|
# Tests don't expect LTO
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
# lto-wrapper warnings which confuse tests
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
|
||||||
|
# bug #637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check \
|
||||||
|
CFLAGS_FOR_TARGET="${CFLAGS_FOR_TARGET:-${CFLAGS}}" \
|
||||||
|
CXXFLAGS_FOR_TARGET="${CXXFLAGS_FOR_TARGET:-${CXXFLAGS}}" \
|
||||||
|
LDFLAGS_FOR_TARGET="${LDFLAGS_FOR_TARGET:-${LDFLAGS}}" \
|
||||||
|
CFLAGS="${CFLAGS}" \
|
||||||
|
CXXFLAGS="${CXXFLAGS}" \
|
||||||
|
LDFLAGS="${LDFLAGS}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin || die
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
|
||||||
|
cd "${ED}"/${LIBPATH} || die
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH} || die
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
docompress "${DATAPATH}"/{info,man}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV} || eerror binutils-config returned an error
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET} || eerror binutils-config returned an error
|
||||||
|
else
|
||||||
|
binutils-config ${choice} || eerror binutils-config returned an error
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV} || eerror binutils-config returned an error
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
557
sys-devel/binutils/binutils-9999.ebuild
Normal file
557
sys-devel/binutils/binutils-9999.ebuild
Normal file
|
@ -0,0 +1,557 @@
|
||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit libtool flag-o-matic gnuconfig strip-linguas toolchain-funcs
|
||||||
|
|
||||||
|
DESCRIPTION="Tools necessary to build programs"
|
||||||
|
HOMEPAGE="https://sourceware.org/binutils/"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
IUSE="cet debuginfod doc gold gprofng hardened multitarget +nls pgo +plugins static-libs test vanilla zstd"
|
||||||
|
|
||||||
|
# Variables that can be set here (ignored for live ebuilds)
|
||||||
|
# PATCH_VER - the patchset version
|
||||||
|
# Default: empty, no patching
|
||||||
|
# PATCH_BINUTILS_VER - the binutils version in the patchset name
|
||||||
|
# - Default: PV
|
||||||
|
# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
|
||||||
|
# for the patchsets
|
||||||
|
|
||||||
|
PATCH_VER=1
|
||||||
|
PATCH_DEV=dilfridge
|
||||||
|
|
||||||
|
if [[ ${PV} == 9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=${PV}
|
||||||
|
elif [[ ${PV} == *9999 ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
else
|
||||||
|
PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
|
||||||
|
PATCH_DEV=${PATCH_DEV:-dilfridge}
|
||||||
|
SRC_URI="mirror://gnu/binutils/binutils-${PV}.tar.xz https://sourceware.org/pub/binutils/releases/binutils-${PV}.tar.xz https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PV}.tar.xz"
|
||||||
|
[[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
|
||||||
|
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
|
||||||
|
SLOT=$(ver_cut 1-2)
|
||||||
|
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# The cross-compile logic
|
||||||
|
#
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||||
|
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||||
|
export CTARGET=${CATEGORY#cross-}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dependencies
|
||||||
|
#
|
||||||
|
RDEPEND="
|
||||||
|
>=sys-devel/binutils-config-3
|
||||||
|
sys-libs/zlib
|
||||||
|
debuginfod? (
|
||||||
|
dev-libs/elfutils[debuginfod(-)]
|
||||||
|
)
|
||||||
|
zstd? ( app-arch/zstd:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="
|
||||||
|
doc? ( sys-apps/texinfo )
|
||||||
|
pgo? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
test? (
|
||||||
|
dev-util/dejagnu
|
||||||
|
app-alternatives/bc
|
||||||
|
)
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
zstd? ( virtual/pkgconfig )
|
||||||
|
app-alternatives/lex
|
||||||
|
app-alternatives/yacc
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
MY_BUILDDIR=${WORKDIR}/build
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == *9999 ]] ; then
|
||||||
|
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git"
|
||||||
|
EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
|
||||||
|
git-r3_src_unpack
|
||||||
|
mv patches-git/9999 patch || die
|
||||||
|
|
||||||
|
if [[ ${PV} != 9999 ]] ; then
|
||||||
|
EGIT_BRANCH=binutils-$(ver_cut 1)_$(ver_cut 2)-branch
|
||||||
|
fi
|
||||||
|
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||||
|
S=${WORKDIR}/binutils
|
||||||
|
EGIT_CHECKOUT_DIR=${S}
|
||||||
|
git-r3_src_unpack
|
||||||
|
else
|
||||||
|
unpack ${P/-hppa64/}.tar.xz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
|
||||||
|
|
||||||
|
# _p patch versions are Gentoo specific tarballs ...
|
||||||
|
local dir=${P%_p?}
|
||||||
|
dir=${dir/-hppa64/}
|
||||||
|
|
||||||
|
S=${WORKDIR}/${dir}
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
mkdir -p "${MY_BUILDDIR}" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
local patchsetname
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
patchsetname="from git master"
|
||||||
|
elif [[ ${PV} == *9999 ]] ; then
|
||||||
|
patchsetname="from git branch ${EGIT_BRANCH}"
|
||||||
|
else
|
||||||
|
patchsetname="${PATCH_BINUTILS_VER}-${PATCH_VER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n ${PATCH_VER} ]] || [[ ${PV} == *9999 ]] ; then
|
||||||
|
if ! use vanilla; then
|
||||||
|
einfo "Applying binutils patchset ${patchsetname}"
|
||||||
|
eapply "${WORKDIR}/patch"
|
||||||
|
einfo "Done."
|
||||||
|
|
||||||
|
# This is applied conditionally for now just out of caution.
|
||||||
|
# It should be okay on non-prefix systems though. See bug #892549.
|
||||||
|
if is_cross || use prefix; then
|
||||||
|
eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch \
|
||||||
|
"${FILESDIR}"/binutils-2.41-linker-prefix.patch
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure our explicit libdir paths don't get clobbered, bug #562460
|
||||||
|
sed -i \
|
||||||
|
-e 's:@bfdlibdir@:@libdir@:g' \
|
||||||
|
-e 's:@bfdincludedir@:@includedir@:g' \
|
||||||
|
{bfd,opcodes}/Makefile.in || die
|
||||||
|
|
||||||
|
# Apply things from PATCHES and user dirs
|
||||||
|
default
|
||||||
|
|
||||||
|
# Run misc portage update scripts
|
||||||
|
gnuconfig_update
|
||||||
|
elibtoolize --portage --no-uclibc
|
||||||
|
}
|
||||||
|
|
||||||
|
toolchain-binutils_bugurl() {
|
||||||
|
printf "https://bugs.gentoo.org/"
|
||||||
|
}
|
||||||
|
toolchain-binutils_pkgversion() {
|
||||||
|
printf "Gentoo ${PV}"
|
||||||
|
[[ -n ${PATCH_VER} ]] && printf " p${PATCH_VER}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||||
|
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||||
|
# more legible.
|
||||||
|
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||||
|
|
||||||
|
# Setup some paths
|
||||||
|
LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
||||||
|
INCPATH=${LIBPATH}/include
|
||||||
|
DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
|
||||||
|
if is_cross ; then
|
||||||
|
TOOLPATH=/usr/${CHOST}/${CTARGET}
|
||||||
|
else
|
||||||
|
TOOLPATH=/usr/${CTARGET}
|
||||||
|
fi
|
||||||
|
BINPATH=${TOOLPATH}/binutils-bin/${PV}
|
||||||
|
|
||||||
|
# Make sure we filter $LINGUAS so that only ones that
|
||||||
|
# actually work make it through, bug #42033
|
||||||
|
strip-linguas -u */po
|
||||||
|
|
||||||
|
# Keep things sane
|
||||||
|
strip-flags
|
||||||
|
use cet && filter-flags -mindirect-branch -mindirect-branch=*
|
||||||
|
use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
|
||||||
|
|
||||||
|
local x
|
||||||
|
echo
|
||||||
|
for x in CATEGORY CBUILD CHOST CTARGET CFLAGS LDFLAGS ; do
|
||||||
|
einfo "$(printf '%10s' ${x}:) ${!x}"
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
local myconf=()
|
||||||
|
|
||||||
|
if use plugins ; then
|
||||||
|
myconf+=( --enable-plugins )
|
||||||
|
fi
|
||||||
|
# enable gold (installed as ld.gold) and ld's plugin architecture
|
||||||
|
if use gold ; then
|
||||||
|
myconf+=( --enable-gold )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use nls ; then
|
||||||
|
myconf+=( --without-included-gettext )
|
||||||
|
else
|
||||||
|
myconf+=( --disable-nls )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=( --with-system-zlib )
|
||||||
|
|
||||||
|
# For bi-arch systems, enable a 64bit bfd. This matches the bi-arch
|
||||||
|
# logic in toolchain.eclass. bug #446946
|
||||||
|
#
|
||||||
|
# We used to do it for everyone, but it's slow on 32bit arches. bug #438522
|
||||||
|
case $(tc-arch) in
|
||||||
|
ppc|sparc|x86) myconf+=( --enable-64-bit-bfd ) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd )
|
||||||
|
|
||||||
|
[[ -n ${CBUILD} ]] && myconf+=( --build=${CBUILD} )
|
||||||
|
|
||||||
|
is_cross && myconf+=(
|
||||||
|
--with-sysroot="${EPREFIX}"/usr/${CTARGET}
|
||||||
|
--enable-poison-system-directories
|
||||||
|
)
|
||||||
|
|
||||||
|
myconf+=( --enable-secureplt )
|
||||||
|
|
||||||
|
# mips can't do hash-style=gnu ...
|
||||||
|
if [[ $(tc-arch) != mips ]] ; then
|
||||||
|
myconf+=( --enable-default-hash-style=gnu )
|
||||||
|
fi
|
||||||
|
|
||||||
|
myconf+=(
|
||||||
|
--prefix="${EPREFIX}"/usr
|
||||||
|
--host=${CHOST}
|
||||||
|
--target=${CTARGET}
|
||||||
|
--datadir="${EPREFIX}"${DATAPATH}
|
||||||
|
--datarootdir="${EPREFIX}"${DATAPATH}
|
||||||
|
--infodir="${EPREFIX}"${DATAPATH}/info
|
||||||
|
--mandir="${EPREFIX}"${DATAPATH}/man
|
||||||
|
--bindir="${EPREFIX}"${BINPATH}
|
||||||
|
--libdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--libexecdir="${EPREFIX}"${LIBPATH}
|
||||||
|
--includedir="${EPREFIX}"${INCPATH}
|
||||||
|
# portage's econf() does not detect presence of --d-d-t
|
||||||
|
# because it greps only top-level ./configure. But not
|
||||||
|
# libiberty's or bfd's configure.
|
||||||
|
--disable-dependency-tracking
|
||||||
|
--disable-silent-rules
|
||||||
|
--enable-obsolete
|
||||||
|
--enable-shared
|
||||||
|
--enable-threads
|
||||||
|
--enable-relro
|
||||||
|
--enable-install-libiberty
|
||||||
|
--enable-textrel-check=$(usex hardened error warning)
|
||||||
|
# Things to think about
|
||||||
|
#--enable-deterministic-archives
|
||||||
|
--enable-new-dtags
|
||||||
|
--disable-jansson
|
||||||
|
--disable-werror
|
||||||
|
--with-bugurl="$(toolchain-binutils_bugurl)"
|
||||||
|
--with-pkgversion="$(toolchain-binutils_pkgversion)"
|
||||||
|
$(use_enable static-libs static)
|
||||||
|
$(use_with zstd)
|
||||||
|
|
||||||
|
# Disable modules that are in a combined binutils/gdb tree, bug #490566
|
||||||
|
--disable-{gdb,gdbserver,libbacktrace,libdecnumber,readline,sim}
|
||||||
|
# Strip out broken static link flags: https://gcc.gnu.org/PR56750
|
||||||
|
--without-stage1-ldflags
|
||||||
|
# Change SONAME to avoid conflict across {native,cross}/binutils, binutils-libs. bug #666100
|
||||||
|
--with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)
|
||||||
|
|
||||||
|
$(use_with debuginfod)
|
||||||
|
|
||||||
|
# Avoid automagic dev-libs/msgpack dep, bug #865875
|
||||||
|
--without-msgpack
|
||||||
|
|
||||||
|
# Allow user to opt into CET for host libraries.
|
||||||
|
# Ideally we would like automagic-or-disabled here.
|
||||||
|
# But the check does not quite work on i686: bug #760926.
|
||||||
|
$(use_enable cet)
|
||||||
|
|
||||||
|
# We can enable this by default in future, but it's brand new
|
||||||
|
# in 2.39 with several bugs:
|
||||||
|
# - Doesn't build on musl (https://sourceware.org/bugzilla/show_bug.cgi?id=29477)
|
||||||
|
# - No man pages (https://sourceware.org/bugzilla/show_bug.cgi?id=29521)
|
||||||
|
# - Broken at runtime without Java (https://sourceware.org/bugzilla/show_bug.cgi?id=29479)
|
||||||
|
# - binutils-config (and this ebuild?) needs adaptation first (https://bugs.gentoo.org/865113)
|
||||||
|
$(use_enable gprofng)
|
||||||
|
)
|
||||||
|
|
||||||
|
case ${CTARGET} in
|
||||||
|
x86_64-*|aarch64*|arm64*|i[3456]*)
|
||||||
|
# These hardening options are available from 2.39+ but
|
||||||
|
# they unconditionally enable the behaviour even on arches
|
||||||
|
# where e.g. execstacks can't be avoided.
|
||||||
|
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29592.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so it doesn't
|
||||||
|
# create impossible broken combinations on some arches, like mips.
|
||||||
|
#
|
||||||
|
# TODO: Get the logic for this fixed upstream so --disable-* works
|
||||||
|
# as expected.
|
||||||
|
myconf+=(
|
||||||
|
--enable-warn-execstack=yes
|
||||||
|
--enable-warn-rwx-segments=yes
|
||||||
|
)
|
||||||
|
|
||||||
|
if use hardened ; then
|
||||||
|
myconf+=(
|
||||||
|
# TOOD: breaks glibc test suite
|
||||||
|
#--enable-error-execstack=yes
|
||||||
|
#--enable-error-rwx-segments=yes
|
||||||
|
--enable-default-execstack=no
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if use elibc_musl ; then
|
||||||
|
# Override our earlier setting for musl, as textrels don't
|
||||||
|
# work there at all. See bug #707660.
|
||||||
|
myconf+=(
|
||||||
|
--enable-textrel-check=error
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use test || { use pgo && tc-is-lto ; } ; then
|
||||||
|
# -Wa,* needs to be consistent everywhere or lto-wrapper will complain
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! is_cross ; then
|
||||||
|
myconf+=( $(use_enable pgo pgo-build $(tc-is-lto && echo "lto" || echo "yes")) )
|
||||||
|
|
||||||
|
if use pgo ; then
|
||||||
|
# We let configure handle it for us because it has to run
|
||||||
|
# the testsuite later on for profiling, and LTO isn't compatible
|
||||||
|
# with the testsuite.
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
export BUILD_CFLAGS="${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ECONF_SOURCE="${S}" econf "${myconf[@]}"
|
||||||
|
|
||||||
|
# Prevent makeinfo from running if doc is unset.
|
||||||
|
if ! use doc ; then
|
||||||
|
sed -i \
|
||||||
|
-e '/^MAKEINFO/s:=.*:= true:' \
|
||||||
|
Makefile || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
# see linker prefix patch
|
||||||
|
emake \
|
||||||
|
tooldir="${EPREFIX}${TOOLPATH}" \
|
||||||
|
gentoo_prefix=$(usex prefix-guest "${EPREFIX}"/usr /usr) \
|
||||||
|
all
|
||||||
|
|
||||||
|
# only build info pages if the user wants them
|
||||||
|
if use doc ; then
|
||||||
|
emake info
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we nuke the manpages when we're left with junk
|
||||||
|
# (like when we bootstrap, no perl -> no manpages)
|
||||||
|
find . -name '*.1' -a -size 0 -delete
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
(
|
||||||
|
# Tests don't expect LTO
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
# lto-wrapper warnings which confuse tests
|
||||||
|
filter-flags '-Wa,*'
|
||||||
|
|
||||||
|
# bug #637066
|
||||||
|
filter-flags -Wall -Wreturn-type
|
||||||
|
|
||||||
|
emake -k check \
|
||||||
|
CFLAGS_FOR_TARGET="${CFLAGS_FOR_TARGET:-${CFLAGS}}" \
|
||||||
|
CXXFLAGS_FOR_TARGET="${CXXFLAGS_FOR_TARGET:-${CXXFLAGS}}" \
|
||||||
|
LDFLAGS_FOR_TARGET="${LDFLAGS_FOR_TARGET:-${LDFLAGS}}" \
|
||||||
|
CFLAGS="${CFLAGS}" \
|
||||||
|
CXXFLAGS="${CXXFLAGS}" \
|
||||||
|
LDFLAGS="${LDFLAGS}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local x d
|
||||||
|
|
||||||
|
cd "${MY_BUILDDIR}" || die
|
||||||
|
|
||||||
|
# see Note [tooldir hack for ldscripts]
|
||||||
|
emake DESTDIR="${D}" tooldir="${EPREFIX}${LIBPATH}" install
|
||||||
|
rm -rf "${ED}"/${LIBPATH}/bin || die
|
||||||
|
use static-libs || find "${ED}" -name '*.la' -delete
|
||||||
|
|
||||||
|
# Newer versions of binutils get fancy with ${LIBPATH}, bug #171905
|
||||||
|
cd "${ED}"/${LIBPATH} || die
|
||||||
|
for d in ../* ; do
|
||||||
|
[[ ${d} == ../${PV} ]] && continue
|
||||||
|
mv ${d}/* . || die
|
||||||
|
rmdir ${d} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
# Now we collect everything intp the proper SLOT-ed dirs
|
||||||
|
# When something is built to cross-compile, it installs into
|
||||||
|
# /usr/$CHOST/ by default ... we have to 'fix' that :)
|
||||||
|
if is_cross ; then
|
||||||
|
cd "${ED}"/${BINPATH} || die
|
||||||
|
for x in * ; do
|
||||||
|
mv ${x} ${x/${CTARGET}-} || die
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -d ${ED}/usr/${CHOST}/${CTARGET} ]] ; then
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/include "${ED}"/${INCPATH}
|
||||||
|
mv "${ED}"/usr/${CHOST}/${CTARGET}/lib/* "${ED}"/${LIBPATH}/
|
||||||
|
rm -r "${ED}"/usr/${CHOST}/{include,lib}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto ${INCPATH}
|
||||||
|
local libiberty_headers=(
|
||||||
|
# Not all the libiberty headers. See libiberty/Makefile.in:install_to_libdir.
|
||||||
|
demangle.h
|
||||||
|
dyn-string.h
|
||||||
|
fibheap.h
|
||||||
|
hashtab.h
|
||||||
|
libiberty.h
|
||||||
|
objalloc.h
|
||||||
|
splay-tree.h
|
||||||
|
)
|
||||||
|
doins "${libiberty_headers[@]/#/${S}/include/}"
|
||||||
|
if [[ -d ${ED}/${LIBPATH}/lib ]] ; then
|
||||||
|
mv "${ED}"/${LIBPATH}/lib/* "${ED}"/${LIBPATH}/ || die
|
||||||
|
rm -r "${ED}"/${LIBPATH}/lib || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate an env.d entry for this binutils
|
||||||
|
insinto /etc/env.d/binutils
|
||||||
|
cat <<-EOF > "${T}"/env.d
|
||||||
|
TARGET="${CTARGET}"
|
||||||
|
VER="${PV}"
|
||||||
|
LIBPATH="${EPREFIX}${LIBPATH}"
|
||||||
|
EOF
|
||||||
|
newins "${T}"/env.d ${CTARGET}-${PV}
|
||||||
|
|
||||||
|
# Handle documentation
|
||||||
|
if ! is_cross ; then
|
||||||
|
cd "${S}" || die
|
||||||
|
dodoc README
|
||||||
|
|
||||||
|
docinto bfd
|
||||||
|
dodoc bfd/ChangeLog* bfd/README bfd/PORTING bfd/TODO
|
||||||
|
|
||||||
|
docinto binutils
|
||||||
|
dodoc binutils/ChangeLog binutils/NEWS binutils/README
|
||||||
|
|
||||||
|
docinto gas
|
||||||
|
dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/NEWS gas/README*
|
||||||
|
|
||||||
|
docinto gprof
|
||||||
|
dodoc gprof/ChangeLog* gprof/TEST gprof/TODO gprof/bbconv.pl
|
||||||
|
|
||||||
|
docinto ld
|
||||||
|
dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO
|
||||||
|
|
||||||
|
docinto libiberty
|
||||||
|
dodoc libiberty/ChangeLog* libiberty/README
|
||||||
|
|
||||||
|
docinto opcodes
|
||||||
|
dodoc opcodes/ChangeLog*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove shared info pages
|
||||||
|
rm -f "${ED}"/${DATAPATH}/info/{dir,configure.info,standards.info}
|
||||||
|
|
||||||
|
docompress "${DATAPATH}"/{info,man}
|
||||||
|
|
||||||
|
# Trim all empty dirs
|
||||||
|
find "${ED}" -depth -type d -exec rmdir {} + 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Make sure this ${CTARGET} has a binutils version selected
|
||||||
|
[[ -e ${EROOT}/etc/env.d/binutils/config-${CTARGET} ]] && return 0
|
||||||
|
binutils-config ${CTARGET}-${PV} || eerror binutils-config returned an error
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
local current_profile=$(binutils-config -c ${CTARGET})
|
||||||
|
|
||||||
|
# If no other versions exist, then uninstall for this
|
||||||
|
# target ... otherwise, switch to the newest version
|
||||||
|
# Note: only do this if this version is unmerged. We
|
||||||
|
# rerun binutils-config if this is a remerge, as
|
||||||
|
# we want the mtimes on the symlinks updated (if
|
||||||
|
# it is the same as the current selected profile)
|
||||||
|
if [[ ! -e ${EPREFIX}${BINPATH}/ld ]] && [[ ${current_profile} == ${CTARGET}-${PV} ]] ; then
|
||||||
|
local choice=$(binutils-config -l | grep ${CTARGET} | awk '{print $2}')
|
||||||
|
choice=${choice//$'\n'/ }
|
||||||
|
choice=${choice/* }
|
||||||
|
if [[ -z ${choice} ]] ; then
|
||||||
|
binutils-config -u ${CTARGET} || eerror binutils-config returned an error
|
||||||
|
else
|
||||||
|
binutils-config ${choice} || eerror binutils-config returned an error
|
||||||
|
fi
|
||||||
|
elif [[ $(CHOST=${CTARGET} binutils-config -c) == ${CTARGET}-${PV} ]] ; then
|
||||||
|
binutils-config ${CTARGET}-${PV} || eerror binutils-config returned an error
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note [slotting support]
|
||||||
|
# -----------------------
|
||||||
|
# Gentoo's layout for binutils files is non-standard as Gentoo
|
||||||
|
# supports slotted installation for binutils. Many tools
|
||||||
|
# still expect binutils to reside in known locations.
|
||||||
|
# binutils-config package restores symlinks into known locations,
|
||||||
|
# like:
|
||||||
|
# /usr/bin/${CTARGET}-<tool>
|
||||||
|
# /usr/bin/${CHOST}/${CTARGET}/lib/ldscrips
|
||||||
|
# /usr/include/
|
||||||
|
#
|
||||||
|
# Note [tooldir hack for ldscripts]
|
||||||
|
# ---------------------------------
|
||||||
|
# Build system does not allow ./configure to tweak every location
|
||||||
|
# we need for slotting binutils hence all the shuffling in
|
||||||
|
# src_install(). This note is about SCRIPTDIR define handling.
|
||||||
|
#
|
||||||
|
# SCRIPTDIR defines 'ldscripts/' directory location. SCRIPTDIR value
|
||||||
|
# is set at build-time in ld/Makefile.am as: 'scriptdir = $(tooldir)/lib'
|
||||||
|
# and hardcoded as -DSCRIPTDIR='"$(scriptdir)"' at compile time.
|
||||||
|
# Thus we can't just move files around after compilation finished.
|
||||||
|
#
|
||||||
|
# Our goal is the following:
|
||||||
|
# - at build-time set scriptdir to point to symlinked location:
|
||||||
|
# ${TOOLPATH}: /usr/${CHOST} (or /usr/${CHOST}/${CTARGET} for cross-case)
|
||||||
|
# - at install-time set scriptdir to point to slotted location:
|
||||||
|
# ${LIBPATH}: /usr/$(get_libdir)/binutils/${CTARGET}/${PV}
|
27
sys-devel/binutils/files/binutils-2.29.1-nogoldtest.patch
Normal file
27
sys-devel/binutils/files/binutils-2.29.1-nogoldtest.patch
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
From 40f6e93e5078f16897f23856886566fe3b546206 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>
|
||||||
|
Date: Fri, 3 Nov 2017 21:51:35 +0100
|
||||||
|
Subject: [PATCH] Gentoo: Disable gold testsuite for users since it fails
|
||||||
|
upstream
|
||||||
|
|
||||||
|
https://bugs.gentoo.org/634348
|
||||||
|
https://sourceware.org/bugzilla/show_bug.cgi?id=21090
|
||||||
|
---
|
||||||
|
Makefile.in | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.in b/Makefile.in
|
||||||
|
index 3acb83b8de..49de829bfa 100644
|
||||||
|
--- a/Makefile.in
|
||||||
|
+++ b/Makefile.in
|
||||||
|
@@ -2340,7 +2340,6 @@ check-host: \
|
||||||
|
maybe-check-mpc \
|
||||||
|
maybe-check-isl \
|
||||||
|
maybe-check-libelf \
|
||||||
|
- maybe-check-gold \
|
||||||
|
maybe-check-gprof \
|
||||||
|
maybe-check-intl \
|
||||||
|
maybe-check-tcl \
|
||||||
|
--
|
||||||
|
2.15.0
|
||||||
|
|
16
sys-devel/binutils/files/binutils-2.32-gcc-10.patch
Normal file
16
sys-devel/binutils/files/binutils-2.32-gcc-10.patch
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
commit a3972330f49f81b3bea64af0970d22f42ae56ec3
|
||||||
|
Author: Martin Liska <mliska@suse.cz>
|
||||||
|
Date: Fri Jun 7 07:36:52 2019 +0200
|
||||||
|
|
||||||
|
Fix a missing include of <string>
|
||||||
|
|
||||||
|
--- a/gold/errors.h
|
||||||
|
+++ b/gold/errors.h
|
||||||
|
@@ -24,6 +24,7 @@
|
||||||
|
#define GOLD_ERRORS_H
|
||||||
|
|
||||||
|
#include <cstdarg>
|
||||||
|
+#include <string>
|
||||||
|
|
||||||
|
#include "gold-threads.h"
|
||||||
|
|
39
sys-devel/binutils/files/binutils-2.33-gcc-10.patch
Normal file
39
sys-devel/binutils/files/binutils-2.33-gcc-10.patch
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
binutils: drop redundant 'program_name' definition
|
||||||
|
|
||||||
|
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=0b398d69acde3377dfbbeb8a4cfe87ae8c8562fa
|
||||||
|
--- a/binutils/coffdump.c
|
||||||
|
+++ b/binutils/coffdump.c
|
||||||
|
@@ -456,8 +456,6 @@ coff_dump (struct coff_ofile *ptr)
|
||||||
|
dump_coff_section (ptr->sections + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
-char * program_name;
|
||||||
|
-
|
||||||
|
static void
|
||||||
|
show_usage (FILE *file, int status)
|
||||||
|
{
|
||||||
|
--- a/binutils/srconv.c
|
||||||
|
+++ b/binutils/srconv.c
|
||||||
|
@@ -1687,8 +1687,6 @@ prescan (struct coff_ofile *otree)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-char *program_name;
|
||||||
|
-
|
||||||
|
ATTRIBUTE_NORETURN static void
|
||||||
|
show_usage (FILE *ffile, int status)
|
||||||
|
{
|
||||||
|
--- a/binutils/sysdump.c
|
||||||
|
+++ b/binutils/sysdump.c
|
||||||
|
@@ -633,8 +633,6 @@ module (void)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-char *program_name;
|
||||||
|
-
|
||||||
|
ATTRIBUTE_NORETURN static void
|
||||||
|
show_usage (FILE *ffile, int status)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.25.0
|
||||||
|
|
103
sys-devel/binutils/files/binutils-2.35.1-cet.patch
Normal file
103
sys-devel/binutils/files/binutils-2.35.1-cet.patch
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
https://bugs.gentoo.org/771765
|
||||||
|
https://sourceware.org/PR27397
|
||||||
|
|
||||||
|
On i586-like CPUs endbr32 added by -Wl,-z,ibt,-z,shstk
|
||||||
|
generates crashing binaries and causes ./configure failure.
|
||||||
|
|
||||||
|
From 847e4b3207f97762dc641db8d3b188081c3370c3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||||
|
Date: Fri, 12 Feb 2021 16:30:23 -0800
|
||||||
|
Subject: [PATCH] GCC_CET_HOST_FLAGS: Check if host supports multi-byte NOPs
|
||||||
|
|
||||||
|
---
|
||||||
|
config/cet.m4 | 19 ++++++++++++++++---
|
||||||
|
libiberty/configure | 29 +++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 45 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/config/cet.m4 b/config/cet.m4
|
||||||
|
index c67fb4f35b6..7718be1afe8 100644
|
||||||
|
--- a/config/cet.m4
|
||||||
|
+++ b/config/cet.m4
|
||||||
|
@@ -130,6 +130,18 @@ fi
|
||||||
|
if test x$may_have_cet = xyes; then
|
||||||
|
if test x$cross_compiling = xno; then
|
||||||
|
AC_TRY_RUN([
|
||||||
|
+int
|
||||||
|
+main ()
|
||||||
|
+{
|
||||||
|
+ asm ("endbr32");
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+ ],
|
||||||
|
+ [have_multi_byte_nop=yes],
|
||||||
|
+ [have_multi_byte_nop=no])
|
||||||
|
+ have_cet=no
|
||||||
|
+ if test x$have_multi_byte_nop = xyes; then
|
||||||
|
+ AC_TRY_RUN([
|
||||||
|
static void
|
||||||
|
foo (void)
|
||||||
|
{
|
||||||
|
@@ -155,9 +167,10 @@ main ()
|
||||||
|
bar ();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
- ],
|
||||||
|
- [have_cet=no],
|
||||||
|
- [have_cet=yes])
|
||||||
|
+ ],
|
||||||
|
+ [have_cet=no],
|
||||||
|
+ [have_cet=yes])
|
||||||
|
+ fi
|
||||||
|
if test x$enable_cet = xno -a x$have_cet = xyes; then
|
||||||
|
AC_MSG_ERROR([Intel CET must be enabled on Intel CET enabled host])
|
||||||
|
fi
|
||||||
|
diff --git a/libiberty/configure b/libiberty/configure
|
||||||
|
index 160b8c9e8b1..29a690d44fc 100755
|
||||||
|
--- a/libiberty/configure
|
||||||
|
+++ b/libiberty/configure
|
||||||
|
@@ -5539,6 +5539,34 @@ else
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
+int
|
||||||
|
+main ()
|
||||||
|
+{
|
||||||
|
+ asm ("endbr32");
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+_ACEOF
|
||||||
|
+if ac_fn_c_try_run "$LINENO"; then :
|
||||||
|
+ have_multi_byte_nop=yes
|
||||||
|
+else
|
||||||
|
+ have_multi_byte_nop=no
|
||||||
|
+fi
|
||||||
|
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||||
|
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+ have_cet=no
|
||||||
|
+ if test x$have_multi_byte_nop = xyes; then
|
||||||
|
+ if test "$cross_compiling" = yes; then :
|
||||||
|
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||||
|
+as_fn_error $? "cannot run test program while cross compiling
|
||||||
|
+See \`config.log' for more details" "$LINENO" 5; }
|
||||||
|
+else
|
||||||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
+/* end confdefs.h. */
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
foo (void)
|
||||||
|
{
|
||||||
|
@@ -5575,6 +5603,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||||
|
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
|
||||||
|
+ fi
|
||||||
|
if test x$enable_cet = xno -a x$have_cet = xyes; then
|
||||||
|
as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
--
|
||||||
|
2.29.2
|
||||||
|
|
136
sys-devel/binutils/files/binutils-2.35.2-powerpc-tests.patch
Normal file
136
sys-devel/binutils/files/binutils-2.35.2-powerpc-tests.patch
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
From: Alan Modra <amodra@gmail.com>
|
||||||
|
Date: Mon, 16 Nov 2020 22:08:05 +0000 (+1030)
|
||||||
|
Subject: PR26882, --enable-textrel-check=warning test failures on powerpc
|
||||||
|
X-Git-Tag: binutils-2_36~578
|
||||||
|
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=7cc340055d3993a25ded914aef88f784f16d46bc;hp=6f2643dbd2192e6fff77a5e6fec5141d209fd7d0
|
||||||
|
|
||||||
|
PR26882, --enable-textrel-check=warning test failures on powerpc
|
||||||
|
|
||||||
|
PR 26882
|
||||||
|
* testsuite/ld-powerpc/dotsym3.d: Add "-z notext" to ld options.
|
||||||
|
* testsuite/ld-powerpc/dotsym4.d: Likewise.
|
||||||
|
* testsuite/ld-powerpc/ppc476-shared.d: Likewise.
|
||||||
|
* testsuite/ld-powerpc/ppc476-shared2.d: Likewise.
|
||||||
|
* testsuite/ld-powerpc/powerpc.exp: Likewise for various tests.
|
||||||
|
* testsuite/ld-undefined/weak-fundef.s: Add BLPLT variant.
|
||||||
|
* testsuite/ld-undefined/weak-undef.exp: Define BLPLT for ppc32.
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/ld/testsuite/ld-powerpc/dotsym3.d b/ld/testsuite/ld-powerpc/dotsym3.d
|
||||||
|
index fac2f8ec732..215a9c2a6c1 100644
|
||||||
|
--- a/ld/testsuite/ld-powerpc/dotsym3.d
|
||||||
|
+++ b/ld/testsuite/ld-powerpc/dotsym3.d
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
#source: nodotsym.s
|
||||||
|
#source: dotsymref.s
|
||||||
|
#as: -a64
|
||||||
|
-#ld: -melf64ppc -Ttext=0x1000 -shared
|
||||||
|
+#ld: -melf64ppc -Ttext=0x1000 -shared -z notext
|
||||||
|
#objdump: -dR
|
||||||
|
|
||||||
|
.*: file format .*
|
||||||
|
diff --git a/ld/testsuite/ld-powerpc/dotsym4.d b/ld/testsuite/ld-powerpc/dotsym4.d
|
||||||
|
index fdd92f3da76..d774e83bcf6 100644
|
||||||
|
--- a/ld/testsuite/ld-powerpc/dotsym4.d
|
||||||
|
+++ b/ld/testsuite/ld-powerpc/dotsym4.d
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
#source: dotsymref.s
|
||||||
|
#source: nodotsym.s
|
||||||
|
#as: -a64
|
||||||
|
-#ld: -melf64ppc -Ttext=0x1000 -shared
|
||||||
|
+#ld: -melf64ppc -Ttext=0x1000 -shared -z notext
|
||||||
|
#objdump: -dR
|
||||||
|
|
||||||
|
.*: file format .*
|
||||||
|
diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
|
||||||
|
index 74af28d7421..2cbefb841c2 100644
|
||||||
|
--- a/ld/testsuite/ld-powerpc/powerpc.exp
|
||||||
|
+++ b/ld/testsuite/ld-powerpc/powerpc.exp
|
||||||
|
@@ -99,7 +99,7 @@ proc supports_ppc64 { } {
|
||||||
|
# readelf: Apply readelf options on result. Compare with regex (last arg).
|
||||||
|
|
||||||
|
set ppcelftests {
|
||||||
|
- {"Reloc section order" "-melf32ppc -shared -z nocombreloc" "" "-a32" {reloc.s}
|
||||||
|
+ {"Reloc section order" "-melf32ppc -shared -z nocombreloc -z notext" "" "-a32" {reloc.s}
|
||||||
|
{{objdump -hw reloc.d}} "reloc.so"}
|
||||||
|
{"APUinfo section processing" "-melf32ppc" ""
|
||||||
|
"-a32 -me500" {apuinfo1.s apuinfo-nul.s apuinfo2.s}
|
||||||
|
@@ -134,7 +134,7 @@ set ppcelftests {
|
||||||
|
{{readelf -WSsrl tlsexe32no.r} {objdump -dr tlsexe32no.d}
|
||||||
|
{objdump -sj.got tlsexe32no.g} {objdump -sj.tdata tlsexe32.t}}
|
||||||
|
"tlsexe32no"}
|
||||||
|
- {"TLS32 shared" "-shared -melf32ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o" "" "" {}
|
||||||
|
+ {"TLS32 shared" "-shared -melf32ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tls32.o" "" "" {}
|
||||||
|
{{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
|
||||||
|
{objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
|
||||||
|
"tls32.so"}
|
||||||
|
@@ -202,7 +202,7 @@ set ppc64elftests {
|
||||||
|
{{readelf -WSsrl tlsexeno.r} {objdump -dr tlsexeno.d}
|
||||||
|
{objdump -sj.got tlsexeno.g} {objdump -sj.tdata tlsexe.t}}
|
||||||
|
"tlsexeno"}
|
||||||
|
- {"TLS shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o" "" "" {}
|
||||||
|
+ {"TLS shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tls.o" "" "" {}
|
||||||
|
{{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
|
||||||
|
{objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
|
||||||
|
"tls.so"}
|
||||||
|
@@ -229,7 +229,7 @@ set ppc64elftests {
|
||||||
|
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetocno.d}
|
||||||
|
{objdump -sj.got tlsexetocno.g} {objdump -sj.tdata tlsexetoc.t}}
|
||||||
|
"tlsexetocno"}
|
||||||
|
- {"TLSTOC shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o" "" "" {}
|
||||||
|
+ {"TLSTOC shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tlstoc.o" "" "" {}
|
||||||
|
{{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
|
||||||
|
{objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
|
||||||
|
"tlstoc.so"}
|
||||||
|
diff --git a/ld/testsuite/ld-powerpc/ppc476-shared.d b/ld/testsuite/ld-powerpc/ppc476-shared.d
|
||||||
|
index 7953cb44e25..3b2cc8a155c 100644
|
||||||
|
--- a/ld/testsuite/ld-powerpc/ppc476-shared.d
|
||||||
|
+++ b/ld/testsuite/ld-powerpc/ppc476-shared.d
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
#source: ppc476-shared.s
|
||||||
|
#as: -a32
|
||||||
|
-#ld: -melf32ppc -q -shared -z common-page-size=0x10000 --ppc476-workaround -T ppc476-shared.lnk
|
||||||
|
+#ld: -melf32ppc -q -shared -z common-page-size=0x10000 -z notext --ppc476-workaround -T ppc476-shared.lnk
|
||||||
|
#objdump: -dr
|
||||||
|
#target: powerpc*-*-*
|
||||||
|
|
||||||
|
diff --git a/ld/testsuite/ld-powerpc/ppc476-shared2.d b/ld/testsuite/ld-powerpc/ppc476-shared2.d
|
||||||
|
index 26a5c41f988..48917fd4d92 100644
|
||||||
|
--- a/ld/testsuite/ld-powerpc/ppc476-shared2.d
|
||||||
|
+++ b/ld/testsuite/ld-powerpc/ppc476-shared2.d
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
#source: ppc476-shared.s
|
||||||
|
#as: -a32
|
||||||
|
-#ld: -melf32ppc -shared -z common-page-size=0x10000 --ppc476-workaround -T ppc476-shared.lnk
|
||||||
|
+#ld: -melf32ppc -shared -z common-page-size=0x10000 -z notext --ppc476-workaround -T ppc476-shared.lnk
|
||||||
|
#objdump: -R
|
||||||
|
#target: powerpc*-*-*
|
||||||
|
|
||||||
|
diff --git a/ld/testsuite/ld-undefined/weak-fundef.s b/ld/testsuite/ld-undefined/weak-fundef.s
|
||||||
|
index 2c20f799417..de8f641b6c2 100644
|
||||||
|
--- a/ld/testsuite/ld-undefined/weak-fundef.s
|
||||||
|
+++ b/ld/testsuite/ld-undefined/weak-fundef.s
|
||||||
|
@@ -5,6 +5,9 @@
|
||||||
|
bl undef_weak_fun
|
||||||
|
nop
|
||||||
|
.endif
|
||||||
|
+ .ifdef BLPLT
|
||||||
|
+ bl undef_weak_fun@plt
|
||||||
|
+ .endif
|
||||||
|
.ifdef CALLPLT
|
||||||
|
call undef_weak_fun@plt
|
||||||
|
.endif
|
||||||
|
diff --git a/ld/testsuite/ld-undefined/weak-undef.exp b/ld/testsuite/ld-undefined/weak-undef.exp
|
||||||
|
index 50c8e1483e3..14b6774c5bc 100644
|
||||||
|
--- a/ld/testsuite/ld-undefined/weak-undef.exp
|
||||||
|
+++ b/ld/testsuite/ld-undefined/weak-undef.exp
|
||||||
|
@@ -105,7 +105,8 @@ set asflags ""
|
||||||
|
switch -glob $target_triplet {
|
||||||
|
aarch64* -
|
||||||
|
arm* -
|
||||||
|
- powerpc* { set asflags "--defsym BL=1" }
|
||||||
|
+ powerpc64* { set asflags "--defsym BL=1" }
|
||||||
|
+ powerpc* { set asflags "--defsym BLPLT=1" }
|
||||||
|
hppa* { set asflags "--defsym HPPA=1" }
|
||||||
|
i\[3-7\]86* -
|
||||||
|
x86_64* { set asflags "--defsym CALLPLT=1" }
|
56
sys-devel/binutils/files/binutils-2.41-linker-prefix.patch
Normal file
56
sys-devel/binutils/files/binutils-2.41-linker-prefix.patch
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
https://bugs.gentoo.org/892549
|
||||||
|
https://github.com/gentoo/binutils-gdb/pull/5
|
||||||
|
|
||||||
|
From 531bc1536dfc3070c1f7d03e98fa14bcb81fdcd0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: James Le Cuirot <chewi@gentoo.org>
|
||||||
|
Date: Sat, 23 Dec 2023 13:48:10 +0000
|
||||||
|
Subject: [PATCH 2/2] ld: Allow a Gentoo-specific prefix to override the prefix
|
||||||
|
used by ld.bfd
|
||||||
|
|
||||||
|
This prefix is only used to locate $prefix/etc/ld.so.conf, with $prefix
|
||||||
|
usually being /usr. This file is important on Gentoo Prefix systems,
|
||||||
|
where the /usr prefix is within another directory. The problem is that
|
||||||
|
Gentoo already passes the same directory as the sysroot, and ld.bfd
|
||||||
|
therefore looks for /myprefix/myprefix/usr/etc/ld.so.conf.
|
||||||
|
|
||||||
|
The sysroot is dynamic, while the prefix is hardcoded. A hardcoded
|
||||||
|
prefix that isn't just /usr is unhelpful, not just because of the
|
||||||
|
doubled prefix issue above, but also because it prevents ld.bfd from
|
||||||
|
working effectively outside its native environment. We will therefore
|
||||||
|
hardcode it to just /usr.
|
||||||
|
|
||||||
|
This change does not simply do that though and sets up a $gentoo_prefix
|
||||||
|
variable instead, with $prefix as a fallback. This is necessary because
|
||||||
|
Gentoo prefix-guest systems, which use the host's libc, do not apply a
|
||||||
|
sysroot like RAP prefix systems do. In that case, we must preserve the
|
||||||
|
existing behaviour. The binutils ebuild will be responsible for setting
|
||||||
|
this variable appropriately.
|
||||||
|
---
|
||||||
|
ld/emultempl/elf.em | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ld/emultempl/elf.em b/ld/emultempl/elf.em
|
||||||
|
index 3f67f8b09d9..78c8e909b6c 100644
|
||||||
|
--- a/ld/emultempl/elf.em
|
||||||
|
+++ b/ld/emultempl/elf.em
|
||||||
|
@@ -138,7 +138,7 @@ gld${EMULATION_NAME}_before_plugin_all_symbols_read (void)
|
||||||
|
ldelf_before_plugin_all_symbols_read ($IS_LIBPATH, $IS_NATIVE,
|
||||||
|
$IS_LINUX_TARGET,
|
||||||
|
$IS_FREEBSD_TARGET,
|
||||||
|
- $ELFSIZE, "$prefix");
|
||||||
|
+ $ELFSIZE, "${gentoo_prefix-${prefix}}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* This is called after all the input files have been opened. */
|
||||||
|
@@ -147,7 +147,7 @@ static void
|
||||||
|
gld${EMULATION_NAME}_after_open (void)
|
||||||
|
{
|
||||||
|
ldelf_after_open ($IS_LIBPATH, $IS_NATIVE,
|
||||||
|
- $IS_LINUX_TARGET, $IS_FREEBSD_TARGET, $ELFSIZE, "$prefix");
|
||||||
|
+ $IS_LINUX_TARGET, $IS_FREEBSD_TARGET, $ELFSIZE, "${gentoo_prefix-${prefix}}");
|
||||||
|
}
|
||||||
|
|
||||||
|
EOF
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
21
sys-devel/binutils/metadata.xml
Normal file
21
sys-devel/binutils/metadata.xml
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="project">
|
||||||
|
<email>toolchain@gentoo.org</email>
|
||||||
|
<name>Gentoo Toolchain Project</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="cet">Enable Intel Control-flow Enforcement Technology.</flag>
|
||||||
|
<flag name="default-gold">Set ld to point to ld.gold instead of ld.bfd</flag>
|
||||||
|
<flag name="gold">Build ld.gold linker</flag>
|
||||||
|
<flag name="gprofng">Enable the next-generation gprofng profiler</flag>
|
||||||
|
<flag name="pgo">Build binutils with Profile Guided Optimization (PGO) and LTO</flag>
|
||||||
|
<flag name="plugins">Enable plugin support in tools</flag>
|
||||||
|
<flag name="multitarget">Adds support to binutils for cross compiling (does not work with gas)</flag>
|
||||||
|
<flag name="debuginfod">Enable debuginfod support via <pkg>dev-libs/elfutils</pkg> libdebuginfod</flag>
|
||||||
|
</use>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="cpe">cpe:/a:gnu:binutils</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
201
www-client/firefox/Manifest
Normal file
201
www-client/firefox/Manifest
Normal file
|
@ -0,0 +1,201 @@
|
||||||
|
DIST firefox-115.12.0esr-ach.xpi 458871 BLAKE2B 2248f7c3e97a1dbdd8faec8473763af575fc26a0a1ef6fc2f0d2d8994e2692dbb5eb6a304f58ec26ac856ff4d025e41542b0ef51652bb4bdb8b3c454f8e187cb SHA512 10006c2ac7120eebaa0070e067d48e5d841d17f66fa8dc6c7b1060888d9db324ffc46cb112c4924224b61812bff232fa852f75f5addc910b2240a83b30d7411e
|
||||||
|
DIST firefox-115.12.0esr-af.xpi 415033 BLAKE2B 9ed02f9444f6448f6d83c9dff2c2b3774742e3286230f2fbc5fabb01a3c754d0af61dd6d462e551bc546d73f2e94d78e591c199323545d1e8fb675d1ea7d1592 SHA512 caf804b635bccc5943c5884bdfa377a91b219e0b896fae6bbe1f087841e5959c9e3d452837f6461f24dc08f660105a0c950dbb639f55f6b6b1d18b6fbbe687ac
|
||||||
|
DIST firefox-115.12.0esr-an.xpi 499416 BLAKE2B 5d80997630dc31824a1a7d0ab948bb0bb7c986f84a5cd958dcc7a36d627899024d2e8b1fcdbb581a698b909aec8fae93c198c25808e37c63ef35911ccc31a831 SHA512 7128bba55aee22d753ce5b06395f920d5b389b4f0ae73c49458ba6ccfd20c79fb4a8cc4da670f4b7b50666b9d5dd8ee9983b28feef80d211cc74f83265a96d5d
|
||||||
|
DIST firefox-115.12.0esr-ar.xpi 605448 BLAKE2B 0ad4f9bc350d3045163958bc0436f2b1106def071c7cfb7f4fdff579310637ef490a9eb76d2718f1d02c5d354d2c3b707f687915308501427fa3ba52c2db5e3f SHA512 9267276fda3fcc8d189d3c5885b1b748401e634ec5e9c6a70461702058cbd85d385dc479a89168311783662eba94e3eca2bc82f5c2e76d6efd1e96ffa5a440d7
|
||||||
|
DIST firefox-115.12.0esr-ast.xpi 491178 BLAKE2B b168585a78d30f93026d957c49aa56e62072bc1b13031d8c4b02c4da2b56e17aa2f0045978aef38a6ff4af4f7700c2301369e9c646ba50e5983844a9d4b77709 SHA512 f68b577e9118218c4a3afcdc9332efc1f6acb1522bcdf062f8ba5fba471305a26a817fa023af03e11c9df975771d23453ac63872fb113bd5dc04fbddf2eec28d
|
||||||
|
DIST firefox-115.12.0esr-az.xpi 485943 BLAKE2B 39433d83487517305966792cd6ab1da29578d192bea4e55dc8b0c347ccf68c060348da5d5e19f22a3371dce7773eff0c78127c8b551d76aee6ab4b061dc61e1d SHA512 6eee0312d977f6f7666a7b1da08ec1bc169f53d195b1b72e3022731f1f32b24b4965b96076d5dfa9522724931d7d4b92ceff94ac1e89e54fdec695ca735b6e2b
|
||||||
|
DIST firefox-115.12.0esr-be.xpi 708816 BLAKE2B 154af6e9a5796c97fbc1243fbd478126fc212f39337cc373392cce67eeb2074f0dd45b3c8bcc140a986863ed098cee2d3783aaf996994870e61a05106a408099 SHA512 39bdb8c0641c3a47df9191e6a87f24bcb79ce253d84493b97a1bf2ec96a07da8d21ce079e20d78a55a2652e10b53d55b0dd7d0641d6d11577ffe772eee03adec
|
||||||
|
DIST firefox-115.12.0esr-bg.xpi 597482 BLAKE2B bd00820d9ef5886c3f79d77102e14725c5c122d25e287438a374aacc04184ec559a4860ec4b0fff5a7ec6f9cb0da889a16101a8cd3318331971ac83c858ccb2e SHA512 70c96aa87b62cb5a62f398d8da8efcb2fbb48f3bfa1ca863edb1805830d09e0c91e2a219d0ef15ebb450376cb4f2255a96ef84014ddc5545797e41759b934fe8
|
||||||
|
DIST firefox-115.12.0esr-bn.xpi 576198 BLAKE2B 629984fdd10b5b633cf1e6c580da7e7744ee16fbf9266b086d26c458c0cfbfa8a31ad51cba94b0691a6aeb11a80ba75ba6437e5c5c99257ee8174ca4d2fd7525 SHA512 a21d7cd4c695510707e669c7ee98dbf39fb6bcb36f396d51fa42913515f45f0fbabd011c5cb0a649a877580282426e1226c93b45995a6c5a6a399c2b64dc50e7
|
||||||
|
DIST firefox-115.12.0esr-br.xpi 583261 BLAKE2B c1ff94f26b3ef4f6459d2d571994fa1465808b8d7555be1c833bb7424c6edc22b5beeff4bbf728457ecabbb954a5ec00a4657fb7782e9de86964a16c4d7ee1e4 SHA512 ffc2e8c1db04d1c60c797322a685b3dee07cbd0ac9a0baa177966191b4ce01990bffdec8e9f224fae41f22ac57b895018a4c1696695179c6b6a25addc5d762f8
|
||||||
|
DIST firefox-115.12.0esr-bs.xpi 496138 BLAKE2B c24fde1d450b49534473c3f8a765d758d3e4e03d87aee04532a2e31181042d87ae0eb1e46e6ab9127ea990f63feced030c368998f146471397a04266588014de SHA512 d849e3b61ed2822a4250b874a386f9a348431318dd4ee60ccf3dc3c6c28be131a0f4504b8f2ce07a044216ccf310d94c4f359937319213d73324ed39ef562e64
|
||||||
|
DIST firefox-115.12.0esr-ca-valencia.xpi 539116 BLAKE2B 7cda7f974051c78dc4ee0af93dda1be9e73f1c1eecc44097fbcd5d37a5e3f4fff92a859c99f7d41f3d826e38a89cbf022d5b500755128d7d805a32ccfedb29b6 SHA512 08ab75fcd349c4fc78baba779330c975908625cfb5c0dd6bdb70f35a1b261b6276b9898291bdc7fdc7153faf0d069f466c0302b0dc360d82c40e21b09a5ba1c2
|
||||||
|
DIST firefox-115.12.0esr-ca.xpi 578636 BLAKE2B 7e4f0382c0b227098575f16a50b5d8e32fab616ec36cbea905292750a315094089466111aca6a92659d73fb447da2393d9a51d893a6d9194fe0f4808bb9ffabe SHA512 c73b56efb677281e2562cd6ee1101bdd2ba02480839463a759611f80cb32285904e9714163d9d646a2e0c13cd52c28c22952de70efa781d5d825b82afb49be86
|
||||||
|
DIST firefox-115.12.0esr-cak.xpi 586196 BLAKE2B 79a19c17a8ee7153f37db50a1e628fed20c5b299fa62d62d7642afbee461f90997781ab2bf24ff5ca7c750a6ac32370026e9058f39d89876808c116dcac37596 SHA512 544b1e77224bfc69b4c26893d996f0a9ba85806d592f7abbe945f3ab970fe2c4e2201e3c24f6f939a408e96d44ea40744c01bc11df722ab1bdd1196340ee7340
|
||||||
|
DIST firefox-115.12.0esr-cs.xpi 652720 BLAKE2B 5a66970d37b7127a4dff31d3d31d57761647615e7e19c0c12029d48c7c39590f5e9a5afbee138da6f02b06c8c158bef97b3cf506cd0e4c43dd90a60101691c32 SHA512 eff4635f9a3e96e143c171d6a8f120631c0244824e1fad9fe3cef3e2d2ffbe1e2573e9f4134622ad67d6de87cd9e9a429688024a8a3bea200c9779a7f7f5fb04
|
||||||
|
DIST firefox-115.12.0esr-cy.xpi 618131 BLAKE2B 0516c1cebb90157040ff87e82804d0dfefb7cf117086b2ffa84abeadc74d2295073a868e49fa4541c61c97a9b03477e85f57faa29637f85ba96ea9634b05ab33 SHA512 77dcd57b4a8a4d630be5953f51d4804676eeeb49a3817756d6b967504d5cdf62f79481c1ed64930e860b5ed9cf5244bd90e1caf01e4ee3115920bb290135e4a4
|
||||||
|
DIST firefox-115.12.0esr-da.xpi 607127 BLAKE2B 466503bf3dc57dad0254f5b4aa91772ceed8a768b2ed39b4057b9e92d66d19117a3f6f6ce87a77407a4421c3349e033fb98ef3c83b927b4dec91ce24c40accb7 SHA512 f223ba174cf06d04d64893fa5b11123f14c8c8d8de584a15a574842e5b7dc9a3478363b14260ff7f98427b5fbec67fdbdfa19b00d12058393befdaf734f97d70
|
||||||
|
DIST firefox-115.12.0esr-de.xpi 625998 BLAKE2B 431174710428e888d43a15d7e27b328bb584098a5cbaf5ced8698e5ae21cc4d91b47537e026a889fd3aff0ac061453d2129bacdbd8c989a7980e102f3ef68794 SHA512 a5c7a3938962dd908bd30188064f878a307fa182c30bd38692c66e6076221afdbac917e365230ede4695d36354b83dcd7f68976221c63feba24b2a90e5f054ce
|
||||||
|
DIST firefox-115.12.0esr-dsb.xpi 645214 BLAKE2B c3fbb72b15f431e22512d44bf39c7d30a68e0394d2f5e33c26b758330027b87e8b15e5b15ab013fee2bdc68d905e8e826af21bd132d6d38728c10bfb8cb39839 SHA512 8e890f3e900ffad9bfa3052bc083350c67e7e389252df5e8acfea3bc2ad9e1977273f02a13aa3fc2f17e49f7f5760e17a13b588c4472598addec5f083b389fa9
|
||||||
|
DIST firefox-115.12.0esr-el.xpi 726149 BLAKE2B 8365d9da2f2a2011f95a6397b4c938303a7bc38102a642bb256194567f2e09572f749193c9829952cab9e6bd01a9b136f9157cd2a4b9aab3e4a3ace099cd230e SHA512 de8653a03611bfbc257cd7050fcf5367fb69d17af2845a2ec59a94a7d708831cdba4020c377b3daba59e401985bf44d07fe3584c8c01f4254a05a78f589c28d8
|
||||||
|
DIST firefox-115.12.0esr-en-CA.xpi 577358 BLAKE2B f365b4b9e25a412f465440031bf9e433c7942176957b6eca9060dc7da57199d090c4a506e3585abf6a718e3a4f6ae21dc8e365fae2d8e26613b3351b9bebd13e SHA512 f6a455a7f5ecf80b72d58c1b5f1931d6461e9ac186e304486cd16c993991f7f9e58cdb4105340ba7e824be3877af4a839d561ebbc2301cbc0f9b30a7d770b7ed
|
||||||
|
DIST firefox-115.12.0esr-en-GB.xpi 579687 BLAKE2B f88d078b8eb520728fd9fa518a6da077f9eae3d088ba8cb7aaad838090500093a9393a275999b50ad31171aac377da8f5897bfcf61504855fbd4b21e86a70208 SHA512 d165c1cc1a28862a469e96e9a292d3df5a7a2e55613686267c716c622ee17e0a51491ffc805064563b828bdaac34d689da03ac87f84786a468f12efdeb7cb4a3
|
||||||
|
DIST firefox-115.12.0esr-eo.xpi 605209 BLAKE2B 6906d490d8c13bd423b238860399da80bee4aa5181fca598bccedd034b1a49f511c562d9850c4ba534cae3e9d8d7472eceea2298a949f69cea1b46067e244bc9 SHA512 10dcedbf2c40f7661d3165e48529e6559956c4b1ff8a146614d3297d11d9629ace243634612050c251fa05bc05a9e5ce5bb5bf7f25c41a0a7b9d383044e64c77
|
||||||
|
DIST firefox-115.12.0esr-es-AR.xpi 622322 BLAKE2B 1fa446092a46c5195dec1139110f53b241355e9f7bb9c56c7c900dfd68275f6cf38c98d68f64e8ccf9a3cec53896bee1a34125293c104264916a91bd05c669c4 SHA512 61d3a34021e9e41674d8590dbc6577308461d1ab67a8835000d05f5d791479cdd0831a76bb114f2f9ecddf73bff5460e4d22ab59ea73b8f685d107813d113326
|
||||||
|
DIST firefox-115.12.0esr-es-CL.xpi 621619 BLAKE2B 87ea92bbe5f2da0adc6696ddd8731d62a7d010b58c582e626b858140966f553ae8031933029b0be5ae19808f5fcf4865b57fc6786998ecc905165cbf26f939e4 SHA512 8353bc5ce2b62c76875cf85acfe4554392d976f6a682a3fa1e80dccdcd77b61276bb6b714d6a540950967a77a246dbd60002741232affa6d7b6781e04b0c3fc0
|
||||||
|
DIST firefox-115.12.0esr-es-ES.xpi 616452 BLAKE2B 70c2bf47a57e7c0f44959f0d9b5468823d72a1ad7a05f5fc7085325ddb2c988feddc8087beb86f56397e4e5559ba4955a1f7f1a5209bb3b4cd489c7ba8d5d511 SHA512 3090a0c5a749c4c9a35c481d78cc326d740fa8362e9814128ed32ed1239d21a578165ae7c3049824178c66b390d1693a5e38af3482a231c96564392cbd9ef983
|
||||||
|
DIST firefox-115.12.0esr-es-MX.xpi 584262 BLAKE2B 700c89d082e048252098759d7fc0b3fee4b2295f2aae7ecf36e9dc147a6f52040cab7224440579cf78e8216bdeb00caed7619b0d709800b29fae2517778e18f5 SHA512 55b11e012d4ef5703629c303b8e0fb54ffb1729a15051683641ec9f22abd73e6b84c608487a39ac264548f35fc6d2673e1d922ed67ac5166222ca17927fc3769
|
||||||
|
DIST firefox-115.12.0esr-et.xpi 532914 BLAKE2B 9121f60a81f1937398a298947fa2adc163a8a667e6d779f5f15b3267f118bb759dc6361c9f2fd92d13aa0b1eab9cb694497225bbf61b924595d70e56e6c82962 SHA512 7297dc581a658a33dbdecaf5d070aabe45125104812a493d9516f3fea3ae83e134a7cd9e7afd80823bf23d5dcb614225ec53f56cf70eeba2a4e3ee86cc887ccb
|
||||||
|
DIST firefox-115.12.0esr-eu.xpi 589120 BLAKE2B a14bacaf147e8f3b8b06e963cad14e9b28d17c0368ab5178ef56e44959020c38e7543365d0ee2f11e69fe582bf1a39ed0540cef46bbec4db27ec65c45f0be458 SHA512 c7fcbcd436cb93e919fe6be78647746489981b8c6d61a3dd8902d37bea4d1f4ea44d31c9b1c5690d1d874d5bf1e9bfd4c7b572b5abb92afcf2bd87aed47821ab
|
||||||
|
DIST firefox-115.12.0esr-fa.xpi 584206 BLAKE2B 02c044de26628dd9765f9d4498f4b93e4b88d2545b291fd8292fecd4388d749adae837bf81970d79332e4c0eab2e6bc077af057db9a1b1e2fb5702b01a3f95f5 SHA512 5821002c5b37aaac5a33663ab4f19edc09190d78dad3794240f59b0ff7c971fc35a0ee057f7d8d1bc44a3196ded72a4891270d9e5ab316118bacd5407daab420
|
||||||
|
DIST firefox-115.12.0esr-ff.xpi 471598 BLAKE2B fa6df59bf6d4ca71f0c033b63d7cfa125e221ca9e8b9af74c1895551ef5fe242baa71b4d2b3a82eeb3714494bbcc33242c1dc92f1d6a4866ccadf370b2196bb8 SHA512 c52b2b92982b6c7d98deaa825754061ee157b72a43d0aa9cfbf8a38e4d12c6ffafa8a61513eaeb0533fe4a86bb3f3b40eb28b1d7148e7c23d10a4a15703c600d
|
||||||
|
DIST firefox-115.12.0esr-fi.xpi 600787 BLAKE2B 4268db3a28ad83b6ee4e1b780575cdf92008e65ab49b59b64543c524d48319fb81622bb5e39c2da8c014d05cfbd115565c6dbb5785b2fd6ba712e56147447497 SHA512 18474b986f7e18581ad6a18024f95535ce373bf8b4cdcac71642350df035f0ade203c3ef9ab7fba2496f1090ce9a13253a9b64e88cc5a6296999350c827a320d
|
||||||
|
DIST firefox-115.12.0esr-fr.xpi 635427 BLAKE2B cd44bc5b076ae9e596c5db692d9d4e9d7471f37ca3043fa08d75eb3807fe8921663414bfcdf8ad65b19c100019eb3710483c411db651cd3b5666a7e7e4b91ed1 SHA512 c8f2419e3fb61402e2736cbe8cc3b9db7f1ce7e13247f7290e43609f7427620624d2828ebf9417641da6b44c1f883853f0fbec5499165204cd85a01ecba2a5d5
|
||||||
|
DIST firefox-115.12.0esr-fur.xpi 626940 BLAKE2B 28b5ec2beaca0c3a6454536ce5cd302a63d5b0a15ee57caec09ac422b3d493ea7761c8e9ad6e473e753908857766d92ba9b2e56751d597a900b161fe50857414 SHA512 43367025eb82a7e1ccedce36858b19566fbec741904aca6a5eb21ab5432c489c8af98fb4a0959e3614e694f194cdc65c72bf263cace3ea86d11e11731725e5d3
|
||||||
|
DIST firefox-115.12.0esr-fy-NL.xpi 617947 BLAKE2B 1ee6bff1636334f498297bbce1353eccd1b03fba5f2e64679061f2393b2fd31d59249c3f58d40660b383678003923ac442197c843a41133b8517200f2203b92c SHA512 d877309f75c8368f3dc2b3a890ad92b4961ad6212b9eb43675d4efd49425566b264854616f2ff98a7496ab783cdff91b8ca1ca324ff2ddf981c6255d840a5da3
|
||||||
|
DIST firefox-115.12.0esr-ga-IE.xpi 467493 BLAKE2B d3c7aac9a3737811521d246e89055d2eb8aad1a5f4faf28306848cd841e59bbc958f72235e918817bcdf72e015ea75f3a326715b33a50bc91d184977d5b4732f SHA512 0b895ba289902d318d3da95d9319ed481cfca4720ed7bb13b7d3421e076c167cfb5da7af30d5af107f497f75d0e511fce9b4c3d8b38dbdb922a5e39c335ebc86
|
||||||
|
DIST firefox-115.12.0esr-gd.xpi 589810 BLAKE2B 26c7446bc4f249e15a889a3db07ad02a09131e8a587d7db4530181e83842a82c530ddda26516e2a1c0d5f96a8a11d91dd194622dca447b136a79db4481321122 SHA512 6658d35b8029bf432fb843567e52ff6cc061f100ce25341b0ac7f3a4b566c9219b72c54053bf7a2c69ba2597dd72f868f27203fafb06ca5eba0029b8b361e37e
|
||||||
|
DIST firefox-115.12.0esr-gl.xpi 599816 BLAKE2B 39168be735116715fbb469a094d277a35692ea3494be28307cbedc5f8ccba7bcc403ca70b4c4022424e0e5bf3440a870b26dc47baed566139b5b27759a6cac3d SHA512 f0bc9c0ed2f9977a01895e61804d095a3e4ae99c355c3395b0ca289b274806c8bf008f40e43cb85d1dfc1c491f428fffd3e4aee24fdf955b3344a59b6d8faf7f
|
||||||
|
DIST firefox-115.12.0esr-gn.xpi 633581 BLAKE2B a27213cf8d4298592fb16e80e9e8c015313ec1a9616fabb1596917eaca54921fcdd43f092b4d945c05d00c427367bd19ca34261778846494fb6e9c5b18e788b7 SHA512 5bd8ab0cb3e1c723a7bad96f53abe0cf6aeaacb2b09a529fd6ca5182e66439b1e14a058d221ecd185dbdee12455fe87a9d583993b6b107264565e37325fb7075
|
||||||
|
DIST firefox-115.12.0esr-gu-IN.xpi 523240 BLAKE2B 6eb526c39b660c1c1fbc9e1a1c103e76484720f705f148986ceccdee4e33488f9c37d3d611536214a97c5449afda62f92b65099b1e8305d826be87eb6acb4807 SHA512 e48eecc85c79b77e511981026dc30e6689c30157384b3e710eaad641b7f0f7201ee2f0c03b21e2794304846eb33398ecb3b714b1c54fbebf50bf8272bb7e50e3
|
||||||
|
DIST firefox-115.12.0esr-he.xpi 623933 BLAKE2B a33953714107b57c0375da6cb06bde852033eae513c925b9d58ba0ff7fc9d6c902a5975076152a3a52978623507f80544a70afe4e4ec72073cf697738416aa41 SHA512 71986c5dbd1968f44637f0907cd26a4c260a23e6152dca6d73861f9567ffc400a2be8dc4c23bb7f37e57470314a600d4e00adee88b5c2ce8f29ad93c135e4d9c
|
||||||
|
DIST firefox-115.12.0esr-hi-IN.xpi 559922 BLAKE2B 80fd1df96fc7418169a5763cea79b4df9eb956aba35f9bbcf1dc1bee2d420f1dbdbcea329105a05a4cb65ee68b2568a57a5deb8255fa6330fc824031713b2216 SHA512 d9d1bf8fc878bf77fb5413be8cd579b520bca8ae22dd61a656bf2c85454ca240f2ec71b4f4a4fd269e79ce550c18738a4de10de537ffa6190d3f290d770a987e
|
||||||
|
DIST firefox-115.12.0esr-hr.xpi 550268 BLAKE2B d6c2f44b9a25b876dce5f96d09e6021e0670bf70b56bc47ea500bffc6f37478f9edc3714a5231e7de50fb70f571740b10baf58fb364cca25e5d8b2ca8695bc4f SHA512 da176d51f5b03958a6355361280533e0b6fff627028b5f559903965ba5813926155ef6fc8f58c940d8cc781c74dfd708a339c12fc019ca280e0746cbf73a5159
|
||||||
|
DIST firefox-115.12.0esr-hsb.xpi 641205 BLAKE2B ae41673eb7d4c385c1ba8aeca6b084262da47c494f8671114e34a791b35b3c153928932ee69a95d68d59368317c3188c277f55988d80e6167d8c15cdbe3ef76a SHA512 2f956505757ee6de39d2b95c889736a5a4c1ad9a4dd742ae569c648e7528c3e5157f126326451755a8a6eed0a761182d540f0bb31cfaa29a14c91729f900a1a4
|
||||||
|
DIST firefox-115.12.0esr-hu.xpi 644337 BLAKE2B 32fa1a01f76912f642b975bba0186fec6c5cd88c8530fdd9e1848214af3d54322fde37adcc80840869745b81dd7d83ffa6300aa3683d655688e8bf42a34808fe SHA512 12c9b1c9edd025261ceb4860b26a77895dcf0766dffbf41bd0a6a96673d9ea58990e2586682682cf64eb90080b009dce68a1ed4fdf64ec11f2d273a24d1ec554
|
||||||
|
DIST firefox-115.12.0esr-hy-AM.xpi 645152 BLAKE2B cd04323e785593eae5c56f4aba0bfdbb28e4a94a9d4e611d42b01bdec9a87c5151e5cb67384839bd236ba5594e7291bea82312f298f85dffc982463219e56eb8 SHA512 dc12ec1a589ba093d1091eb29b2b0b48bdcf1155bc051592b9bbbd26cd2afdd57d358423f132cfe46f45ff44ba4b4ba7980a3355fd9545d718e69f7e0b5b5967
|
||||||
|
DIST firefox-115.12.0esr-ia.xpi 605553 BLAKE2B 01b5097e5c81401094d4cb7bdb3c57f3e00cf0bd98c8b36ca90e79f19fa54ab1e34ffeeaa83e6ef64bdd6b64e1407fe65bc638dacd3c31488a77447f1a76d7c3 SHA512 284bc4e2251947bcd820cfce92b34c0c9c728d8b4f4221919229117bb8699650394e27da16b51655ab13b97652f05bcda8055646f227e570ecc10f8c2da42b67
|
||||||
|
DIST firefox-115.12.0esr-id.xpi 567417 BLAKE2B 357ad9499048eb6f4b3da70dbc8ac2b8c1f64748ff8a6d4ef0c208ad5cd56e291e48b04405dd7dd8f75d88fb071bedd15685ef11402324f7b46115850211cd47 SHA512 5008d1379e40accbafc9db3c3ae3d1d45548f0013077f1e7ee5fc1c9b56df27d1989a77c916dba265e3ec5a331c77ae49f2752d35699fc5b7794503379619528
|
||||||
|
DIST firefox-115.12.0esr-is.xpi 608078 BLAKE2B ee059a899f1a5c3e710f4fba0366d84b49e65fc0d77b5506217d91e3f5877198e155965a787ebb9dee9afb1ee231ad2895189dc4b9d90108ff14e46d6e6a8b0b SHA512 fa92ffe6001b56b3faca98625a1e7fe5a222a44de2b6e83a321b66bd7dd39e38e3a0f36d3815cbad462479ecfecdaf6f902d12321f3ad1b81d54958fe5d99f14
|
||||||
|
DIST firefox-115.12.0esr-it.xpi 561851 BLAKE2B e3230dbd4fdaa1afb4694152e73f998643d1554419ccbf637aa47c85ff2e0bbea1c4f50eb8c1bf40673a9c6fae6a415bed2ca049f904dc52424b0d113dfaef8e SHA512 f3a90857b024bad26b5273abfff622c759aa68089b5d00794faa07aaed4c2f49082945051695a5004de2a9a8bfbf5b958aba5f73704461e76910e490ef7036fa
|
||||||
|
DIST firefox-115.12.0esr-ja.xpi 670993 BLAKE2B 8d1310914d31e402f9fbb3f3f3a1fd904f9b736bcad9341ce5d5bc3f27bcdffd5f434bfc1000d8c31e3b3d0ec8bc2cf4ce801e5901dccc37378f9f1c668e3e30 SHA512 26097d5a04755d60fd6f18bfa1cd27c8c2d351ab92d287b62e9180674b005bf39d7de5b850eff3e103a741a7109e588f2d94726c989abb4a82c2122ae06340b7
|
||||||
|
DIST firefox-115.12.0esr-ka.xpi 657820 BLAKE2B 31f9752edfbb027b4c6b9f068ee0ebdda7c9d26b284fdf7c4cad8269841c61e9feffd4b9546f2a1dc3af71f705a7ec06f55e74d60f3a3eaefcb615800755a0f5 SHA512 a42cc532659b8f3e1372d4d98dca251ba47c64278d926e0cf8068946902ca51e323ef1bc06c53687eb4edc105af2caa56047635bb3908ff6ebcfc6ab3fa32e41
|
||||||
|
DIST firefox-115.12.0esr-kab.xpi 598730 BLAKE2B d1f20ba4c5debfbcb76bb154eb41b33a64ff8ef954bb0789d25fe449acb7f124bae5c09f4efdbb23a4e64b8c07b6bedf1b5847bd360ae569f1c9d75261329ec9 SHA512 48760c6d052e6b8eefe3bda730f29d21a06c06702a150402278e41a9320482969554121b68f4fa420e8f061286b8d76522b7b35cc4931c02f1c02b7f6813cde9
|
||||||
|
DIST firefox-115.12.0esr-kk.xpi 702225 BLAKE2B bed8add659eff79184dcc8523bf1e6b39baa9d3b3bb1ded3ae404ecbba8fb2d89a4b47c69afd2d40f126bd7583ae73efec31e1f10ae14e57819362cadc5935e6 SHA512 6ae8dd80ca2ba6905063062a70bf427f73ca60bab7bd9517da6e06ff2f9e524cb92dc29de0ff10fa47ce6e9b2826a3f543d468eaa64e1a500a05cfa3cd7a72d2
|
||||||
|
DIST firefox-115.12.0esr-km.xpi 522181 BLAKE2B 3e853fc451b11b6f134b15322aaa9bbcc5ec152f024a5febc96ccc5cdfe30afc14d61025c1d2a3517011f15bd56649c596b8a87fcbe60c7dc57dc35f4a0c59e9 SHA512 bc548615441db4483f5637bda5085edf725d325e3697f083ddfe9155cba0c5c382e71359f0891267f16a2aefeb0b2c01db1380a05a7cd33bcb3f689e87f6a6e1
|
||||||
|
DIST firefox-115.12.0esr-kn.xpi 488062 BLAKE2B 3547425eaadc0a3e5b95d3ec9e89e168c98055e0afe307ba87546ada2ce34f76df873c902b66998426d55e78d3aa2eaf5077fce1f59431116e654b134193b0b8 SHA512 3d43878e8a3c0d8260c55ac65d7b196ddec38702d822f8848b99bbb9cd3d525d7e1fffa16a434bffde69af1b7f08375df2b9d0ef7e0a1eb218a19bfdc46cfe98
|
||||||
|
DIST firefox-115.12.0esr-ko.xpi 656094 BLAKE2B da7d15ac55a04e4e7a68c5b1b62f57868238ecfa13f555aba1fc58aa38378d06f8b423af66e3b2253d67398e769e5d97d9d5a896b26e3c8665ac4a6e41f13ca7 SHA512 6a5e1ceac7eabe9da1024b25f75ffb8e23cd4a367cd13924e7b24f4f171c2c1c86ebd52919f9ee4b769e4b08370ded8bfb6469ff2135cef80a65ca85d0132952
|
||||||
|
DIST firefox-115.12.0esr-lij.xpi 478978 BLAKE2B 05aff4c58a8acd2d0703b6355e3a19d2035278b5d6a671f1d96bbe19235807d495b63e4c2613cbff99e6282c6bb8a4a9a0052b6d06dd3b3a710d198b47d7fb4a SHA512 d23f0ce15355b957aab07fa7da1fc2f4418880e294c8ff9bdaab722219f846cb16eac59966e3695f1d18652421815bc1c93c6c5560b9b0fc98dfde0f01b640eb
|
||||||
|
DIST firefox-115.12.0esr-lt.xpi 566073 BLAKE2B 00fbea5033fe10b3ffa3d454b066564c0cafb6f99187aaf9a5d0e04dbf228f039f4ad140be62a2191e0d489fdd9d45d04b0c680baf86c2c0d52f5fa9a86474a2 SHA512 dee4b2f5fb4d0c38bafd1178dc02d667408d78960a23a6d787d40f65b1f417019ebdb1f846ef1613c6aea169378295192db3c4f419ff6d4286069bd2313a49a0
|
||||||
|
DIST firefox-115.12.0esr-lv.xpi 568042 BLAKE2B 6887011df026b5ec39556130e04079a63b0ca19d542561a4b8350897f1c804cad199ba9d592b7dda504e37eb71e6a9ad511781fa62d01986f056bb1f66ca6dbc SHA512 dc3e3551982561135a5738010e487673dec819558a058d01c03732697c41984a289c0e32c5af99ebe583ccedc0d1c7c2f125e9cab2474b7be7e0d1998352fea7
|
||||||
|
DIST firefox-115.12.0esr-mk.xpi 489789 BLAKE2B c7155681ed8fc7ca7094ffef892d502159058fb45b455c61b55934f3223e1c9388688ef86d2ba33b235ce7b6fd1042713ee384e075c689cff961a98b510849b0 SHA512 c6fb94e1cd672f86ef5aa320b53e43af954b201ff9dad0829e0041f2cfa12f42b87b5a939d81aff2951731968b6bdb8420d2ca990c0a58c2bb0dda5c9cb4023c
|
||||||
|
DIST firefox-115.12.0esr-mr.xpi 526719 BLAKE2B f11d56c8ed3631dede36868d6d788facaabe9049df84d25f10d2b41c2106b7154b0c199a68a45e96bb52fd0c6924c19f70c4317a13d7fc14845c22dce5642a85 SHA512 58447231c8ca153eed5cd326595a71f96e3c0898ff176308dfa033174c8b00cd7314052905e606bcdb75e9037fb995e702cb5e67ecb680c763ce75cea580ba6b
|
||||||
|
DIST firefox-115.12.0esr-ms.xpi 445363 BLAKE2B e7743a8b57dc3a19f5e00e055ce1b099827369f46300474f7ee444f4a7e364b363efbb8661efc211505009881cdfb2473ccca2532c681150bb658338d4150c10 SHA512 67875307c653525c6b4b8152d9132ab58bd50f326b65fc292d8d93eb8a9dcabe9892e245ae2e064796260ccf0076c3bbbfea1a5352f9b8001abfeb537850c854
|
||||||
|
DIST firefox-115.12.0esr-my.xpi 514775 BLAKE2B 0a7cb3535ee39260dcc2b71bdc1a27fcab12ed311bf314cf560a9f7cf98a9f48630c85258cf0ab4984ed55646ae29c0910fabf94cef1999b3069cb05d59efa6e SHA512 1a68926827a90051d9b8eba1127bab25602cb2cc918d0a6a45289829a86d9a5c9912c8908f04408430340f6837f73d99475529b531cc0ef232cfdc5ad235a32e
|
||||||
|
DIST firefox-115.12.0esr-nb-NO.xpi 600618 BLAKE2B feb61e57a7dcccb0a6f73a5e96a9dab2be3e2673068b73b3a0a24f19cc6b414bcee45675e969359e62da0d34a6f1b06bc9494832799a861df395dea42602c743 SHA512 f549f5b04bf5974968c4c84e695d7e77c9706050203e54dd33b68a6b018a759e4dff43bda5c3fb3f88181d3e5e81311ba4ec14bbe408c6f7cd25f578d0559c56
|
||||||
|
DIST firefox-115.12.0esr-ne-NP.xpi 496372 BLAKE2B 1601a98ba8dcf6a88ae36fade10e9bbb5a3c033cb5088a0894f993412509e4d7bbf8fe2166d677d86084fe425fee2c4f199471b2bd63851aa9f3eeaf146b92e5 SHA512 f7ebe4ad55d10c5d8276dee7ffda939a714ece6e2cf298353b30eaf0da30736ff6907f4defc657b6f6cd4d7695d9a4597c5b83db6ea5992a23fbd4ba18e55c21
|
||||||
|
DIST firefox-115.12.0esr-nl.xpi 611724 BLAKE2B 24b2f590d8fcef596ceb0609ee4559451f5ce26cd4547ae017d2988376114d211ad1049275678ea88459aeedb614ef57a350fb3fc10d6b234dc30a0bf178b29f SHA512 f7e151153abe0bcec2574e4e0893171d558313ebb6a8a14154fd715542a19de915fb9e1bd13f9a65437a78d48426b970d80660da7e7fdf68a7afbea2d8965a7b
|
||||||
|
DIST firefox-115.12.0esr-nn-NO.xpi 594059 BLAKE2B 4f066eadf909af50bc65c7f6a0be47a41361855500d2a1907278b2d64c3f4365fa4d56b9703cb5afe63f43d0956f75a0d4d0efc2ac39cc390042e7bae17d6050 SHA512 467bbb01f038d794a93d25c2bbe54fa3751103709c4c98c1d0f25ec95fc66423a92ed277c74246af4bbe19f22d3119c0a05fed9782cc415e8d198e0aee45f182
|
||||||
|
DIST firefox-115.12.0esr-oc.xpi 605602 BLAKE2B 2da16eabb741cb0e143941a8c102ea41577836e741bbc0a4bb65a554f1ab3f883e89a332711ee4c305fd5e28810c93e7c0dbe520594964ffd0f61887ac556fe2 SHA512 3210afcbd762ce8195c8c414310ab57c40d3f0a714997bfc563a5ec74ef24230a813014b7f32a914ac0af18f3d9387ad62eeabd8fc6f193f6568aa1824d13351
|
||||||
|
DIST firefox-115.12.0esr-pa-IN.xpi 681664 BLAKE2B 5954e85ff291393d96b937c62049df700721229a411f9b5e670ec7e91ab4ae04c73a4610faa56c0cc734ace7d2a6df9cca224b0ff2f9183a0fa087673d14f9bd SHA512 3e96a6cb5efba763b0cb5ccf8cbae0bd0631159652fcbf9773cc2a0461fa17153051773844c3706a2fdb048996343745d86f805b38ae61aece99a4197100a7f7
|
||||||
|
DIST firefox-115.12.0esr-pl.xpi 629679 BLAKE2B d3037bfaa95161a023bbffdcf0ad82947d99c2e320bc752644b316ebbf96ff34abdd4921b0d355d5f71b6ad3520565f668d82bc2694459b80ec8eaede5f6e39d SHA512 efd22b8d52c1f62397587fdb0d5c1583e2b3401f2fc4fa22aab8f360c617e158a026c973523a358103da38eb32497f977922fdc9cda1fa359e9463df03639fa8
|
||||||
|
DIST firefox-115.12.0esr-pt-BR.xpi 616408 BLAKE2B b2a6696c1a3d2a070a3cc51bd988e5de1870a093d9d04521fbd4f0d8cf6e5f0da3813efb351796dcb2fc4d9d10fd6580951f8f6ec6b3ca9f6c8c2954cdd254df SHA512 33da0f635add28d331d45e39657fdbcd19fbed34968153e611da549adaf4a050fce645f57e5b4afc19b8e37b7c5176e9a9b7eed7a5283353700b769fe1403e10
|
||||||
|
DIST firefox-115.12.0esr-pt-PT.xpi 619994 BLAKE2B 1579c6410efa1364ef127e4e3671b8039ac6c73e36908573c17ef7d0bba09a1fe57ca4044ee06c35c75da15eaaf473928e076e99bbaded85f3465dbb07aac2db SHA512 b6db207cffe7d70ba2ede24e6abebe20fa2971200e4a6366ac345f855de49eaae50186dcc9ec4a5058868fe5df6a5f3040904c1cb83d10e5f8606e5180216360
|
||||||
|
DIST firefox-115.12.0esr-rm.xpi 609314 BLAKE2B 700beddd7bdf72c15b2b1688386098181ec97d596d182f4ab3660a8d8263c474f081311de1eb236e17032e19942ac2ea65073328159e16699a41c6c0dcc975df SHA512 6c944003c979275afcc63026fc6cd7a9b2c7e6dbfc123a41a3bb3a9a0a3aa9ef28c693434d8acbccd148f258a855987ed23d0b70dcedc4ad63fb98da68763cc8
|
||||||
|
DIST firefox-115.12.0esr-ro.xpi 543397 BLAKE2B cbe1f6a6b1a145033e24dbb0d06579d87b77f06c612a9afb3f07e9aa2fb9d8d2191ddb09ea62dd03b534ae12a874d915ef842eb94ffb7319aa1d31d24430bb01 SHA512 f960d840e658f94a7da8e93971ec6e848ec29ab8ee305033b8ac16d4b4f6531265e14ac6e26d494541ccee661b8ec34af2e18f65f05c5720a0fbaf2c0576e099
|
||||||
|
DIST firefox-115.12.0esr-ru.xpi 714560 BLAKE2B 7ddea034c138222a51fa854bd4c4f96196b225a5de54de80572398abc032cd96cdf1a8c8183f9e0e3ab2120e5b4276efe5839544b63a33a92b670a72791b7d50 SHA512 d099f908c2d7fb5d1fedf128a8249990e06a4307f2d039cef7a330a871fca59b353c648ac2ee4e1e4fe33469a0184f67a1b41f1c3d45dc5f9684e16f99732590
|
||||||
|
DIST firefox-115.12.0esr-sc.xpi 571850 BLAKE2B 5eb2876a1d79909b5d5325de6c4bbca52adc73e1d94f99e79c51d21ddfdcb88ad49207dc1316dc668fa8ace10bba05aa450a1fb7a3882d0bf5cd88aed5172d13 SHA512 1199d3c77a5daa53cbdd45f3f0b73bea9ea574dea1d075445bcf595bcb71c038fbcfd3ad039d4358935a1a15bf847edb0bd74d85fe3bca2ab1e878b15107da4f
|
||||||
|
DIST firefox-115.12.0esr-sco.xpi 505558 BLAKE2B 18f13511bbf39c308eeedc0050a5ec476b186488c1b55e5957531bf85fae2b4526f3e256aa259a14d6713b9897d0e8e11973a245cd81df49c520b910aef449bd SHA512 c664b37f91f3058ca6cf8e6ba239b5fa5cd2bb02c637bcac1babaf47bef804da13eb57c5bf7c2a9dbfe31653d10da80e86dfcda22f870cf9c39ee45ffd850492
|
||||||
|
DIST firefox-115.12.0esr-si.xpi 600749 BLAKE2B d3bed487ae880a6d90ace0f97444e7a0daa00033b1554be20b37f85b56e27f5083fae90656f9d4dd2b109241b98f95fbb4c0555d3e068788960ae816c573197d SHA512 57a7e1b0e7a2925eb0923c23fce5118502ed5bf6c94bf936e2010ba67154f3d2d3b87fe4a27805677aa860eff520cd1aa24b37c372f6df68795218950ea0e1b2
|
||||||
|
DIST firefox-115.12.0esr-sk.xpi 646006 BLAKE2B a97451b9cdf098ebef7ce6d3150248b3abb6c5359eea90ae182b5397d79b4a532ab6d0cec87be802bfba9e68fb79797ae995b4ad7e0bd4ec47db492f7222be46 SHA512 58453df0e6ec94de901d28ebca0f42dfcea4b7f5473ab24eba7665ee4b5e1d270a9b06f34916ee4ebc5c6a6cc7fc6cfadb7257c022355006041af0a00beb7d3f
|
||||||
|
DIST firefox-115.12.0esr-sl.xpi 608033 BLAKE2B 12e6fa7e47bb620fc35d7880278298d5ab0b76458d784147fc3e94dbb43c81e5854bab008cf75215d5e1fc016e58521ad9bcf98ccdbfbd68b721c544f88f39fa SHA512 e90b83a7b034ecd686a20e61bb13a75eac7eb1b1754d3f8fbb212b5c5ac56d8e3850726ade8783f718a9c12917d6eab8b3c0ab90b6c5935c7ddc70ea2c1090f1
|
||||||
|
DIST firefox-115.12.0esr-son.xpi 413554 BLAKE2B d33d0599c7c539622192801ca520ab94994894f6e7e6aaf695c874d02b796332b99074dd88d34e7f9b9259f0bc7c7bed2a9ce125802ab4acb77acd33aaaa623e SHA512 0af418f711b55a30f23628e1e6a30a2d7085f9387d94a1846a058c0a65ec3e9fb5eb3538787e7dfcfbfb21b0a83f68db171af12fd86c12e389f54b68083da330
|
||||||
|
DIST firefox-115.12.0esr-sq.xpi 632212 BLAKE2B d44c3533469b83e810b059762f7fb35a1fb167cf1d25481b9d25ad7b64778ed55f99a02c9c97bfd7e549d3b8991a7ae13cea383b62346b33b72f426ac67a06f0 SHA512 d820013522cea7a3f1d8ca0f01bb10ca54a60c47bcf0656f3b67ca92af20c16eab34de0b959549955893de7729af756141685143a201a4ff3b639ab75e5376b6
|
||||||
|
DIST firefox-115.12.0esr-sr.xpi 633088 BLAKE2B cd4fcdcf629916544eb2b02e81f07dec839ef38c803274ec08c49bdde6e2b1a4b4ea996e4815910aed2c44ba9eca417d2826fcbf2419ceb01b3d31f876c9a90f SHA512 4bec34fd8a9ccd06e4879ff91f26d930d23b596bf687252ebd22041380785bea972f80b78d0c7e916279e83ad25ff6919b4d520036fd889a4c2c48b580a859a8
|
||||||
|
DIST firefox-115.12.0esr-sv-SE.xpi 613558 BLAKE2B 8847633c1cb70d490876ef756e285635b66525255d06e2b5ef3910633398aae5fbb8e0c286716c5afdc2e6e1adcca33f1a3779cb4b14bbfb374b82dbc0c76fcf SHA512 959840826ce6045a04538ee2712f41ea412552b2eaf7575a9e740c577c617b0a654c56b2d3004e31cf82e6321e7df788a6136d084b3f8bf6a25b0a8a9001e766
|
||||||
|
DIST firefox-115.12.0esr-szl.xpi 520870 BLAKE2B 84798ff084f5947de5a478173b8c9fa7381dac599ba2941ffda29ab93e9a06a034d29bd7d1c64687adeba6cc1dc0719bc57b8b4a2f6bab86c4c6abb71aa9f4eb SHA512 89f9cb39bf50b4e5f8d2625d6fc9fe27ed78374f418f998285e3e91e95bb97d87bfaf4d60acbdd10b5b819da9fbba2d651e4e8920adb00d9c683615a8237d0f8
|
||||||
|
DIST firefox-115.12.0esr-ta.xpi 503485 BLAKE2B f9656c662d77ffdcd55d2a7574c102e4793719dc1209761115134c7f7220bc92d55e46647ea77feac6ea8e3a9faf5e33af41a0ebbb60a01a449791e386effea8 SHA512 be02cfcda94b55b1db43d26fcc509721c0874d9263d5c43c2bf7b4d9669db7a82857a411825903ec0888a4f12ef92c6bd64e6678d1b3e274b2411cff36a90a3c
|
||||||
|
DIST firefox-115.12.0esr-te.xpi 554471 BLAKE2B cc08663d339317fcc41ff09c095ff550b950ffd00605063fdb2a483272de41ba0a568e3a39e8d9e1dd0b14fbf4cb377030b20d2acba97f68f8b250deacd43a29 SHA512 6805b0b6121b3477f093bbfb397f3996b05a2f27cca82b8e1c9514db9505bec1447e9f6eff9985f47459bbab1c8e44c1dd1155a7dd1025dea8a3876619f7df9f
|
||||||
|
DIST firefox-115.12.0esr-th.xpi 689156 BLAKE2B 9d2f6ff9186efbb2755a291977d9a6ddb88278a077ab96ecd916761ab5805b3fa4053a792d792a0698b78ae48c4bad210a5bd07e83046bd54d0c24573914c7f8 SHA512 277a35fa8da2fd5c38a974c957113581c3a02b745fd42da0d9f363881a30c08b7f170d9407ca13d6320d145551dc1af1d15360f9f11b7931ce54dcd8cef92ba2
|
||||||
|
DIST firefox-115.12.0esr-tl.xpi 527660 BLAKE2B f98d74c172ace927a7a374be58d4ecdbcbd344581f4f90a0210a14b7aaa34ad4328dc58c2a592fe922cde4f37ec78eb5de3ce6328ec2547c44ddb029aa239c0b SHA512 2d5f64549ee181fdd631f5c44a3a468f3a6e2c43ecaaf44143359dcd57564429403dbe96093ee4745241e9de175d9ead74815f843c88551a73f0454bf30d2fe3
|
||||||
|
DIST firefox-115.12.0esr-tr.xpi 625253 BLAKE2B 9a44c7c5d1bbacd35e5ce22f6ddb42f6b833e88afa35a9095ba054d6c462703b55ce632d7f9ce2df3ec4de76b4eea0ebbbede17a1aacc1833cb012339566955a SHA512 f386ae6f20ed68bd1230cbac2234966a3f8143abaec13ab3e7f715140ad8eda0974f0605e533b9368a48423c6104954ee7699bf718e8cbff98d91ef52bb1c675
|
||||||
|
DIST firefox-115.12.0esr-trs.xpi 498538 BLAKE2B 375100e00403acb0ee8bb731917cf65dbada51beed0addf34681070e12bce92e2f20b288e4902b841964ef0646217a99fbdd38afc432bd803b7ab3fc3628ea11 SHA512 f02b761eb806cb41ad0ec6b34b9b21f5247bde09233de9121f8ca8c65685a5cacf025f0c51ed1c771d8fa91623aa5dcebc8766caa72649dcdd52a2833695e207
|
||||||
|
DIST firefox-115.12.0esr-uk.xpi 705540 BLAKE2B a4599de9bc68587f414b0a7286fbc2f7e4241cddbd040f1ec3a8aaa547a52b44b9e988317f7bc4f12156b040d20dda4f9f1fe47ffe68f9382e9161c6f6f8176e SHA512 f202a7a81b9d83429e81220447cf5c63aa421c27284129c058bae4caa4419e4fb776728e5205b4ffa5f42cea7ee8d9b927f6507c70b084ab77a95ba79bfc5455
|
||||||
|
DIST firefox-115.12.0esr-ur.xpi 554720 BLAKE2B 6d61762afd12672d996487ecceba9704df02caf4214e7e82c6692efa47aa3e4d0c3fc6e8e8a5d0400c3ae51fd05b7b9aaad8bad81c8d65378de13f645133810b SHA512 6ce12a4b000306c13fd580e44d166f7436ad8fa6e7dd1276e415e7282d9d883cb72a1cc909cd40f43c8300c620c27a89ee3225be191f2bfab6a6299fe8f327cf
|
||||||
|
DIST firefox-115.12.0esr-uz.xpi 474522 BLAKE2B 7e8ee0b6449b9de464c3eb91a5b36e45d2b017551e476602881d2fb39380bdb924f8aaff930d206a0827ba1175afc23f8001b21c7572cbf1156cf492113fd43f SHA512 4b309b2da6c579ed58d5d15fb2983286eda8289e286157d95db9d18d735d19462a5fd25371cca64dc93c8d8fff4f60a25a1d8a38fd71851c819d265d0e60df31
|
||||||
|
DIST firefox-115.12.0esr-vi.xpi 649117 BLAKE2B db2fd349e6002cf67c8e2967421c8179cbac733af9119f1ad84c63723c8b39f53d0485fcd0b013189fb77aa15a5f68a661160971510c84a4689b3ebf819c44f6 SHA512 e44259032dd9a1c49369a74746dacec494d111316593ff70cffa1904787c7c973b23e66ff92c0abc496a0fb3d100ae2e74ef7377ff0675c39e62e9250ff4cbbd
|
||||||
|
DIST firefox-115.12.0esr-xh.xpi 414802 BLAKE2B 35b5cabfb1830b21a34e7c57357fab5375fdae9cb655c7985b6b468008f2e8e8f5e40efb8ade25e92f64da9d6201827685831098887e976ddbc61531ed7da954 SHA512 468c745bcc6ee0e72c057484ad6dcfb84d715432765b1aa7071d8a08d4c7bb15f8a86cafc32b3d60de32f5c61b8372dd3aa0fdfafb4b5c2384e463419bc23979
|
||||||
|
DIST firefox-115.12.0esr-zh-CN.xpi 650834 BLAKE2B e5b6e072a8609aa65c988dcff5824010276c372f12938e860aa50c5d0cb75de649a1cf2e035c275419435ca69bdd95550130c6de4e3fab80231d40b5ada995ab SHA512 bfa4cd5b8ca8419a0ccb19ffbb7fc7156283bbb784944bbdf1102b631cea372ceddb362cf8181a57bf8587bbaaa28deed78c0ce288b4d8a09145e047ef82ed95
|
||||||
|
DIST firefox-115.12.0esr-zh-TW.xpi 653669 BLAKE2B e5b95c1f07618ea7ccc285e77eb92ed92ae3573af29ec29aec33e1f7e516fbb7df060de47b0f521df816faba193575f619cf937ef378f594f347dd7235b393ad SHA512 030d7a603010447d82d9670babda138f44f39b7c1370c0447124dcdcf4bc90086b973ee8664406b4d97fa292cfc692ec31732e9fead685a4fe1696c324431045
|
||||||
|
DIST firefox-115.12.0esr.source.tar.xz 505219784 BLAKE2B 6d2cc80daca9977f73ea0c0fe7e7cac999f2d7a99c324332d69d9438a6d954fe72ffb35e4df4c2a86abcdc94231c4847bb3e64dd612240f8a6d86e63abdb1be2 SHA512 d98475061d870e0f3aa920b7c0b9b0c1cbdb3f4102f760f1d1c5ea3e45e216c673c8d3662501e7e78af4950a003a519e94b57e9b1eda8d615c159cdf62130e89
|
||||||
|
DIST firefox-115.13.0esr-ach.xpi 458869 BLAKE2B 766ff00e9e84e3b51fb84ca98219b606bf0cf5c5b7a3217a19653db39dabd16d8f8819d1492b216b18b2a9fdab7207f79f2b56c71b27cf51b1ab8959f5855aca SHA512 629bc6c9cbc00448467a1590588c04e6264713669e38f3b3162586c2bafec5908780b76d794b20dd8b511e6b0d652ab81b6a9d015b0637d2f63937d071797ccb
|
||||||
|
DIST firefox-115.13.0esr-af.xpi 415050 BLAKE2B 2ff8b6ee58285be981cfe3406a6dd7d7f3f5f4a5fec849916c1c0cb415962de5f81c020a26b9965fd8492db4cc46f5120b3185c7d62dda0e1cbb94a7f68a4d1a SHA512 c29eb1c6f2baab48a6a1908071ba42281662709f717b0cdd9fd54d5fdaf4f4e34c23a0c7a69daed957957f9b651b554a17c7573cc5a12d4676c7f97b0bf9d68a
|
||||||
|
DIST firefox-115.13.0esr-an.xpi 499423 BLAKE2B f72367ee01c38c4958c4416c1a3f54b2dcca90c93fe17311065e47e9c465a3cf2c3e363baf8720f7a261c3f92be5e4622ecf17ea4dc0cbeda40695a3d61bbf62 SHA512 2a6f4da626d74cd2dc05e3ec42fc063c631bdb6b70413fbc66ce7b890118219501e6e237b53f51393d9b12fef81f39afac7cc4a3d4f4dcae927874f10e006701
|
||||||
|
DIST firefox-115.13.0esr-ar.xpi 605444 BLAKE2B dc393bf862d39c7e72dc1edc31ae1675b0f907ce5a37c8eb8278b448c63215745a3533177a8e6b71b774b829a5947ad55549eb71c90b6a9e98d3d46d6c50b06a SHA512 ec5da67bc4e210a9887eb503b1e27933e3cf63489f0c31290a7c949ec6299b2135e1e8ddacffd7220c2e16da4c3d001a2eec1d4cf80a8693d94eb71001fc8823
|
||||||
|
DIST firefox-115.13.0esr-ast.xpi 491184 BLAKE2B 5dcfcc1dcb664c78d71e22e8f38d13ad80cf6602071b601445477dc33887ae1883761e6c536341a59d195422884cf5d481e9a9692c9945672debdf654e78292a SHA512 3fc92b689f80672c0b5a97eaaabcc242aa42cf3e33aaf9c93e444c45a7e0dfd97baf139c937e11a50d35ee960bea91bbe53125942209bc1f9face75288beec3d
|
||||||
|
DIST firefox-115.13.0esr-az.xpi 485937 BLAKE2B f65761f146ae48b0704a3ab4dc34f45ac4c7374313fcfeb838c1f23b577200bc243f2f7c2fd6ce477aa0a85ef0425f26bb30a28c84904385885b32bb41736050 SHA512 380d055cb9b3919061a8e23f804d39ce24fbc135a0d963911b256ccebee57a2bf6af99f24b4acd7c70c44b7e3f9ca3718701968cd72b16c39f3afc225bd0b395
|
||||||
|
DIST firefox-115.13.0esr-be.xpi 711827 BLAKE2B 16dfcfe555f23037b2d5360c7f3109fc69d10003e6de4a087f8aabe48639039396bddb06ae7da2082b45cf188897cffefa6bea4366816db3a1bc8f3dd3d3863b SHA512 fff6b8c7ea887208ec541822a1ab073f0303df6aaace84c6c0cfa682a538906d9a67ba103690adbda920dd0394d5ecc249765781f1304e6fc2ae266a9ea86ae3
|
||||||
|
DIST firefox-115.13.0esr-bg.xpi 597471 BLAKE2B d475045b3abac2492f4316e21bd1892eb06656162ea6bfe93bf34a1f3b052373f72c85ca33a20a7c7afb35543ea4e1c9a520c622c11f287b0b1ce049ca34a203 SHA512 82b83fc0891fc3c4101fdcf046516f466c9d36227e54783e30252bc0f8d1647394f4c667d1c473c4f7568a0094a84c1216acaa32b9604704e7a0d4bcebab2d1e
|
||||||
|
DIST firefox-115.13.0esr-bn.xpi 576186 BLAKE2B 68de38e08f980f61f9d228df018c9af388622807f032e98ac453a2cc0fb0dc22ba5cfa0421c850da2dac70d30f2bdf37ce20e8f08fc42c1a35b73e0ac23669c5 SHA512 21110dada66d3dc26bfe92f771b487fc39374af0b17e6cb66dd68c0613471dacf1e04aa59fa0c3c6d870114b85d0232ac339143de561ddf346255182e83183ef
|
||||||
|
DIST firefox-115.13.0esr-br.xpi 584021 BLAKE2B aea8cf321ac9625979f6d77643b9a5cc83dd965d7124a18e447ed182fe5fda37ecf5654bcfa5368df9cd63574a9376fe9c802c5dcf3a72a5d1c3cbeecf0405eb SHA512 0e58cfdfb3154caef8dfd3e4d826e58eac33cb8d296cd362c715bea383dcb74bd4c37363d23752a29614abd5542f76c3f78a6c5f31d0567393073f0d8f806532
|
||||||
|
DIST firefox-115.13.0esr-bs.xpi 496142 BLAKE2B 59f4515d37ebc787b2d612d9aa556ddac4c5f8122b2e7d0e783add521215d882bcad4162ef9faed133d47d3e60bba6cc5d6c9c9ff7360811396d620ad63c9fa0 SHA512 a85ddc738c814514615b9d9ec4c3671ffbdb6bc8885131305aa55ab592b1041fa5c22790204c1f79c788f8af5f1fa9235cf211c3df863e2217bc409b179443ad
|
||||||
|
DIST firefox-115.13.0esr-ca-valencia.xpi 539103 BLAKE2B 349e7c4054fd3e87a4a0e60424a9cb9d3c0187c3dab5fc4a4b6cf858eb302c66d170783260a8b6533a67666e5c525925851e6adcd28c561eb73ffe5e99e70f1e SHA512 2c604454dde3d95c2b37aff51d80011d10bd6dd26b0055751239878d740596167ba48536289289e34a0384a7344c042b863aba4e204f631a995a9d39e4c99d47
|
||||||
|
DIST firefox-115.13.0esr-ca.xpi 578624 BLAKE2B 57daedb34bcea839d5000b18087627b05a03c4d7151dfa62ab1b36a430d1381ce4219bf5a54d231ce8ff5721d29006ee4e2d0186c897f7b2db80f2b48283b5bc SHA512 489a62c1a98e5729bfb5e76f5ca235c7afec3c20d3b973f3ef2d8760508f866e5ef377f3e5f7ce2fe2b573e4cff979bac7728968ea8c1765ab68fa2953ad29bc
|
||||||
|
DIST firefox-115.13.0esr-cak.xpi 586161 BLAKE2B cc408805fcf450a1318edf8863e2050afaf5b91fe74213bed8fd37357cec4bfe98580ffd7c9a712aed0b548b04938f10890272c8a75918a5058671c8aee1fc99 SHA512 9861c6e7fb57b2bd3e24dbe56769de03c2ff0d41ddeb39ac81158b0942b11749faab41312c92688722ea58f054bd2d4a7d7a79199f7c3418ecb8c2ee1e786352
|
||||||
|
DIST firefox-115.13.0esr-cs.xpi 655607 BLAKE2B 2cf82a0a42f53b6c5568a83cf983eb1f62071cd97dcc8eddcbe003c316de66584210183ce52e1c9cbc1338f4f0e39c269ee36a909548d43335ec432f13f22dd0 SHA512 65cd2a8c6ec128385c04e831bcfd91f4802838b164992dfdb568e2792c9308f49258f4ef8b8a13dafb1e313d369ac872628c04cad7ee69d9ae7820642c370627
|
||||||
|
DIST firefox-115.13.0esr-cy.xpi 619969 BLAKE2B 9f82972e92e4b3847ec1bb50ebdb414f61b9753765c7d0825c0eb2086de41d08772dc66e26afbb609edcd276e8af74b6742332351d35397de18862df212d0959 SHA512 8b0ac22d9499f211f7cfd4e4ab4e6073ac6fe3f566cb9f500f036cfb66d40770b42bca8f71a1e491eab4a91674bbd1bda75c34a8c538de51c40d27456c207cc6
|
||||||
|
DIST firefox-115.13.0esr-da.xpi 608727 BLAKE2B 19ddc06716926eb8eff49801ad7592d77e7609ef693dde5003329014549a1dfccee25e8320c7b685b519f60ec5a4527b5e8c109f561fcfe98db0ec06438119d5 SHA512 8adf6d2a81712a5928eed7f2cc06e1fba86e7f69e10c7dafb337f5fd5fb29c7444b5db98f3585079015b98bc4ce6a3fd41d5233c2280375a77c934ed1d5f2481
|
||||||
|
DIST firefox-115.13.0esr-de.xpi 629623 BLAKE2B 189f478aef796fb348cca80d4d03c1f8315996de52bf08583b92b80daeb1e7c64acdee3964d1ea4359928e13f7d4d8624d49b95185895174b34ba95bef1a022f SHA512 f21a1ec2622adabf3ecb3b8d0ae8b5744e1d17ff2b903293121f0454b28d18cbd90ee2d6b960805545141e2914daae1f6b17fce50c4a536a3cd56de234e2d8c5
|
||||||
|
DIST firefox-115.13.0esr-dsb.xpi 648138 BLAKE2B e733cca2cc036b568258f48ba62b2fd6d152762eaf2a05456a9b7596265692df095638e067466252f8777cba5c52a7d17bdc7e743bb819139e7f90eaea0f1480 SHA512 bb76262dd5265674f79b8a61064f056cb62259ebed55ea2e2e2e026ca9fc0f80dd0bdee9fa5884cf0650df26e625de448e3605366b374229b441a2cfa1b14293
|
||||||
|
DIST firefox-115.13.0esr-el.xpi 729621 BLAKE2B 73f1609e92aec59fc5e2d0d3f977f76840ed19781142e67f5d4c3e5e81ede8744b3316f74b97e052895775170b638986b9f264d7ffdce7e0bfe3fb3d4f2709c1 SHA512 0ec261dbcd0ddfcc4bae0d404410f51684cbee3e80d1846b6c15e35e9accf56377b1263b120a0cf7fdfb23f1459731dd8e62ea90798169d1a767aca4dde6576e
|
||||||
|
DIST firefox-115.13.0esr-en-CA.xpi 580169 BLAKE2B ddd65e8df09c0abe16d55480fde4d7f84377103236118137936cc1e5b8337c65c00119fb2b55bebbf7aa63d8b77dd8f633545f095528f949aad1207608f0dca9 SHA512 8ea328ff031092ed1c28f76d521fea12b665ef3fd31d7589b4aa0b2b3e92ab36998621ed5f9ebf1e64bcb8216cfd5659e45aeaf7234ea03ad7476268e93ccb7e
|
||||||
|
DIST firefox-115.13.0esr-en-GB.xpi 582349 BLAKE2B cde45b48a2c85831f8cb00f36d15816bf4b9f1970d4930d1d4bacdc0d13fba4d1b38a02143d96b252a8569e0ef9c49782697840b01d068cec085297b18f7b259 SHA512 5586a5e366b9e550c9e83a9916e7abe03d0dbbf78c48a95aa305d43371e7015bf35c14d7d14e2c5648f00b20f81050a86259ee55bf341136cfa0c6f4a5e4f2f6
|
||||||
|
DIST firefox-115.13.0esr-eo.xpi 609842 BLAKE2B b847fdd018c4811f9d5dbdebfc75b9960fd7546ee2286cd4898af157de24c40ca3daa2bf2ea2a613bb2ed892c0eb6b2c38dc59f844fad2d3604a23793ba53cda SHA512 b039bab4f62624b5c8a8b3766e0f3fddeaa19391dca1af6d14385e496fae41b2d61785ecd84ece3ca97c8c8de290dca4a9b45763b45230c0e558ee9386ec5cf6
|
||||||
|
DIST firefox-115.13.0esr-es-AR.xpi 625238 BLAKE2B a805fe6bfee5855d79ac6de0b6320f08f4d559525de8a16efbfe9c9e3603edad1a49c67a62c9de7c3c6b13b1a68070ad07d7b133667270a1e0461aef51fc03fe SHA512 6b1a16a93c2dad80391afa9f8fb469ccbc79312a6394f9dd4c00bf32a85dd2e41065a44b4344d7d501d73bfffbdaf8188e8d7345aa926e6e86e5c59ce99c6d4c
|
||||||
|
DIST firefox-115.13.0esr-es-CL.xpi 623465 BLAKE2B 4606593ab9cd4e8c92915d0dbe91c237f0c5b00c5271255fefa8cac639f235d97937bf98fef26bac6eec089f6a1168d970caedd219496f179f260c35a707a198 SHA512 fef906e8323b2c3a62010df983d3db4dab9fa7556ebc51a5109c11f040b11ba336c025c3b32d26f07d52b69f88195cc83141fc9965590d61ee70ba2f8447400f
|
||||||
|
DIST firefox-115.13.0esr-es-ES.xpi 618304 BLAKE2B dd001755d1457bf4187591922914fb426e2ec7ef6a1a86e4c0323f3563795a130ad29fb1c2ae4946458ee0282b4784e0ad63cb9e1c38c6b9cab2fac4e748f306 SHA512 ff637b66e777e2df0c9fe0561dd464733960d38584081eaa07f74e3d46a0f040f670ef507f2180ab9b25a710e950f8f93cb3436a855b957ca092ecbd42f0f805
|
||||||
|
DIST firefox-115.13.0esr-es-MX.xpi 584255 BLAKE2B 4bc95b99500a5c729ec3ce4ad2d4bd170222d9e3fb9734b743280ba99aba5503596d68caff19f0580384bb6c51c04464ef1501bd46654fed155b28e7b5505e98 SHA512 bad7d867372f98c82edf61427116cfb9c09b121bbf43bb93c61fd60788c68cef7c97793f94c01f92f2db443bdf3d9d5edaeb3c47734c7d47ec4bd22e6a363a67
|
||||||
|
DIST firefox-115.13.0esr-et.xpi 532879 BLAKE2B e65d4a7675ff2971e2dc550ca296b45a62107d732a81f1070b4bd2266961f342bc9b5dcd309c4baffb3279be8bf61734aec14aa5ce209b2d82b773148632dc42 SHA512 50f0b61145127f511743371332311ba3a2b18e473226f45f193be46146a0c0af276914c59c3612236b6989a6699bcaa901437d3cfe5563f8cc579d4e36ddbd48
|
||||||
|
DIST firefox-115.13.0esr-eu.xpi 591804 BLAKE2B 1e5ed62b53f3b7d6bf465968bcec781447b8d39049368672d86b7eb43bf7b019c1d19bb34c991e9022f856b348ff00e7f2d7c5fae71388231b7e2c44fb1b6dca SHA512 4def2322424a4d61d44ab87e6076868b33a390006ee3a47233888de5e67d184c103b990eefce790628161a6585a63c023f702d7fefff41e06a0d4ed4647e9dd3
|
||||||
|
DIST firefox-115.13.0esr-fa.xpi 584193 BLAKE2B c1de53fac8982856a128c7825aaedb77267903f4ca3cfbe8ca9ce88f0a418d02e144c0b6a2d70606c39fa9dc758131f01af949e5072809da1c704830c60f5c95 SHA512 d3931ecdc5bac7c3bef39420d5d9a3b81fafdc4cfd3eb7b798d78a7bc5dc3214bdb18bffd5f947cec858e1457c369f445e9336ea28f6d22b28bedf56e4bce6f6
|
||||||
|
DIST firefox-115.13.0esr-ff.xpi 471600 BLAKE2B d651f9b6b3b24f948084ed2379b741c57a7d7c1706efefe952959b70df96f65a1d74aff0972e5bcf70aead42f286e3ae5dca4b73abf7f7132f9580292008596a SHA512 b0e323bda0bfee0925a150196b961d0030216882af68d9d66a8ffaeae56b679e79dde27fe4be8cab7ad60a48000847042f8b1274966f47d0a5035ec02e6584ad
|
||||||
|
DIST firefox-115.13.0esr-fi.xpi 601957 BLAKE2B 464af892e7acf5fe7e1dde0f5b35b380b302008237f2fdb23acd4db26c55724f5d327688bbd58f410c6c9585672b9e3f7404e246ad1a4009191959c3b1dfc16e SHA512 2beb3e0b7730bf3df85bfd9e62457b85119688a68b704f5e430264bc317eb7b0580b895a792d21057e799928a2a3d2f5f7aa0bc0dfe9ff8b6dc1933e82a6407a
|
||||||
|
DIST firefox-115.13.0esr-fr.xpi 638171 BLAKE2B efd3d5882516db38a35d998ed61fd11fa73758f38d1aa8768a6ff1fcef390346cd3a54359076da60be0e1cdbf8a4683edcc66bf427843d26c533d089f90cdd18 SHA512 6ae30c58ad81b408188d5ac938f4d3c5fded4940eb3c2a02313670daa5992c029ad9cdd3b831cff4d06f51b73f06083e4765bcf329ba10ec596d2d18e25a58ab
|
||||||
|
DIST firefox-115.13.0esr-fur.xpi 630143 BLAKE2B b1d55fa9cfc3386f2a4adc35215375f647b20619581831eeefdaf32acc540ddfda2a71ac04ccf85d6cc152a8dcbe7c08654bb4e66d264ca4748f330ada0f34cb SHA512 16dab1bf6573fbbb3159930298a855fc8699ef5233f34e3cc877125aa8e0ff8eacdcd58dde7257face95bb19f7493449e85f8bb3ce685dc48768a484b63b40eb
|
||||||
|
DIST firefox-115.13.0esr-fy-NL.xpi 620747 BLAKE2B 86bd94876344234d7f47610de7f530d6c0c4b45cca233334838acc62d917016f6954b283f8fc28b1567bd1c1ada3577e41a334d23733fe91ca98a9c926c3db68 SHA512 8bbc05ec34f5716aea3d10c370fe0bccf3e9d8fa64935ada974f5166edb393957be02ce0ac89bdf544fb1aa24c96152d6b06ca34c07c5369f8e7dfdc052044a3
|
||||||
|
DIST firefox-115.13.0esr-ga-IE.xpi 467487 BLAKE2B eaf02d92932eab627fbb4b9dc4777adad0a4de79e87a8a7e0a6adb7615dad928c479060702a164bc82a9d98f540470ac9a45137f5d6209e20886edc3c7497ca4 SHA512 8f6b0e68c57d866315226783599422c6baf494b2dc7203132d95d5017ae84de925671361ff72db85d6b3aad42df832d35c5c30008db0956bda93a68b32062312
|
||||||
|
DIST firefox-115.13.0esr-gd.xpi 589810 BLAKE2B f1cfeb41696849dbcc44773194519930b3cdbe8676e960124f8ffea1dae9bd6c530bb6f5859a086d9e16244ae49a89c0d895a96a879a8f9d361e466f5b117e7a SHA512 fd5066007811fce84f800fb76acf5f02f6386e8fcc351a4b9ea153fba8811c1292e14ec778268255d818813309ee81e46151081c466aa0b85db6aafb8dd9571a
|
||||||
|
DIST firefox-115.13.0esr-gl.xpi 599812 BLAKE2B 5ca1db00fad370d8577f3744c9b12156a05f7dca5a9fb0a91c854ab4452024e86b7aa7fe3bdc98aa1f671f45930fe6f0b7779342f20687eb0783e6a71a29c595 SHA512 8d89f1114e81cc216886cad85accf19fa6163cd9fdaba122f354785417982ab53046605728dc311f3091852407e9b687defbfca3cf4fec3fea30da643555e7a8
|
||||||
|
DIST firefox-115.13.0esr-gn.xpi 635256 BLAKE2B db1f84038d0f7a5e0443b478df3d42e1ec36241bc458bdbc7918438e94af01cd83ab94df22338b63009705895c564e2c33738332fd7acd0e6c988636f4da8c05 SHA512 60c8d66c1dabe613355d4277f163f5e35f5d9a89b5a2c9527d7eb0d0735fb3690b1b874c4920a6b165f29862736002038b9674a604f152ee0961bf5882185af7
|
||||||
|
DIST firefox-115.13.0esr-gu-IN.xpi 523232 BLAKE2B cc45a0a05c169381a32492ca175cd7b054ca4d2990fc781bb0fbfb8c56768dbbc4db56e45950cf735355a57af6ecad4b2f06046c05409388e93de08437078b81 SHA512 73862171a464a5a480308b614bb264ccfb51b96c4a3a02f145f76836c0cb8b0c0cfbc8f0b7d536f639ddbf43a0f56437cbd366319b64b3b7fbcf69e01ab58ce0
|
||||||
|
DIST firefox-115.13.0esr-he.xpi 626729 BLAKE2B 58faeb11b0403cd420a7c67edbdf177eac59a7bfcc3bd722ff07da99f5e5dc6aa6d2ec10631de857e8818ce7899a3b4fadbc0e857a604374c148332684672b67 SHA512 b6fe3216adea48fa1fff8a5a564916f47b6e4c557f3df090064f3378b65ea8bfd99dc3c12db5e2a40cd868a7ca7b2e72fec77549b43696de4afcd7f644a161c8
|
||||||
|
DIST firefox-115.13.0esr-hi-IN.xpi 559902 BLAKE2B a826402bc9ac502c12926f05345979e5380b10d4817f9bb865815ee9ae1cce84622577a465987766a6f96068eb0b6944709b848b84c0ff21291dd817128e3a37 SHA512 f461f8cd826967ec83556a2c2fe60c5f45ce194aaf632b85fd241c3442f6d16528256e6e3a6f9f7c8297daaea5b216fbb52d237012229c7cbac7dbf07f3f96e7
|
||||||
|
DIST firefox-115.13.0esr-hr.xpi 550267 BLAKE2B 19b332c4e6941a95b09090d27fa9c0b4f95b9dfc8da512d1ca7eb65bb76a70053384331e9ac171b336ae15aa55c5c50445af86ef8b26aebb0e5e8423eff570b3 SHA512 e380014b905b1fcb92d6c4715eadc7777b011c7832144d27e6f462dd63c72d5bb3072b1ecf13fc9917c7f73602bccfa32133cb747b130307bbebffdee27a9948
|
||||||
|
DIST firefox-115.13.0esr-hsb.xpi 644212 BLAKE2B 61e3f7a19bb5fa12ccbb525f260defbbf1b96fa63f01356e69069a01b47755595be471453bf429b9d5a04b8793d266c6a153a8e81eec427f0637ad895ae5c057 SHA512 d91861b2880f3ddc1a76dc42d3d7813ec325aa6ccc6c6d725a93f71269aee0c8f6e7586380b1683c3741f29d8d5acf2ed119b7e0561d2679e92668a6442c0634
|
||||||
|
DIST firefox-115.13.0esr-hu.xpi 648263 BLAKE2B 157fe516db5a356be123001ba81e21ad8af7aef42848d6f009b49dc23cbcc84538bd4397bc5d0c2dc1e3bb3c5f84ab8e09fcad2cd4ed04a81e108173b3ebdbf6 SHA512 fa3cac33a4bbda77a7f2e987f5b41c9746196b5165d83ac9072ef83ab54bba2768dd06d0d4fdb39ee8f5ae89644b67153a1f062c7c9ed0585e512646a6e56363
|
||||||
|
DIST firefox-115.13.0esr-hy-AM.xpi 647113 BLAKE2B 0b07bec9f4810d9ee9283c70fc927262c53fbd7caf8f90209e0778e449414918a959fb86db27338ccb0129b10cc93a052ad7aa83a17f9f5f8eaf2e7a6da68b33 SHA512 fa6d691f57842d5c5de51bf6c5e3b30f979c048022ad352465bb324cc2fdd03afeeacd611d500f118bca6d516171f7476da8eab270f17eaa49a856f4fb73ae6f
|
||||||
|
DIST firefox-115.13.0esr-ia.xpi 607449 BLAKE2B e5cbc8dd0b6e8d23261cf07814909c8b4c98c74f395c4cfe4dcf8c0019ad9327fecf90f6e41a2af17a1de8ee28572ee384925ed82736f935228d7e9513fde2b3 SHA512 bff9484a9d06d1bc716ff4a78955cfc5c46449332be4ecda2ade02217b8a0c61ef46226999a60ef78fd9b796277cce7312476408ecee0a0ee30c8eb738f684ed
|
||||||
|
DIST firefox-115.13.0esr-id.xpi 567403 BLAKE2B 59a0ddb6c863e76cce51913a088631243a381422871d483e44162718d1a300ef96aced587fd196c38db555549126ace8a03a1fef598708cbb747f2be2ff8b608 SHA512 88ac0af91f33f40f6290538c0735c1dd0ff02214c6a5d4ade78dee4f571838c7191f91e5da7f69c5da831856f13654290fb1d735cfa257769c812ad7165a3cf4
|
||||||
|
DIST firefox-115.13.0esr-is.xpi 610523 BLAKE2B 6e8292d2342d6133da1fac45e2b39314aaae6a14a037d00c8bf3ef4f7ba37a495a37903d04821034b5425b372f0b7d51e2891de43bd2892dc793099c51809fd8 SHA512 a6ee6eb5cc54cf2cb86bcaf872bbef7932056a19e7089d6ddcfad4b9364f26960446463039108aee18677b12a0d55e5829146f1a9c877a279daf61bf63c12cdb
|
||||||
|
DIST firefox-115.13.0esr-it.xpi 564030 BLAKE2B 3792406c14c3e71b017cdc44616b8409f7961e0321344cb88d004713c67f25e12e45b79793a9b33bccf1c59eb4e8b2c4365f9dd8f3887a3deba5e148d7ec8cba SHA512 5c013eb2a09b2f52157e99d64c4799cf075690b1081be432b77c438c10a462571b609410edb97c67b7bb584659c2c043124a3012a1643946da98c28956b662d6
|
||||||
|
DIST firefox-115.13.0esr-ja.xpi 675128 BLAKE2B 4885bf5364f743e5022859747150f57706df2d61aa197c4a31209a4b849e0876d925fe263224eab795c91e1a71016a663ad106630a12b97579650cd48910b76e SHA512 37b85ac5cac28a6ca144f5bc7bc49c8bb40fa03393d2eafcf690edd0c80251a85201bc2b673cc06a6f88c4caa5d05508e9935cdb8eb4953d31820e95765c88bf
|
||||||
|
DIST firefox-115.13.0esr-ka.xpi 657820 BLAKE2B 4ba19d5a966c63519bcaf9f0e8f8ddef940c4ff1fb53875c0601ba5a9a629435111a6a39c9588a163802291367985e6470e7085c18989040f05fe250d749c189 SHA512 58bc1b2eabcd890a575dfa0c73b603e66b1a9bb66ce627aff73bf29998a65fcb098fba09ef02312fe9529d8028440e2c16dec0592c870254fff3cda9a22167d8
|
||||||
|
DIST firefox-115.13.0esr-kab.xpi 602472 BLAKE2B 99e709e4520810fa190ffae5ceeb1aad7e8599bd5581594ddbf801a6a4d3c8758cac0a58acf80880b29754c23ad498cd912b889f8837e3eb9addd172111b36a6 SHA512 fdbeb125f941748d05963059823d3f307fc019cf81cddbe686b4fb4533b8a68404cba557e2477be5d677f33aae5b461d48ffba6651111baa22c5f00fbf42cc2b
|
||||||
|
DIST firefox-115.13.0esr-kk.xpi 704884 BLAKE2B 6fb7a75dfe0ad53cd62a72657c506c934a286896ce65a419595a3b3be02b8274a70d30a3514f76ec377446917793e1521fe8dafd743842e6f7dac17e6c95c330 SHA512 f9de2a014b9b68a2bd6dd5c54e9cc44060330b2db60e24b071987cbaeb4b0d2a35cb828261362d7ea6a6f1f36e38a8491de3c59c42d5be9fcd93a636a85806e4
|
||||||
|
DIST firefox-115.13.0esr-km.xpi 522176 BLAKE2B 180f5100d856c994fe994ec18fe39e839c769940bc59563d9cb51d2ba3afe85cf5caea31e7b823ce74592a6bf3917e967ff4a2c6d8f5ae90354611e25e222a5b SHA512 8df61f23a7662f0f0714445088a6a2fe6b3a14d685300dcfc9c6f124e985c63a214cdb37863a35fa0689a7dfd63ce0b9823e318daeb1e7f5929582c06c7125f9
|
||||||
|
DIST firefox-115.13.0esr-kn.xpi 488053 BLAKE2B 8d3095db3b6bda67ecc5a43a1f24cc87f4ca6e68fe7e7e4744d79792a31b1178f51f478c8abe91fad54aa6d0b80401433fddf0b76f6ed3902bb9c71a43b5936e SHA512 27fb76a454bb6337b77361024db3b99a754af35caf33ee33556df422bf968da4422dc727450f4d3d93814a1c5a112edda6f6d1d289d3673e81c0ed5d7c04cc99
|
||||||
|
DIST firefox-115.13.0esr-ko.xpi 659151 BLAKE2B 02a3dfc31a7cfd3ad2b2162c4f94b0cfe8fd4d3d4be505f450fa0d8a63a0922f8c7e19be319bc8cc0a14061f5f19cac8bf6e9ba4f0963d2060fd25e7a13e9553 SHA512 3728938278006a3d77cfebc46643f0cc1e6d68a2deeb8fe68ed999daf2f9e3c0d343599c1292a8a5f35d97bdbbd88865f8f49937792bd84782770325f18f473a
|
||||||
|
DIST firefox-115.13.0esr-lij.xpi 478954 BLAKE2B 0f32cd0e790ce6fba97a3e69cfca15c90ac0542d31b19e67ef9fee351847edb791a0c9268cbf091beb4766d28370c841417ea73431b7aa319d5974c8ad49cc29 SHA512 eddd6415b91d1e8f8683a8cca72dccca5dba7dab395eee279fb7950653f69e1f4776373b26d9221586b966e26b3ee7bca3de10785f6d2966cf2d85700a04f235
|
||||||
|
DIST firefox-115.13.0esr-lt.xpi 566055 BLAKE2B 5e61089ab95df6d8e4e3d28e1d628ff3d77fff138738c842af050bd1ac133f9fa44bea2d1dac594a7a3dd15e4faa0fced07380556a8bf4f94ad1111f9e448103 SHA512 946d6d680f02b68eed5c18019737c6913f5ac95ca10741da30c6d31658b4a0eeafb6789627d1aeff88ba49d9c6ecbcdd4ef6000553ae7571272b35bca98e35aa
|
||||||
|
DIST firefox-115.13.0esr-lv.xpi 568096 BLAKE2B 602d9cbd60bda98a73e9461b1566f09aa849c0ae632bdc6d720a18e53b8ed4126c64aa5769491ed9ce31bee21ddeb4a0e2573323d67249e2669d6786dc0b4776 SHA512 d4bf23bdb67c1dd26c3714e58386a63900c9d5e7457cb2d7828adc6563883fe621cce299e26825f71164258604e88d06711cb008c60d80d974c56e04eb54ac70
|
||||||
|
DIST firefox-115.13.0esr-mk.xpi 490305 BLAKE2B 02f7343fe8b6f809a97e18669cb9954d4440fcbec49cfbb936d989fa308e8c93b430028fa1f4f091478df89fc3893c620d332c18c2ab3c86aba41566b6da5cb3 SHA512 849e505174770b9c778ed088b353149ca5506df2baa070ba940e57a62d0df0c9af4e7d6854148c979e7cbcaad0394f3a3b80bc0641f2ecedc1020adbdd9b6ef8
|
||||||
|
DIST firefox-115.13.0esr-mr.xpi 526721 BLAKE2B d7b1bb8b185a759d9bfc4e1bab37d734f62ee1aed59edeb9829fc63eabf541e4e15532dc8f03d152fb9f61e97ae4f17d3f695ee5188873551e45fa8d7bb72fb0 SHA512 a3e482b320a01684b5391fbbdad2a2e06fb30b023cd46dc449919b23a8f425070b7e58a91535e2b973d63f0d5af8e240dd13c12d52a6fa0342829ad5e328f703
|
||||||
|
DIST firefox-115.13.0esr-ms.xpi 445347 BLAKE2B 04d1927c6e63253b6e90a61a61dadc424cb22c6e82c0e0fa52ea75152927c39d30c82f0bf71e4f856cacaaecb72607ea69dec15eee97f97fd3a092baee184c93 SHA512 de14dbcfc4d7d7c8e23f08a45807c7ad7c3120e2bfaa0372b7bde17d4e25b27959946cbff0b855357de1756bddc5e70b35a003aca4883353b3be4a6ab5fd8b73
|
||||||
|
DIST firefox-115.13.0esr-my.xpi 514775 BLAKE2B 2b63b9e3e434218c2e1e6a25d37bfc0791c118d7259881dd55293fe65746e869c4acd384912ea05c6c03e2dcd2d18a10a7074ae4a2e57de80089d33bc8e6e666 SHA512 c124401eda391d90eddef3bdc56d24ebe730292a1c14f3d8e9d3b61f72cc1485c9141ea2c21fbfc1b3b1aa295abe634c4191c436da24180f21ee0cdfbd5ccab0
|
||||||
|
DIST firefox-115.13.0esr-nb-NO.xpi 605932 BLAKE2B 265de1bd0688894c4d37da31ed7902375e916c697878bcea9dd7b717a496c0c265de77d5584f8299587ad391e94a95c510b5f7765fd3393eda088c7c132d3e4f SHA512 90f34d609a5d010fbfd0c02de3aac179f017c7233020a5d16235b9545404b4887e9efb4f61b570de1e22855a3312125aefb6bcdf8f6e118ddb31f004ac3bd83a
|
||||||
|
DIST firefox-115.13.0esr-ne-NP.xpi 506844 BLAKE2B 2570f7be21faad1868092897d6f7f5bb0df4f6bb7c04b1650f147c683f033d4740f0d68cbb4fe54236ac6264196ed5de783b2465f51e09b32ac782ec9089e711 SHA512 f64c0ee5b11d2bd0926708fc45103c2fa6699d0563f2e37ec882e9f84fd4c2e5a2d01f1fd10e2bf9e3cfbe4f6ff00c4a3b0fe4ae4caf3dd3f50428ad03e91f7e
|
||||||
|
DIST firefox-115.13.0esr-nl.xpi 614615 BLAKE2B ecc15b9423b69f01487b79f451190079d82bd4ad9bc98c0a907f4ff9ce2ade07c843dde8435b1046ee84e3dae4949628625a7c0fe3aa9b7f446ab0756e96caf4 SHA512 ba72ddaf6d6cb2224f4bf0dfe56155a714b1a8eb496ff28a233425c9f8676391ef134364ed588a08e469d1de92a7c0321cf1be9aae7782df0ef15eca6afd87dd
|
||||||
|
DIST firefox-115.13.0esr-nn-NO.xpi 606790 BLAKE2B 2519c4a7074600335f699633e5c5bac1b6c762ec60bf547c49f9092ef1f5d42a074f94f2d855693e245a7d21c31611837a4e1858c6d6f5c590d95f678e07a59b SHA512 2c4f34b1426a64307d01553b726a5c55a1c1e087caec3536802864054d32d61eb5691b78e8a5f0bfe63f8f4539647e51a000ac549d9b23385ec7eabcf19ebaea
|
||||||
|
DIST firefox-115.13.0esr-oc.xpi 606292 BLAKE2B 1f8fa30994be906dbb2a1bcb79b8dfbcc10876c8b83dcd55a733c6f230885fcc654e1889c91ed41bf9880e5e20a2f94841c552b4f9784ab7a77fc775418aaa7d SHA512 f5ca41eca0ddf6d560bc07da87ca7c0da1624a3c4e2d527a604186138e55a5c0a30b7eb44f00f05998f07ba2278a31988cc528cf1d4b7f1a2f164c4fdc109ec9
|
||||||
|
DIST firefox-115.13.0esr-pa-IN.xpi 684777 BLAKE2B 35ee56d12532e977017e07fc1bdcdda40061f0e88c0ad2c056399d4ef1f7ea2ed6184370d038f4e6a1f8c698242e5d59fccf1abaad9988ae237e330b3d99bbec SHA512 abda142513b7af1a9d5e156fd4598887435b0313b345e5786ca647465de31c553494cd7ac714fdae8b7b3ae40221fde749e03c83fbeee3534ccbc24860485fdf
|
||||||
|
DIST firefox-115.13.0esr-pl.xpi 634143 BLAKE2B badd7fe2a8310cfefee95d68119f56e66357d5bfec75ce2f6a1ed9469ca239779e0804377a06fea7fa0fd1959f75ce06542cebff1b45ff899d6cba71bf28c967 SHA512 0f9d5423dc00e93b900b6f90997419d70975d6a07a39a6f2b1012ff7a0c4c2459c41214f05171fce61ffe4fbdd393f0bb906bbf8dbf71343895e463ff9517127
|
||||||
|
DIST firefox-115.13.0esr-pt-BR.xpi 619344 BLAKE2B c27758608781d90e9392e55196e2a8cd4f0e124cfee08b07c4d37319099b3a0b5eff98985215ba769a13fb1ed877224a370eb6abf221bef8369d0c7f908a746e SHA512 e061106433be87e7b2d47bce894241f261f87a5cfce49415c2430417418e978876b45157eb3a3786e338a7b1ad359c672818274dc7e71465023eb10924a9d765
|
||||||
|
DIST firefox-115.13.0esr-pt-PT.xpi 624305 BLAKE2B 4985553c3c20285d14577e5dbd671582822336a59b469156ab7ac8170ed153dd331554ac6ffbe2e8258a3cb31aff5f9d47103d6ad88547e9117d78f6a7f27d5e SHA512 7b51efa9217440b5938d4f484625d13562e65de57b6d4c9ac53441031977c6de52cb36fec5d98f0ff2d541b3e2fe2bc854968747bb09e4c5d17ae94b11bf5e5b
|
||||||
|
DIST firefox-115.13.0esr-rm.xpi 614076 BLAKE2B 1cb280402450164c54ece4914f2f74c1c91dd8d0cb4280d6a3310f21245e95cae455f64e67bc8c26842d3e63a75400287545b8031304742f9afa7389de6e297c SHA512 3fd88deb77f0b85c92bc42b4641699a39fe63c73d89c4febdf0237da1c91f7d13b4646415df48e5c448b49fdd1400fbd817af068518055591d09d1ca39a7829e
|
||||||
|
DIST firefox-115.13.0esr-ro.xpi 543381 BLAKE2B a5510154e4bea4a52bb8a7c777d1fe121ea8df1b4ac5225ac80d4c31614ed208f9cf51045c51eced7f03e693ba8710c31b60dc9442f95afbe85df8ab51735ef5 SHA512 f64b2a7a0413b006244216d33d5d1ea68762af265417633898f1757aa62749581af103c9aaea6be807d3804c5c42cb44e2bf853d8cc8332a5dec4f46a6cff074
|
||||||
|
DIST firefox-115.13.0esr-ru.xpi 717996 BLAKE2B 7d77b494bd1a6c1454987641a2ef53fa2e5c57c614e5c7d16b6381e4d4b8a22a39936ff71bcb1c1746802e1239b1de5b52da12e104f613806f9d2c622394802b SHA512 8fc13b6b19545a512404c9c653c2515bd57f85a39305fcbc97dbabd20bcb61681ad74a8a0c3f1253333264c868746e45ef6de4d68ae5e921d824da8c790615a9
|
||||||
|
DIST firefox-115.13.0esr-sc.xpi 577968 BLAKE2B 8a68b16991112b6d7d5207b93f810894260ef622e8c36900428a3091628943a551dbd293e02588819d58f3982bbef53dff5b3f3bb6c11b25ad9d92f44531374c SHA512 becc012cb67cba7b443d149e910ac8dd72f4a6b1817b0df013659317caed07d251f66b67d63ee2af3eaaa6961d0acb1732886c04ca0b32e6f70df3c39acab0d2
|
||||||
|
DIST firefox-115.13.0esr-sco.xpi 505561 BLAKE2B 734e467d5c4fbc367986517704b7be49cc62ee686fbd940ad0ad8ad8c54a7bb6a9662f9481b162aa0a237b5ae237d63486c4da015a90e3ab373bc8a1c5ad0bd5 SHA512 3e99a48f4e9ca2f9838ae795a8cd07010ae77534b58d783e3d61c4453ec195d796fc7e9bafb84b6c88a130d5fe1544ea4e49359678dd67e7d11d10e646424847
|
||||||
|
DIST firefox-115.13.0esr-si.xpi 600739 BLAKE2B f5ab27d31b4b359aefa3e1d7c90cb2e7e7540fb1ccbb1b0a01029aa26b9caf98ba69da1976a9dd4baa33b302b75a159f3cf9cdf9f3156aaea10e3b20cd3531c7 SHA512 6deb90c6b4404e54e53d08680b83d32ff2c0fc30621a927f195ca326731cc5a6588c68f73a3b4a7c2f9b6c56f6b11bc20b3484094a09246eab9429e7515e1d96
|
||||||
|
DIST firefox-115.13.0esr-sk.xpi 647869 BLAKE2B 4fde5492f430e5411a4e3d30606895d92991971b762c27fcf02a857465fe2b0505452c422e4e70b0183ddc7d3b4d99852f336dc7827aac2e8b75c212e4769e56 SHA512 66d359c11e4b03a7d948704e110b9a104e0ddd20269660d2222df759044419d797feaad6b5c2142e223d8f743411528cbd01aab1dd869b34aa5ef9fa19759b0c
|
||||||
|
DIST firefox-115.13.0esr-sl.xpi 612807 BLAKE2B 8e6e8c9854650a07c89f2c42ef3b144301db48bb51a6485ba934ffe0a03a97636829559e490f16df98da61a52313779b2ba83ee4abd6d254731e47fdc24fd6c7 SHA512 14b0475e8cba4c852d7437819cfe3157c5a0e2454b804c86fb95bf5d6f46fd2a853060d7247dd825d547d0d148277166130964934d600740c6ddeca23ffa0a74
|
||||||
|
DIST firefox-115.13.0esr-son.xpi 413545 BLAKE2B d211c0defa803d5ad574811e1b2e50d89de5fd216dde000a0032e3117dcc5a31211d30483a89b1f9005073015946b41beed2b39173321e62eba90cef4679c28f SHA512 5df04e32c22f70be9ec9a7c417e56da210314a8aff0d4aad43d3670bc516d074e629a04ffde567f4fc12d8cdf3179a69099612263c8f8b5a84eddfa510213026
|
||||||
|
DIST firefox-115.13.0esr-sq.xpi 633666 BLAKE2B 393b74e8e2aabf71ce6aff3e34732f0cccebbf1426ae8af3803cb8d74d4ce9bdefa250f978f8b3c2e0cb2dfe8861be7f766e741d40c2054ea0e7ca210f8b7804 SHA512 fab2db1403e60595d8a6003d10cc564d618e8d08fffa613617150cea940a4ad3e28947ade5eb06a831d8830944ac8415185be6f7a40dace940347b533f9026a8
|
||||||
|
DIST firefox-115.13.0esr-sr.xpi 633079 BLAKE2B c664db59d9260155281397ce14e45fd9c1ac680a0f231f170ea59ee6444ea753a4da7f7c0e3f290b07d2d31c1f3a823d6d87dec4f8268a9838e38f27b030a3ea SHA512 5afd139113a720d45dd35621d57b77c12cb47f277a264b1b78cde6b24e8a596b44b7de77e6ffec197d68bc1eefebdfca101a3892e736d60abbdd21c8317acf09
|
||||||
|
DIST firefox-115.13.0esr-sv-SE.xpi 616310 BLAKE2B 3675c4619b261c8fb39ba86b1b0e98dd92cc099d0f1c80b28fb6f329f46d8eb4e21a4e7d54d71973aae4da752eea10387ac7154d567b28ed91917a4e99f02ede SHA512 df200d8b132cd29ef433db0a4cbcd39af2e9426462272fac0435a407cf236531b2b589a6edfddfdf12fb4d446ba02ace0b43bc1c3844f93aaada1f131a0f294a
|
||||||
|
DIST firefox-115.13.0esr-szl.xpi 520874 BLAKE2B a75babb4e8f358a68b3314ea93bb7b1b35b8af2888c3c45b51f31947937512a40c12ebf5de60f34854c5660c6af6de032b0729ae14a34643516d6e59462eb30a SHA512 6f15aa350fa2c43f78a7d86ad324cb9f1580a9f98933eea8b3a6f5340a5479041d6a427f0bc986fd5ed0b2f89dc2ccdced3de4348663471a7ca5a43ce7e1e161
|
||||||
|
DIST firefox-115.13.0esr-ta.xpi 503475 BLAKE2B 820f1168e8212254e3371d89e5186f45ce5af03b4e4362dcaf800e5bed203e1b1234a53cc81edad150ff5d63f555d32e44d07c0a92e469dacdf4d03d022b18e8 SHA512 458660b1267ae3077fea493cb04f8eaebd92ccbc07ed59ef18205b63eccc1598497d61d36a3de62d68fa6188eaf4251cbf54e3335cfd1cbb3a1aa320e937b92f
|
||||||
|
DIST firefox-115.13.0esr-te.xpi 556610 BLAKE2B 880f7e079db8f982d2f802b8f085423e52b211b5edd0985b0fdbe06059c28c56fac67c813c586d3f066a427a3be2b1d74054a7fe462ff36eeca8306cbc7d5289 SHA512 2f5c455a7e02ba35761720481d261fa45f53bc87c9ad136014295088ef69e14e6d9048b1865c30183250d5c58cec5825e2705933edb4e85f84ea9c8f72739fe0
|
||||||
|
DIST firefox-115.13.0esr-th.xpi 693258 BLAKE2B dd7b5361e45aef24da696e102b924c8bb285ad44348354b4f6563f30db0aa7d25e43e1a6ea56cd87d115be4bee3086dd2c6754cb0e5be421b9ca68f6186f7e88 SHA512 25e6be57c7404f6d3c3597b2b42bebf86092b7a4884b7538eaba8859a883467894c4712ace0140ad02709a725f82ec24cd131fbee07fc95c553373cd417901ba
|
||||||
|
DIST firefox-115.13.0esr-tl.xpi 527635 BLAKE2B b060f9268d4cd0b34e847e36c531fdb50c319664fa970709a1d25d7ae37f3be1bfbbaadbfdc7fd77dabc03e79b234d575934bdde1bf4d5e6acd96b25b3d82c6f SHA512 39aead037b172ab8c7ce5a0a0d145c88a0ae527afb86486161418fbf66bfc69f91d7518cc9609139c1352eef35a6b91225bec4c1037cbd4c0d28161cc1e19d63
|
||||||
|
DIST firefox-115.13.0esr-tr.xpi 628068 BLAKE2B b87145bc56034116cbec9f205916710cd7b17548aa5659e23706cee1275cece01f293976d172ce883e3da679de0af9170b3e6d1051b964ae34c655fc37ce93f0 SHA512 f804f7ab4b75c478a1728bbd817c33440e4689a85b0c711a8c4406757830d8db951a33ca97808f53d46f58e51a565d3fb9a2619ab09d5daae098e90c1b7a3bd3
|
||||||
|
DIST firefox-115.13.0esr-trs.xpi 498534 BLAKE2B e3ac9ec8b32f2018715915a77d6920f025c8aed1ebe763fa09d7983872b7612427b7b8d525927f492ca2bf2861241ecd7e1140e433601e0eb3a429a13f0e92db SHA512 99781758ca40e62f30a377395eb39f66bc555c87e930f5a971a26c54941a4117d1470aa95a11fa60dd81df293f94eda81221a40c5359320e5c8437bb5e410673
|
||||||
|
DIST firefox-115.13.0esr-uk.xpi 707201 BLAKE2B 6d3569869d1c7cda327999dfc2a26276db656cefc6099e3055e17434541c36db3ca1e6e19e72d2c1ba96382e6c0879ff7a991a2cf5abfd49ec341de0d5163f37 SHA512 d98b524d66ca6b79c15138e9005f3720fa12fa46411ec92d39e8f2a382257c491f0d2b3f2cad32e81e4f7ba12c4c14bc5039b90065261fd386019e652db3ba09
|
||||||
|
DIST firefox-115.13.0esr-ur.xpi 554692 BLAKE2B 207b1ccbe283503df572ddd269a76238d7f7e8823be88d883e8ad91fce110e1d7100740056deac346a84d1d33a2a30782ebd8ae2a93aaf43d28fcdf2a7149988 SHA512 24e59b1f18cbe9189578585889cdc01c707877ed0657e4c5b1cfcd06abdd0b3a0f51c1e919056685e5c3d69d899482cf2e5616fd8cfab2a83fdf74e994ce9096
|
||||||
|
DIST firefox-115.13.0esr-uz.xpi 474520 BLAKE2B 98963dd2b408996a31274b1093b1e8da1c079f831cae08079d1efa9ea368e6f13df6cc7b2659ac20ec8dfeb2e632ef48a54c5be421787871526811bc6ac17b81 SHA512 c610d5e417fc17d2e23a5f5ca5cb0c2dc0474d8eb6a9ed058fdd6b2c465998d6ad0488fa379b2d0ad8bd77aeca3c94f9c9f950a52f9cee9394e9a6437fd3c1cd
|
||||||
|
DIST firefox-115.13.0esr-vi.xpi 651765 BLAKE2B 93e864245191507874b83fc34886e79739da74867a2d5cafd28e60e34765b1be0a04eb50a0336af1df70c97a84ab040c21a06898660b457e8b557ced29533d6b SHA512 268af1fb6863dfb280440a44ebabe3926871a85febf4f45a2bb1fdc126508a361d5cecdf326cfaead3257b962d559e0c47583d91355e966ac37ec9092ac9e71e
|
||||||
|
DIST firefox-115.13.0esr-xh.xpi 414787 BLAKE2B b1f1d584ebcb91b1819ddab80c6933f9335d88441abb0ce539fcafb5fb5d505caa15c14a3cf5c3c9dc2cfe97fc3df2747ad1abfc99a97d2c7c03a75726c5aa6a SHA512 3b95f8f7b0b5cda517f826bad938cb88457efe249a0e5225068493f2fe0d644a5802e8ff85c06ccf9660135de0330452474833e2a297bc97e48238152883d328
|
||||||
|
DIST firefox-115.13.0esr-zh-CN.xpi 652628 BLAKE2B 482eb1d85b53ccebb3bdc4a1c04d4eb12f8760cd1851a7cec986786db626f8f545f46ba545d6e3e4be383f1b751fee1a0df836b485e2f0841c659c8a035dbb64 SHA512 6ca1d36a0faea8710c0dcf802391be1888ff6fdeb2d20af2970e63d982f551b64cd5ffbb2ebd187d0b2f4add2f5ab1f3ef9d82f149beaaf6d309da6425ef4b34
|
||||||
|
DIST firefox-115.13.0esr-zh-TW.xpi 656755 BLAKE2B ef8244f8c0d65d2c604a5a11caf4f493992dcf2d32aac8bca36a8a17ef21ca4050c3406b565822300c0333df2950ff6342f7ed05b02da1243aaa3fdedbd396ef SHA512 c62f4dddc59f71d944d70250dd0337680c789000f4df188d71f3fae1cb272c34b85711218a53727324adf190e26e1667a192b612d9f1d3a437f24e1b27eb9ed0
|
||||||
|
DIST firefox-115.13.0esr.source.tar.xz 510571488 BLAKE2B e2b00965a92cd11da6c81daa8b6c652dfccc9f0f7d066bc17ae5fa3ac3aaaa021c4489a9f653127f5516e3d77cd7174de328343e22c4edab438e3fcb9a859178 SHA512 799cdf2d0494003a5addd0da703f53deb9c9d6bb6f6c95d40026363382803e2d086039c7798940a1f35f4cba111f2e8e21bde8ac2eac29fd9bd6876dd8d3a85f
|
||||||
|
DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461 SHA512 e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c
|
28
www-client/firefox/files/README.gentoo
Normal file
28
www-client/firefox/files/README.gentoo
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
## DoH
|
||||||
|
Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):
|
||||||
|
Due to privacy concerns (encrypting DNS might be a good thing, sending all DNS
|
||||||
|
traffic to Cloudflare by default is not a good idea and applications should
|
||||||
|
respect OS configured settings), "network.trr.mode" was set to 5 ("Off by
|
||||||
|
choice") by default.
|
||||||
|
You can enable DNS-over-HTTPS in Firefox's preferences.
|
||||||
|
|
||||||
|
|
||||||
|
## Normandy
|
||||||
|
Upstream operates a service named Normandy which allows Mozilla to push changes
|
||||||
|
for default settings or even install new add-ons remotely. While this can be
|
||||||
|
useful to address problems like 'Armagadd-on 2.0' or revert previous decisions
|
||||||
|
to disable TLS 1.0/1.1, privacy and security concerns prevail, which is why we
|
||||||
|
have switched off the use of this service by default.
|
||||||
|
|
||||||
|
To re-enable this service set the following in "about:config":
|
||||||
|
app.normandy.enabled=true
|
||||||
|
|
||||||
|
|
||||||
|
## Firefox >100 compatibility
|
||||||
|
Unfortunately Firefox-100.0 breaks compatibility with some sites using
|
||||||
|
useragent checks. To temporarily fix this, enter about:config and modify
|
||||||
|
network.http.useragent.forceVersion preference to "99" Or install an addon to
|
||||||
|
change your useragent.
|
||||||
|
See: https://support.mozilla.org/en-US/kb/difficulties-opening-or-using-website-firefox-100
|
||||||
|
|
5
www-client/firefox/files/disable-auto-update.policy.json
Normal file
5
www-client/firefox/files/disable-auto-update.policy.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"policies": {
|
||||||
|
"DisableAppUpdate": true
|
||||||
|
}
|
||||||
|
}
|
42
www-client/firefox/files/distribution.ini
Normal file
42
www-client/firefox/files/distribution.ini
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
[Global]
|
||||||
|
id=gentoo
|
||||||
|
version=1.0
|
||||||
|
about=Mozilla Firefox for Gentoo
|
||||||
|
about.de=Mozilla Firefox für Gentoo
|
||||||
|
|
||||||
|
[Preferences]
|
||||||
|
app.distributor="gentoo"
|
||||||
|
app.distributor.channel="gentoo"
|
||||||
|
startup.homepage_welcome_url="https://www.gentoo.org/"
|
||||||
|
|
||||||
|
[BookmarksToolbar]
|
||||||
|
item.1.type=default
|
||||||
|
item.2.title=Gentoo's Bugzilla
|
||||||
|
item.2.link=https://bugs.gentoo.org/
|
||||||
|
item.3.title=Gentoo Forums
|
||||||
|
item.3.link=https://forums.gentoo.org/
|
||||||
|
item.4.title=Gentoo Packages
|
||||||
|
item.4.link=https://packages.gentoo.org/
|
||||||
|
item.5.title=Planet Gentoo
|
||||||
|
item.5.link=https://planet.gentoo.org/
|
||||||
|
item.6.title=Gentoo Wiki
|
||||||
|
item.6.link=https://wiki.gentoo.org/
|
||||||
|
|
||||||
|
[BookmarksMenu]
|
||||||
|
item.1.title=Gentoo
|
||||||
|
item.1.type=folder
|
||||||
|
item.1.folderId=1
|
||||||
|
|
||||||
|
[BookmarksFolder-1]
|
||||||
|
item.1.title=Gentoo Linux
|
||||||
|
item.1.link=https://www.gentoo.org/
|
||||||
|
item.2.title=Gentoo's Bugzilla
|
||||||
|
item.2.link=https://bugs.gentoo.org/
|
||||||
|
item.3.title=Gentoo Forums
|
||||||
|
item.3.link=https://forums.gentoo.org/
|
||||||
|
item.4.title=Gentoo Packages
|
||||||
|
item.4.link=https://packages.gentoo.org/
|
||||||
|
item.5.title=Planet Gentoo
|
||||||
|
item.5.link=https://planet.gentoo.org/
|
||||||
|
item.6.title=Gentoo Wiki
|
||||||
|
item.6.link=https://wiki.gentoo.org/
|
116
www-client/firefox/files/firefox-r1.sh
Normal file
116
www-client/firefox/files/firefox-r1.sh
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
##
|
||||||
|
## Usage:
|
||||||
|
##
|
||||||
|
## $ firefox
|
||||||
|
##
|
||||||
|
## This script is meant to run Mozilla Firefox in Gentoo.
|
||||||
|
|
||||||
|
cmdname=$(basename "$0")
|
||||||
|
|
||||||
|
##
|
||||||
|
## Variables
|
||||||
|
##
|
||||||
|
MOZ_ARCH=$(uname -m)
|
||||||
|
case ${MOZ_ARCH} in
|
||||||
|
x86_64|s390x|sparc64)
|
||||||
|
MOZ_LIB_DIR="@PREFIX@/lib64"
|
||||||
|
SECONDARY_LIB_DIR="@PREFIX@/lib"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
MOZ_LIB_DIR="@PREFIX@/lib"
|
||||||
|
SECONDARY_LIB_DIR="@PREFIX@/lib64"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
MOZ_FIREFOX_FILE="firefox"
|
||||||
|
|
||||||
|
if [[ ! -r ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
|
||||||
|
if [[ ! -r ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
|
||||||
|
echo "Error: ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
|
||||||
|
if [[ -d ${SECONDARY_LIB_DIR} ]]; then
|
||||||
|
echo " ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
MOZ_LIB_DIR="${SECONDARY_LIB_DIR}"
|
||||||
|
fi
|
||||||
|
MOZILLA_FIVE_HOME="${MOZ_LIB_DIR}/firefox"
|
||||||
|
MOZ_EXTENSIONS_PROFILE_DIR="${HOME}/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
|
||||||
|
MOZ_PROGRAM="${MOZILLA_FIVE_HOME}/${MOZ_FIREFOX_FILE}"
|
||||||
|
|
||||||
|
##
|
||||||
|
## Enable Wayland backend?
|
||||||
|
##
|
||||||
|
if @DEFAULT_WAYLAND@ && [[ -z ${MOZ_DISABLE_WAYLAND} ]]; then
|
||||||
|
if [[ -n "${WAYLAND_DISPLAY}" ]]; then
|
||||||
|
export MOZ_ENABLE_WAYLAND=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
##
|
||||||
|
## Use D-Bus remote exclusively when there's Wayland display.
|
||||||
|
##
|
||||||
|
if [[ -n "${WAYLAND_DISPLAY}" ]]; then
|
||||||
|
export MOZ_DBUS_REMOTE=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
##
|
||||||
|
## Make sure that we set the plugin path
|
||||||
|
##
|
||||||
|
MOZ_PLUGIN_DIR="plugins"
|
||||||
|
|
||||||
|
if [[ -n "${MOZ_PLUGIN_PATH}" ]]; then
|
||||||
|
MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
|
||||||
|
else
|
||||||
|
MOZ_PLUGIN_PATH=${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -d "${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}" ]]; then
|
||||||
|
MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
export MOZ_PLUGIN_PATH
|
||||||
|
|
||||||
|
##
|
||||||
|
## Set MOZ_APP_LAUNCHER for gnome-session
|
||||||
|
##
|
||||||
|
export MOZ_APP_LAUNCHER="@PREFIX@/bin/${cmdname}"
|
||||||
|
|
||||||
|
##
|
||||||
|
## Disable the GNOME crash dialog, Mozilla has its own
|
||||||
|
##
|
||||||
|
if [[ "${XDG_CURRENT_DESKTOP}" == "GNOME" ]]; then
|
||||||
|
GNOME_DISABLE_CRASH_DIALOG=1
|
||||||
|
export GNOME_DISABLE_CRASH_DIALOG
|
||||||
|
fi
|
||||||
|
|
||||||
|
##
|
||||||
|
## Enable Xinput2 (#617344)
|
||||||
|
##
|
||||||
|
|
||||||
|
# respect user settings
|
||||||
|
MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2:-auto}
|
||||||
|
|
||||||
|
if [[ ${MOZ_USE_XINPUT2} == auto && -n ${WAYLAND_DISPLAY} ]]; then
|
||||||
|
# enabling XINPUT2 should be safe for all wayland users
|
||||||
|
MOZ_USE_XINPUT2=1
|
||||||
|
elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == KDE ]]; then
|
||||||
|
# XINPUT2 is known to cause problems for KWin users
|
||||||
|
MOZ_USE_XINPUT2=0
|
||||||
|
elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == LXQT ]]; then
|
||||||
|
# LXQt uses KWin
|
||||||
|
MOZ_USE_XINPUT2=0
|
||||||
|
elif [[ ${MOZ_USE_XINPUT2} == auto ]]; then
|
||||||
|
# should work on Mate, Xfce, FluxBox, OpenBox and all the others ...
|
||||||
|
MOZ_USE_XINPUT2=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ ${MOZ_USE_XINPUT2} != 0 ]] && export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2}
|
||||||
|
|
||||||
|
# Don't throw "old profile" dialog box.
|
||||||
|
export MOZ_ALLOW_DOWNGRADE=1
|
||||||
|
|
||||||
|
# Run the browser
|
||||||
|
exec ${MOZ_PROGRAM} "${@}"
|
11
www-client/firefox/files/gentoo-default-prefs.js
Normal file
11
www-client/firefox/files/gentoo-default-prefs.js
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
pref("general.smoothScroll", true);
|
||||||
|
pref("general.autoScroll", false);
|
||||||
|
pref("browser.urlbar.hideGoButton", true);
|
||||||
|
pref("browser.shell.checkDefaultBrowser", false);
|
||||||
|
pref("browser.EULA.override", true);
|
||||||
|
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
|
||||||
|
pref("intl.locale.requested", "");
|
||||||
|
/* Disable DoH by default */
|
||||||
|
pref("network.trr.mode", 5);
|
||||||
|
/* Disable use of Mozilla Normandy service by default */
|
||||||
|
pref("app.normandy.enabled", false);
|
3
www-client/firefox/files/gentoo-hwaccel-prefs.js
Normal file
3
www-client/firefox/files/gentoo-hwaccel-prefs.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
/* Force hardware accelerated rendering due to USE=hwaccel */
|
||||||
|
pref("layers.acceleration.force-enabled", true);
|
||||||
|
pref("webgl.force-enabled", true);
|
6
www-client/firefox/files/gentoo-hwaccel-prefs.js-r2
Normal file
6
www-client/firefox/files/gentoo-hwaccel-prefs.js-r2
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
/* Force hardware accelerated rendering due to USE=hwaccel */
|
||||||
|
pref("gfx.webrender.all", true);
|
||||||
|
pref("layers.acceleration.force-enabled", true);
|
||||||
|
pref("layers.gpu-process.enabled", true);
|
||||||
|
pref("media.hardware-video-decoding.enabled", true);
|
||||||
|
pref("webgl.force-enabled", true);
|
236
www-client/firefox/files/icon/firefox-r2.desktop
Normal file
236
www-client/firefox/files/icon/firefox-r2.desktop
Normal file
|
@ -0,0 +1,236 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=@NAME@
|
||||||
|
GenericName=Web Browser
|
||||||
|
Comment=Browse the Web
|
||||||
|
Exec=@EXEC@ %u
|
||||||
|
Icon=@ICON@
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=application/pdf;application/vnd.mozilla.xul+xml;application/xhtml+xml;text/html;text/mml;text/xml;x-scheme-handler/ftp;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
|
StartupNotify=true
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
Keywords=web;browser;internet;
|
||||||
|
Actions=new-window;new-private-window;profile-manager-window;
|
||||||
|
|
||||||
|
[Desktop Action new-window]
|
||||||
|
Name=Open a New Window
|
||||||
|
Name[ach]=Dirica manyen
|
||||||
|
Name[af]=Nuwe venster
|
||||||
|
Name[an]=Nueva finestra
|
||||||
|
Name[ar]=نافذة جديدة
|
||||||
|
Name[as]=নতুন উইন্ডো
|
||||||
|
Name[ast]=Ventana nueva
|
||||||
|
Name[az]=Yeni Pəncərə
|
||||||
|
Name[be]=Новае акно
|
||||||
|
Name[bg]=Нов прозорец
|
||||||
|
Name[bn_BD]=নতুন উইন্ডো (N)
|
||||||
|
Name[bn_IN]=নতুন উইন্ডো
|
||||||
|
Name[br]=Prenestr nevez
|
||||||
|
Name[brx]=गोदान उइन्ड'(N)
|
||||||
|
Name[bs]=Novi prozor
|
||||||
|
Name[ca]=Finestra nova
|
||||||
|
Name[cak]=K'ak'a' tzuwäch
|
||||||
|
Name[cs]=Nové okno
|
||||||
|
Name[cy]=Ffenestr Newydd
|
||||||
|
Name[da]=Nyt vindue
|
||||||
|
Name[de]=Neues Fenster
|
||||||
|
Name[dsb]=Nowe wokno
|
||||||
|
Name[el]=Νέο παράθυρο
|
||||||
|
Name[en_GB]=New Window
|
||||||
|
Name[en_US]=New Window
|
||||||
|
Name[en_ZA]=New Window
|
||||||
|
Name[eo]=Nova fenestro
|
||||||
|
Name[es_AR]=Nueva ventana
|
||||||
|
Name[es_CL]=Nueva ventana
|
||||||
|
Name[es_ES]=Nueva ventana
|
||||||
|
Name[es_MX]=Nueva ventana
|
||||||
|
Name[et]=Uus aken
|
||||||
|
Name[eu]=Leiho berria
|
||||||
|
Name[fa]=پنجره جدید
|
||||||
|
Name[ff]=Henorde Hesere
|
||||||
|
Name[fi]=Uusi ikkuna
|
||||||
|
Name[fr]=Nouvelle fenêtre
|
||||||
|
Name[fy_NL]=Nij finster
|
||||||
|
Name[ga_IE]=Fuinneog Nua
|
||||||
|
Name[gd]=Uinneag ùr
|
||||||
|
Name[gl]=Nova xanela
|
||||||
|
Name[gn]=Ovetã pyahu
|
||||||
|
Name[gu_IN]=નવી વિન્ડો
|
||||||
|
Name[he]=חלון חדש
|
||||||
|
Name[hi_IN]=नया विंडो
|
||||||
|
Name[hr]=Novi prozor
|
||||||
|
Name[hsb]=Nowe wokno
|
||||||
|
Name[hu]=Új ablak
|
||||||
|
Name[hy_AM]=Նոր Պատուհան
|
||||||
|
Name[id]=Jendela Baru
|
||||||
|
Name[is]=Nýr gluggi
|
||||||
|
Name[it]=Nuova finestra
|
||||||
|
Name[ja]=新しいウィンドウ
|
||||||
|
Name[ja_JP-mac]=新規ウインドウ
|
||||||
|
Name[ka]=ახალი ფანჯარა
|
||||||
|
Name[kk]=Жаңа терезе
|
||||||
|
Name[km]=បង្អួចថ្មី
|
||||||
|
Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
||||||
|
Name[ko]=새 창
|
||||||
|
Name[kok]=नवें जनेल
|
||||||
|
Name[ks]=نئئ وِنڈو
|
||||||
|
Name[lij]=Neuvo barcon
|
||||||
|
Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
||||||
|
Name[lt]=Naujas langas
|
||||||
|
Name[ltg]=Jauns lūgs
|
||||||
|
Name[lv]=Jauns logs
|
||||||
|
Name[mai]=नव विंडो
|
||||||
|
Name[mk]=Нов прозорец
|
||||||
|
Name[ml]=പുതിയ ജാലകം
|
||||||
|
Name[mr]=नवीन पटल
|
||||||
|
Name[ms]=Tetingkap Baru
|
||||||
|
Name[my]=ဝင်းဒိုးအသစ်
|
||||||
|
Name[nb_NO]=Nytt vindu
|
||||||
|
Name[ne_NP]=नयाँ सञ्झ्याल
|
||||||
|
Name[nl]=Nieuw venster
|
||||||
|
Name[nn_NO]=Nytt vindauge
|
||||||
|
Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||||
|
Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
||||||
|
Name[pl]=Nowe okno
|
||||||
|
Name[pt_BR]=Nova janela
|
||||||
|
Name[pt_PT]=Nova janela
|
||||||
|
Name[rm]=Nova fanestra
|
||||||
|
Name[ro]=Fereastră nouă
|
||||||
|
Name[ru]=Новое окно
|
||||||
|
Name[sat]=नावा विंडो (N)
|
||||||
|
Name[si]=නව කවුළුවක්
|
||||||
|
Name[sk]=Nové okno
|
||||||
|
Name[sl]=Novo okno
|
||||||
|
Name[son]=Zanfun taaga
|
||||||
|
Name[sq]=Dritare e Re
|
||||||
|
Name[sr]=Нови прозор
|
||||||
|
Name[sv_SE]=Nytt fönster
|
||||||
|
Name[ta]=புதிய சாளரம்
|
||||||
|
Name[te]=కొత్త విండో
|
||||||
|
Name[th]=หน้าต่างใหม่
|
||||||
|
Name[tr]=Yeni pencere
|
||||||
|
Name[tsz]=Eraatarakua jimpani
|
||||||
|
Name[uk]=Нове вікно
|
||||||
|
Name[ur]=نیا دریچہ
|
||||||
|
Name[uz]=Yangi oyna
|
||||||
|
Name[vi]=Cửa sổ mới
|
||||||
|
Name[wo]=Palanteer bu bees
|
||||||
|
Name[xh]=Ifestile entsha
|
||||||
|
Name[zh_CN]=新建窗口
|
||||||
|
Name[zh_TW]=開新視窗
|
||||||
|
Exec=@EXEC@ --new-window %u
|
||||||
|
|
||||||
|
[Desktop Action new-private-window]
|
||||||
|
Name=Open a New Private Window
|
||||||
|
Name[ach]=Dirica manyen me mung
|
||||||
|
Name[af]=Nuwe privaatvenster
|
||||||
|
Name[an]=Nueva finestra privada
|
||||||
|
Name[ar]=نافذة خاصة جديدة
|
||||||
|
Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
||||||
|
Name[ast]=Ventana privada nueva
|
||||||
|
Name[az]=Yeni Məxfi Pəncərə
|
||||||
|
Name[be]=Новае акно адасаблення
|
||||||
|
Name[bg]=Нов прозорец за поверително сърфиране
|
||||||
|
Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
||||||
|
Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
||||||
|
Name[br]=Prenestr merdeiñ prevez nevez
|
||||||
|
Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||||
|
Name[bs]=Novi privatni prozor
|
||||||
|
Name[ca]=Finestra privada nova
|
||||||
|
Name[cak]=K'ak'a' ichinan tzuwäch
|
||||||
|
Name[cs]=Nové anonymní okno
|
||||||
|
Name[cy]=Ffenestr Breifat Newydd
|
||||||
|
Name[da]=Nyt privat vindue
|
||||||
|
Name[de]=Neues privates Fenster
|
||||||
|
Name[dsb]=Nowe priwatne wokno
|
||||||
|
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
||||||
|
Name[en_GB]=New Private Window
|
||||||
|
Name[en_US]=New Private Window
|
||||||
|
Name[en_ZA]=New Private Window
|
||||||
|
Name[eo]=Nova privata fenestro
|
||||||
|
Name[es_AR]=Nueva ventana privada
|
||||||
|
Name[es_CL]=Nueva ventana privada
|
||||||
|
Name[es_ES]=Nueva ventana privada
|
||||||
|
Name[es_MX]=Nueva ventana privada
|
||||||
|
Name[et]=Uus privaatne aken
|
||||||
|
Name[eu]=Leiho pribatu berria
|
||||||
|
Name[fa]=پنجره ناشناس جدید
|
||||||
|
Name[ff]=Henorde Suturo Hesere
|
||||||
|
Name[fi]=Uusi yksityinen ikkuna
|
||||||
|
Name[fr]=Nouvelle fenêtre de navigation privée
|
||||||
|
Name[fy_NL]=Nij priveefinster
|
||||||
|
Name[ga_IE]=Fuinneog Nua Phríobháideach
|
||||||
|
Name[gd]=Uinneag phrìobhaideach ùr
|
||||||
|
Name[gl]=Nova xanela privada
|
||||||
|
Name[gn]=Ovetã ñemi pyahu
|
||||||
|
Name[gu_IN]=નવી ખાનગી વિન્ડો
|
||||||
|
Name[he]=חלון פרטי חדש
|
||||||
|
Name[hi_IN]=नयी निजी विंडो
|
||||||
|
Name[hr]=Novi privatni prozor
|
||||||
|
Name[hsb]=Nowe priwatne wokno
|
||||||
|
Name[hu]=Új privát ablak
|
||||||
|
Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
||||||
|
Name[id]=Jendela Mode Pribadi Baru
|
||||||
|
Name[is]=Nýr huliðsgluggi
|
||||||
|
Name[it]=Nuova finestra anonima
|
||||||
|
Name[ja]=新しいプライベートウィンドウ
|
||||||
|
Name[ja_JP-mac]=新規プライベートウインドウ
|
||||||
|
Name[ka]=ახალი პირადი ფანჯარა
|
||||||
|
Name[kk]=Жаңа жекелік терезе
|
||||||
|
Name[km]=បង្អួចឯកជនថ្មី
|
||||||
|
Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
||||||
|
Name[ko]=새 사생활 보호 모드
|
||||||
|
Name[kok]=नवो खाजगी विंडो
|
||||||
|
Name[ks]=نْو پرایوٹ وینڈو&
|
||||||
|
Name[lij]=Neuvo barcon privou
|
||||||
|
Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
||||||
|
Name[lt]=Naujas privataus naršymo langas
|
||||||
|
Name[ltg]=Jauns privatais lūgs
|
||||||
|
Name[lv]=Jauns privātais logs
|
||||||
|
Name[mai]=नया निज विंडो (W)
|
||||||
|
Name[mk]=Нов приватен прозорец
|
||||||
|
Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||||
|
Name[mr]=नवीन वैयक्तिक पटल
|
||||||
|
Name[ms]=Tetingkap Persendirian Baharu
|
||||||
|
Name[my]=New Private Window
|
||||||
|
Name[nb_NO]=Nytt privat vindu
|
||||||
|
Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
||||||
|
Name[nl]=Nieuw privévenster
|
||||||
|
Name[nn_NO]=Nytt privat vindauge
|
||||||
|
Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||||
|
Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
||||||
|
Name[pl]=Nowe okno prywatne
|
||||||
|
Name[pt_BR]=Nova janela privativa
|
||||||
|
Name[pt_PT]=Nova janela privada
|
||||||
|
Name[rm]=Nova fanestra privata
|
||||||
|
Name[ro]=Fereastră privată nouă
|
||||||
|
Name[ru]=Новое приватное окно
|
||||||
|
Name[sat]=नावा निजेराक् विंडो (W )
|
||||||
|
Name[si]=නව පුද්ගලික කවුළුව (W)
|
||||||
|
Name[sk]=Nové okno v režime Súkromné prehliadanie
|
||||||
|
Name[sl]=Novo zasebno okno
|
||||||
|
Name[son]=Sutura zanfun taaga
|
||||||
|
Name[sq]=Dritare e Re Private
|
||||||
|
Name[sr]=Нови приватан прозор
|
||||||
|
Name[sv_SE]=Nytt privat fönster
|
||||||
|
Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
||||||
|
Name[te]=కొత్త ఆంతరంగిక విండో
|
||||||
|
Name[th]=หน้าต่างส่วนตัวใหม่
|
||||||
|
Name[tr]=Yeni gizli pencere
|
||||||
|
Name[tsz]=Juchiiti eraatarakua jimpani
|
||||||
|
Name[uk]=Приватне вікно
|
||||||
|
Name[ur]=نیا نجی دریچہ
|
||||||
|
Name[uz]=Yangi maxfiy oyna
|
||||||
|
Name[vi]=Cửa sổ riêng tư mới
|
||||||
|
Name[wo]=Panlanteeru biir bu bees
|
||||||
|
Name[xh]=Ifestile yangasese entsha
|
||||||
|
Name[zh_CN]=新建隐私浏览窗口
|
||||||
|
Name[zh_TW]=新增隱私視窗
|
||||||
|
Exec=@EXEC@ --private-window %u
|
||||||
|
|
||||||
|
[Desktop Action profile-manager-window]
|
||||||
|
Name=Open the Profile Manager
|
||||||
|
Name[de]=Profilverwaltung öffnen
|
||||||
|
Name[cs]=Správa profilů
|
||||||
|
Exec=@EXEC@ --ProfileManager
|
236
www-client/firefox/files/icon/firefox-r3.desktop
Normal file
236
www-client/firefox/files/icon/firefox-r3.desktop
Normal file
|
@ -0,0 +1,236 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=@NAME@
|
||||||
|
GenericName=Web Browser
|
||||||
|
Comment=Browse the Web
|
||||||
|
Exec=@EXEC@ %u
|
||||||
|
Icon=@ICON@
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=application/pdf;application/vnd.mozilla.xul+xml;application/xhtml+xml;text/html;text/mml;text/xml;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
|
StartupNotify=true
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
Keywords=web;browser;internet;
|
||||||
|
Actions=new-window;new-private-window;profile-manager-window;
|
||||||
|
|
||||||
|
[Desktop Action new-window]
|
||||||
|
Name=Open a New Window
|
||||||
|
Name[ach]=Dirica manyen
|
||||||
|
Name[af]=Nuwe venster
|
||||||
|
Name[an]=Nueva finestra
|
||||||
|
Name[ar]=نافذة جديدة
|
||||||
|
Name[as]=নতুন উইন্ডো
|
||||||
|
Name[ast]=Ventana nueva
|
||||||
|
Name[az]=Yeni Pəncərə
|
||||||
|
Name[be]=Новае акно
|
||||||
|
Name[bg]=Нов прозорец
|
||||||
|
Name[bn_BD]=নতুন উইন্ডো (N)
|
||||||
|
Name[bn_IN]=নতুন উইন্ডো
|
||||||
|
Name[br]=Prenestr nevez
|
||||||
|
Name[brx]=गोदान उइन्ड'(N)
|
||||||
|
Name[bs]=Novi prozor
|
||||||
|
Name[ca]=Finestra nova
|
||||||
|
Name[cak]=K'ak'a' tzuwäch
|
||||||
|
Name[cs]=Nové okno
|
||||||
|
Name[cy]=Ffenestr Newydd
|
||||||
|
Name[da]=Nyt vindue
|
||||||
|
Name[de]=Neues Fenster
|
||||||
|
Name[dsb]=Nowe wokno
|
||||||
|
Name[el]=Νέο παράθυρο
|
||||||
|
Name[en_GB]=New Window
|
||||||
|
Name[en_US]=New Window
|
||||||
|
Name[en_ZA]=New Window
|
||||||
|
Name[eo]=Nova fenestro
|
||||||
|
Name[es_AR]=Nueva ventana
|
||||||
|
Name[es_CL]=Nueva ventana
|
||||||
|
Name[es_ES]=Nueva ventana
|
||||||
|
Name[es_MX]=Nueva ventana
|
||||||
|
Name[et]=Uus aken
|
||||||
|
Name[eu]=Leiho berria
|
||||||
|
Name[fa]=پنجره جدید
|
||||||
|
Name[ff]=Henorde Hesere
|
||||||
|
Name[fi]=Uusi ikkuna
|
||||||
|
Name[fr]=Nouvelle fenêtre
|
||||||
|
Name[fy_NL]=Nij finster
|
||||||
|
Name[ga_IE]=Fuinneog Nua
|
||||||
|
Name[gd]=Uinneag ùr
|
||||||
|
Name[gl]=Nova xanela
|
||||||
|
Name[gn]=Ovetã pyahu
|
||||||
|
Name[gu_IN]=નવી વિન્ડો
|
||||||
|
Name[he]=חלון חדש
|
||||||
|
Name[hi_IN]=नया विंडो
|
||||||
|
Name[hr]=Novi prozor
|
||||||
|
Name[hsb]=Nowe wokno
|
||||||
|
Name[hu]=Új ablak
|
||||||
|
Name[hy_AM]=Նոր Պատուհան
|
||||||
|
Name[id]=Jendela Baru
|
||||||
|
Name[is]=Nýr gluggi
|
||||||
|
Name[it]=Nuova finestra
|
||||||
|
Name[ja]=新しいウィンドウ
|
||||||
|
Name[ja_JP-mac]=新規ウインドウ
|
||||||
|
Name[ka]=ახალი ფანჯარა
|
||||||
|
Name[kk]=Жаңа терезе
|
||||||
|
Name[km]=បង្អួចថ្មី
|
||||||
|
Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
||||||
|
Name[ko]=새 창
|
||||||
|
Name[kok]=नवें जनेल
|
||||||
|
Name[ks]=نئئ وِنڈو
|
||||||
|
Name[lij]=Neuvo barcon
|
||||||
|
Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
||||||
|
Name[lt]=Naujas langas
|
||||||
|
Name[ltg]=Jauns lūgs
|
||||||
|
Name[lv]=Jauns logs
|
||||||
|
Name[mai]=नव विंडो
|
||||||
|
Name[mk]=Нов прозорец
|
||||||
|
Name[ml]=പുതിയ ജാലകം
|
||||||
|
Name[mr]=नवीन पटल
|
||||||
|
Name[ms]=Tetingkap Baru
|
||||||
|
Name[my]=ဝင်းဒိုးအသစ်
|
||||||
|
Name[nb_NO]=Nytt vindu
|
||||||
|
Name[ne_NP]=नयाँ सञ्झ्याल
|
||||||
|
Name[nl]=Nieuw venster
|
||||||
|
Name[nn_NO]=Nytt vindauge
|
||||||
|
Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||||
|
Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
||||||
|
Name[pl]=Nowe okno
|
||||||
|
Name[pt_BR]=Nova janela
|
||||||
|
Name[pt_PT]=Nova janela
|
||||||
|
Name[rm]=Nova fanestra
|
||||||
|
Name[ro]=Fereastră nouă
|
||||||
|
Name[ru]=Новое окно
|
||||||
|
Name[sat]=नावा विंडो (N)
|
||||||
|
Name[si]=නව කවුළුවක්
|
||||||
|
Name[sk]=Nové okno
|
||||||
|
Name[sl]=Novo okno
|
||||||
|
Name[son]=Zanfun taaga
|
||||||
|
Name[sq]=Dritare e Re
|
||||||
|
Name[sr]=Нови прозор
|
||||||
|
Name[sv_SE]=Nytt fönster
|
||||||
|
Name[ta]=புதிய சாளரம்
|
||||||
|
Name[te]=కొత్త విండో
|
||||||
|
Name[th]=หน้าต่างใหม่
|
||||||
|
Name[tr]=Yeni pencere
|
||||||
|
Name[tsz]=Eraatarakua jimpani
|
||||||
|
Name[uk]=Нове вікно
|
||||||
|
Name[ur]=نیا دریچہ
|
||||||
|
Name[uz]=Yangi oyna
|
||||||
|
Name[vi]=Cửa sổ mới
|
||||||
|
Name[wo]=Palanteer bu bees
|
||||||
|
Name[xh]=Ifestile entsha
|
||||||
|
Name[zh_CN]=新建窗口
|
||||||
|
Name[zh_TW]=開新視窗
|
||||||
|
Exec=@EXEC@ --new-window %u
|
||||||
|
|
||||||
|
[Desktop Action new-private-window]
|
||||||
|
Name=Open a New Private Window
|
||||||
|
Name[ach]=Dirica manyen me mung
|
||||||
|
Name[af]=Nuwe privaatvenster
|
||||||
|
Name[an]=Nueva finestra privada
|
||||||
|
Name[ar]=نافذة خاصة جديدة
|
||||||
|
Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
||||||
|
Name[ast]=Ventana privada nueva
|
||||||
|
Name[az]=Yeni Məxfi Pəncərə
|
||||||
|
Name[be]=Новае акно адасаблення
|
||||||
|
Name[bg]=Нов прозорец за поверително сърфиране
|
||||||
|
Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
||||||
|
Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
||||||
|
Name[br]=Prenestr merdeiñ prevez nevez
|
||||||
|
Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||||
|
Name[bs]=Novi privatni prozor
|
||||||
|
Name[ca]=Finestra privada nova
|
||||||
|
Name[cak]=K'ak'a' ichinan tzuwäch
|
||||||
|
Name[cs]=Nové anonymní okno
|
||||||
|
Name[cy]=Ffenestr Breifat Newydd
|
||||||
|
Name[da]=Nyt privat vindue
|
||||||
|
Name[de]=Neues privates Fenster
|
||||||
|
Name[dsb]=Nowe priwatne wokno
|
||||||
|
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
||||||
|
Name[en_GB]=New Private Window
|
||||||
|
Name[en_US]=New Private Window
|
||||||
|
Name[en_ZA]=New Private Window
|
||||||
|
Name[eo]=Nova privata fenestro
|
||||||
|
Name[es_AR]=Nueva ventana privada
|
||||||
|
Name[es_CL]=Nueva ventana privada
|
||||||
|
Name[es_ES]=Nueva ventana privada
|
||||||
|
Name[es_MX]=Nueva ventana privada
|
||||||
|
Name[et]=Uus privaatne aken
|
||||||
|
Name[eu]=Leiho pribatu berria
|
||||||
|
Name[fa]=پنجره ناشناس جدید
|
||||||
|
Name[ff]=Henorde Suturo Hesere
|
||||||
|
Name[fi]=Uusi yksityinen ikkuna
|
||||||
|
Name[fr]=Nouvelle fenêtre de navigation privée
|
||||||
|
Name[fy_NL]=Nij priveefinster
|
||||||
|
Name[ga_IE]=Fuinneog Nua Phríobháideach
|
||||||
|
Name[gd]=Uinneag phrìobhaideach ùr
|
||||||
|
Name[gl]=Nova xanela privada
|
||||||
|
Name[gn]=Ovetã ñemi pyahu
|
||||||
|
Name[gu_IN]=નવી ખાનગી વિન્ડો
|
||||||
|
Name[he]=חלון פרטי חדש
|
||||||
|
Name[hi_IN]=नयी निजी विंडो
|
||||||
|
Name[hr]=Novi privatni prozor
|
||||||
|
Name[hsb]=Nowe priwatne wokno
|
||||||
|
Name[hu]=Új privát ablak
|
||||||
|
Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
||||||
|
Name[id]=Jendela Mode Pribadi Baru
|
||||||
|
Name[is]=Nýr huliðsgluggi
|
||||||
|
Name[it]=Nuova finestra anonima
|
||||||
|
Name[ja]=新しいプライベートウィンドウ
|
||||||
|
Name[ja_JP-mac]=新規プライベートウインドウ
|
||||||
|
Name[ka]=ახალი პირადი ფანჯარა
|
||||||
|
Name[kk]=Жаңа жекелік терезе
|
||||||
|
Name[km]=បង្អួចឯកជនថ្មី
|
||||||
|
Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
||||||
|
Name[ko]=새 사생활 보호 모드
|
||||||
|
Name[kok]=नवो खाजगी विंडो
|
||||||
|
Name[ks]=نْو پرایوٹ وینڈو&
|
||||||
|
Name[lij]=Neuvo barcon privou
|
||||||
|
Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
||||||
|
Name[lt]=Naujas privataus naršymo langas
|
||||||
|
Name[ltg]=Jauns privatais lūgs
|
||||||
|
Name[lv]=Jauns privātais logs
|
||||||
|
Name[mai]=नया निज विंडो (W)
|
||||||
|
Name[mk]=Нов приватен прозорец
|
||||||
|
Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||||
|
Name[mr]=नवीन वैयक्तिक पटल
|
||||||
|
Name[ms]=Tetingkap Persendirian Baharu
|
||||||
|
Name[my]=New Private Window
|
||||||
|
Name[nb_NO]=Nytt privat vindu
|
||||||
|
Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
||||||
|
Name[nl]=Nieuw privévenster
|
||||||
|
Name[nn_NO]=Nytt privat vindauge
|
||||||
|
Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||||
|
Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
||||||
|
Name[pl]=Nowe okno prywatne
|
||||||
|
Name[pt_BR]=Nova janela privativa
|
||||||
|
Name[pt_PT]=Nova janela privada
|
||||||
|
Name[rm]=Nova fanestra privata
|
||||||
|
Name[ro]=Fereastră privată nouă
|
||||||
|
Name[ru]=Новое приватное окно
|
||||||
|
Name[sat]=नावा निजेराक् विंडो (W )
|
||||||
|
Name[si]=නව පුද්ගලික කවුළුව (W)
|
||||||
|
Name[sk]=Nové okno v režime Súkromné prehliadanie
|
||||||
|
Name[sl]=Novo zasebno okno
|
||||||
|
Name[son]=Sutura zanfun taaga
|
||||||
|
Name[sq]=Dritare e Re Private
|
||||||
|
Name[sr]=Нови приватан прозор
|
||||||
|
Name[sv_SE]=Nytt privat fönster
|
||||||
|
Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
||||||
|
Name[te]=కొత్త ఆంతరంగిక విండో
|
||||||
|
Name[th]=หน้าต่างส่วนตัวใหม่
|
||||||
|
Name[tr]=Yeni gizli pencere
|
||||||
|
Name[tsz]=Juchiiti eraatarakua jimpani
|
||||||
|
Name[uk]=Приватне вікно
|
||||||
|
Name[ur]=نیا نجی دریچہ
|
||||||
|
Name[uz]=Yangi maxfiy oyna
|
||||||
|
Name[vi]=Cửa sổ riêng tư mới
|
||||||
|
Name[wo]=Panlanteeru biir bu bees
|
||||||
|
Name[xh]=Ifestile yangasese entsha
|
||||||
|
Name[zh_CN]=新建隐私浏览窗口
|
||||||
|
Name[zh_TW]=新增隱私視窗
|
||||||
|
Exec=@EXEC@ --private-window %u
|
||||||
|
|
||||||
|
[Desktop Action profile-manager-window]
|
||||||
|
Name=Open the Profile Manager
|
||||||
|
Name[de]=Profilverwaltung öffnen
|
||||||
|
Name[cs]=Správa profilů
|
||||||
|
Exec=@EXEC@ --ProfileManager
|
64
www-client/firefox/files/icon/firefox-symbolic.svg
Normal file
64
www-client/firefox/files/icon/firefox-symbolic.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 7.3 KiB |
1417
www-client/firefox/firefox-115.12.0.ebuild
Normal file
1417
www-client/firefox/firefox-115.12.0.ebuild
Normal file
File diff suppressed because it is too large
Load diff
1417
www-client/firefox/firefox-115.13.0.ebuild
Normal file
1417
www-client/firefox/firefox-115.13.0.ebuild
Normal file
File diff suppressed because it is too large
Load diff
44
www-client/firefox/metadata.xml
Normal file
44
www-client/firefox/metadata.xml
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="project">
|
||||||
|
<email>mozilla@gentoo.org</email>
|
||||||
|
<name>Gentoo Mozilla Team</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="clang">Use Clang compiler instead of GCC</flag>
|
||||||
|
<flag name="eme-free">Disable EME (DRM plugin) capability at build time</flag>
|
||||||
|
<flag name="geckodriver">Enable WebDriver support</flag>
|
||||||
|
<flag name="gmp-autoupdate">Allow Gecko Media Plugins (binary blobs) to be automatically
|
||||||
|
downloaded and kept up-to-date in user profiles</flag>
|
||||||
|
<flag name="hwaccel">Force-enable hardware-accelerated rendering (Mozilla bug 594876)</flag>
|
||||||
|
<flag name="jumbo-build">Enable unified build - combines source files to speed up build process, but requires more memory</flag>
|
||||||
|
<flag name="libproxy">Enable libproxy support</flag>
|
||||||
|
<flag name="openh264">Use <pkg>media-libs/openh264</pkg> for H264 support
|
||||||
|
instead of downloading binary blob from Mozilla at runtime</flag>
|
||||||
|
<flag name="pgo">Add support for profile-guided optimization for faster binaries - this
|
||||||
|
option will double the compile time</flag>
|
||||||
|
<flag name="pulseaudio">Add sound server support via media-libs/libpulse (may be PulseAudio or
|
||||||
|
Pipewire, or apulse if installed)</flag>
|
||||||
|
<flag name="sndio">Enable support for the <pkg>media-sound/sndio</pkg> backend</flag>
|
||||||
|
<flag name="system-av1">Use the system-wide <pkg>media-libs/dav1d</pkg>
|
||||||
|
and <pkg>media-libs/libaom</pkg> library instead of bundled</flag>
|
||||||
|
<flag name="system-harfbuzz">Use the system-wide <pkg>media-libs/harfbuzz</pkg>
|
||||||
|
and <pkg>media-gfx/graphite2</pkg> instead of bundled</flag>
|
||||||
|
<flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg>
|
||||||
|
instead of bundled</flag>
|
||||||
|
<flag name="system-jpeg">Use the system-wide <pkg>media-libs/libjpeg-turbo</pkg>
|
||||||
|
instead of bundled</flag>
|
||||||
|
<flag name="system-libevent">Use the system-wide <pkg>dev-libs/libevent</pkg>
|
||||||
|
instead of bundled</flag>
|
||||||
|
<flag name="system-libvpx">Use the system-wide <pkg>media-libs/libvpx</pkg>
|
||||||
|
instead of bundled</flag>
|
||||||
|
<flag name="system-png">Use the system-wide <pkg>media-libs/libpng</pkg>
|
||||||
|
instead of bundled (requires APNG patches)</flag>
|
||||||
|
<flag name="system-python-libs">Use system's python site instead of bundled python libraries</flag>
|
||||||
|
<flag name="system-webp">Use the system-wide <pkg>media-libs/libwebp</pkg>
|
||||||
|
instead of bundled</flag>
|
||||||
|
<flag name="wifi">Enable necko-wifi for NetworkManager integration, and access point MAC
|
||||||
|
address scanning for better precision with opt-in geolocation services</flag>
|
||||||
|
</use>
|
||||||
|
</pkgmetadata>
|
Loading…
Reference in a new issue