Add-on manager for management of downloadable extras

Registered by Matthew Gates on 2010-11-26

An Add-on manager something along the lines of that in Firefox, for downloading, installing, updating and removing extras: specifically landscapes, scripts, sky cultures, star catalogs, nebula sets.

Blueprint information

Matthew Gates
Needs approval
Series goal:
Accepted for 0.14
Good progress
Milestone target:
milestone icon 0.15.0
Started by
Marcos CARDINOT on 2014-08-29



This blueprint described an evolution of some features we already have in the program, and their extension into a more fully featured add-on manager tool.

As of 0.10.6 we have some parts implemented:
+ landscape installer feature added by Bogdan.
  - Now we have the unzip function (thanks to KDE code).
  - Uninstalls as well
+ star catalog downloader
+ ssystem.ini editor

Components we need to make an add-on manager:
+ new main dialog
  - one tab per add-on type
+ centralized download manager
+ add-on class hierarchy with a sub-class for each add-on type.
  - base class should have pure virtuals for:
    - getting a list of available add-ons for this type
    - downloading an add-by ID
    - installing an add-on by ID
    - checking for updates of an add-on by ID
    - updating an add-on by ID
    - removing an add-on by ID
    - getting descriptive details about the add-on
    - getting installed size of add-on.
  - sub-classes for:
    - landscapes
    - scripts
    - sky cultures
    - star catalogs
    - nebula sets
    - ssystem.ini files
    - full sky surveys
    - plugins

Some add-ons may be mutually exclusive (e.g. alternative startup scripts). Where this is the case there should be a switching mechanism to select one of several alternatives.

Add-ons should be listed in a JSON file on or similar.

JSON format like this:

  "type": "Stellarium Add-Ons List",
  "format-version": "1.0.0",
  "add-ons": [
    { <add-on-details> },
    { <add-on-details> }

Where <add-on-details> looks something like this:

  "type": "landscape",
  "install-base": "{DATAROOT}/landscapes",
  "name": "Beaumont Hills",
  "short": "Short description of landscape",
  "screenshot-url": "",
  "version": "1.0",
  "authors": [
  "license": "GPLv2",
  "license-url": "",
  "downloads": [

Where <author-details> would look something like this:
  "author-name": "Barry Gerdes",
  "author-contact": "some free text, probably email",
  "author-url": ""

Where <download-details> would look something like this:

  "url": "",
  "type": "zip",
  "download-size": "3.7M",
  "installed-size": "3.8M",
  "checksum": "22db6a46fe4a31d18d86fb61d23a6c6d",
  "checked": true

Add-on feature would maintain a list of one or more URLs of these JSON package lists.


Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.