https://github.com/gerph/robuild-client
Client to use with the RISC OS Build Online service.
https://github.com/gerph/robuild-client
developer-tools riscos riscos-ci
Last synced: 2 months ago
JSON representation
Client to use with the RISC OS Build Online service.
- Host: GitHub
- URL: https://github.com/gerph/robuild-client
- Owner: gerph
- License: bsd-2-clause
- Created: 2020-06-21T21:22:39.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2026-01-11T19:11:30.000Z (2 months ago)
- Last Synced: 2026-01-11T23:21:42.254Z (2 months ago)
- Topics: developer-tools, riscos, riscos-ci
- Language: C
- Homepage:
- Size: 51.8 KB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# RISCOS Build client


This repository contains a WebSockets client for the RISC OS Build service at
https://build.riscos.online/.
## Usage
To use the tool:
./riscos-build-online -i -o
Will run the build on the service, and report the results to the console. The final output binary will be written to the output-prefix. On non-RISC OS builds, this will be suffixed by `,xxx` for the filetype that was generated. On RISC OS builds, the file named will be given the type of the returned data.
The return code from the tool will be propagated from the build.
Other options that can be used:
* `-q`: Only write the output from the build process to the terminal.
* `-Q`: Write no output to the terminal except errors.
* `-b`: Write all the build process's output to a file.
* `-s`: Specifies the server URI to connect together.
* `-t`: Specifies the timeout in seconds for the remote execution.
* `-a`: Enables or disables the use of ANSI text formatting (default 'on').
* `-A`: Selects the architecture to run with ('`aarch32`' or '`aarch64`').
## Prerequisites
There are two submodules required for this tool to work; they will be static linked with
the resulting binary. To ensure that they are present, use:
git submodule update --init
The `libwsclient` source needs `libtoolize` to be present to run the autogen process. On MacOS this
was installable with `brew install libtool` but not located where the scripts could find
it. This could be fixed with:
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
## Building on Linux/MacOS
Once prerequisites are installed, you should just be able to run:
make
to get a build tool called `riscos-build-online`.
Building a deb:
make deb
to get a distributable deb containing the tool.
## Building on RISC OS
The template environment files are required, together with standard C and TCPIPLibs.
Before running the build, the submodules must be checked out as well.
The directory RISC OS contains the files necessary to build the source. Running `!BuildAll` will build both the libraries and the client itself. The build scripts will construct a RISC OS-style source directory based on the original names.
The RISC OS client has not been heavily tested; it runs the simple 'Hello World' script that is the testfile in the root of the repository.
Quite a few shortcuts were taken in making the client work:
* `libwsclient` isn't C89 compatible, so the `sed` tool fixes up the current issues, and truncates values that require long longs.
* `libwsclient` uses pthreads, which isn't available, so it's been completely stubbed out, and the necessary functions are called directly. This is possible because `libwsclient`, when used for a single operation has a linear flow.
* `libwsclient` calls `getaddrinfo`, which I haven't implemented yet, so I threw together a fake routine which does enough to get an address and therefore a connection.
## License
This code is licensed under the BSD license.
The distributed binary is under the GPL 3 clause license, due to the inclusion of the libwsclient library.