1. Jesper Nøhr
  2. smart-oxe


smart-oxe /

Filename Size Date modified Message
209 B
5.5 KB
17.6 KB
108 B
1.5 KB
115 B
3.7 KB
71 B
1.4 KB



  • Modular.
  • Interface creation is extremely simple.
  • Backend based, completely package-manager-agnostic.
  • Easily portable for any package manager.

Transaction system:

  • Transaction based.

Priority system:

  • ...

Mirror system:

  • ...

Cache system:

  • Recognizes multiple versions of the same package name.
  • Package names decoupled from the upgrade procedure. Only thing that matters is obsoletes relations, which are introduced implicitly by the loader system, when necessary.

Dependency solving algorithm:

  • Very fast.
  • Works by computing weights for different alternatives.
  • Different notions of weight implemented by separate policies. Policies for upgrading, removing and installing are implemented.
  • Upgrades select the best option, not the latest available version.
  • Algorithm is smart enough to even reinstall a package if necessary, if it detects that different packages with same name-version have different relations.
  • Works with broken packages in the system. Only packages which are related to the operations being made will be checked for correctness.

Downloading system:

  • Very fast

  • Easily extensible

  • Multi-threaded

  • Download resuming

  • Timestamp checking

  • Parallel threaded uncompression

  • Natively supported schemes:
    • file
    • ftp
    • http
    • https
    • scp
  • Additional schemes when pycurl is available:
    • ftps
    • telnet
    • dict
    • ldap

Supported channel/repository formats

  • RPM metadata
  • Plain RPM header lists
  • Red Carpet