View previous topic :: View next topic |
Author |
Message |
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1924 Location: Schweiz
|
Posted: Thu Jun 15, 2023 8:56 am Post subject: ebuild: wie "emake install" verhindern? |
|
|
Hallo,
weiß hier jemand wie ich in der "src_install"-Phase verhindern kann das Portage versucht die Software mittels des Makefile zu installieren?
Die "install"-Anweisungen aus dem Makefile sind schlicht unbrauchbar weshalb ich das selbst mit dobin, doman und so weiter machen muss, aber Portage pfuscht mir immer mit dem Versuch dazwischen das Makefile zu benutzen.
Last edited by schmidicom on Thu Jun 15, 2023 10:03 am; edited 1 time in total |
|
Back to top |
|
|
Christian99 Veteran
Joined: 28 May 2009 Posts: 1668
|
Posted: Thu Jun 15, 2023 9:09 am Post subject: |
|
|
hm, ich hab nicht so sehr viel erfahrung mit ebuild schreiben, aber AFAIK sollte es eigentlich reichen, deine eigene "src_install" funktion zu machen. dann wird die statt der default funktion aufgerufen. |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1924 Location: Schweiz
|
Posted: Thu Jun 15, 2023 9:13 am Post subject: |
|
|
Christian99 wrote: | hm, ich hab nicht so sehr viel erfahrung mit ebuild schreiben, aber AFAIK sollte es eigentlich reichen, deine eigene "src_install" funktion zu machen. dann wird die statt der default funktion aufgerufen. |
Tut es leider nicht.
Habe meine eigene src_install geschrieben, aber Portage interessiert es null und versucht trotzdem die Makefile zu benutzen...
Ich versuche gerade das ganze damit zu fixen das ich die Makefile in src_prepare lösche, was nicht da ist kann Portage auch nicht benutzen. Mal sehen ob mich das irgendwie weiter bringt |
|
Back to top |
|
|
ts-plus n00b
Joined: 04 Dec 2012 Posts: 26 Location: Germany
|
Posted: Thu Jun 15, 2023 9:14 am Post subject: |
|
|
Alternativ kannst du das Makefile in src_prepare patchen (bspw. das install target komplett rausnehmen). |
|
Back to top |
|
|
Christian99 Veteran
Joined: 28 May 2009 Posts: 1668
|
Posted: Thu Jun 15, 2023 9:31 am Post subject: |
|
|
schmidicom wrote: | Christian99 wrote: | hm, ich hab nicht so sehr viel erfahrung mit ebuild schreiben, aber AFAIK sollte es eigentlich reichen, deine eigene "src_install" funktion zu machen. dann wird die statt der default funktion aufgerufen. |
Tut es leider nicht.
Habe meine eigene src_install geschrieben, aber Portage interessiert es null und versucht trotzdem die Makefile zu benutzen...
Ich versuche gerade das ganze damit zu fixen das ich die Makefile in src_prepare lösche, was nicht da ist kann Portage auch nicht benutzen. Mal sehen ob mich das irgendwie weiter bringt |
hm, habs grad mal probiert, und bei mir wird mit einer eigenen src_install funktion kein make install aufgerufen.
Wie sieht denn dein ebuild aus? |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1924 Location: Schweiz
|
Posted: Thu Jun 15, 2023 9:34 am Post subject: |
|
|
Ich merke gerade dass das Makefile nicht nur in der src_install-Phase verwendet wird sondern auch in den anderen und da nicht nur die "install"-Anweisungen des Makefile unbrauchbar sind (beziehungsweise nicht zu Gentoo passen) gehe ich jetzt dazu über es in src_prepare zu löschen und dann einfach alles selbst zu machen. |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5192
|
Posted: Thu Jun 15, 2023 9:35 am Post subject: |
|
|
schmidicom wrote: | Christian99 wrote: | hm, ich hab nicht so sehr viel erfahrung mit ebuild schreiben, aber AFAIK sollte es eigentlich reichen, deine eigene "src_install" funktion zu machen. dann wird die statt der default funktion aufgerufen. |
Tut es leider nicht.
Habe meine eigene src_install geschrieben, aber Portage interessiert es null und versucht trotzdem die Makefile zu benutzen...
Ich versuche gerade das ganze damit zu fixen das ich die Makefile in src_prepare lösche, was nicht da ist kann Portage auch nicht benutzen. Mal sehen ob mich das irgendwie weiter bringt |
sicher dass du die methode richtig geschrieben hast?
Die heißt
bezüglich wie die src_install default aussieht siehe hier.
https://devmanual.gentoo.org/ebuild-writing/functions/src_install/index.html
Und beispiele findest du einige im gentoo repro z.b. nvidia-drivers: https://gitweb.gentoo.org/repo/gentoo.git/tree/x11-drivers/nvidia-drivers/nvidia-drivers-535.54.03.ebuild _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1924 Location: Schweiz
|
Posted: Thu Jun 15, 2023 9:41 am Post subject: |
|
|
Christian99 wrote: | Wie sieht denn dein ebuild aus? |
Die aktuelle Version ist jetzt das hier:
Code: | # Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd desktop
DESCRIPTION="A native Linux filesystem for Microsoft OneDrive"
HOMEPAGE="https://github.com/jstaf/onedriver"
SRC_URI="https://github.com/jstaf/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://res.messerligroup.com/deploy/${P}-deps.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND="net-libs/webkit-gtk:4
dev-libs/json-glib"
RDEPEND="${DEPEND}"
BDEPEND=""
src_prepare() {
rm ${S}/Makefile || die "Remove dysfunctional Makefile failed!"
eapply_user
}
src_compile() {
ego build ./cmd/onedriver
ego build ./cmd/onedriver-launcher
}
src_install() {
# Install binary
dobin onedriver || die "Install failed!"
dobin onedriver-launcher || die "Install failed!"
# Install manpage
doman resources/onedriver.1 || die "Install failed!"
# Install service-unit
systemd_douserunit resources/onedriver@.service || die "Install failed!"
# Install icons
doicon -s scalable resources/onedriver.svg || die "Install failed!"
doicon -s 128 resources/onedriver-128.png || die "Install failed!"
doicon -s 256 resources/onedriver.png || die "Install failed!"
# Create desktop-file
make_desktop_entry onedriver-launcher Onedriver onedriver Utility || die "Install failed!"
} |
Bei meinen Vorherigen Versuchen hatte ich nur eine "src_install" und da wurde dann immer die Makefile ausgeführt egal was ich das rein geschrieben hatte.
EDIT:
So funktioniert es.
Es wurde installiert und bis jetzt scheint die Software zu tun was sie soll. |
|
Back to top |
|
|
|