Du bist nicht angemeldet.

#1 30.11.2019 15:28:17

brikler
Mitglied

==> FEHLER: Cannot find the icecream binary … (gelöst)

grüß euch,

ich bastle grad an einer "icecream" option für makepkg, mit recht bescheidenen erfolg wink

[tom@frija upx]$ makepkg
==> FEHLER: Cannot find the icecream binary required for distributed compilation.
# /usr/share/makepkg/executable/icecream.sh

[[ -n "$LIBMAKEPKG_EXECUTABLE_ICECREAM_SH" ]] && return
LIBMAKEPKG_EXECUTABLE_ICECREAM_SH=1

LIBRARY=${LIBRARY:-'/usr/share/makepkg'}

source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"

executable_functions+=('executable_icecream')

executable_icecream() {
	if check_buildoption "icecream" "y"; then
		if ! type -p icecream >/dev/null; then
			error "$(gettext "Cannot find the %s binary required for distributed compilation.")" "icecream"
			return 1
		fi
	fi
}

die funktion hab ich von distcc übernommen und umgeschrieben, allerdings hat iccream keine binary in /usr/bin, das befindet sich alles in /usr/lib/icecream

[tom@frija ~]$ find /usr/ -name icec*
/usr/bin/icecream-sundae
/usr/lib/icecream
/usr/lib/icecream/bin/icecc
/usr/lib/icecream/bin/icecc-create-env
/usr/lib/icecream/bin/icecc-test-env
/usr/lib/icecream/icecream-schedulerd
/usr/lib/icecream/icecreamd
/usr/lib/icecream/include/icecc
/usr/lib/icecream/libexec/icecc
/usr/lib/icecream/libexec/icecc/icecc-create-env
/usr/lib/icecream/sbin/icecc-scheduler
/usr/lib/icecream/sbin/iceccd

wie komme ich da durch die prüfung? ich habs mit icream, icreamd und auch mit icecc versucht… sad
https://github.com/icecc/icecream/blob/ … e-icecream

Beitrag geändert von brikler (01.12.2019 11:40:08)

Offline

#2 30.11.2019 16:46:33

blub
Gast

Re: ==> FEHLER: Cannot find the icecream binary … (gelöst)

Die Lösung deines Problems findest du in dem von dir verlinkten readme:

If you want to compile using icecream, make sure $prefix/lib/icecc/bin is the first entry in your path, ...

Allerdings darfst du die Pfadangabe nicht bind übernehmen. Wie du schon selbst herausgefunden hast, installiert das AUR Package die Binaries in /usr/lib/icecream/bin

#3 30.11.2019 17:09:28

brikler
Mitglied

Re: ==> FEHLER: Cannot find the icecream binary … (gelöst)

@blub
schon, aber auch wenn ich den prefix richtig exportiert hab, und wenn ich jetzt von distcc ausgehe, wird der prefix auch erst später gesetzt…

[tom@donar upx]$  export PATH=/usr/lib/icecc/bin:$PATH
[tom@donar upx]$ $PATH
bash: /usr/lib/icecc/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/core_perl: Datei oder Verzeichnis nicht gefunden
[tom@donar upx]$ makepkg
==> FEHLER: Cannot find the icecream binary required for distributed compilation.
[tom@donar upx]$ 
#/usr/share/makepkg/buildenv/compiler.sh

[[ -n "$LIBMAKEPKG_BUILDENV_COMPILER_SH" ]] && return
LIBMAKEPKG_BUILDENV_COMPILER_SH=1

LIBRARY=${LIBRARY:-'/usr/share/makepkg'}

source "$LIBRARY/util/option.sh"

build_options+=('ccache' 'distcc' 'icecream')
buildenv_functions+=('buildenv_ccache' 'buildenv_distcc' 'buildenv_icecream')

using_ccache=0

buildenv_ccache() {
	if check_buildoption "ccache" "y"; then
		if [ -d /usr/lib/ccache/bin ]; then
			export PATH="/usr/lib/ccache/bin:$PATH"
			using_ccache=1
		fi
	fi
}

buildenv_distcc() {
	if check_buildoption "distcc" "y"; then
		if (( using_ccache )); then
			export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc"
			export CCACHE_BASEDIR="$srcdir"
		elif [[ -d /usr/lib/distcc/bin ]]; then
			export PATH="/usr/lib/distcc/bin:$PATH"
		fi
		export DISTCC_HOSTS
	fi
}
buildenv_icecream() {

	if check_buildoption "icecream" "y"; then
		if (( using_ccache )); then
			export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }icecream"
			export CCACHE_BASEDIR="$srcdir"
		elif [[ -d /usr/lib/icecream/bin/ ]]; then
			export PATH="/usr/lib/icecream/bin/icecream:$PATH"
		fi
		#export DISTCC_HOSTS
	fi
}

Beitrag geändert von brikler (30.11.2019 17:28:17)

Offline

#4 30.11.2019 18:03:44

blub
Gast

Re: ==> FEHLER: Cannot find the icecream binary … (gelöst)

Ich wiederhole:
Allerdings darfst du die Pfadangabe nicht blind übernehmen. Wie du schon selbst herausgefunden hast, installiert das AUR Package die Binaries in /usr/lib/icecream/bin

#5 30.11.2019 18:34:20

brikler
Mitglied

Re: ==> FEHLER: Cannot find the icecream binary … (gelöst)

ich sehes einfach nicht sad

Offline

#6 30.11.2019 19:36:07

blub
Gast

Re: ==> FEHLER: Cannot find the icecream binary … (gelöst)

Okay, ich bin mal so nett.
Was du in die bash getippt hast:

export PATH=/usr/lib/icecc/bin:$PATH

Was du hättest tippen sollen:

export PATH=/usr/lib/icecream/bin:$PATH

Und der Path in deiner compiler.sh ist vermutlich auch falsch. Dort hast du /usr/lib/icecream/bin/icecream stehen.

#7 30.11.2019 21:06:17

brikler
Mitglied

Re: ==> FEHLER: Cannot find the icecream binary … (gelöst)

danke schön, so läufts durch…
ein problem ersetzt sich durch das nächste: icecream kompiliert trotzdem nicht

Offline

#8 30.11.2019 21:30:56

blub
Gast

Re: ==> FEHLER: Cannot find the icecream binary … (gelöst)

Ohne Fehlermeldung keine Hilfe ... Aber da werde ich dir wahrscheinlich auch nicht weiterhelfen können, ich habe icecream noch nie benutzt.
Falls die Ursache des neuen Problems ein anderes ist, setze am Besten dieses Thema auf gelöst und öffne ein neues mit aussagekräftigem Titel. Fehlermeldung nicht vergessen!

#9 30.11.2019 21:52:33

brikler
Mitglied

Re: ==> FEHLER: Cannot find the icecream binary … (gelöst)

@blub
danke dir, jetzt hab ichs big_smile

# /usr/share/makepkg/executable/icecream.sh

#!/usr/bin/bash

[[ -n "$LIBMAKEPKG_EXECUTABLE_ICECREAM_SH" ]] && return
$LIBMAKEPKG_EXECUTABLE_ICECREAM_SH=1

LIBRARY=${LIBRARY:-'/usr/share/makepkg'}

source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"

executable_functions+=('executable_icecream')

executable_icecream() {
	if check_buildoption "icecream" "y"; then
	export PATH=/usr/lib/icecream/bin:$PATH
		if ! type -p icecc >/dev/null; then
			error "$(gettext "Cannot find the %s binary required for distributed compilation.")" "icecream"
			return 1
		fi
	fi
}
#/usr/share/makepkg/buildenv/compiler.sh

[[ -n "$LIBMAKEPKG_BUILDENV_COMPILER_SH" ]] && return
LIBMAKEPKG_BUILDENV_COMPILER_SH=1

LIBRARY=${LIBRARY:-'/usr/share/makepkg'}

source "$LIBRARY/util/option.sh"

build_options+=('ccache' 'distcc' 'icecream')
buildenv_functions+=('buildenv_ccache' 'buildenv_distcc' 'buildenv_icecream')

using_ccache=0

buildenv_ccache() {
	if check_buildoption "ccache" "y"; then
		if [ -d /usr/lib/ccache/bin ]; then
			export PATH="/usr/lib/ccache/bin:$PATH"
			using_ccache=1
		fi
	fi
}

buildenv_distcc() {
	if check_buildoption "distcc" "y"; then
		if (( using_ccache )); then
			export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }distcc"
			export CCACHE_BASEDIR="$srcdir"
		elif [[ -d /usr/lib/distcc/bin ]]; then
			export PATH="/usr/lib/distcc/bin:$PATH"
		fi
		export DISTCC_HOSTS
	fi
}

buildenv_icecream() {
	if check_buildoption "icecream" "y"; then
		if (( using_ccache )); then
			export CCACHE_PREFIX="${CCACHE_PREFIX:+$CCACHE_PREFIX }icecream"
			export CCACHE_BASEDIR="$srcdir"
	           fi
                        export PATH=/usr/lib/icecream/libexec/icecc/bin/:$PATH #hier lag das problem, vgl. oben
                        export ICECREAM_HOSTS                        
	fi
}

Beitrag geändert von brikler (30.11.2019 22:10:40)

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums