Heyas
As someone said he'd like to see some more projects posts on the forum, so, here's one I hope is ready.
Not so much fun-fun, but practical
I hope...
So, you have that small non-arch project you would like to install, but get the feeling that GNU Autoconf is a bit too 'massive' for that?
You want to be able to uninstall your installed project?
You want be able to simply clean up your project dir?
Or install something to/within a chroot?
And you want it to work across distros?
YASSI is here
IMPORTANT:
While possible, if you need to compile your application, I strongly recomend to stay with GNU Autoconf!
Because YASSI is just thought to be used for non-arch projects, thus is has no --libdir and related support
PRO:
- Full FHS (File Hierarchy Standard) v3 compatible.
- Highly configurable
- Creates 'root' 'Makefile', if demanded
- small / lightweight = fast
- Cross-'distro' compatible
- Use "./configure --sample full > configure.yassi" to start with everything available
- Dependency handling/info
- Thanks to --chroot support it can be used to automate liveiso creation
- Behaves like GNU Autoconf, which is nice for endusers
CONTRA:
- Because its behaviour imitates GNU Autoconf, it is not compatible with GNU Autoconf (I dont remember why I had decided let it make a 'Makefile')
- Requires BASH (though this is preinstalled on most distros, and where not, its available)
- I cant possibly think of all use-cases, so feedback and bug reports help to improve handling
Benefits:
- Given the proper variables are set in configure.yassi, ./configure --help will show your name, email, homepage the project homepage, git/svn url, bug report url and/or different emails - this info will have effect on the "./configure --help" output!
- It supports separate handling if you use YASSI to just maintain a package of someone else's code ({AUTHOR,MAINTAINER}_{NAME,EMAIL,HOMEPAGE}.
- You can just provide configure and configure.yassi and let it download the project from a provided url.
- It provides several Make-files according to your setup, so - for example - localisation and/or according manpage generation are not an issue, or make the installed files using 'hardcoded' absolute paths.
- You can uninstall your installed project or clean up the project path.
- You can prepare distro-ready tarballs by using make-distro (where available), or just use ./configure --tarball
Basic usage
Once you have a configure.yassi file, it behaves like:
./configure --prefix=$HOME/local
./make
./make-{un}install
For a preview of how the basic syntax works, please see YASSI - Usage.
If you need help to figure out where what belongs, please see: ./configure --help
Next step would be to get a full sample: ./configure --sample full > configure.yassi
, then edit the new file in your favorite GUI editor.
Back in the console, you now enter ./configure --manpage
and arange it next to the editor for best 'comparing read'.
If after that anything should be unclear, please let me know 'what', so I can improve the reading / usabilty.
Please be aware that using a full sample as template is usualy a complete overkill for most projects, but it helps to get things right
A basic working install procedure can be achieved within less than a minute, once you are aware of the syntax that is.
Get it:
Since you only need the ./configure file itself:
Here's the project home:
LOW PRIO Roadmap:
- Remove the option for TUI installation, as that is borked anyway
- Add yassi-dependency support
Hope this helps
This was writen for myself, but I hope this is of use for you too.
Please, first read "./configure --help" and "./configure --manpage" and THEN have a good look at ./configure --sample full
before asking detailed questions, thank you.
However, additional feedback and thoughts are always welcome
(specialy feedback on the docs like 'USAGE.md', '--manpage', '--help' and './configure --sample full',
as I'd like to verify, that 'this' is enough to get started. - Is it?)