From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id DF7DE158287 for ; Mon, 12 May 2025 04:01:51 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id C93083431FE for ; Mon, 12 May 2025 04:01:51 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id A07C211036D; Mon, 12 May 2025 04:01:44 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 9730B11036D for ; Mon, 12 May 2025 04:01:44 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 53B553431AA for ; Mon, 12 May 2025 04:01:44 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 95F8327E6 for ; Mon, 12 May 2025 04:01:42 +0000 (UTC) From: "Horodniceanu Andrei" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Horodniceanu Andrei" Message-ID: <1746979394.b9d10dab6e506dac925904790cd883615fc51759.a.horodniceanu@gentoo> Subject: [gentoo-commits] repo/user/dlang:master commit in: dev-util/gdmd/ X-VCS-Repository: repo/user/dlang X-VCS-Files: dev-util/gdmd/gdmd-15.ebuild X-VCS-Directories: dev-util/gdmd/ X-VCS-Committer: a.horodniceanu X-VCS-Committer-Name: Horodniceanu Andrei X-VCS-Revision: b9d10dab6e506dac925904790cd883615fc51759 X-VCS-Branch: master Date: Mon, 12 May 2025 04:01:42 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: f584942f-04ad-4556-99ea-0ca064c446ef X-Archives-Hash: 9e0aae01763b0c9cfa6aefbc06179f33 commit: b9d10dab6e506dac925904790cd883615fc51759 Author: Andrei Horodniceanu proton me> AuthorDate: Sat Apr 26 13:07:46 2025 +0000 Commit: Horodniceanu Andrei proton me> CommitDate: Sun May 11 16:03:14 2025 +0000 URL: https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=b9d10dab dev-util/gdmd: add 15 Additional features: - Install gdmd-VER and CHOST-gdmd-VER convenience symlinks Additional fixes: - Add missing dev-lang/perl RDEPEND - Correctly handle prefix systems by invoking the right perl Signed-off-by: Andrei Horodniceanu proton.me> dev-util/gdmd/gdmd-15.ebuild | 75 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/dev-util/gdmd/gdmd-15.ebuild b/dev-util/gdmd/gdmd-15.ebuild new file mode 100644 index 0000000..d543b38 --- /dev/null +++ b/dev-util/gdmd/gdmd-15.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit prefix + +DESCRIPTION="Wrapper script for gdc that emulates the dmd command" +HOMEPAGE="https://www.gdcproject.org/" + +RELEASE="0.1.0" +SRC_URI="https://codeload.github.com/D-Programming-GDC/gdmd/tar.gz/script-${RELEASE} -> gdmd-${RELEASE}.tar.gz" +S="${WORKDIR}/gdmd-script-${RELEASE}" +LICENSE="GPL-3+" + +SLOT="${PV}" +KEYWORDS="~amd64 ~arm64 ~x86" +RESTRICT="test" # no tests + +RDEPEND=" + dev-lang/perl + sys-devel/gcc:${PV}[d] +" + +PATCHES="${FILESDIR}/${PN}-no-dmd-conf.patch" + +src_prepare() { + hprefixify dmd-script + default +} + +src_compile() { + : +} + +src_install() { + local binPath="/usr/${CHOST}/gcc-bin/${PV}" + exeinto "${binPath}" + newexe dmd-script "${CHOST}-gdmd" + dosym "${CHOST}-gdmd" "${binPath}/gdmd" + + dosym -r "${binPath}/${CHOST}-gdmd" "/usr/bin/${CHOST}-gdmd-${SLOT}" + dosym -r "${binPath}/${CHOST}-gdmd" "/usr/bin/gdmd-${SLOT}" +} + +pkg_postinst() { + maybe_update_gcc_config +} + +# We can't really call gcc-config in postrm since it won't know which +# symlinks under /usr/bin were left by us. If it turns out to be a +# problem we could try to remove the symlink manually. + +maybe_update_gcc_config() { + # Call gcc-config if the current configuration if for the same slot + # we are installing to. This is needed to make gdmd available in + # $PATH. + + local CTARGET=${CTARGET:-${CHOST}} + + # Logic taken from toolchain.eclass and simplified a little + local curr_config + curr_config=$(gcc-config -c ${CTARGET} 2>&1) || return 0 + + local curr_config_ver=$(gcc-config -S ${curr_config} | awk '{print $2}') + local curr_specs=$(gcc-config -S ${curr_config} | awk '{print $3}') + + if [[ ${curr_config_ver} == ${SLOT} && ! ${curr_specs} ]]; then + # We should call gcc-config to make sure the addition of gdmd is + # propagated in $PATH. Don't do anything if not on a traditional + # layout, the risk of breaking something outweights having the + # script in $PATH. + gcc-config "${CTARGET}-${SLOT}" + fi +}