commit:     851b8114ac8fd72a191753031827ff2da925d095
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May 17 01:07:47 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May 17 01:08:54 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=851b8114

dev-lang/julia-bin: refresh live

Start to use a live template for 9999. It still has some duplication
of logic but the old live ebuild was out of sync with release versions
and this hopefully lays the groundwork for (others to) improv(e|ing) it in
future.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-lang/julia-bin/julia-bin-9999.ebuild | 101 +++++++++++++++++++++++--------
 1 file changed, 76 insertions(+), 25 deletions(-)

diff --git a/dev-lang/julia-bin/julia-bin-9999.ebuild 
b/dev-lang/julia-bin/julia-bin-9999.ebuild
index def85bee0129..707178f8c70e 100644
--- a/dev-lang/julia-bin/julia-bin-9999.ebuild
+++ b/dev-lang/julia-bin/julia-bin-9999.ebuild
@@ -1,51 +1,102 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=7
+EAPI=8
 
 MY_PN=${PN/-bin/}
 
+inherit edo
+
 DESCRIPTION="High-performance programming language for technical computing"
 HOMEPAGE="https://julialang.org/";
-S="${WORKDIR}/"
 
-PROPERTIES="live"
-MY_P=${MY_PN}-latest
-SRC_URI=""
+if [[ ${PV} == 9999 ]] ; then
+       MY_P=${MY_PN}-latest
+       S="${WORKDIR}/"
+
+       SLOT="9999"
+       BDEPEND="net-misc/wget"
+       PROPERTIES="live"
+else
+       MY_P=${MY_PN}-${PV/_/-}
+       MY_PV=$(ver_cut 1-2)
+       BASE_SRC_URI="https://julialang-s3.julialang.org/bin";
+
+       SRC_URI="
+               x86? ( 
${BASE_SRC_URI}/linux/x86/${MY_PV}/${MY_P}-linux-i686.tar.gz )
+               amd64? (
+                       elibc_glibc? ( 
${BASE_SRC_URI}/linux/x64/${MY_PV}/${MY_P}-linux-x86_64.tar.gz )
+                       elibc_musl? ( 
${BASE_SRC_URI}/musl/x64/${MY_PV}/${MY_P}-musl-x86_64.tar.gz )
+               )
+               arm64? ( 
${BASE_SRC_URI}/linux/aarch64/${MY_PV}/${MY_P}-linux-aarch64.tar.gz )
+       "
+
+       SLOT="${MY_PV}"
+       KEYWORDS="-* ~amd64 ~arm64 ~x86"
+fi
 
 LICENSE="MIT"
-SLOT="9999"
 RESTRICT="strip"
 
 RDEPEND="app-arch/p7zip"
-DEPEND="${RDEPEND}"
 
 QA_PREBUILT="*"
 
 src_unpack() {
-       NIGHTLIES_S3="https://julialangnightlies-s3.julialang.org/bin";
-       if use x86; then
-               URI="${NIGHTLIES_S3}/linux/x86/${MY_P}-linux32.tar.gz"
-       elif use amd64; then
-               URI="${NIGHTLIES_S3}/linux/x64/${MY_P}-linux64.tar.gz"
-       elif use arm64; then
-               URI="${NIGHTLIES_S3}/linux/aarch64/${MY_P}-linuxaarch64.tar.gz"
+       if [[ ${PV} == 9999 ]] ; then
+               NIGHTLIES_S3="https://julialangnightlies-s3.julialang.org/bin";
+               if use x86; then
+                       URI="${NIGHTLIES_S3}/linux/x86/${MY_P}-linux32.tar.gz"
+               elif use amd64; then
+                       URI="${NIGHTLIES_S3}/linux/x64/${MY_P}-linux64.tar.gz"
+               elif use arm64; then
+                       
URI="${NIGHTLIES_S3}/linux/aarch64/${MY_P}-linuxaarch64.tar.gz"
+               else
+                       die "arch not supported"
+               fi
+
+               edo wget -O "${T}/julia.tar.gz" "${URI}" || die
+               unpack "${T}/julia.tar.gz"
        else
-               die "arch not supported"
+               default
        fi
+}
 
-       wget -O "${T}/julia.tar.gz" "${URI}"
-       unpack "${T}/julia.tar.gz"
+src_test() {
+       # Smoke test to catch issues like bug #956047
+       if [[ ${PV} == 9999 ]] ; then
+               edo ./julia-*/bin/julia --version
+       else
+               edo bin/julia --version
+       fi
 }
 
 src_install() {
        insinto "/usr/$(get_libdir)/${MY_P}/"
-       doins -r ./julia-*/etc
-       doins -r ./julia-*/include
-       doins -r ./julia-*/lib
-       doins -r ./julia-*/share
-
        exeinto "/usr/$(get_libdir)/${MY_P}/bin"
-       doexe ./julia-*/bin/julia
-       dosym "../$(get_libdir)/${MY_P}/bin/julia" "/usr/bin/julia${PV}"
+
+       if [[ ${PV} == 9999 ]] ; then
+               doins -r ./julia-*/etc
+               doins -r ./julia-*/include
+               doins -r ./julia-*/lib
+               doins -r ./julia-*/share
+
+               doexe ./julia-*/bin/julia
+               dosym "../$(get_libdir)/${MY_P}/bin/julia" "/usr/bin/julia${PV}"
+       else
+               doins -r ./etc
+               doins -r ./include
+               doins -r ./lib
+               doins -r ./share
+
+               doexe bin/${MY_PN}
+               dosym "../$(get_libdir)/${MY_P}/bin/${MY_PN}" 
"/usr/bin/${MY_PN}${SLOT}"
+
+               local revord=$(( 9999 - $(ver_cut 1) * 100 - $(ver_cut 2) )) # 
1.6 -> 106
+               newenvd - 99${MY_PN}${revord} <<-EOF
+               PATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/bin"
+               EOF
+       fi
+
+       elog "QA warnings about unresolved SONAME dependencies can be safely 
ignored."
 }

Reply via email to