1 |
Author: zmedico |
2 |
Date: 2009-08-05 00:09:15 +0000 (Wed, 05 Aug 2009) |
3 |
New Revision: 13913 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/Binpkg.py |
7 |
main/trunk/pym/_emerge/BinpkgVerifier.py |
8 |
main/trunk/pym/_emerge/EbuildBuild.py |
9 |
main/trunk/pym/_emerge/EbuildFetcher.py |
10 |
main/trunk/pym/_emerge/EbuildPhase.py |
11 |
main/trunk/pym/_emerge/PackageUninstall.py |
12 |
main/trunk/pym/_emerge/changelog.py |
13 |
main/trunk/pym/_emerge/depgraph.py |
14 |
main/trunk/pym/_emerge/emergelog.py |
15 |
Log: |
16 |
Open file in text mode (unicode) where appropriate. |
17 |
|
18 |
|
19 |
Modified: main/trunk/pym/_emerge/Binpkg.py |
20 |
=================================================================== |
21 |
--- main/trunk/pym/_emerge/Binpkg.py 2009-08-04 23:19:45 UTC (rev 13912) |
22 |
+++ main/trunk/pym/_emerge/Binpkg.py 2009-08-05 00:09:15 UTC (rev 13913) |
23 |
@@ -17,6 +17,7 @@ |
24 |
import sys |
25 |
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym")) |
26 |
import portage |
27 |
+import codecs |
28 |
import os |
29 |
from portage.output import colorize |
30 |
class Binpkg(CompositeTask): |
31 |
@@ -35,7 +36,8 @@ |
32 |
|
33 |
log_path = self.settings.get("PORTAGE_LOG_FILE") |
34 |
if log_path is not None: |
35 |
- f = open(log_path, 'a') |
36 |
+ f = codecs.open(log_path, mode='a', |
37 |
+ encoding='utf_8', errors='replace') |
38 |
try: |
39 |
f.write(msg) |
40 |
finally: |
41 |
@@ -228,7 +230,8 @@ |
42 |
else: |
43 |
continue |
44 |
|
45 |
- f = open(os.path.join(infloc, k), 'wb') |
46 |
+ f = codecs.open(os.path.join(infloc, k), mode='w', |
47 |
+ encoding='utf_8', errors='replace') |
48 |
try: |
49 |
f.write(v + "\n") |
50 |
finally: |
51 |
|
52 |
Modified: main/trunk/pym/_emerge/BinpkgVerifier.py |
53 |
=================================================================== |
54 |
--- main/trunk/pym/_emerge/BinpkgVerifier.py 2009-08-04 23:19:45 UTC (rev 13912) |
55 |
+++ main/trunk/pym/_emerge/BinpkgVerifier.py 2009-08-05 00:09:15 UTC (rev 13913) |
56 |
@@ -12,6 +12,7 @@ |
57 |
import sys |
58 |
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym")) |
59 |
import portage |
60 |
+import codecs |
61 |
import os |
62 |
class BinpkgVerifier(AsynchronousTask): |
63 |
__slots__ = ("logfile", "pkg",) |
64 |
@@ -31,7 +32,8 @@ |
65 |
stderr_orig = sys.stderr |
66 |
log_file = None |
67 |
if self.background and self.logfile is not None: |
68 |
- log_file = open(self.logfile, 'a') |
69 |
+ log_file = codecs.open(self.logfile, mode='a', |
70 |
+ encoding='utf_8', errors='replace') |
71 |
try: |
72 |
if log_file is not None: |
73 |
sys.stdout = log_file |
74 |
|
75 |
Modified: main/trunk/pym/_emerge/EbuildBuild.py |
76 |
=================================================================== |
77 |
--- main/trunk/pym/_emerge/EbuildBuild.py 2009-08-04 23:19:45 UTC (rev 13912) |
78 |
+++ main/trunk/pym/_emerge/EbuildBuild.py 2009-08-05 00:09:15 UTC (rev 13913) |
79 |
@@ -18,6 +18,7 @@ |
80 |
import sys |
81 |
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym")) |
82 |
import portage |
83 |
+import codecs |
84 |
import os |
85 |
from portage.output import colorize |
86 |
class EbuildBuild(CompositeTask): |
87 |
@@ -187,7 +188,8 @@ |
88 |
|
89 |
log_path = self.settings.get("PORTAGE_LOG_FILE") |
90 |
if log_path is not None: |
91 |
- log_file = open(log_path, 'a') |
92 |
+ log_file = codecs.open(log_path, mode='a', |
93 |
+ encoding='utf_8', errors='replace') |
94 |
try: |
95 |
log_file.write(msg) |
96 |
finally: |
97 |
|
98 |
Modified: main/trunk/pym/_emerge/EbuildFetcher.py |
99 |
=================================================================== |
100 |
--- main/trunk/pym/_emerge/EbuildFetcher.py 2009-08-04 23:19:45 UTC (rev 13912) |
101 |
+++ main/trunk/pym/_emerge/EbuildFetcher.py 2009-08-05 00:09:15 UTC (rev 13913) |
102 |
@@ -12,6 +12,7 @@ |
103 |
import sys |
104 |
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym")) |
105 |
import portage |
106 |
+import codecs |
107 |
import os |
108 |
from portage.elog.messages import eerror |
109 |
class EbuildFetcher(SpawnProcess): |
110 |
@@ -92,7 +93,8 @@ |
111 |
elog_out = None |
112 |
if self.logfile is not None: |
113 |
if self.background: |
114 |
- elog_out = open(self.logfile, 'a') |
115 |
+ elog_out = codecs.open(self.logfile, mode='a', |
116 |
+ encoding='utf_8', errors='replace') |
117 |
msg = "Fetch failed for '%s'" % (self.pkg.cpv,) |
118 |
if self.logfile is not None: |
119 |
msg += ", Log file:" |
120 |
|
121 |
Modified: main/trunk/pym/_emerge/EbuildPhase.py |
122 |
=================================================================== |
123 |
--- main/trunk/pym/_emerge/EbuildPhase.py 2009-08-04 23:19:45 UTC (rev 13912) |
124 |
+++ main/trunk/pym/_emerge/EbuildPhase.py 2009-08-05 00:09:15 UTC (rev 13913) |
125 |
@@ -13,6 +13,7 @@ |
126 |
import sys |
127 |
sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym")) |
128 |
import portage |
129 |
+import codecs |
130 |
import os |
131 |
class EbuildPhase(CompositeTask): |
132 |
|
133 |
@@ -36,7 +37,8 @@ |
134 |
log_path = self.settings.get("PORTAGE_LOG_FILE") |
135 |
log_file = None |
136 |
if self.background and log_path is not None: |
137 |
- log_file = open(log_path, 'a') |
138 |
+ log_file = codecs.open(log_path, mode='a', |
139 |
+ encoding='utf_8', errors='replace') |
140 |
out = log_file |
141 |
try: |
142 |
portage._check_build_log(self.settings, out=out) |
143 |
|
144 |
Modified: main/trunk/pym/_emerge/PackageUninstall.py |
145 |
=================================================================== |
146 |
--- main/trunk/pym/_emerge/PackageUninstall.py 2009-08-04 23:19:45 UTC (rev 13912) |
147 |
+++ main/trunk/pym/_emerge/PackageUninstall.py 2009-08-05 00:09:15 UTC (rev 13913) |
148 |
@@ -2,6 +2,7 @@ |
149 |
# Distributed under the terms of the GNU General Public License v2 |
150 |
# $Id$ |
151 |
|
152 |
+import codecs |
153 |
import logging |
154 |
import os |
155 |
|
156 |
@@ -47,7 +48,8 @@ |
157 |
portage.util.writemsg_level(msg, |
158 |
level=level, noiselevel=noiselevel) |
159 |
|
160 |
- f = open(log_path, 'a') |
161 |
+ f = codecs.open(log_path, mode='a', |
162 |
+ encoding='utf_8', errors='replace') |
163 |
try: |
164 |
f.write(msg) |
165 |
finally: |
166 |
|
167 |
Modified: main/trunk/pym/_emerge/changelog.py |
168 |
=================================================================== |
169 |
--- main/trunk/pym/_emerge/changelog.py 2009-08-04 23:19:45 UTC (rev 13912) |
170 |
+++ main/trunk/pym/_emerge/changelog.py 2009-08-05 00:09:15 UTC (rev 13913) |
171 |
@@ -2,6 +2,7 @@ |
172 |
# Distributed under the terms of the GNU General Public License v2 |
173 |
# $Id$ |
174 |
|
175 |
+import codecs |
176 |
import os |
177 |
import re |
178 |
|
179 |
@@ -24,7 +25,8 @@ |
180 |
next = next[:-3] |
181 |
changelogpath = os.path.join(os.path.split(ebuildpath)[0],'ChangeLog') |
182 |
try: |
183 |
- changelog = open(changelogpath).read() |
184 |
+ changelog = codecs.open(changelogpath, mode='r', |
185 |
+ encoding='utf_8', errors='replace').read() |
186 |
except SystemExit, e: |
187 |
raise # Needed else can't exit |
188 |
except: |
189 |
|
190 |
Modified: main/trunk/pym/_emerge/depgraph.py |
191 |
=================================================================== |
192 |
--- main/trunk/pym/_emerge/depgraph.py 2009-08-04 23:19:45 UTC (rev 13912) |
193 |
+++ main/trunk/pym/_emerge/depgraph.py 2009-08-05 00:09:15 UTC (rev 13913) |
194 |
@@ -4354,6 +4354,14 @@ |
195 |
if "--changelog" in self._frozen_config.myopts: |
196 |
print |
197 |
for revision,text in changelogs: |
198 |
+ |
199 |
+ if sys.hexversion < 0x3000000: |
200 |
+ # avoid potential UnicodeEncodeError |
201 |
+ if isinstance(revision, unicode): |
202 |
+ revision = revision.encode('utf_8', 'replace') |
203 |
+ if isinstance(text, unicode): |
204 |
+ text = text.encode('utf_8', 'replace') |
205 |
+ |
206 |
print bold('*'+revision) |
207 |
sys.stdout.write(text) |
208 |
|
209 |
|
210 |
Modified: main/trunk/pym/_emerge/emergelog.py |
211 |
=================================================================== |
212 |
--- main/trunk/pym/_emerge/emergelog.py 2009-08-04 23:19:45 UTC (rev 13912) |
213 |
+++ main/trunk/pym/_emerge/emergelog.py 2009-08-05 00:09:15 UTC (rev 13913) |
214 |
@@ -2,6 +2,7 @@ |
215 |
# Distributed under the terms of the GNU General Public License v2 |
216 |
# $Id$ |
217 |
|
218 |
+import codecs |
219 |
import os |
220 |
import sys |
221 |
import time |
222 |
@@ -24,7 +25,8 @@ |
223 |
xtermTitle(short_msg) |
224 |
try: |
225 |
file_path = os.path.join(_emerge_log_dir, 'emerge.log') |
226 |
- mylogfile = open(file_path, "a") |
227 |
+ mylogfile = codecs.open(file_path, mode='a', |
228 |
+ encoding='utf_8', errors='replace') |
229 |
portage.util.apply_secpass_permissions(file_path, |
230 |
uid=portage.portage_uid, gid=portage.portage_gid, |
231 |
mode=0660) |