Skip to content

cliquesoft/builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[PREAMBLE]

Thanks for taking interest in builder! This project was designed to not only make it easier to compile software, but to also enable a quick way to distribute the means of doing so. Imagine having a very small tarball that contains all the information to automatically obtain the source code, apply patches, install the necessary software to compile, compile the software (multi-pass is also possible), and finally, if desired, bundle all of that into nice distribution packages for you - all just by typing a short command! Well that's exactly what builder can do!	TODO	- add the construction of a post-build .info file 

[FOR THE IMPATIENT]

To Install:	1. cd /path/to/builder	2. sudo install.sh To Use:	1. builder --help 

[FOR SOFTWARE DEVELOPERS]

Builder works with a variety of popular methods of compilation including autoconf, autogen, bootstrap, cmake, scons, and a default (configure, make, make install). There is even an option to create a custom method if you require it. This allows you the freedom to choose which one will work best for you and your project. While builder does not make any stage of development easier for you, its main design goal is to make is VERY easy for an end user to compile your software, or aid in the rapid distribution of your project to qualified package maintainers of the various Linux distros. By constructing a (generic) builder profile for your work, you are helping to streamline the steps necessary for them to tailor your software to their specific environment. We would encourage any developer to include this as a tarball packaged with their source code, or at least an option to download from their website. 

[FOR PACKAGE MAINTAINERS]

It is important to note that this software will not magically determine all of the steps above and do it for you. Someone has to actually perform these steps initially (which ideally would be the software developer themself). This project is meant to provide an easy way to use the contributions of others who have taken those steps, and allow other package maintainers of different distros to quickly tweak the software building process to fit their own system. By getting a builder profile for a package, it is trivial to modify the compile parameters, add or remove patches, add or remove graphics, GUI desktop files, and other items to specifically tailor a software build. To assist in the packaging process, there are multiple scripts that can optionally be executed to perform any desired tasks along the way. See the wiki, the included 'NOTES' file, or '--help' output for more information. 

[ORDER OF OPERATIONS]

Below is the list of operations that are executed during a builder run. As you can see there are several hooks that allow for external scripts to be run that can do any additional steps that are desired. 1. Process passed switches 2. Adjust variable values for global and target package personalization 3. System checks to make sure everything exists and is writable 4. Install compile-time dependencies 5. Optionally obtain the source code 6. Apply any included patches to source code 7. [hook] Optionally execute pre.compile script 8. Compile process (configure) 9. [hook] Optionally execute post.configure script 10. Compile process (make, make check, ..., make install) 11. Copy in any 'extra' files 12. [hook] Optionally execute post.compile script 13. Optionally separate contents into individual package types 14. Apply file and directory ownership and permissions 15. [hook] Optionally execute pre.package script 16. Create the various packages 17. Copy the files into the local repo 18. [hook] Optionally execute post.package script 19. Cleanup 20. Initiate the next pass if designated 

[RECENT UPDATES]

2025/10/15 - Updated the --help output to match current switches and added sections: Build Software Steps Profile Creation Steps Profile Contents Key - Added the -E action - Started the -T action - Rearranged several switches: -D to -C -d to -D -L to -d -S to -c 2025/10/16 - Combined -c, -C, -d to be -c "dev|dir|repo" - Reverted -D to -d - Moved -S switch to -C action - Changed -U to -u - Added the -C action (and modifying packaging code to implement) - Added the -R action - Completed the -T action - Added r64 CPU arch type - Started work to allow creation of just one package instead of multiple 2025/10/17 - Removed -n and made it the last parameter - Added the -I action - Moved -p to -N - Moved -s to -F - Reversed the action and switch parameter case to match pax - Implemented SPM_MAK variable for generic package manager creation - Expanded the sample builder.conf.TC file - Migrated existing package code to 'pax' (since it was distro specific) - Completed work to allow single package creation 2025/10/20 - Implemented '-C info' with it using URL_INFO - Updated '-C dev' to use URL_CODE instead of URL_INFO - Implemented URL_REPO to be used with '-C repo' - Cleaned up the CODE variable usage - Removed calls to DIR_CODE as it was not being used - Updated the '--help' output Notes section - Updated the builder.conf.TC to use URL_REPO instead of URL_CODE - Updated the NOTES file to better explain "Building with builder" 

[FUTURE DEV TIMELINE]

Since we are working with several many projects (13 on github alone), we are going to provide an anticipated timeline of releases using internal staff. Obviously outside contribution will advance these forecasted dates. 2025 Oct - completion of ModuleMaker for webWorks 2025 Dec - migration of existing webWorks modules using ModuleMaker 2026 Jan - migration of Tracker into webWorks and deprecation of of standalone project 2026 Feb - update paged to 2018 code base from ACME - update pax to work with (TC) TinyCore Linux - apply any patches for bug fixes to existing projects 2026 Mar - update web.libs for dittodata and web.de 2026 Jul - move code from web.de into cli.de and update the former to use the latter via XML communication 2026 - rest of 2026 tbd