Qire, the Qi Remote Extension

Kevin "The Nuclear" Bloom f0a29b85a8 delete -> remove 2 months ago
Makefile f0b42ad6d8 removed function lib, now is required outside of qire 3 months ago
README.md a44b27bffb downgrade command complete 2 months ago
base-config 3366d43a89 better static build 3 months ago
dragora-i586.index e4c7d42580 rudimentary exhaustive index builder (temporary) 4 months ago
dragora-noarch.index 7f23d5fd0e check mega tag file if version is not in tlz string 3 months ago
dragora-x86_64.index e4c7d42580 rudimentary exhaustive index builder (temporary) 4 months ago
fake-config 0a2ba6956a started on default setting in config 3 months ago
qire.1 bb3e8a1deb updated qire help text 3 months ago
qire.fnl f0a29b85a8 delete -> remove 2 months ago
qire.texi 90ef1850e2 started on the textinfo docs 3 months ago


Qire, the Qi Remote Extension

Qi is the package manager for Dragora GNU+Linux-Libre version 3+. It's a fantastic, simple manager but lacks the ability to use a remote repository. That's were Qire comes into play! Qire allows users to download, install, and upgrade software found in user-specified repos. The goal is to be simple, easy-to-use, and extendable.




  • wget
  • qi
  • sha256sum


With make:

  > make

You will find the binary in the root directory. Use make clean to clean.


TODO Basics

  • Update
    • Test it
  • Basic upgrade
  • Install [4/4]
    • Get pkg data for list of pkg-names
    • Build .tlz name from pkg-data
    • Fetch pkg from repo
    • Install with qi
  • Search
  • Delete [2/2]
    • Find package
    • Delete with qi
  • Search Installed [1/1]
    • Actually search the real directory
  • Build Index
  • Help

DONE Intermediate

  • Check installed versions before installing and upgrade [2/2]
    • Don't installed if there is already one installed
    • Don't update if there isn't one already installed or if the version in the repo is equal to the one installed.
  • Repo selection [2/2]
    • -r option
    • User input after running -i or -u
  • User input to verify installation, deletion, etc.
    • "Are you sure? [Y]/n"
  • SHA256 check with install and upgrade
  • Use real directories [2/2]
    • /var/cache/qire/${package-tlz}, for when you are installing and upgrading
    • /etc/qire for config
  • -I, --info command
  • -C, --clear-cache command
  • -o, --output setting for choosing the output directory of fetched files
  • Show installed vs updated version when updating
  • Local info command

TODO Advanced

  • Man page
  • texinfo
  • Real Makefile
    • Placing everything in the correct spot
    • Defaulting the correct config based on arch
  • Better error messages
  • Check meta tag file for version, if tlz lacks
  • qi categories
  • Manage where packages come from
    • lock file?
    • log file?
  • -l, --local for install/upgrade
  • version selection for upgrading packages
    • If you have 2 version of a package installed, you must select which one to upgrade
  • support qi options
  • default repo(s) [6/6]
    • Have a default setting in the config. Favors those repos (or repo) over others.
    • If default set to 'all', it will always search all repos.
    • If default repo(s) lacks package, search others
    • If duplicate amongst defaults, show user selection
    • If duplicates amongst non-defaults, show user selection
    • -r all will override default setting
  • Support multiple versions of the same package [2/3]
    • List many of the same version from repos
      • Use the list returned from an :exact search
    • If many versions installed, show user selection upon delete
    • Select which version to upgrade if you have more than 1 installed
      • BLOCKED by version comparison
  • Actual version comparison
    • Basically won't let you "upgrade" to a lessor or equal version.
  • downgrade command

TODO Low Priority

  • code clean up
  • local index building
  • More generic index building (non-table HTML parsing)
  • search for updates in the filesystem