Release PNDstore


I don't suppose you have the .out files from when it stalled, do you? I'm not seeing such stalls on my desktop.
No, but as I expected, I can recreate them by removing the appdata. I'm using wired networking so no flakiness there :)



Code:
sudo /usr/pandora/scripts/pnd_run.sh -m -p /media/mmcblk0p1/pandora/apps//PNDstore-1.0.pnd -e PNDstore -b pndstore -a --working-dir=.

not mounted on loop yet, doing so

LoopMountedon: 

/dev/loop6

Filetype is Squashfs

Mounting PND (mount -t squashfs) :

/dev/loop6 on /mnt/pnd/pndstore type squashfs (ro)

Filesystem is vfat

Mounting the Union FS using /media/mmcblk0p1/pandora/appdata/pndstore as Write directory:

mount -t aufs -o exec,noplink,dirs=/media/mmcblk0p1/pandora/appdata/pndstore=rw+nolwh:/mnt/pnd/pndstore=rr none /mnt/utmp/pndstore

none on /mnt/utmp/pndstore type aufs (rw,si=64204d37,noplink)

none on /mnt/utmp/pndstore type aufs (rw,si=64204d37,noplink)

[------------------------------]{ App start }[---------------------------------]

./PNDstore:26: GtkDeprecationWarning: gtk.threads_enter is deprecated, use gtk.gdk.threads_enter instead

  gtk.threads_enter()

Exception in thread Thread-2:

Traceback (most recent call last):

  File "/usr/lib/python2.6/threading.py", line 525, in __bootstrap_inner

    self.run()

  File "/mnt/utmp/pndstore/pndstore_gui/__init__.py", line 215, in run

    database_update.update_remote()

  File "/mnt/utmp/pndstore/pndstore_core/database_update.py", line 288, in update_remote

    for url in options.get_repos():

  File "/mnt/utmp/pndstore/pndstore_core/options.py", line 46, in get_repos

    with open(get_cfg()) as cfg:

  File "/mnt/utmp/pndstore/pndstore_core/options.py", line 30, in get_cfg

    shutil.copy(cfg_template, cfg_path)

  File "/usr/lib/python2.6/shutil.py", line 89, in copy

    copymode(src, dst)

  File "/usr/lib/python2.6/shutil.py", line 66, in copymode

    os.chmod(dst, mode)

OSError: [Errno 1] Operation not permitted: '/mnt/utmp/pndstore/pndstore.cfg'


./PNDstore:28: GtkDeprecationWarning: gtk.threads_leave is deprecated, use gtk.gdk.threads_leave instead

  gtk.threads_leave()

[-------------------------------]{ App end }[----------------------------------]

cleanup done

This was on a FAT filesystem. It only stalls on the first run when creating the appdata.

Don't worry, I'm not giving you special treatment :p . Just haven't needed to change it.
Glad to hear it. I set it up in such a way that if I have to change my gui code, then so do you :)


[edit]Tried it a couple more times. Always on the first run. I think that exception above crashes the thread and therefore prevents the actual update from happening. I would put a try...except... around it.[/edit]


[edit2]Just updated my source. Putting a try..except.. around shutil.copy indeed fixes the problem.[/edit2]
 
Last edited by a moderator:
Thanks for the output, Caine! Turns out that's kind of a bug in Python: on Linux, shutil.copy tries to set the file mode, but of course that fails on FAT filesystems. I've switched it to use the simpler shutil.copyfile instead, which I hope will finally fix this problem, which has been intermittently reported since I started on this.


While I was at it, I also realized I could avoid the need to clear the appdata directory by simply renaming the database file. So everyone, try the latest 1.0 beta from the same link, and don't worry about your appdata directory any more.


Also Caine, I realized there was one change to the API of which you should be aware: database_update.py is now set up to automatically create the base set of tables right when the module is imported. This means that you must set the working directory (options.working_dir = whatever) before importing database_update. There might be a better way to handle this, though, so I'd be happy to hear suggestions.
 
Turns out that's kind of a bug in Python: on Linux, shutil.copy tries to set the file mode, but of course that fails on FAT filesystems.
I'm also a bit surprised that python doesn't automatically catch that. Using copyfile is indeed a better solution.

Also Caine, I realized there was one change to the API of which you should be aware: database_update.py is now set up to automatically create the base set of tables right when the module is imported. This means that you must set the working directory (options.working_dir = whatever) before importing database_update.
Yes, I did a diff of your code and noticed the change. However, I'm not modifying the working directory at all. It seems to default to pandora/appdata/xbmc in my case, which is just fine (as expected, the xbmc PND is overriding the home directory).


I'll test the new version a bit later.


[edit]Just so you know, the problem is indeed fixed.[/edit]
 
Last edited by a moderator:
It's be nice if it would remember certain PNDs that I select to not upgrade. It also keeps saying it's upgrading a PND, even after it's finished.
 
I think I have it worked out now. But some applications won't install/update from this program.
 
One suggestion: to put the version number on the window title.


I think would be useful to see the version number, and thus knowing that I'm running the latest version.


Thanks.


Sent from my HTC Desire using Tapatalk
 
It's be nice if it would remember certain PNDs that I select to not upgrade.
It'll happen eventually :) .

It also keeps saying it's upgrading a PND, even after it's finished.
When this happens, could you please let me know which PND is doing it, and what shows up in /tmp/pndrun_pndstore.out?

I think I have it worked out now. But some applications won't install/update from this program.
Also let me know which PNDs those are (and post the .out file), so I can find the bugs.

One suggestion: to put the version number on the window title.


I think would be useful to see the version number, and thus knowing that I'm running the latest version.
You mean the version number of PNDstore in the PNDstore window title? But this is an application designed to let you know if you're running the latest version. If you must know which version you have installed, just find PNDstore in the list and look at number in the "Installed" column. Or am I misunderstanding your request?
 
Last edited by a moderator:
One suggestion: to put the version number on the window title.


I think would be useful to see the version number, and thus knowing that I'm running the latest version.
You mean the version number of PNDstore in the PNDstore window title? But this is an application designed to let you know if you're running the latest version. If you must know which version you have installed, just find PNDstore in the list and look at number in the "Installed" column. Or am I misunderstanding your request?
You understood well. Sorry, I didn't realize PNDstore is listed too :p
 
It also keeps saying it's upgrading a PND, even after it's finished.
When this happens, could you please let me know which PND is doing it, and what shows up in /tmp/pndrun_pndstore.out?

I think I have it worked out now. But some applications won't install/update from this program.
Also let me know which PNDs those are (and post the .out file), so I can find the bugs.

Nevermind. God I'm embarrassed. I had the WiFi turned off. I thought I turned it on! :wacko:
 
Nevermind. God I'm embarrassed. I had the WiFi turned off. I thought I turned it on! :wacko:
Don't be embarrassed! You reminded me that I need proper error handling in the install/upgrade code, so it can tell you that your WiFi is off, rather than acting like it works. It's on my list now!
 
Nevermind. God I'm embarrassed. I had the WiFi turned off. I thought I turned it on! :wacko:
Don't be embarrassed! You reminded me that I need proper error handling in the install/upgrade code, so it can tell you that your WiFi is off, rather than acting like it works. It's on my list now!


Something else I noticed in a previous version was that if I switched between wifi and bluetooth (DUN) for my net connection, it needed a restart before I could update again. It may be an idea to make sure the network details haven't changed before each attempt. I had meant to bring this to your attention earlier, but got distracted from actually following it up.


I'd love to be able to test the current version but I am currently waiting for craigix to fix my pandora and get it back to me.. :-(


- Neelix
 
I really don't know what to do about the WiFi/Bluetooth switch. My networking knowledge is weak, but PNDstore makes a new connection every time you ask it to (rather than trying to hold one connection open), so I wouldn't think that changing the connection mode would necessitate a restart. If anyone has knowledge on that, please let me know.

You reminded me that I need proper error handling in the install/upgrade code, so it can tell you that your WiFi is off, rather than acting like it works. It's on my list now!
I just realized that this is really easy to do, so I did it. Same download link, of course. Let me know that this feature works and fails correctly, then I'll finalize 1.0.
 
No one ever reported back, but I have seen that people have been downloading the last beta. So, with no further bugs reported, I finalized the 1.0 release and uploaded to the repo. And that's probably the last you'll get out of me for the next little while, but I'll get on GUI improvements eventually.
 
Now that PNDstore is part of the latest hotfix, is it possible for it to automatically update itself on the NAND? I've not gotten to try these latest hotfix alpha releases yet, was going to try installing the latest onto an SD card later if I get time (but I'm unsure how to apply that wifi patch fix if it's not already installed to the NAND) ;)


(and yes, I do feel I'm using the word NAND too much up there!)
 
Last edited by a moderator:
For applying that wifi fix from notaz, simply follow the short guide under the spoiler that was posted a few posts later by Changis here


The terminal will say its updating the network manager version and then return to a prompt again. Type 'exit' or leave the terminal and then reboot. Then the wifi will work fine.


I must say that the built PNDstore works great and its sweet to be able to use it properly finally in my case. Thanks to Tempel and all involved with it and the Repo :) When its into minimenu with graphical notification that PND's have available updates or that new software is potentially available it will be freakin awesome
cool.gif
 
Now that PNDstore is part of the latest hotfix, is it possible for it to automatically update itself on the NAND?
Not exactly. Well, it might be possible, but it's not what I'm planning (though my mind could change later). My plan is that, as I improve the GUI, I'll distribute updates as PNDs, almost exactly as I do now. But this means that you won't automatically receive updates unless you first install the PND. That way, doing nothing will maintain a consistent interface, but you can always have the latest interface if you first explicitly install the PND. Does that make sense?
 
A request is it possible to add a percentage status to Pndstore when its updating/installing packages? It would be great esp with the painful internal wifi speeds. Most of the time I dont know if its hung stalled or working fine.
 
A request is it possible to add a percentage status to Pndstore when its updating/installing packages? It would be great esp with the painful internal wifi speeds. Most of the time I dont know if its hung stalled or working fine.
Sorry man, PNDstore is basically in maintenance-only mode now. But better things are in the works, like Panorama that DaMummy showed, and a new package management backend by Cloudef.
 
@Tempel


Speaking about libpndman, B-ZaR started doing Qt bindings for it a while ago.


I'm thinking of starting doing CLI front-end tomorrow as well, so I think the interface is pretty much nailed (though, code and interface might still move around), but not so much as that time you were fixing stuff.


Anyways, This might be good time for python bindings. B-ZaR's Qt port so far has been nice API stress testing for both of us and so far everything seems smooth.
 
Last edited by a moderator:
Back
Top