About LURE

Why does LURE exist?

LURE was created because packaging software for multiple Linux distros can be difficult and error-prone, and installing those packages can be a nightmare for users unless they're available in their distro's official repositories.

Take Discord for example. It only provides a deb file and a tar.gz file, and it's not available in most official repositories. That means users of RPM distros have to manually install discord using the tarball or rely on community-maintained repositories that don't always have up-to-date versions of Discord. That's also made worse by the fact that Discord refuses to run if there's a newer version available.

LURE fixes that by always providing the most up to date version of Discord, which means all that RPM users have to do is run lure in discord and LURE will get the tarball and automatically build an RPM package out of it for them. When there's a newer version of Discord available, users can just run lure up and LURE will automatically download the updated version of Discord and install it. That also helps users of deb distros because it means they don't have to manually download packages for software like Discord.

How does LURE work?

Similar to Arch Linux's AUR, LURE has a repository of shell scripts that tell it how to build a package. When you run a LURE command, it updates its repository and interprets the shell script for the package you want to install using its built-in bash implementation. Then, it uses the code inside the script to build a file structure to be included in the final package. It detects which distro you're running, resolves dependencies, detects which package manager you have and which package format it uses, builds metadata for the package from the information in the shell script, builds the final package, and then runs the install command for your package manager to install it.

How does LURE keep its packages up to date?

LURE can automatically update its packages using a bot called lure-updater. It accepts plugins that detect when software is updated upstream and updates the LURE package accordingly. The plugins that are currently running in my instance of the bot can be found in the updater-plugins repo. The discord-bin package, for example, checks Discord's API every hour to see if they've released an updated version, and if they have, it pushes an update to LURE's repo.

How do I add my own package to LURE?

LURE provides comprehensive documentation for packagers. If you need help with anything, feel free to ask on LURE's subreddit. If you find a bug or would like a feature to be added, please open an issue on LURE's git repo.

Can I use and modify LURE's icons?

LURE's icons are available on the icons page of this site. They're licensed under CC-BY-NC-SA 4.0, which means you're free to share, modify, and use the icons for non-commercial purposes as long as you give appropriate credit and indicate any changes made to the original icons.