Repo never sends updated add-ons, force refresh works but not auto update
#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:

Amber
Quartz

Reply
#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!


Addons I wrote &/or maintain:
OzWeather (Australian BOM weather) | Check Previous Episode | Playback Resumer | Unpause Jumpback | XSqueezeDisplay | (Legacy - XSqueeze & XZen)
Sorry, no help w/out a *full debug log*.
Reply
#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.



Addons I wrote &/or maintain:
OzWeather (Australian BOM weather) | Check Previous Episode | Playback Resumer | Unpause Jumpback | XSqueezeDisplay | (Legacy - XSqueeze & XZen)
Sorry, no help w/out a *full debug log*.
Reply
#19
Ignore the above, was misreading the C++.

However:
jmarshall to the rescue (again) - http://trac.xbmc.org/ticket/13190 - problem found, at least!
Addons I wrote &/or maintain:
OzWeather (Australian BOM weather) | Check Previous Episode | Playback Resumer | Unpause Jumpback | XSqueezeDisplay | (Legacy - XSqueeze & XZen)
Sorry, no help w/out a *full debug log*.
Reply

Logout Mark Read Team Forum Stats Members Help
Repo never sends updated add-ons, force refresh works but not auto update0