{"id":19039428,"url":"https://github.com/xolox/lua-buildbot","last_synced_at":"2025-10-07T02:24:14.096Z","repository":{"id":1642301,"uuid":"2367332","full_name":"xolox/lua-buildbot","owner":"xolox","description":"A build bot for popular Lua projects (Lua 5.1, LuaJIT 1 \u0026 LuaJIT 2)","archived":false,"fork":false,"pushed_at":"2015-03-10T22:32:11.000Z","size":136,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-01T13:30:36.850Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://peterodding.com/code/lua/buildbot","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xolox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-09-11T20:33:20.000Z","updated_at":"2020-12-03T03:46:54.000Z","dependencies_parsed_at":"2022-08-03T15:45:22.815Z","dependency_job_id":null,"html_url":"https://github.com/xolox/lua-buildbot","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/xolox/lua-buildbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xolox%2Flua-buildbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xolox%2Flua-buildbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xolox%2Flua-buildbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xolox%2Flua-buildbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xolox","download_url":"https://codeload.github.com/xolox/lua-buildbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xolox%2Flua-buildbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278708219,"owners_count":26031972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T22:12:53.257Z","updated_at":"2025-10-07T02:24:14.049Z","avatar_url":"https://github.com/xolox.png","language":"Lua","readme":"# A build bot for popular Lua projects\n\nLots of [Lua](http://lua.org/) projects (including Lua itself and [LuaJIT](http://luajit.org/)) only release source code archives and expect users to build the project. On UNIX this is not really a problem but on Windows this can pose a significant hurdle for potential users. My Lua build bot is an attempt to solve this problem. While developing this build bot I took the following points into consideration:\n\n * I've had bad experiences with cross compilation so I prefer to build Windows binaries on Windows\n * I don't actually have any Windows machines and don't feel like setting one up just for this build bot\n * I want to be able to run the build bot from a cron job so it can automatically build all projects once a week\n\n## Status\n\n### Project discontinued\n\nI'm sorry to say that this project has been discontinued. My reasons for this are as follows (the below points are my opinions, I don't necessarily expect anyone to agree with them):\n\n * **I stopped using Windows, in fact I abandoned the complete Microsoft software stack**\n\n   * One reason for this is that I consider the Microsoft stack very unfriendly to developers who are (like me) oriented toward command line automation.\n\n   * Another reason is the fact that quite a few of Microsoft's build tools are commercially licensed and have restrictions on redistribution of software built using them.\n\n   * I switched away from Microsoft Windows for personal use years ago and paying for a new license with every Microsoft Windows release just to keep this Lua build bot running feels absurd to me.\n\n   * As a more general point, I don't like where the development of Microsoft and Windows have been heading in the past couple of years.\n\n * **I more or less stopped using Lua for personal projects :-(**\n\n   * When I originally fell in love with Lua the language I quickly got frustrated by the surrounding ecosystem because I wanted to use Lua as a general purpose language (admittedly not its original purpose).\n\n     * Out of frustration I started working on [Lua/APR] [lua_apr] to provide myself with a more generally useful \"standard library\" of operating system interfaces.\n\n     * When I started developing Lua/APR I seriously underestimated my knowledge of [low level systems programming] [c], this is why it took me years to get the project to a state where I could be proud of it.\n\n     * In the end I did get quite far with Lua/APR, eventually presenting it at the [Lua Workshop 2011] [workshop] and having it [included in Debian] [debian].\n\n   * Having Lua/APR available for operating system interfacing was nice, but what I really wanted from my favorite programming language was a rich ecosystem of bindings and packages. Even after creating Lua/APR I still regularly fell into the trap of wanting and not finding bindings to shared libraries. Creating such bindings for every project you want to work on quickly gets tiresome.\n\n   * Starting from 2011 I got a full time job working as a software engineer and later system administrator (DevOps) working on Python projects and this slowly but surely pulled me away from the world of Lua. If you look at [my GitHub profile] [github_profile] now (in 2015) you'll see what I mean :-).\n\nFor now, given this extensive explanation, I will keep the repository online, maybe it can serve as inspiration to others. Or who knows, maybe I'll find a way to run Windows legally without paying for licenses and I can find a way to revive the build bot (no promises though). I still love Lua the language, so there's one thing :-).\n\n### To-do list\n\nThe following stuff has not yet been implemented but is on the to-do list:\n\n * Make the build bot **test the binaries** using a test suite of some sort; if everything is going to be automated I have to know that the binaries I'm publishing actually work\n * Deploy the build bot and virtual machine to one of my servers and **run the build bot from a daily cron job**?\n * **Use LuaRocks to build Lua modules**: currently the build bot uses custom batch scripts to build Lua modules, but of course a generic solution is preferable!\n    * While adding support for the LuaSocket module I was curious enough to try if `luarocks install luasocket` would work in my environment but it doesn't; `msbuild` complains that the project files are incompatible\n * **Support for Mac binaries?** This requires someone to run the build bot periodically on their Mac, because I don't have access to any Mac machines\n\n## Downloads\n\nThe following packages have been built by the Lua build bot:\n\n### Implementations of Lua\n\n\u003ctable cellpadding=5\u003e\n \u003ctr\u003e\u003cth\u003eRelease\u003c/th\u003e\u003cth\u003eSize\u003c/th\u003e\u003cth\u003eSHA1 hash\u003c/th\u003e\u003c/tr\u003e\n \u003ctr\u003e\u003ctd\u003e\u003ca href=\"http://peterodding.com/code/lua/buildbot/downloads/lua-5.1.4.zip\"\u003eLua 5.1.4\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e234K\u003c/td\u003e\u003ctd\u003e\u003ccode\u003eb312a0f67fae85d0969edcccee3df3bb27b6c228\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n \u003ctr\u003e\u003ctd\u003e\u003ca href=\"http://peterodding.com/code/lua/buildbot/downloads/luajit-1.1.7.zip\"\u003eLuaJIT 1.1.7\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e255K\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ef58c039e0a890601d44f7026f36ed7e9a9de0990\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n \u003ctr\u003e\u003ctd\u003e\u003ca href=\"http://peterodding.com/code/lua/buildbot/downloads/luajit-2.0.0-beta8.zip\"\u003eLuaJIT 2.0.0 beta 8\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e269K\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e7b3f8a8c4788e67c737137e69c9bbe39ba183410\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n### Lua modules\n\n\u003ctable cellpadding=5\u003e\n \u003ctr\u003e\u003cth\u003eRelease\u003c/th\u003e\u003cth\u003eSize\u003c/th\u003e\u003cth\u003eSHA1 hash\u003c/th\u003e\u003c/tr\u003e\n \u003ctr\u003e\u003ctd\u003e\u003ca href=\"http://peterodding.com/code/lua/buildbot/downloads/lpeg-0.10.2.zip\"\u003eLPeg 0.10.2\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e89K\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e159a31446cc4c0f3a28e892c2c61d4bac52f25ee\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n \u003ctr\u003e\u003ctd\u003e\u003ca href=\"http://peterodding.com/code/lua/buildbot/downloads/luasocket-2.0.2.zip\"\u003eLuaSocket 2.0.2\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e126K\u003c/td\u003e\u003ctd\u003e\u003ccode\u003ea6a8fe0763cd21160c4cde2f6da8df5095851c36\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n \u003ctr\u003e\u003ctd\u003e\u003ca href=\"http://peterodding.com/code/lua/buildbot/downloads/luafilesystem-1.5.0.zip\"\u003eLuaFileSystem 1.5.0\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e70K\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e9c482f761d4e7624215b62e0b807a59ff44a3309\u003c/code\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n## How it works\n\nRight now the build bot is meant to be run on my machine because it works in a very specific way, however I'm planning to make it more generally useful (and with a bit of persistence it should already be possible for other folks to get it running). At the moment I run the build bot as follows:\n\n * I start the build bot script from a terminal on my [Ubuntu Linux](http://www.ubuntu.com/) installation\n * The build bot starts a headless virtual machine running Windows using [VirtualBox](http://www.virtualbox.org/)\n    * The virtual machine has been specifically setup for the build bot (see below)\n    * When the virtual machine boots it automatically launches the build bot\n * When the build bot is executed on Windows it performs the following steps for each project:\n    * Find latest available release from homepage\n    * Download archive (if not already downloaded)\n    * Unpack and build project\n    * Copy files to be released (binaries \u0026 headers)\n * When the build bot was executed automatically on Windows, it will shut the virtual machine down\n\nAs I mentioned above the plan is to run the build bot from a cron job on a server, this is still a work in progress.\n\n## Dependencies in the VM\n\nIn order to run the build bot on Windows I installed the following software in the virtual machine:\n\n * Windows XP SP3\n * The latest [Windows Platform SDK](http://www.microsoft.com/download/en/details.aspx?id=8279) (7.1)\n * [Lua For Windows](http://code.google.com/p/luaforwindows/) (v5.1.4-45)\n * My [Lua/APR binding](http://peterodding.com/code/lua/apr) (0.20)\n * `gunzip`, `tar`, `wget` and `unzip` from [UnxUtils](http://unxutils.sourceforge.net/)\n\nI'm not publishing the virtual machine image because it was registered with my serial number and of course it's quite big (more than 2 GB). However it's not hard to create the virtual machine, it just takes a bit of time. Apart from installing the software mentioned above, there are only two things to configure in the virtual machine:\n\n * Inside the virtual machine I've mounted a shared folder as a network drive, this enables the two build bots to easily exchange files\n * After creating the network drive I added `buildbot.cmd` to my Start → Programs → Startup menu so that the build bot runs automatically after the VM is started and shuts down the VM after building all projects\n\n## Contact\n\nIf you have questions, bug reports, suggestions, etc. the author can be contacted at \u003cpeter@peterodding.com\u003e. The latest version is available at \u003chttp://peterodding.com/code/lua/buildbot\u003e and \u003chttp://github.com/xolox/lua-buildbot\u003e.\n\n## License\n\nThis software is licensed under the [MIT license](http://en.wikipedia.org/wiki/MIT_License).  \n© 2011 Peter Odding \u0026lt;\u003cpeter@peterodding.com\u003e\u0026gt;.\n\n### Disclaimers\n\n * This license only applies to the build bot itself -- I don't have any affiliation with the projects supported by the build bot, I'm just a happy user\n * Should the original authors have objections against this build bot, let me know and I will remove support for the project in question\n * I don't give any guarantees as to the published binaries. They're generated in a dedicated machine so it's very unlikely that a virus could sneak in, but you never know until you've [scanned the binaries yourself](http://www.virustotal.com/)...\n\n[c]: http://en.wikipedia.org/wiki/C_(programming_language)\n[debian]: https://packages.debian.org/lua-apr\n[github_profile]: https://github.com/xolox/\n[lua_apr]: https://github.com/xolox/lua-apr\n[workshop]: http://www.lua.org/wshop11/Lua-APR.pdf\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxolox%2Flua-buildbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxolox%2Flua-buildbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxolox%2Flua-buildbot/lists"}