Убили Portage... [solved]

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
Xaktyc
Сообщения: 604
ОС: Gentoo 2008.0, WinXP

Убили Portage... [solved]

Сообщение Xaktyc »

Появилась проблема с портежами, обратился на багзиллу. Дали патч.

Код: Выделить всё

Index: pym/portage/cache/sqlite.py
===================================================================
--- pym/portage/cache/sqlite.py    (revision 14170)
+++ pym/portage/cache/sqlite.py    (revision 14171)
@@ -48,7 +48,7 @@
     def _db_escape_string(self, s):
         """meta escaping, returns quoted string for use in sql statements"""
         # This is equivalent to the _quote function from pysqlite 1.1.
-        return "'%s'" % str(s).replace("'","''")
+        return "'%s'" % s.replace("'", "''")

     def _db_init_connection(self, config):
         self._dbpath = self.location + ".sqlite"


Сказали:
If this patch is saved as /tmp/unicode_error.patch, then it can be applied as
follows:

patch /usr/lib/portage/pym/portage/cache/sqlite.py /tmp/unicode_error.patch

После этого сдохли портежи, начали вываливаться с ошибками при --sync'е:

Код: Выделить всё

>>> Updating Portage cache
 0% [>                                                                         ]Traceback (most recent call last):
  File "/usr/bin/emerge", line 40, in <module>
    retval = emerge_main()
  File "/usr/lib/portage/pym/_emerge/main.py", line 1328, in emerge_main
    return action_sync(settings, trees, mtimedb, myopts, myaction)
  File "/usr/lib/portage/pym/_emerge/actions.py", line 2171, in action_sync
    action_metadata(settings, portdb, myopts, porttrees=[myportdir])
  File "/usr/lib/portage/pym/_emerge/actions.py", line 1632, in action_metadata
    tree_data.dest_db[cpv] = src
  File "/usr/lib/portage/pym/portage/cache/template.py", line 77, in __setitem__
    self._setitem(cpv, d)
  File "/usr/lib/portage/pym/portage/cache/sqlite.py", line 181, in _setitem
    values_parameters.append(self._db_escape_string(values.get(k, '')))
  File "/usr/lib/portage/pym/portage/cache/sqlite.py", line 51, in _db_escape_string
    return "'%s'" % s.replace("'", "''")
AttributeError: 'long' object has no attribute 'replace'


На багзилле сказали отменить этот патч и применить другой. Но этот не отменяется.

Код: Выделить всё

pc tmp # patch -R /usr/lib/portage/pym/portage/cache/sqlite.py /tmp/unicode_error.patch
patching file /usr/lib/portage/pym/portage/cache/sqlite.py
Hunk #1 FAILED at 47.
1 out of 1 hunk FAILED -- saving rejects to file /usr/lib/portage/pym/portage/cache/sqlite.py.rej


Как восстановить это?
Как я понял, там сломан тока один файл. Если да, то выложите его кто-нить :)
Спасибо сказали:
Аватара пользователя
Xaktyc
Сообщения: 604
ОС: Gentoo 2008.0, WinXP

Re: Убили Portage... [solved]

Сообщение Xaktyc »

После отката вручную заработало. Нервы нервы...
Спасибо сказали: