From: "Haelwenn Monnier" <contact@hacktivis.me>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:master commit in: eclass/
Date: Thu, 5 May 2022 14:42:28 +0000 (UTC) [thread overview]
Message-ID: <1651735937.14617d41adcaac22702439046b5dad6a5979ac94.lanodan@gentoo> (raw)
commit: 14617d41adcaac22702439046b5dad6a5979ac94
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Thu May 5 07:24:49 2022 +0000
Commit: Haelwenn Monnier <contact <AT> hacktivis <DOT> me>
CommitDate: Thu May 5 07:32:17 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=14617d41
octaveforge.eclass: move octaveforge makefile logic into the eclass
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
eclass/octaveforge.eclass | 128 +++++++++++++++++++++++++++++++++++-----------
1 file changed, 99 insertions(+), 29 deletions(-)
diff --git a/eclass/octaveforge.eclass b/eclass/octaveforge.eclass
index 590f21a1c..7f5f38dee 100644
--- a/eclass/octaveforge.eclass
+++ b/eclass/octaveforge.eclass
@@ -17,12 +17,7 @@ case ${EAPI} in
*) die "${ECLASS}: EAPI ${EAPI} unsupported."
esac
-EXPORT_FUNCTIONS src_unpack src_prepare src_install pkg_postinst pkg_prerm pkg_postrm
-
-# @ECLASS-VARIABLE: OCTAVEFORGE_CAT
-# @DESCRIPTION:
-# the octave-forge category of the package.
-OCTAVEFORGE_CAT="${OCTAVEFORGE_CAT:-main}"
+EXPORT_FUNCTIONS src_unpack src_prepare src_compile src_install pkg_postinst pkg_prerm pkg_postrm
# @ECLASS-VARIABLE: REPO_URI
# @DESCRIPTION:
@@ -48,7 +43,6 @@ OCT_BIN="$(type -p octave)"
SRC_URI="
mirror://sourceforge/octave/${P}.tar.gz
- ${REPO_URI}/packages/package_Makefile.in -> octaveforge_Makefile
${REPO_URI}/packages/package_configure.in -> octaveforge_configure
"
SLOT="0"
@@ -68,12 +62,7 @@ octaveforge_src_unpack() {
# @DESCRIPTION:
# function to add octaveforge specific makefile and configure and run autogen.sh if available
octaveforge_src_prepare() {
- for filename in Makefile configure; do
- cp "${DISTDIR}/octaveforge_${filename}" "${S}/${filename}" || die
- done
-
- #octave_config_info is deprecated in octave5
- sed -i 's|octave_config_info|__octave_config_info__|g' Makefile || die
+ cp "${DISTDIR}/octaveforge_configure" "${S}/configure" || die
chmod 0755 "${S}/configure" || die
if [[ -e "${S}/src/autogen.sh" ]]; then
@@ -87,12 +76,87 @@ octaveforge_src_prepare() {
eapply_user
}
+octaveforge_src_compile() {
+ PKGDIR="$(pwd | sed -e 's|^.*/||' || die)"
+ export OCT_PACKAGE="${TMPDIR}/${PKGDIR}.tar.gz"
+ export OCT_PKG=$(echo "${PKGDIR}" | sed -e 's|^\(.*\)-.*|\1|' || die)
+ export MKOCTFILE="mkoctfile -v"
+
+ cmd="disp(__octave_config_info__('octlibdir'));"
+ OCTLIBDIR=$(octavecommand "${cmd}" || die)
+ export LFLAGS="-L${OCTLIBDIR}"
+
+ if [[ -e src/Makefile ]]; then
+ emake -C src all
+ fi
+
+ if [[ -e src/Makefile ]]; then
+ mv src/Makefile src/Makefile.disable || die
+ fi
+ if [[ -e src/configure ]]; then
+ mv src/configure src/configure.disable || die
+ fi
+
+ pushd .. || die
+ tar -czf "${OCT_PACKAGE}" "${PKGDIR}" || die
+}
+
# @FUNCTION: octaveforge_src_install
# @DESCRIPTION:
# function to install the octave package
# documentation to docsdir
octaveforge_src_install() {
- emake DESTDIR="${D}" DISTPKG='Gentoo' install
+ TMPDIR="${T}"
+ DESTDIR="${D}"
+ DISTPKG='Gentoo'
+
+ pushd ../ || die
+ if [[ "X${DISTPKG}X" != "XX" ]]; then
+ stripcmd="
+ unlink(pkg('local_list'));
+ unlink(pkg('global_list'));
+ "
+ fi
+ if [[ "X${DESTDIR}X" = "XX" ]]; then
+ cmd="
+ warning('off','all');
+ pkg('install','${OCT_PACKAGE}');l=pkg('list');
+ disp(l{cellfun(@(x)strcmp(x.name,'${OCT_PKG}'),l)}.dir);
+ "
+ oct_pkgdir=$(octavecommand "${cmd}${stripcmd}" || die)
+ else
+ cmd="disp(fullfile(OCTAVE_HOME(),'share','octave'));"
+ shareprefix=${DESTDIR}/$(octavecommand "${cmd}" || die)
+ cmd="disp(fullfile(__octave_config_info__('libexecdir'),'octave'));"
+ libexecprefix=${DESTDIR}/$(octavecommand "${cmd}" || die)
+ octprefix="${shareprefix}/packages" || die
+ archprefix="${libexecprefix}/packages" || die
+ if [[ ! -e "${octprefix}" ]]; then
+ mkdir -p "${octprefix}" || die
+ fi
+ if [[ ! -e "${archprefix}" ]]; then
+ mkdir -p "${archprefix}" || die
+ fi
+ cmd="
+ warning('off','all');
+ pkg('prefix','${octprefix}','${archprefix}');
+ pkg('global_list',fullfile('${shareprefix}','octave_packages'));
+ pkg('local_list',fullfile('${shareprefix}','octave_packages'));
+ pkg('install','-nodeps','-verbose','${OCT_PACKAGE}');
+ "
+ octavecommand "${cmd}" || die
+ cmd="
+ warning('off','all');
+ pkg('prefix','${octprefix}','${archprefix}');
+ pkg('global_list',fullfile('${shareprefix}','octave_packages'));
+ pkg('local_list',fullfile('${shareprefix}','octave_packages'));
+ l=pkg('list');
+ disp(l{cellfun(@(x)strcmp(x.name,'${OCT_PKG}'),l)}.dir);
+ "
+ oct_pkgdir=$(octavecommand "${cmd}${stripcmd}" || die)
+ fi
+ export oct_pkgdir
+
if [[ -d doc/ ]]; then
dodoc -r doc/*
fi
@@ -106,7 +170,8 @@ octaveforge_pkg_postinst() {
if [[ ! -d "${OCT_PKGDIR}" ]] ; then
mkdir -p "${OCT_PKGDIR}" || die
fi
- "${OCT_BIN}" -H -q --no-site-file --eval "pkg('rebuild');" &> /dev/null || die 'failed to register the package.'
+ cmd="pkg('rebuild');"
+ octavecommand "${cmd}" || die 'failed to register the package.'
}
# @FUNCTION: octaveforge_pkg_prerm
@@ -114,21 +179,21 @@ octaveforge_pkg_postinst() {
# function that will run on_uninstall routines to prepare the package to remove
octaveforge_pkg_prerm() {
einfo 'Running on_uninstall routines to prepare the package to remove.'
- local pkgdir=$(
- "${OCT_BIN}" -H -q --no-site-file --eval "
- pkg('rebuild');
- l = pkg('list');
- disp(l{cellfun(@(x)strcmp(x.name,'${PN}'),l)}.dir);
- "
- )
- rm -f "${pkgdir}/packinfo/on_uninstall.m" || die
- if [[ -e "${pkgdir}/packinfo/on_uninstall.m.orig" ]]; then
- mv "$pkgdir"/packinfo/on_uninstall.m{.orig,} || die
- cd "$pkgdir/packinfo" || die
- "${OCT_BIN}" -H -q --no-site-file --eval "
+ cmd="
+ pkg('rebuild');
+ l = pkg('list');
+ disp(l{cellfun(@(x)strcmp(x.name,'${PN}'),l)}.dir);
+ "
+ oct_pkgdir=$(octavecommand "${cmd}" || die)
+ rm -f "${oct_pkgdir}/packinfo/on_uninstall.m" || die
+ if [[ -e "${oct_pkgdir}/packinfo/on_uninstall.m.orig" ]]; then
+ mv "$oct_pkgdir"/packinfo/on_uninstall.m{.orig,} || die
+ pushd "$oct_pkgdir/packinfo" || die
+ cmd="
l = pkg('list');
on_uninstall(l{cellfun(@(x)strcmp(x.name,'${PN}'), l)});
- " &> /dev/null || die 'failed to remove the package'
+ "
+ octavecommand "${cmd}" || die 'failed to remove the package'
fi
}
@@ -140,5 +205,10 @@ octaveforge_pkg_postrm() {
if [[ ! -d "${OCT_PKGDIR}" ]] ; then
mkdir -p "${OCT_PKGDIR}" || die
fi
- "${OCT_BIN}" -H --silent --eval 'pkg rebuild' &> /dev/null || die 'failed to rebuild the package database'
+ cmd="pkg('rebuild');"
+ "${OCT_BIN}" -H --silent "${cmd}" || die 'failed to rebuild the package database'
+}
+
+octavecommand() {
+ "${OCT_BIN}" -H -q --no-site-file --eval "$1"
}
next reply other threads:[~2022-05-05 14:42 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-05 14:42 Haelwenn Monnier [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-11-27 14:34 [gentoo-commits] repo/proj/guru:master commit in: eclass/ David Roman
2024-10-19 0:05 David Roman
2024-07-14 17:47 [gentoo-commits] repo/proj/guru:dev " Florian Schmaus
2024-07-14 17:47 ` [gentoo-commits] repo/proj/guru:master " Florian Schmaus
2024-07-14 15:27 Haelwenn Monnier
2024-07-14 15:27 Haelwenn Monnier
2024-07-14 15:27 Haelwenn Monnier
2024-07-14 15:27 Haelwenn Monnier
2024-07-14 15:27 Haelwenn Monnier
2024-07-14 15:27 Haelwenn Monnier
2024-07-14 15:27 Haelwenn Monnier
2024-07-01 13:50 David Roman
2024-04-27 11:10 David Roman
2024-04-01 11:32 Julien Roy
2024-03-31 17:57 Julien Roy
2024-03-31 17:49 [gentoo-commits] repo/proj/guru:dev " Julien Roy
2024-03-31 17:57 ` [gentoo-commits] repo/proj/guru:master " Julien Roy
2024-02-05 11:57 David Roman
2024-02-05 11:57 David Roman
2024-02-05 11:57 David Roman
2024-02-05 11:57 David Roman
2024-01-20 22:13 David Roman
2024-01-03 15:20 David Roman
2023-10-05 14:25 Viorel Munteanu
2023-10-05 6:18 Viorel Munteanu
2023-08-30 5:30 [gentoo-commits] repo/proj/guru:dev " Viorel Munteanu
2023-08-30 5:36 ` [gentoo-commits] repo/proj/guru:master " Viorel Munteanu
2023-08-07 12:51 David Roman
2023-08-07 12:51 David Roman
2023-08-04 7:26 [gentoo-commits] repo/proj/guru:dev " Florian Schmaus
2023-08-04 7:26 ` [gentoo-commits] repo/proj/guru:master " Florian Schmaus
2023-08-04 7:26 [gentoo-commits] repo/proj/guru:dev " Florian Schmaus
2023-08-04 7:26 ` [gentoo-commits] repo/proj/guru:master " Florian Schmaus
2023-07-17 14:24 Florian Schmaus
2023-06-26 11:24 Andrew Ammerlaan
2023-05-22 5:17 Viorel Munteanu
2023-05-22 5:17 Viorel Munteanu
2023-05-11 14:32 Andrew Ammerlaan
2023-05-11 14:32 Andrew Ammerlaan
2023-05-11 14:32 Andrew Ammerlaan
2023-05-11 14:32 Andrew Ammerlaan
2023-05-11 14:32 Andrew Ammerlaan
2023-04-13 7:02 Florian Schmaus
2023-04-01 21:30 Haelwenn Monnier
2023-04-01 21:30 Haelwenn Monnier
2023-04-01 21:30 Haelwenn Monnier
2023-02-27 15:06 Florian Schmaus
2023-02-27 15:06 Florian Schmaus
2023-01-08 10:27 Florian Schmaus
2022-12-09 16:26 Ronny Gutbrod
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-26 10:54 Florian Schmaus
2022-11-16 19:33 Florian Schmaus
2022-11-16 19:33 Florian Schmaus
2022-11-16 19:33 Florian Schmaus
2022-11-05 15:26 Arthur Zamarin
2022-07-20 9:35 Andrew Ammerlaan
2022-07-20 9:35 Andrew Ammerlaan
2022-07-20 9:35 Andrew Ammerlaan
2022-07-20 9:35 Andrew Ammerlaan
2022-07-20 9:35 Andrew Ammerlaan
2022-07-11 6:54 Andrew Ammerlaan
2022-06-30 17:39 Florian Schmaus
2022-06-29 15:38 Florian Schmaus
2022-06-29 15:38 Florian Schmaus
2022-06-14 18:35 Haelwenn Monnier
2022-06-14 18:35 Haelwenn Monnier
2022-06-14 18:35 Haelwenn Monnier
2022-05-12 9:14 Andrew Ammerlaan
2022-05-05 14:42 Haelwenn Monnier
2022-05-05 14:42 Haelwenn Monnier
2022-04-15 20:58 Haelwenn Monnier
2022-04-15 20:58 Haelwenn Monnier
2022-04-14 13:31 Andrew Ammerlaan
2022-04-12 19:35 Ronny Gutbrod
2022-04-12 19:35 Ronny Gutbrod
2022-04-12 19:35 Ronny Gutbrod
2022-02-20 8:46 Florian Schmaus
2022-02-20 8:46 Florian Schmaus
2021-10-06 1:13 Theo Anderson
2021-09-30 19:39 Arthur Zamarin
2021-09-08 15:20 Arthur Zamarin
2021-07-26 14:05 Andrew Ammerlaan
2021-06-02 16:00 Andrew Ammerlaan
2021-05-24 22:25 Haelwenn Monnier
2021-05-17 19:11 Andrew Ammerlaan
2021-03-16 10:49 Andrew Ammerlaan
2021-03-15 10:58 Andrew Ammerlaan
2021-03-15 10:58 Andrew Ammerlaan
2020-12-06 10:46 [gentoo-commits] repo/proj/guru:dev " Andrew Ammerlaan
2020-12-06 10:49 ` [gentoo-commits] repo/proj/guru:master " Andrew Ammerlaan
2020-05-07 11:13 Andrew Ammerlaan
2020-05-07 11:13 Andrew Ammerlaan
2020-05-01 15:39 Andrew Ammerlaan
2020-04-28 8:01 Andrew Ammerlaan
2020-04-28 7:44 Andrew Ammerlaan
2020-04-21 10:23 Andrew Ammerlaan
2020-04-21 10:20 Andrew Ammerlaan
2020-04-07 7:42 Andrew Ammerlaan
2020-04-07 7:42 Andrew Ammerlaan
2020-04-07 7:27 [gentoo-commits] repo/proj/guru:dev " Andrew Ammerlaan
2020-04-07 7:42 ` [gentoo-commits] repo/proj/guru:master " Andrew Ammerlaan
2020-04-07 7:16 [gentoo-commits] repo/proj/guru:dev " Andrew Ammerlaan
2020-04-07 7:42 ` [gentoo-commits] repo/proj/guru:master " Andrew Ammerlaan
2020-04-06 18:26 [gentoo-commits] repo/proj/guru:dev " Andrew Ammerlaan
2020-04-07 7:42 ` [gentoo-commits] repo/proj/guru:master " Andrew Ammerlaan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1651735937.14617d41adcaac22702439046b5dad6a5979ac94.lanodan@gentoo \
--to=contact@hacktivis.me \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox