История изменений
Исправление LongLiveUbuntu, (текущая версия) :
Не, это rpmка в которой исполняемый файл, иконка и desktop-файл для меню. Ну и зависимости, прописаны. Только rpm.src у меня нет и что там именно, сказать не могу, угадывал по выхлопу ldd. Из отличий сборки - оставил только библиотеки и собираю только 64 бита, так как собирать и 32 бита смысла нет.
Вот ебилд:
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Please bump with dev-libs/icu-layoutex
PYTHON_COMPAT=( python3_{10..11} )
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
inherit autotools flag-o-matic python-any-r1 toolchain-funcs verify-sig
MY_PV=${PV/_rc/-rc}
MY_PV=${MY_PV//./_}
DESCRIPTION="International Components for Unicode"
HOMEPAGE="https://icu.unicode.org/"
SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
S="${WORKDIR}"/icu/source
if [[ ${PV} != *_rc* ]] ; then
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
fi
LICENSE="BSD"
SLOT="0/${PV%.*}.1"
IUSE="debug doc examples static-libs test"
RESTRICT="!test? ( test )"
BDEPEND="
${PYTHON_DEPS}
sys-devel/autoconf-archive
virtual/pkgconfig
doc? ( app-doc/doxygen[dot] )
verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
"
PATCHES=(
"${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
"${FILESDIR}/${PN}-64.2-darwin.patch"
"${FILESDIR}/${PN}-68.1-nonunicode.patch"
)
QA_PREBUILT="/opt/icu-bin"
src_prepare() {
default
# Disable renaming as it assumes stable ABI and that consumers
# won't use unofficial APIs. We need this despite the configure argument.
sed -i \
-e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
common/unicode/uconfig.h || die
# Fix linking of icudata
sed -i \
-e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
config/mh-linux || die
# Append doxygen configuration to configure
sed -i \
-e 's:icudefs.mk:icudefs.mk Doxyfile:' \
configure.ac || die
eautoreconf
}
src_configure() {
MAKEOPTS+=" VERBOSE=1"
local myeconfargs=(
--prefix=${QA_PREBUILT}
)
econf --prefix=${QA_PREBUILT}
# ICU tries to append -std=c++11 without this, so as of 71.1,
# despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
# we still need this.
append-cxxflags -std=c++14
echo "${myeconfargs[0]}"
}
src_compile() {
default
if use doc; then
doxygen -u Doxyfile || die
doxygen Doxyfile || die
fi
}
src_install() {
emake install DESTDIR=${D}
if use doc; then
docinto html
dodoc -r doc/html/*
fi
rm -r ${D}/usr
}
pkg_postinst() {
rm -r ${D}/${QA_PREBUILT}/bin
rm -r ${D}/${QA_PREBUILT}/include
rm -r ${D}/${QA_PREBUILT}/sbin
dosym -r ${QA_PREBUILT}/lib64 ${QA_PREBUILT}/lib
cp ${FILESDIR}/icu-bin.so.conf ${EPREFIX}/etc/ld.so.conf.d
}
pkg_postrm() {
rm -rf ${QA_PREBUILT}
rm ${EPREFIX}/ld.so.conf.d/icu-bin.so.conf
}
Исходная версия LongLiveUbuntu, :
Не, это rpmка в которой исполняемый файл, иконка и desktop-файл для меню. Ну и зависимости, прописаны. Только rpm.src у меня нет и что там именно, сказать не могу, угадывал по выхлопу ldd. Из отличий сборки - оставил только библиотеки и собираю только 64 бита, так как собирать и 32 бита смысла нет.
Вот ебилд:
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Please bump with dev-libs/icu-layoutex
PYTHON_COMPAT=( python3_{10..11} )
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
inherit autotools flag-o-matic python-any-r1 toolchain-funcs verify-sig
MY_PV=${PV/_rc/-rc}
MY_PV=${MY_PV//./_}
DESCRIPTION="International Components for Unicode"
HOMEPAGE="https://icu.unicode.org/"
SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
S="${WORKDIR}"/icu/source
if [[ ${PV} != *_rc* ]] ; then
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
fi
LICENSE="BSD"
SLOT="0/${PV%.*}.1"
IUSE="debug doc examples static-libs test"
RESTRICT="!test? ( test )"
BDEPEND="
${PYTHON_DEPS}
sys-devel/autoconf-archive
virtual/pkgconfig
doc? ( app-doc/doxygen[dot] )
verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
"
PATCHES=(
"${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
"${FILESDIR}/${PN}-64.2-darwin.patch"
"${FILESDIR}/${PN}-68.1-nonunicode.patch"
)
QA_PREBUILT="/opt/icu-bin"
src_prepare() {
default
# Disable renaming as it assumes stable ABI and that consumers
# won't use unofficial APIs. We need this despite the configure argument.
sed -i \
-e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
common/unicode/uconfig.h || die
# Fix linking of icudata
sed -i \
-e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
config/mh-linux || die
# Append doxygen configuration to configure
sed -i \
-e 's:icudefs.mk:icudefs.mk Doxyfile:' \
configure.ac || die
eautoreconf
}
src_configure() {
MAKEOPTS+=" VERBOSE=1"
local myeconfargs=(
--prefix=${QA_PREBUILT}
)
econf --prefix=${QA_PREBUILT}
# ICU tries to append -std=c++11 without this, so as of 71.1,
# despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
# we still need this.
append-cxxflags -std=c++14
echo "${myeconfargs[0]}"
}
src_compile() {
default
if use doc; then
doxygen -u Doxyfile || die
doxygen Doxyfile || die
fi
}
src_install() {
emake install DESTDIR=${D}
if use doc; then
docinto html
dodoc -r doc/html/*
fi
rm -r ${D}/usr
}
pkg_postinst() {
rm -r ${D}/${QA_PREBUILT}/bin
rm -r ${D}/${QA_PREBUILT}/include
rm -r ${D}/${QA_PREBUILT}/sbin
dosym -r ${QA_PREBUILT}/lib64 ${QA_PREBUILT}/lib
cp ${FILESDIR}/icu-bin.so.conf ${EPREFIX}/etc/ld.so.conf.d
}
pkg_postrm() {
rm -rf ${QA_PREBUILT}
rm ${EPREFIX}/ld.so.conf.d/icu-bin.so.conf
}