Repo never sends updated add-ons, force refresh works but not auto update

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
bossanova808 Offline
Member+
Posts: 1,532
Joined: Sep 2009
Reputation: 20
Location: Melbourne, Australia
Post: #11
Ok I've tried this - is this what you mean:

http://code.google.com/p/bossanova808-xb...-downloads

...I then un-installed and re-installed my repo and did a force update - the repo works with these changes, but the md5 is still not being kep in Addons15.db - grrr!

Any other ideas??
find quote
pecinko Offline
Member+
Posts: 3,027
Joined: Dec 2008
Reputation: 27
Location: Prague / Belgrade
Post: #12
Yup. Uninstall repo, DELETE it from packages folder (otherwise old version will be pulled from cache regardless of uninstall), BUMP repo addon version to "force" refresh and add it again from zip.

Better?

My skins:

Quartz
Amber
find quote
pecinko Offline
Member+
Posts: 3,027
Joined: Dec 2008
Reputation: 27
Location: Prague / Belgrade
Post: #13
Btw can't see your addon.xml (repository's one) there?

See http://skins.smartplus.cz/pedja-xbmc/

My skins:

Quartz
Amber
find quote
bossanova808 Offline
Member+
Posts: 1,532
Joined: Sep 2009
Reputation: 20
Location: Melbourne, Australia
Post: #14
Ok I have just done that including adding the repo's addon.xml to that root dir ... but still no md5 in Addons15.db

When I install the new repo from the .zip, if I have version bumped my actual addon, it gets pulled at that time, but if I then version bump it again, it doesn't seem to get pulled, I presume because it doesn't have an md5 to check if there is updates??

Why the bejesus won't it read & store the md5??
(and sincere thanks for your help - this is driving me bonkers!)
(This post was last modified: 2012-07-17 15:27 by bossanova808.)
find quote
bossanova808 Offline
Member+
Posts: 1,532
Joined: Sep 2009
Reputation: 20
Location: Melbourne, Australia
Post: #15
Ok just tried it here on another machine at work, same result - no md5 is going into the database.

I really am beginning to suspect some sort of xbmc + googlecode bug (long ago I used github and then it worked, but github won't let me hold files over 10mb and I need to...)

Anyone have any other ideas? Or a working googlecode + zipped addons setup?? One that actually stores the md5 in the xbmc addons db and thus triggers updates??
find quote
pecinko Offline
Member+
Posts: 3,027
Joined: Dec 2008
Reputation: 27
Location: Prague / Belgrade
Post: #16
(2012-07-17 15:27)bossanova808 Wrote:  When I install the new repo from the .zip, if I have version bumped my actual addon, it gets pulled at that time, but if I then version bump it again, it doesn't seem to get pulled, I presume because it doesn't have an md5 to check if there is updates??

What do you mean add-on does not have MD5? You need to update addons.xml as well, every time you bump any of your add ons as it stores their versions. You also need to re-generate MD5 for addons.xml every time addons.xml has been changed. This tells XBMC that something has changed in your repo.

Or did I just misunderstood you?

My skins:

Quartz
Amber
(This post was last modified: 2012-07-18 14:21 by pecinko.)
find quote
bossanova808 Offline
Member+
Posts: 1,532
Joined: Sep 2009
Reputation: 20
Location: Melbourne, Australia
Post: #17
Yeah you're misunderstanding. I do update the md5 with each update (using addons_xml_generator.py) - and this then gets pushed to googlecode. The problem is, XBMC should download and store this in Addons15.db so it can later check if there have been updates (i.e. if the md5 changes). Problem is, xbmc is NOT storing this value in the DB and thus never thinks there are updates.

That's the problem as I understand it now - but the solution is harder to understand than the problem apparently!
find quote
bossanova808 Offline
Member+
Posts: 1,532
Joined: Sep 2009
Reputation: 20
Location: Melbourne, Australia
Post: #18
Ok I am think there is a bug in the md5 getting/storing in xbmc

Code:
CStdString CRepository::GetAddonHash(const AddonPtr& addon)
{
  CStdString checksum;
  if (m_hashes)
  {
    checksum = FetchChecksum(addon->Path()+".md5");
    size_t pos = checksum.find_first_of(" \n");
    if (pos != CStdString::npos)
      return checksum.Left(pos);
  }
  return checksum;
}

...as far I can tell that is the function the fetches the md5 hash file (found in \xbmc\addons\Repository.cpp)

I don't know C++ at all really, but i I am reading that right it says get the checksum file, then seach it for the first instance of space + \n - if it finds it, return the string without this trailing space \n, otherwise, return a null string?

That seems very odd - seems to imply the checksum file must have
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \n
..as it's structure (which, for example, the nuka1195 script above does not do).

Why should there need to be a space, or a \n for that matter?

This being said, I have modified the nuka1195 script to add " \n" on to the checksum and it still won't store the bloody checksum in the Addons db.
find quote
bossanova808 Offline
Member+
Posts: 1,532
Joined: Sep 2009
Reputation: 20
Location: Melbourne, Australia
Post: #19
Ignore the above, was misreading the C++.

However:
jmarshall to the rescue (again) - http://trac.xbmc.org/ticket/13190 - problem found, at least!
find quote
Post Reply