Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 75420 | Differences between
and this patch

Collapse All | Expand All

(-)ebuild.sh (-77 / +300 lines)
Lines 11-19 if [ ! -z "${PORTAGE_GPG_DIR}" ]; then Link Here
11
	SANDBOX_PREDICT="${SANDBOX_PREDICT}:${PORTAGE_GPG_DIR}"
11
	SANDBOX_PREDICT="${SANDBOX_PREDICT}:${PORTAGE_GPG_DIR}"
12
fi
12
fi
13
13
14
if [ "$*" != "depend" ] && [ "$*" != "clean" ] && [ "$*" != "nofetch" ]; then
14
if [ "$*" != "depend" ] && [ "$*" != "clean" ] && [ "$*" != "nofetch" ]; then
15
	# Cleanup if we were killed in the previous run...
16
	if [ -f "${BUILDDIR}/.abi" ]; then
17
		abi=$(cat ${BUILDDIR}/.abi)
18
		if [ -d "${WORKDIR}" ]; then
19
			mv ${WORKDIR} ${WORKDIR}.${abi} || die "IO Failure -- Unable to mv work work.${abi}"
20
		fi
21
		rm -rf ${BUILDDIR}/.abi || die "IO Failure -- Unable to 'rm .abi'"
22
		unset abi
23
	fi
24
15
	if [ -f "${T}/environment" ]; then
25
	if [ -f "${T}/environment" ]; then
26
		# restore_env isn't set yet, so we just source it for now.
27
		# Once this code is rearanged so the functions are defined
28
		# before this code is executed, we can just do restore_env
29
		# here.
16
		source "${T}/environment" &>/dev/null
30
		source "${T}/environment" &>/dev/null
17
	fi
31
	fi
18
fi
32
fi
19
33
Lines 614-665 dyn_setup() Link Here
614
	fi
628
	fi
615
	pkg_setup
629
	pkg_setup
616
}
630
}
617
631
632
# Filter which environment variables to save/restore.
633
select_saved_vars() {
634
	egrep -v "^(LD_PRELOAD|SANDBOX_|PORTAGE_|DISTCC_|CCACHE_|current_vars|target_vars|var|file|abi)"
635
}
636
637
# We need to save/restore the environment for each ABI we are installing for separately
638
save_env() {
639
	local file
640
	if [ "$#" = "1" ]; then
641
		file="${T}/environment.${1}"
642
	else
643
		file="${T}/environment"
644
	fi
645
646
	local oldumask=$(umask)
647
	umask 002
648
	set | select_saved_vars >  ${file} || die "Unable to save environment settings."
649
	export -p | sed 's:declare -r\{0,1\}x ::' | select_saved_vars | sed 's:^:declare -x :' >> ${file} || die "Unable to save environment settings."
650
	chown portage:portage ${file} &>/dev/null
651
	chmod g+w ${file} &>/dev/null
652
	umask ${oldumask}
653
}
654
655
restore_env() {
656
	local file
657
	if [ "$#" = "1" -a -f "${T}/environment.${1}" ]; then
658
		file="${T}/environment.${1}"
659
	elif [ -f "${T}/environment" ]; then
660
		file="${T}/environment"
661
	else
662
		return
663
	fi
664
665
	local current_vars=$(set | egrep '^[_A-Za-z0-9]+=' | cut -f1 -d= | select_saved_vars)
666
667
	if hasq multilib-debug ${FEATURES}; then
668
		local target_vars=$(cat ${file} | egrep '^[_A-Za-z0-9]+=' | cut -f1 -d= | select_saved_vars)
669
		for var in ${current_vars}; do
670
			if ! hasq ${var} ${target_vars}; then
671
				# Redirect to /dev/null so we don't get spam'd about
672
				# any read-only variables.
673
				echo ">>> Unsetting: ${var}=${!var}"
674
				unset ${var} &>/dev/null
675
			fi
676
		done
677
	else
678
		unset ${current_vars} &>/dev/null
679
	fi
680
681
	source ${file} &>/dev/null || die "IO Failure in restore_env"
682
}
683
684
set_abi() {
685
	if [ "$#" != "1" ]; then
686
		die "set_abi needs to be given the ABI to use."
687
	fi
688
689
	local abi=${1}
690
691
	if [ -d "${WORKDIR}" ]; then
692
		unset_abi
693
	else
694
		save_env
695
	fi
696
	restore_env ${abi}
697
698
	if [ -d "${WORKDIR}.${abi}" ]; then
699
		# If it doesn't exist, then we're making it soon in dyn_unpack
700
		mv ${WORKDIR}.${abi} ${WORKDIR} || die "IO Failure -- Failed to 'mv work.${abi} work'"
701
	fi
702
703
	echo "${abi}" > ${BUILDDIR}/.abi || die "IO Failure -- Failed to create .abi."
704
	echo ">>> ABI=${abi}"
705
706
	# Export variables we need for toolchain
707
	export ABI="${abi}"
708
709
	local VAR
710
	VAR="CFLAGS_${ABI}"
711
	[ -n "${!VAR}" ] && eval export ${VAR}
712
	VAR="ASFLAGS_${ABI}"
713
	[ -n "${!VAR}" ] && eval export ${VAR}
714
}
715
716
unset_abi() {
717
	if [ -f "${BUILDDIR}/.abi" ]; then
718
		local abi=$(cat ${BUILDDIR}/.abi)
719
		[ ! -d "${WORKDIR}" ] && die "unset_abi: .abi present (${abi}) but workdir not present."
720
721
		save_env ${abi}
722
		restore_env
723
724
		mv ${WORKDIR} ${WORKDIR}.${abi} || die "IO Failure -- Failed to 'mv work work.${abi}'."
725
		rm -rf ${BUILDDIR}/.abi || die "IO Failure -- Failed to 'rm -rf .abi'."
726
	fi
727
}
728
729
get_abi_order() {
730
	local order=""
731
732
	if ! hasq multilib-pkg ${FEATURES}; then
733
		if [ -n "${DEFAULT_ABI}" ]; then
734
			order="${DEFAULT_ABI}"
735
		else
736
			order="NOMULTILIB"
737
		fi
738
	elif ! hasq multilib-pkg ${RESTRICT}; then
739
		order="${DEFAULT_ABI}"
740
	else
741
		for x in ${MULTILIB_ABIS}; do
742
			if [ "${x}" != "${DEFAULT_ABI}" ]; then
743
				hasq ${x} ${ABI_DENY} || ordera="${ordera} ${x}"
744
			fi
745
		done
746
		hasq ${DEFAULT_ABI} ${ABI_DENY} || order="${ordera} ${DEFAULT_ABI}"
747
748
		if [ -n "${ABI_ALLOW}" ]; then
749
			local ordera=""
750
			for x in ${order}; do
751
				if hasq ${x} ${ABI_ALLOW}; then
752
					ordera="${ordera} ${x}"
753
				fi
754
			done
755
			order="${ordera}"
756
		fi
757
	fi
758
759
	if [ -z "${order}" ]; then
760
		die "The ABI list is empty.  Are you using a proper multilib profile?  Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package."
761
	fi
762
763
	echo ${order}
764
}
765
618
dyn_unpack() {
766
dyn_unpack() {
619
	trap "abort_unpack" SIGINT SIGQUIT
767
	trap "abort_unpack" SIGINT SIGQUIT
620
	local newstuff="no"
768
	local newstuff="no"
621
	if [ -e "${WORKDIR}" ]; then
769
622
		local x
770
	for ABI in $(get_abi_order); do
623
		local checkme
771
		if [ "${ABI}" = "NOMULTILIB" ]; then
624
		for x in ${AA}; do
772
			unset ABI
625
			echo ">>> Checking ${x}'s mtime..."
773
		else
626
			if [ "${DISTDIR}/${x}" -nt "${WORKDIR}" ]; then
774
			set_abi ${ABI}
627
				echo ">>> ${x} has been updated; recreating WORKDIR..."
775
		fi
776
		if [ -e "${WORKDIR}" ]; then
777
			local x
778
			local checkme
779
			for x in ${AA}; do
780
				echo ">>> Checking ${x}'s mtime..."
781
				if [ "${DISTDIR}/${x}" -nt "${WORKDIR}" ]; then
782
					echo ">>> ${x} has been updated; recreating WORKDIR..."
783
					newstuff="yes"
784
					rm -rf "${WORKDIR}"
785
					break
786
				fi
787
			done
788
			if [ "${EBUILD}" -nt "${WORKDIR}" ]; then
789
				echo ">>> ${EBUILD} has been updated; recreating WORKDIR..."
790
				newstuff="yes"
791
				rm -rf "${WORKDIR}"
792
			elif [ ! -f "${BUILDDIR}/.unpacked" ]; then
793
				echo ">>> Not marked as unpacked; recreating WORKDIR..."
628
				newstuff="yes"
794
				newstuff="yes"
629
				rm -rf "${WORKDIR}"
795
				rm -rf "${WORKDIR}"
630
				break
631
			fi
796
			fi
632
		done
633
		if [ "${EBUILD}" -nt "${WORKDIR}" ]; then
634
			echo ">>> ${EBUILD} has been updated; recreating WORKDIR..."
635
			newstuff="yes"
636
			rm -rf "${WORKDIR}"
637
		elif [ ! -f "${BUILDDIR}/.unpacked" ]; then
638
			echo ">>> Not marked as unpacked; recreating WORKDIR..."
639
			newstuff="yes"
640
			rm -rf "${WORKDIR}"
641
		fi
797
		fi
642
	fi
798
		if [ -e "${WORKDIR}" ]; then
643
	if [ -e "${WORKDIR}" ]; then
799
			if [ "${newstuff}" == "no" ]; then
644
		if [ "$newstuff" == "no" ]; then
800
				echo ">>> WORKDIR is up-to-date, keeping..."
645
			echo ">>> WORKDIR is up-to-date, keeping..."
801
				continue
646
			return 0
802
			fi
647
		fi
803
		fi
648
	fi
804
649
	
805
		install -m0700 -d "${WORKDIR}" || die "Failed to create dir '${WORKDIR}'"
650
	install -m0700 -d "${WORKDIR}" || die "Failed to create dir '${WORKDIR}'"
806
		[ -d "${WORKDIR}" ] && cd "${WORKDIR}"
651
	[ -d "$WORKDIR" ] && cd "${WORKDIR}"
807
		echo ">>> Unpacking source..."
652
	echo ">>> Unpacking source..."
808
		src_unpack
653
	src_unpack
809
	done
810
	unset_abi
811
	unset ABI
654
	touch "${BUILDDIR}/.unpacked" || die "IO Failure -- Failed 'touch .unpacked' in BUILDIR"
812
	touch "${BUILDDIR}/.unpacked" || die "IO Failure -- Failed 'touch .unpacked' in BUILDIR"
655
	echo ">>> Source unpacked."
813
	echo ">>> Source unpacked."
656
	cd "$BUILDDIR"
814
	cd "${BUILDDIR}"
657
	trap SIGINT SIGQUIT
815
	trap SIGINT SIGQUIT
658
}
816
}
659
817
660
dyn_clean() {
818
dyn_clean() {
661
	if [ "$USERLAND" == "BSD" ] && type -p chflags &>/dev/null; then
819
	if [ "${USERLAND}" == "BSD" ] && type -p chflags &>/dev/null; then
662
		chflags -R noschg,nouchg,nosappnd,nouappnd,nosunlnk,nouunlnk \
820
		chflags -R noschg,nouchg,nosappnd,nouappnd,nosunlnk,nouunlnk \
663
			"${BUILDDIR}"
821
			"${BUILDDIR}"
664
	fi
822
	fi
665
823
Lines 671-695 dyn_clean() { Link Here
671
		mv "${T}/environment" "${T}/environment.keeptemp"
829
		mv "${T}/environment" "${T}/environment.keeptemp"
672
	fi
830
	fi
673
831
674
	if ! hasq keepwork $FEATURES; then
832
	if ! hasq keepwork $FEATURES; then
833
		rm -rf "${BUILDDIR}/.abi"
675
		rm -rf "${BUILDDIR}/.unpacked"
834
		rm -rf "${BUILDDIR}/.unpacked"
676
		rm -rf "${BUILDDIR}/.compiled"
835
		rm -rf "${BUILDDIR}/.compiled*"
677
		rm -rf "${BUILDDIR}/.tested"
836
		rm -rf "${BUILDDIR}/.tested"
678
		rm -rf "${BUILDDIR}/.installed"
837
		rm -rf "${BUILDDIR}/.installed"
679
		rm -rf "${BUILDDIR}/.packaged"
838
		rm -rf "${BUILDDIR}/.packaged"
680
		rm -rf "${BUILDDIR}/build-info"
839
		rm -rf "${BUILDDIR}/build-info"
681
		rm -rf "${WORKDIR}"
840
		rm -rf "${WORKDIR}*"
682
	fi
841
	fi
683
842
684
	if [ -f "${BUILDDIR}/.unpacked" ]; then
843
	if [ -f "${BUILDDIR}/.unpacked" ]; then
685
		find "${BUILDDIR}" -type d ! -regex "^${WORKDIR}" | sort -r | tr "\n" "\0" | $XARGS -0 rmdir &>/dev/null
844
		find "${BUILDDIR}" -type d ! -regex "^${WORKDIR}" | sort -r | tr "\n" "\0" | $XARGS -0 rmdir &>/dev/null
686
	fi
845
	fi
687
	true
688
846
689
	if [ -z "$(find "${BUILDDIR}" -mindepth 1 -maxdepth 1)" ]; then
847
	if [ -z "$(find "${BUILDDIR}" -mindepth 1 -maxdepth 1)" ]; then
690
		rmdir "${BUILDDIR}"
848
		rmdir "${BUILDDIR}"
691
	fi
849
	fi
850
851
	true
692
}
852
}
693
853
694
into() {
854
into() {
695
	if [ $1 == "/" ]; then
855
	if [ $1 == "/" ]; then
Lines 799-813 abort_handler() { Link Here
799
959
800
abort_compile() {
960
abort_compile() {
801
	abort_handler "src_compile" $1
961
	abort_handler "src_compile" $1
802
	rm -f "${BUILDDIR}/.compiled"
962
	rm -f "${BUILDDIR}/.compiled"
963
	if [ -n "${ABI}" -a "${ABI}" != "NOMULTILIB" ]; then
964
		rm -f "${BUILDDIR}/.compiled.${ABI}"
965
		mv ${WORKDIR} ${WORKDIR}.${ABI}
966
		rm -f ${BUILDDIR}/.abi
967
	fi
803
	exit 1
968
	exit 1
804
}
969
}
805
970
806
abort_unpack() {
971
abort_unpack() {
807
	abort_handler "src_unpack" $1
972
	abort_handler "src_unpack" $1
808
	rm -f "${BUILDDIR}/.unpacked"
973
	rm -f "${BUILDDIR}/.unpacked"
809
	rm -rf "${BUILDDIR}/work"
974
	rm -f ${BUILDDIR}/.abi
975
	rm -rf "${BUILDDIR}/work*"
810
	exit 1
976
	exit 1
811
}
977
}
812
978
813
abort_package() {
979
abort_package() {
Lines 819-850 abort_package() { Link Here
819
985
820
abort_test() {
986
abort_test() {
821
	abort_handler "dyn_test" $1
987
	abort_handler "dyn_test" $1
822
	rm -f "${BUILDDIR}/.tested"
988
	rm -f "${BUILDDIR}/.tested"
989
	if [ -n "${ABI}" -a "${ABI}" != "NOMULTILIB" ]; then
990
		mv ${WORKDIR} ${WORKDIR}.${ABI}
991
		rm -f ${BUILDDIR}/.abi
992
	fi
823
	exit 1
993
	exit 1
824
}
994
}
825
995
826
abort_install() {
996
abort_install() {
827
	abort_handler "src_install" $1
997
	abort_handler "src_install" $1
828
	rm -rf "${BUILDDIR}/image"
998
	rm -rf "${BUILDDIR}/image"
999
	if [ -n "${ABI}" -a "${ABI}" != "NOMULTILIB" ]; then
1000
		mv ${WORKDIR} ${WORKDIR}.${ABI}
1001
		rm -f ${BUILDDIR}/.abi
1002
	fi
829
	exit 1
1003
	exit 1
830
}
1004
}
831
1005
832
dyn_compile() {
1006
dyn_compile() {
833
	trap "abort_compile" SIGINT SIGQUIT
1007
	trap "abort_compile" SIGINT SIGQUIT
834
	[ "${CFLAGS-unset}"      != "unset" ] && export CFLAGS
835
	[ "${CXXFLAGS-unset}"    != "unset" ] && export CXXFLAGS
836
	[ "${LIBCFLAGS-unset}"   != "unset" ] && export LIBCFLAGS
837
	[ "${LIBCXXFLAGS-unset}" != "unset" ] && export LIBCXXFLAGS
838
	[ "${LDFLAGS-unset}"     != "unset" ] && export LDFLAGS
839
	[ "${ASFLAGS-unset}"     != "unset" ] && export ASFLAGS
840
841
	[ "${CCACHE_DIR-unset}"  != "unset" ] && export CCACHE_DIR
842
	[ "${CCACHE_SIZE-unset}" != "unset" ] && export CCACHE_SIZE
843
844
	[ "${DISTCC_DIR-unset}"  == "unset" ] && export DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"
845
	[ ! -z "${DISTCC_DIR}" ] && addwrite "${DISTCC_DIR}"
846
847
	if hasq noauto $FEATURES &>/dev/null && [ ! -f ${BUILDDIR}/.unpacked ]; then
1008
	if hasq noauto $FEATURES &>/dev/null && [ ! -f ${BUILDDIR}/.unpacked ]; then
848
		echo
1009
		echo
849
		echo "!!! We apparently haven't unpacked... This is probably not what you"
1010
		echo "!!! We apparently haven't unpacked... This is probably not what you"
850
		echo "!!! want to be doing... You are using FEATURES=noauto so I'll assume"
1011
		echo "!!! want to be doing... You are using FEATURES=noauto so I'll assume"
Lines 868-894 dyn_compile() { Link Here
868
		mkdir build-info
1029
		mkdir build-info
869
	fi
1030
	fi
870
	cp "${EBUILD}" "build-info/${PF}.ebuild"
1031
	cp "${EBUILD}" "build-info/${PF}.ebuild"
871
	
1032
	
872
	if [ ${BUILDDIR}/.compiled -nt "${WORKDIR}" ]; then
1033
	if [ "$(get_abi_order)" = "NOMULTILIB" -a \
1034
	      ${BUILDDIR}/.compiled -nt "${WORKDIR}" ]; then
873
		echo ">>> It appears that ${PN} is already compiled; skipping."
1035
		echo ">>> It appears that ${PN} is already compiled; skipping."
874
		echo ">>> (clean to force compilation)"
1036
		echo ">>> (clean to force compilation)"
875
		trap SIGINT SIGQUIT
1037
		trap SIGINT SIGQUIT
876
		return
1038
		return
877
	fi
1039
	fi
878
	if [ -d "${S}" ]; then
1040
879
		cd "${S}"
1041
	for ABI in $(get_abi_order); do
880
	fi
1042
		if [ "${ABI}" = "NOMULTILIB" ]; then
881
	#our custom version of libtool uses $S and $D to fix
1043
			unset ABI
882
	#invalid paths in .la files
1044
		else
883
	export S D
1045
			set_abi ${ABI}
884
	#some packages use an alternative to $S to build in, cause
1046
885
	#our libtool to create problematic .la files
1047
			if [ ${BUILDDIR}/.compiled.${ABI} -nt "${WORKDIR}" ]; then
886
	export PWORKDIR="$WORKDIR"
1048
				echo ">>> It appears that ${PN} is already compiled for ABI=${ABI}; skipping."
887
	src_compile
1049
				echo ">>> (clean to force compilation)"
1050
				continue
1051
			fi
1052
		fi
1053
1054
		[ "${CFLAGS-unset}"      != "unset" ] && export CFLAGS
1055
		[ "${CXXFLAGS-unset}"    != "unset" ] && export CXXFLAGS
1056
		[ "${LIBCFLAGS-unset}"   != "unset" ] && export LIBCFLAGS
1057
		[ "${LIBCXXFLAGS-unset}" != "unset" ] && export LIBCXXFLAGS
1058
		[ "${LDFLAGS-unset}"     != "unset" ] && export LDFLAGS
1059
		[ "${ASFLAGS-unset}"     != "unset" ] && export ASFLAGS
1060
1061
		[ "${CCACHE_DIR-unset}"  != "unset" ] && export CCACHE_DIR
1062
		[ "${CCACHE_SIZE-unset}" != "unset" ] && export CCACHE_SIZE
1063
1064
		[ "${DISTCC_DIR-unset}"  == "unset" ] && export DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"
1065
		[ ! -z "${DISTCC_DIR}" ] && addwrite "${DISTCC_DIR}"
1066
1067
		#our custom version of libtool uses $S and $D to fix
1068
		#invalid paths in .la files
1069
		export S D
1070
		#some packages use an alternative to $S to build in, cause
1071
		#our libtool to create problematic .la files
1072
		export PWORKDIR="${WORKDIR}"
1073
1074
		if [ -d "${S}" ]; then
1075
			cd "${S}"
1076
		fi
1077
		src_compile
1078
1079
		if [ "${ABI}" != "NOMULTILIB" ]; then
1080
			cd "${BUILDDIR}"
1081
			touch .compiled.${ABI} || die "IO Failure -- Failed to 'touch .compiled.${ABI}'"
1082
		fi
1083
	done
1084
	unset_abi
1085
	unset ABI
1086
888
	#|| abort_compile "fail"
1087
	#|| abort_compile "fail"
889
	cd "${BUILDDIR}"
1088
	cd "${BUILDDIR}"
890
	touch .compiled
1089
	touch .compiled || "IO Failure -- Failed to 'touch .compiled'"
891
	cd build-info
1090
	cd build-info
892
1091
893
	echo "$ASFLAGS"        > ASFLAGS
1092
	echo "$ASFLAGS"        > ASFLAGS
894
	echo "$CATEGORY"       > CATEGORY
1093
	echo "$CATEGORY"       > CATEGORY
Lines 919-926 dyn_compile() { Link Here
919
	echo "$RESTRICT"       > RESTRICT
1118
	echo "$RESTRICT"       > RESTRICT
920
	echo "$SLOT"           > SLOT
1119
	echo "$SLOT"           > SLOT
921
	echo "$USE"            > USE
1120
	echo "$USE"            > USE
922
1121
1122
	if [ "$(get_abi_order)" != "NOMULTILIB" ]; then
1123
		echo "$(get_abi_order)" > MULTILIB_ABIS
1124
	fi
1125
923
	set                                         >  environment
1126
	set                                         >  environment
924
	export -p | sed 's:declare -rx:declare -x:' >> environment
1127
	export -p | sed 's:declare -rx:declare -x:' >> environment
925
	bzip2 -9 environment
1128
	bzip2 -9 environment
926
1129
Lines 952-969 dyn_package() { Link Here
952
1155
953
1156
954
dyn_test() {
1157
dyn_test() {
955
	trap "abort_test" SIGINT SIGQUIT
1158
	trap "abort_test" SIGINT SIGQUIT
956
	if [ -d "${S}" ]; then
957
		cd "${S}"
958
	fi
959
	if hasq maketest $RESTRICT; then
1159
	if hasq maketest $RESTRICT; then
960
		ewarn "Skipping make test/check due to ebuild restriction."
1160
		ewarn "Skipping make test/check due to ebuild restriction."
961
		echo ">>> Test phase [explicitly disabled]: ${CATEGORY}/${PF}"
1161
		echo ">>> Test phase [explicitly disabled]: ${CATEGORY}/${PF}"
962
	elif ! hasq maketest $FEATURES; then
1162
	elif ! hasq maketest $FEATURES; then
963
		echo ">>> Test phase [not enabled]: ${CATEGORY}/${PF}"
1163
		echo ">>> Test phase [not enabled]: ${CATEGORY}/${PF}"
964
	else
1164
	else
965
		src_test
1165
		for ABI in $(get_abi_order); do
1166
			if [ "${ABI}" = "NOMULTILIB" ]; then
1167
				unset ABI
1168
			else
1169
				set_abi ${ABI}
1170
			fi
1171
1172
			if [ -d "${S}" ]; then
1173
				cd "${S}"
1174
			fi
1175
			src_test
1176
		done
1177
		unset_abi
1178
		unset ABI
966
	fi
1179
	fi
967
1180
968
	cd "${BUILDDIR}"
1181
	cd "${BUILDDIR}"
969
	touch .tested || die "Failed to 'touch .tested' in ${BUILDDIR}"
1182
	touch .tested || die "Failed to 'touch .tested' in ${BUILDDIR}"
Lines 975-994 dyn_test() { Link Here
975
dyn_install() {
1188
dyn_install() {
976
	trap "abort_install" SIGINT SIGQUIT
1189
	trap "abort_install" SIGINT SIGQUIT
977
	rm -rf "${BUILDDIR}/image"
1190
	rm -rf "${BUILDDIR}/image"
978
	mkdir "${BUILDDIR}/image"
1191
	mkdir "${BUILDDIR}/image"
979
	if [ -d "${S}" ]; then
980
		cd "${S}"
981
	fi
982
	echo
1192
	echo
983
	echo ">>> Install ${PF} into ${D} category ${CATEGORY}"
1193
	echo ">>> Install ${PF} into ${D} category ${CATEGORY}"
984
	#our custom version of libtool uses $S and $D to fix
1194
985
	#invalid paths in .la files
1195
	for ABI in $(get_abi_order); do
986
	export S D
1196
		if [ "${ABI}" = "NOMULTILIB" ]; then
987
	#some packages uses an alternative to $S to build in, cause
1197
			unset ABI
988
	#our libtool to create problematic .la files
1198
		else
989
	export PWORKDIR="$WORKDIR"
1199
			set_abi ${ABI}
990
	src_install
1200
		fi
1201
1202
		#our custom version of libtool uses $S and $D to fix
1203
		#invalid paths in .la files
1204
		export S D
1205
		#some packages uses an alternative to $S to build in, cause
1206
		#our libtool to create problematic .la files
1207
		export PWORKDIR="${WORKDIR}"
1208
1209
		if [ -d "${S}" ]; then
1210
			cd "${S}"
1211
		fi
1212
		src_install
1213
	done
1214
	unset_abi
1215
	unset ABI
1216
991
	#|| abort_install "fail"
1217
	#|| abort_install "fail"
992
	prepall
1218
	prepall
993
	cd "${D}"
1219
	cd "${D}"
994
1220
Lines 1829-1839 for myarg in $*; do Link Here
1829
done
2055
done
1830
2056
1831
if [ "$myarg" != "clean" ]; then
2057
if [ "$myarg" != "clean" ]; then
1832
	# Save current environment and touch a success file. (echo for success)
2058
	# Save current environment and touch a success file. (echo for success)
1833
	umask 002
2059
	save_env
1834
	set | egrep -v "^SANDBOX_" > "${T}/environment" 2>/dev/null
1835
	chown portage:portage "${T}/environment" &>/dev/null
1836
	chmod g+w "${T}/environment" &>/dev/null
1837
fi
2060
fi
1838
2061
1839
exit 0
2062
exit 0

Return to bug 75420