Shawn,
I got it working, but there are few bugs and limitations:
* If the p5i do not contain repository information we are skipping
this p5i file and do nothing as the publisher returned from the api is
None for such situation. So it would be hard to tell from which
publisher this package comes from, eg.
---------------------
{
"packages": [
"pkg:/[email protected],5.11-0",
"baz"
],
}
---------------------
* The p5i file can't contain alias information or we will get exception:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.4/threading.py", line 442, in __bootstrap
self.run()
File "/usr/lib/python2.4/threading.py", line 422, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/python2.4/vendor-packages/pkg/gui/repository.py",
line 879, in __add_repository
self.api_o.add_publisher(pub)
File "/usr/lib/python2.4/vendor-packages/pkg/client/api.py", line
861, in add_publisher
self.img.add_publisher(pub, refresh_allowed=refresh_allowed)
File "/usr/lib/python2.4/vendor-packages/pkg/client/image.py", line
743, in add_publisher
if pub == p or (pub.alias and pub.alias == p.alias):
AttributeError: 'str' object has no attribute 'alias'
{
"publishers": [
{
"alias": "cat",
"name": "bobcat",
"packages": [
"example-1"
],
"repositories": [
{
"collection_type": "core",
"description": "xkcd.net/325",
"legal_uris": [
"http://xkcd.com/license.html"
],
"mirrors": [],
"name": "source",
"origins": [
"http://localhost:10000/"
],
"refresh_seconds": 43200,
"registration_uri": "",
"related_uris": []
}
]
}
],
"version": 1
}
* The p5i file which worked for me:
{
"publishers": [
{
"name": "bobcat",
"packages": [
"example-1"
],
"repositories": [
{
"collection_type": "core",
"description": "xkcd.net/325",
"legal_uris": [
"http://xkcd.com/license.html"
],
"mirrors": [],
"name": "source",
"origins": [
"http://localhost:10000/"
],
"refresh_seconds": 43200,
"registration_uri": "",
"related_uris": []
}
]
}
],
"version": 1
}
best
Michal
Shawn Walker wrote:
Michal Pryc wrote:
Hello,
I have merged all the gui changes together and posted at:
http://cr.opensolaris.org/~migi/webinstall_v1/
This patch should be applied on top of the:
http://cr.opensolaris.org/~swalker/pkg-5871
(note this webrev is missing filelist.py)
I've found a few bugs when testing this patch applied as described
above:
======================================================================
core dump
======================================================================
-- start packagemanager
-- go to file -> manage repositories
-- ensure that there are two repositories listed (i haven't tested
with more than that, results may vary)
-- using keyboard, navigate to repository list (tab key) and
highlight first entry
-- using keyboard, go to second repository entry (down arrow)
-- using keyboard, trigger modify dialog (Alt + M)
-- using keyboard, close modify dialog (Escape)
-- using keyboard, trigger modify dialog (Alt + M)
-- core dump [1]
======================================================================
weird dialog window / error
======================================================================
-- start packagemanager
-- go to file -> manage repositories
-- ensure that there are two repositories listed (i haven't tested
with more than that, results may vary)
-- using keyboard, navigate to repository list (tab key) and
highlight first entry
-- using keyboard, trigger modify dialog (Alt + M)
-- using keyboard, close modify dialog (Escape)
-- using keyboard, trigger modify dialog (Alt + M)
-- tiny dialog window comes up and following error is printed in
console:
/export/home/xxx/devel/pkg-5871-gui/proto/root_i386/usr/lib/python2.4/vendor-packages/pkg/gui/repository.py:753:
GtkWarning: file gtkcontainer.c: line 1476: assertion
`GTK_IS_CONTAINER (container)' failed
self.w_repositorymodify_dialog.show_all()
======================================================================
user image created with --no-refresh causes startup error:
======================================================================
-- pkg image-create --no-refresh -a test=http://ipkg.sfbay/dev
/tmp/image
-- pfexec python packagemanager.py -R /tmp/image
-- received this dialog box message:
Error occured while getting list of packages
-- received this message in console output:
Traceback (most recent call last):
File "packagemanager.py", line 648, in __init_tree_views
row = section_list[self.initial_section]
IndexError: could not find tree path
-- when attempting to close the packagemanager, it never closed and
printed this message:
Traceback (most recent call last):
File "packagemanager.py", line 1004, in __on_mainwindow_delete_event
if self.__check_if_something_was_changed() == True:
File "packagemanager.py", line 1578, in
__check_if_something_was_changed
for pkg in self.application_list:
TypeError: iteration over non-sequence
======================================================================
Cheers,