Qire, the Qi Remote Extension

Kevin Bloom ec3e6724f2 fixed version-lacking installation bugs 1 month ago
Makefile c8e49a3339 updated to the latest version of qi 1 month ago
README.md ec3e6724f2 fixed version-lacking installation bugs 1 month ago
base-config 9802df892a check for lock file when `sync` is ran, make one if nil 1 month ago
dragora-amd64.index ec3e6724f2 fixed version-lacking installation bugs 1 month ago
dragora-i586.index e4c7d42580 rudimentary exhaustive index builder (temporary) 6 months ago
dragora-noarch.index c8e49a3339 updated to the latest version of qi 1 month ago
dragora-x86_64.index e4c7d42580 rudimentary exhaustive index builder (temporary) 6 months ago
fake-config 0a2ba6956a started on default setting in config 6 months ago
qire.1 bb3e8a1deb updated qire help text 6 months ago
qire.fnl ec3e6724f2 fixed version-lacking installation bugs 1 month ago
qire.texi 90ef1850e2 started on the textinfo docs 6 months ago

README.md

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 dynamic. Qire is able to sync with multiple repositories and even install/upgrade multiple versions of the same program!

Dependencies

Build

Runtime

  • wget
  • qi
  • sha256sum

Build

With make:

  > make

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

In-Progress

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
  • Check meta tag file for version, if tlz lacks
  • qi categories [1/3]
    • Support parsing them
    • Installation all with a category (-C, --category)
    • Upgrading all with a category
  • -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 [3/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
  • Actual version comparison
    • Basically won't let you "upgrade" to a lessor or equal version.
  • downgrade command

TODO Maintenance

  • Upgrade to latest version of qi
  • Better error messages
  • code clean up

TODO Low Priority

  • local index building
  • More generic index building (non-table HTML parsing)
  • search for updates in the filesystem (--upgrade-all)
  • Better UI

TODO Future

- [ ] Epic querying
  - [ ] `qire install lua_5.3` get version 5.3 of lua
  - [ ] `qire install lua_5.3-2` get version 5.3 rev 2 of lua