Du bist nicht angemeldet.

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Deine Antwort

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

brikler
30.11.2019 21:52:33

@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
}
blub
30.11.2019 21:30:56

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!

brikler
30.11.2019 21:06:17

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

blub
30.11.2019 19:36:07

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.

brikler
30.11.2019 18:34:20

ich sehes einfach nicht sad

blub
30.11.2019 18:03:44

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

brikler
30.11.2019 17:09:28

@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
}
blub
30.11.2019 16:46:33

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

brikler
30.11.2019 15:28:17

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

Fußzeile des Forums

Powered by FluxBB