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

Collapse All | Expand All

(-)revdep-rebuild.old (-122 / +125 lines)
Lines 52-58 Link Here
52
	exit 0
52
	exit 0
53
fi
53
fi
54
54
55
echo "Configuring search environment for revdep-rebuild"
55
echo_v() {
56
  $VERBOSE && echo "$@"
57
} 
58
59
PACKAGE_NAMES=false
60
SONAME="not found"
61
SONAME_GREP=grep
62
SEARCH_BROKEN=true
63
VERBOSE=true
64
EXTRA_VERBOSE=false
65
KEEP_TEMP=false
66
67
EMERGE_OPTIONS=""
68
PRELIMINARY_CALLED_OPTIONS=""
69
while [ ! -z "$1" ] ; do
70
	case "$1" in
71
	-X | --package-names )
72
		PACKAGE_NAMES=true
73
		PRELIMINARY_CALLED_OPTIONS="${PRELIMINARY_CALLED_OPTIONS} --package_names"
74
		shift
75
		;;
76
	-q | --quiet )
77
		VERBOSE=false
78
		EMERGE_OPTIONS="${EMERGE_OPTIONS} $1"
79
		shift
80
		;;
81
	--library=* | --soname=* | --soname-regexp=* )
82
		SONAME="${1#*=}"
83
		SEARCH_BROKEN=false
84
		PRELIMINARY_CALLED_OPTIONS="${PRELIMINARY_CALLED_OPTIONS} --library=${SONAME}"
85
		shift
86
		;;
87
	--library | --soname | --soname-regexp )
88
		SONAME="$2"
89
		SEARCH_BROKEN=false
90
		PRELIMINARY_CALLED_OPTIONS="${PRELIMINARY_CALLED_OPTIONS} --library=${SONAME}"
91
		shift 2
92
		;;
93
	-nc | --no-color )
94
		NOCOLOR=true
95
		shift
96
		;;
97
	-i | --ignore )
98
		rm -f ${LIST}*
99
		shift
100
		;;
101
	--keep-temp )
102
		KEEPTEMP=true
103
		shift
104
		;;
105
	-vv | --extra-verbose )
106
		EXTRA_VERBOSE=true
107
		shift
108
		;;
109
	-- )
110
		shift
111
		;;
112
	* )
113
		EMERGE_OPTIONS="${EMERGE_OPTIONS} $1"
114
		shift
115
		;;
116
	esac
117
done
118
119
EMERGE_OPTIONS=$(echo $EMERGE_OPTIONS | sed 's/^ //')
120
121
if [ -z "$PRELIMINARY_CALLED_OPTIONS" ]
122
then
123
	CALLED_OPTIONS=""
124
else
125
	for i in $(echo $PRELIMINARY_CALLED_OPTIONS | tr ' ' '\n'| sort)
126
	do
127
		CALLED_OPTIONS="$(echo $CALLED_OPTIONS $i)"
128
	done
129
fi
130
131
echo_v "Configuring search environment for revdep-rebuild"
56
132
57
# Obey PORTAGE_NICENESS
133
# Obey PORTAGE_NICENESS
58
PORTAGE_NICENESS=$(portageq envvar PORTAGE_NICENESS)
134
PORTAGE_NICENESS=$(portageq envvar PORTAGE_NICENESS)
Lines 129-207 Link Here
129
YL="\x1b[33;01m"
205
YL="\x1b[33;01m"
130
BL="\x1b[34;01m"
206
BL="\x1b[34;01m"
131
207
132
alias echo_v=echo
133
134
PACKAGE_NAMES=false
135
SONAME="not found"
136
SONAME_GREP=grep
137
SEARCH_BROKEN=true
138
EXTRA_VERBOSE=false
139
KEEP_TEMP=false
140
141
EMERGE_OPTIONS=""
142
PRELIMINARY_CALLED_OPTIONS=""
143
while [ ! -z "$1" ] ; do
144
	case "$1" in
145
	-X | --package-names )
146
		PACKAGE_NAMES=true
147
		PRELIMINARY_CALLED_OPTIONS="${PRELIMINARY_CALLED_OPTIONS} --package_names"
148
		shift
149
		;;
150
	-q | --quiet )
151
		alias echo_v=:
152
		EMERGE_OPTIONS="${EMERGE_OPTIONS} $1"
153
		shift
154
		;;
155
	--library=* | --soname=* | --soname-regexp=* )
156
		SONAME="${1#*=}"
157
		SEARCH_BROKEN=false
158
		PRELIMINARY_CALLED_OPTIONS="${PRELIMINARY_CALLED_OPTIONS} --library=${SONAME}"
159
		shift
160
		;;
161
	--library | --soname | --soname-regexp )
162
		SONAME="$2"
163
		SEARCH_BROKEN=false
164
		PRELIMINARY_CALLED_OPTIONS="${PRELIMINARY_CALLED_OPTIONS} --library=${SONAME}"
165
		shift 2
166
		;;
167
	-nc | --no-color )
168
		NOCOLOR=true
169
		shift
170
		;;
171
	-i | --ignore )
172
		rm -f ${LIST}*
173
		shift
174
		;;
175
	--keep-temp )
176
		KEEPTEMP=true
177
		shift
178
		;;
179
	-vv | --extra-verbose )
180
		EXTRA_VERBOSE=true
181
		shift
182
		;;
183
	-- )
184
		shift
185
		;;
186
	* )
187
		EMERGE_OPTIONS="${EMERGE_OPTIONS} $1"
188
		shift
189
		;;
190
	esac
191
done
192
193
EMERGE_OPTIONS=$(echo $EMERGE_OPTIONS | sed 's/^ //')
194
195
if [ -z "$PRELIMINARY_CALLED_OPTIONS" ]
196
then
197
	CALLED_OPTIONS=""
198
else
199
	for i in $(echo $PRELIMINARY_CALLED_OPTIONS | tr ' ' '\n'| sort)
200
	do
201
		CALLED_OPTIONS="$(echo $CALLED_OPTIONS $i)"
202
	done
203
fi
204
205
if [ "$NOCOLOR" = "yes" -o "$NOCOLOR" = "true" ]
208
if [ "$NOCOLOR" = "yes" -o "$NOCOLOR" = "true" ]
206
then
209
then
207
	NOCOLOR=true
210
	NOCOLOR=true
Lines 291-308 Link Here
291
	cat $LIST.0_env
294
	cat $LIST.0_env
292
fi
295
fi
293
296
294
echo
297
echo_v
295
echo "Checking reverse dependencies..."
298
echo_v "Checking reverse dependencies..."
296
echo
299
echo_v
297
echo "Packages containing binaries and libraries $HEAD_TEXT"
300
echo_v "Packages containing binaries and libraries $HEAD_TEXT"
298
echo "will be emerged."
301
echo_v "will be emerged."
299
302
300
echo
303
echo_v
301
echo -n -e "${GR}Collecting system binaries and libraries...${NO}"
304
echo_v -n -e "${GR}Collecting system binaries and libraries...${NO}"
302
305
303
if [ -f $LIST.1_files ]
306
if [ -f $LIST.1_files ]
304
then
307
then
305
	echo " using existing $LIST.1_files."
308
	echo_v " using existing $LIST.1_files."
306
else
309
else
307
	# Be safe and remove any extraneous temporary files
310
	# Be safe and remove any extraneous temporary files
308
	rm -f ${LIST}.[1-9]_*
311
	rm -f ${LIST}.[1-9]_*
Lines 319-332 Link Here
319
	done
322
	done
320
	
323
	
321
	mv $LIST.0_files $LIST.1_files
324
	mv $LIST.0_files $LIST.1_files
322
	echo -e " done.\n  ($LIST.1_files)"
325
	echo_v -e " done.\n  ($LIST.1_files)"
323
fi
326
fi
324
327
325
if $SEARCH_BROKEN ; then
328
if $SEARCH_BROKEN ; then
326
	echo
329
	echo_v
327
	echo -n -e "${GR}Collecting complete LD_LIBRARY_PATH...${NO}"
330
	echo_v -n -e "${GR}Collecting complete LD_LIBRARY_PATH...${NO}"
328
	if [ -f $LIST.2_ldpath ] ; then
331
	if [ -f $LIST.2_ldpath ] ; then
329
		echo " using existing $LIST.2_ldpath."
332
		echo_v " using existing $LIST.2_ldpath."
330
	else
333
	else
331
		set_trap "$LIST.2_ldpath"
334
		set_trap "$LIST.2_ldpath"
332
		# Ensure that the "trusted" lib directories are at the start of the path
335
		# Ensure that the "trusted" lib directories are at the start of the path
Lines 335-349 Link Here
335
			sed '/^#/d;s/#.*$//' </etc/ld.so.conf
338
			sed '/^#/d;s/#.*$//' </etc/ld.so.conf
336
			sed 's:/[^/]*$::' <$LIST.1_files | sort -ru
339
			sed 's:/[^/]*$::' <$LIST.1_files | sort -ru
337
		) | tr '\n' : | tr -d '\r' | sed 's/:$//' >$LIST.2_ldpath
340
		) | tr '\n' : | tr -d '\r' | sed 's/:$//' >$LIST.2_ldpath
338
		echo -e " done.\n  ($LIST.2_ldpath)"
341
		echo_v -e " done.\n  ($LIST.2_ldpath)"
339
	fi
342
	fi
340
	export COMPLETE_LD_LIBRARY_PATH="$(cat $LIST.2_ldpath)"
343
	export COMPLETE_LD_LIBRARY_PATH="$(cat $LIST.2_ldpath)"
341
fi
344
fi
342
345
343
echo
346
echo_v
344
echo -n -e "${GR}Checking dynamic linking$WORKING_TEXT...${NO}"
347
echo_v -n -e "${GR}Checking dynamic linking$WORKING_TEXT...${NO}"
345
if [ -f $LLIST.3_rebuild ] ; then
348
if [ -f $LLIST.3_rebuild ] ; then
346
	echo " using existing $LLIST.3_rebuild."
349
	echo_v " using existing $LLIST.3_rebuild."
347
else
350
else
348
	echo_v
351
	echo_v
349
	set_trap "$LLIST.3_rebuild"
352
	set_trap "$LLIST.3_rebuild"
Lines 394-409 Link Here
394
		fi
397
		fi
395
	fi
398
	fi
396
	done
399
	done
397
	echo -e " done.\n  ($LLIST.3_rebuild)"
400
	echo_v -e " done.\n  ($LLIST.3_rebuild)"
398
fi
401
fi
399
402
400
if $PACKAGE_NAMES ; then
403
if $PACKAGE_NAMES ; then
401
	EXACT_EBUILDS=false
404
	EXACT_EBUILDS=false
402
405
403
	echo
406
	echo_v
404
	echo -n -e "${GR}Assigning files to packages...${NO}"
407
	echo_v -n -e "${GR}Assigning files to packages...${NO}"
405
	if [ -f $LLIST.4_packages_raw ] ; then
408
	if [ -f $LLIST.4_packages_raw ] ; then
406
		echo " using existing $LLIST.4_packages_raw."
409
		echo_v " using existing $LLIST.4_packages_raw."
407
	else
410
	else
408
		set_trap "$LLIST.4_packages*"
411
		set_trap "$LLIST.4_packages*"
409
		echo -n >$LLIST.4_packages_raw
412
		echo -n >$LLIST.4_packages_raw
Lines 423-444 Link Here
423
			fi
426
			fi
424
		done
427
		done
425
		echo_v
428
		echo_v
426
		echo -e " done.\n  ($LLIST.4_packages_raw, $LLIST.4_package_owners)"
429
		echo_v -e " done.\n  ($LLIST.4_packages_raw, $LLIST.4_package_owners)"
427
	fi
430
	fi
428
431
429
	echo
432
	echo_v
430
	echo -n -e "${GR}Cleaning list of packages to rebuild...${NO}"
433
	echo_v -n -e "${GR}Cleaning list of packages to rebuild...${NO}"
431
	if [ -f $LLIST.4_packages ] ; then
434
	if [ -f $LLIST.4_packages ] ; then
432
		echo " using existing $LLIST.4_packages."
435
		echo_v " using existing $LLIST.4_packages."
433
	else
436
	else
434
		sort -u $LLIST.4_packages_raw >$LLIST.4_packages
437
		sort -u $LLIST.4_packages_raw >$LLIST.4_packages
435
		echo -e " done.\n  ($LLIST.4_packages)"
438
		echo_v -e " done.\n  ($LLIST.4_packages)"
436
	fi
439
	fi
437
440
438
	echo
441
	echo_v
439
	echo -n -e "${GR}Assigning packages to ebuilds...${NO}"
442
	echo_v -n -e "${GR}Assigning packages to ebuilds...${NO}"
440
	if [ -f $LLIST.4_ebuilds ] ; then
443
	if [ -f $LLIST.4_ebuilds ] ; then
441
		echo " using existing $LLIST.4_ebuilds."
444
		echo_v " using existing $LLIST.4_ebuilds."
442
	else
445
	else
443
		if [ -s "$LLIST.4_packages" ]
446
		if [ -s "$LLIST.4_packages" ]
444
		then
447
		then
Lines 476-494 Link Here
476
					rm -f /etc/portage/package.mask
479
					rm -f /etc/portage/package.mask
477
				fi
480
				fi
478
			done > $LLIST.4_ebuilds
481
			done > $LLIST.4_ebuilds
479
			echo -e " done.\n  ($LLIST.4_ebuilds)"
482
			echo_v -e " done.\n  ($LLIST.4_ebuilds)"
480
		else
483
		else
481
			echo " Nothing to rebuild"
484
			echo_v " Nothing to rebuild"
482
			echo -n > $LLIST.4_ebuilds
485
			echo -n > $LLIST.4_ebuilds
483
		fi
486
		fi
484
	fi
487
	fi
485
else
488
else
486
	EXACT_EBUILDS=true
489
	EXACT_EBUILDS=true
487
490
488
	echo
491
	echo_v
489
	echo -n -e "${GR}Assigning files to ebuilds...${NO}"
492
	echo_v -n -e "${GR}Assigning files to ebuilds...${NO}"
490
	if [ -f $LLIST.4_ebuilds ] ; then
493
	if [ -f $LLIST.4_ebuilds ] ; then
491
		echo " using existing $LLIST.4_ebuilds."
494
		echo_v " using existing $LLIST.4_ebuilds."
492
	else
495
	else
493
		if [ -s "$LLIST.3_rebuild" ] ; then
496
		if [ -s "$LLIST.3_rebuild" ] ; then
494
			set_trap "$LLIST.4_ebuilds"
497
			set_trap "$LLIST.4_ebuilds"
Lines 497-515 Link Here
497
				cd /var/db/pkg
500
				cd /var/db/pkg
498
				fgrep -l -f - */*/CONTENTS
501
				fgrep -l -f - */*/CONTENTS
499
			) | sed s:/CONTENTS:: > $LLIST.4_ebuilds
502
			) | sed s:/CONTENTS:: > $LLIST.4_ebuilds
500
			echo -e " done.\n  ($LLIST.4_ebuilds)"
503
			echo_v -e " done.\n  ($LLIST.4_ebuilds)"
501
		else
504
		else
502
			echo " Nothing to rebuild"
505
			echo_v " Nothing to rebuild"
503
			echo -n > $LLIST.4_ebuilds
506
			echo -n > $LLIST.4_ebuilds
504
		fi
507
		fi
505
	fi
508
	fi
506
509
507
fi
510
fi
508
511
509
echo
512
echo_v
510
echo -n -e "${GR}Evaluating package order...${NO}"
513
echo_v -n -e "${GR}Evaluating package order...${NO}"
511
if [ -f $LLIST.5_order ] ; then
514
if [ -f $LLIST.5_order ] ; then
512
	echo " using existing $LLIST.5_order."
515
	echo_v " using existing $LLIST.5_order."
513
else
516
else
514
	RAW_REBUILD_LIST="$(cat $LLIST.4_ebuilds | sed s/^/=/ | tr '\n' ' ')"
517
	RAW_REBUILD_LIST="$(cat $LLIST.4_ebuilds | sed s/^/=/ | tr '\n' ' ')"
515
	if [ ! -z "$RAW_REBUILD_LIST" ] ; then
518
	if [ ! -z "$RAW_REBUILD_LIST" ] ; then
Lines 533-539 Link Here
533
	else
536
	else
534
		echo -n "" >$LLIST.5_order
537
		echo -n "" >$LLIST.5_order
535
	fi
538
	fi
536
	echo -e " done.\n  ($LLIST.5_order)"
539
	echo_v -e " done.\n  ($LLIST.5_order)"
537
fi
540
fi
538
541
539
REBUILD_LIST="$(cat $LLIST.5_order | sed s/^/=/ | tr '\n' ' ')"
542
REBUILD_LIST="$(cat $LLIST.5_order | sed s/^/=/ | tr '\n' ' ')"
Lines 541-547 Link Here
541
trap - SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM
544
trap - SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM
542
545
543
if [ -z "$REBUILD_LIST" ] ; then
546
if [ -z "$REBUILD_LIST" ] ; then
544
	echo -e "\n${GR}$OK_TEXT... All done.${NO} "
547
	echo_v -e "\n${GR}$OK_TEXT... All done.${NO} "
545
	if [ ! $KEEPTEMP ]
548
	if [ ! $KEEPTEMP ]
546
	then
549
	then
547
		rm $LIST.[0-2]_*
550
		rm $LIST.[0-2]_*
Lines 553-560 Link Here
553
IS_REAL_MERGE=true
556
IS_REAL_MERGE=true
554
echo " $EMERGE_OPTIONS " | grep -q '\( -p \| --pretend \| -f \| --fetchonly \)' && IS_REAL_MERGE=false
557
echo " $EMERGE_OPTIONS " | grep -q '\( -p \| --pretend \| -f \| --fetchonly \)' && IS_REAL_MERGE=false
555
558
556
echo
559
echo_v
557
echo -e "${GR}All prepared. Starting rebuild...${NO}"
560
echo_v -e "${GR}All prepared. Starting rebuild...${NO}"
558
561
559
echo "emerge --oneshot $EMERGE_OPTIONS $REBUILD_LIST"
562
echo "emerge --oneshot $EMERGE_OPTIONS $REBUILD_LIST"
560
563
Lines 612-626 Link Here
612
	if $IS_REAL_MERGE ; then
615
	if $IS_REAL_MERGE ; then
613
		trap "echo -e \" terminated. Please remove them manually:\nrm $LIST*.?_*\" ; exit 1" \
616
		trap "echo -e \" terminated. Please remove them manually:\nrm $LIST*.?_*\" ; exit 1" \
614
			SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM
617
			SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM
615
		echo -n -e "${GR}Build finished correctly. Removing temporary files...${NO} "
618
		echo_v -n -e "${GR}Build finished correctly. Removing temporary files...${NO} "
616
		echo
619
		echo_v
617
		rm $LIST.[0-2]_*
620
		rm $LIST.[0-2]_*
618
		rm $LLIST.[3-9]_*
621
		rm $LLIST.[3-9]_*
619
		echo "You can re-run revdep-rebuild to verify that all libraries and binaries"
622
		echo_v "You can re-run revdep-rebuild to verify that all libraries and binaries"
620
		echo "are fixed. If some inconsistency remains, it can be orphaned file, deep"
623
		echo_v "are fixed. If some inconsistency remains, it can be orphaned file, deep"
621
		echo "dependency, binary package or specially evaluated library."
624
		echo_v "dependency, binary package or specially evaluated library."
622
	else
625
	else
623
		echo -e "${GR}Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.${NO}"
626
		echo_v -e "${GR}Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.${NO}"
624
	fi
627
	fi
625
fi
628
fi
626
exit 0
629
exit 0

Return to bug 97073