LINUX.ORG.RU

История изменений

Исправление 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
}