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

Collapse All | Expand All

(-)pym/portage_checksum.py (-5 / +9 lines)
Lines 10-15 Link Here
10
import os
10
import os
11
import errno
11
import errno
12
import stat
12
import stat
13
import tempfile
13
import portage_exception
14
import portage_exception
14
import portage_exec
15
import portage_exec
15
import portage_locks
16
import portage_locks
Lines 201-216 Link Here
201
	"""
202
	"""
202
	global prelink_capable
203
	global prelink_capable
203
	myfilename      = filename[:]
204
	myfilename      = filename[:]
204
	prelink_tmpfile = os.path.join("/", PRIVATE_PATH, "prelink-checksum.tmp." + str(os.getpid()))
205
	prelink_tmpfile = None
205
	mylock          = None
206
	mylock          = None
206
	try:
207
	try:
207
		if calc_prelink and prelink_capable:
208
		if calc_prelink and prelink_capable:
208
			mylock = portage_locks.lockfile(prelink_tmpfile, wantnewlockfile=1)
209
			# Create non-prelinked temporary file to checksum.
209
			# Create non-prelinked temporary file to checksum.
210
			# Files rejected by prelink are summed in place.
210
			# Files rejected by prelink are summed in place.
211
			try:
211
			try:
212
				retval = portage_exec.spawn([PRELINK_BINARY, "--undo", "-o",
212
				tmpfile_fd, prelink_tmpfile = tempfile.mkstemp()
213
					prelink_tmpfile, filename], fd_pipes={})
213
				try:
214
					retval = portage_exec.spawn([PRELINK_BINARY,
215
						"--verify", filename], fd_pipes={1:tmpfile_fd})
216
				finally:
217
					os.close(tmpfile_fd)
214
				if retval == os.EX_OK:
218
				if retval == os.EX_OK:
215
					myfilename = prelink_tmpfile
219
					myfilename = prelink_tmpfile
216
			except portage_exception.CommandNotFound:
220
			except portage_exception.CommandNotFound:
Lines 225-231 Link Here
225
			if e.errno == errno.ENOENT:
229
			if e.errno == errno.ENOENT:
226
				raise portage_exception.FileNotFound(myfilename)
230
				raise portage_exception.FileNotFound(myfilename)
227
			raise
231
			raise
228
		if calc_prelink and prelink_capable:
232
		if prelink_tmpfile:
229
			try:
233
			try:
230
				os.unlink(prelink_tmpfile)
234
				os.unlink(prelink_tmpfile)
231
			except OSError, e:
235
			except OSError, e:

Return to bug 190179