0.0.002
ddat interop with dat js cable interop with cabal js ddat's frontend = dat-thang cable fe = cable-thang dillo support based on cel's dillo-dat bootstrap node xplatform support Signed-off-by: divo <418@cryspace.space>
This commit is contained in:
1 parent
f0f91540be
commit
b735900f2e
323 files changed
+134347
-343
No files matched your search
@@ -0,0 +1,96 @@
|
||||
# Windows build
|
||||
|
||||
The native Windows build uses MSYS2's UCRT64 toolchain and creates a runnable
|
||||
folder of PE executables plus their runtime DLLs and data files. It does not
|
||||
reuse the GNU/Linux `build/` directory or generated `config.mk`.
|
||||
|
||||
Install MSYS2, then install the UCRT64 packages needed by the project:
|
||||
|
||||
```sh
|
||||
pacman -S --needed \
|
||||
mingw-w64-ucrt-x86_64-gcc \
|
||||
mingw-w64-ucrt-x86_64-make \
|
||||
mingw-w64-ucrt-x86_64-pkgconf \
|
||||
mingw-w64-ucrt-x86_64-libsodium \
|
||||
mingw-w64-ucrt-x86_64-curl \
|
||||
mingw-w64-ucrt-x86_64-SDL2 \
|
||||
mingw-w64-ucrt-x86_64-SDL2_ttf
|
||||
```
|
||||
|
||||
From the repository root in PowerShell, run:
|
||||
|
||||
```powershell
|
||||
.\build-windows.ps1
|
||||
```
|
||||
|
||||
Compiler outputs, including tests and intermediate files, stay in
|
||||
`build\windows`. Distribution output is staged separately: `dist\windows-x64`
|
||||
contains only the eight user-facing programs, their runtime DLLs, assets,
|
||||
Scheme files, and manuals. `dist\installers` contains a portable ZIP and, when
|
||||
Inno Setup is installed, the setup executable. Do not distribute the contents
|
||||
of `build\windows` directly. The build date's Discordian calendar conversion
|
||||
is compiled into the GUI; no external `ddate` installation is needed.
|
||||
|
||||
To create just the portable ZIP, run `build-windows.ps1`. To create the install
|
||||
wizard as well, run `build-windows-installer.ps1`.
|
||||
|
||||
`cable-thang.exe` is a native C/S7 client using Cesspool and Sleep. Node.js
|
||||
and Cabal JavaScript modules are needed only for optional interoperability
|
||||
tests. Cable audio and video support are experimental and disabled by default,
|
||||
so the regular Windows build does not require FFmpeg. To enable both, install
|
||||
FFmpeg and build with:
|
||||
|
||||
```powershell
|
||||
pacman -S --needed mingw-w64-ucrt-x86_64-ffmpeg
|
||||
.\build-windows.ps1 -EnableCableMedia
|
||||
```
|
||||
|
||||
The UCRT64 FFmpeg libraries provide Cable's AAC-LC encoder/decoder, OBS MPEG-TS
|
||||
ingest, and low-resolution JPEG video exchange; their runtime DLLs are copied
|
||||
beside the Windows executables. In `cable-thang`, `OBS INPUT` (or
|
||||
Ctrl+Shift+V) listens on local UDP port 5000; OBS can publish MPEG-TS there
|
||||
using its Custom FFmpeg Output.
|
||||
|
||||
The GNU/Linux workflow is `./configure`, `make`, and `make install`; its default
|
||||
compiler output is `build/linux`. To create a staged GNU/Linux tarball, use
|
||||
`make package`. Release artifacts go under `dist/` on both platforms. To create
|
||||
a source-only archive, run `package-source.ps1`; its contents and exclusions
|
||||
are documented in `docs\source-distribution.md`.
|
||||
That configuration checks for libcurl because the Dillo-compatible
|
||||
`dat-dns` lookup uses HTTPS `/.well-known/dat`; it does not call the operating
|
||||
system DNS TXT resolver.
|
||||
|
||||
## Install wizard
|
||||
|
||||
Install [Inno Setup 6](https://jrsoftware.org/isinfo.php) after installing the
|
||||
MSYS2 build tools. From PowerShell at the repository root, run:
|
||||
|
||||
```powershell
|
||||
.\build-windows-installer.ps1
|
||||
```
|
||||
|
||||
The script rebuilds the Windows applications, bundles their DLLs and runtime
|
||||
assets, and creates `dist\installers\dat-thang-setup-0.0.002-x64.exe`.
|
||||
The application identifies itself as `dat-thang v0.0.002 (prototype,
|
||||
pre-alpha)`; the executable file version is `0.0.2.0`.
|
||||
The wizard offers a per-user or all-users install, a destination folder,
|
||||
optional desktop shortcut, optional PATH entry for the terminal commands, and
|
||||
an optional launch at the end. Uninstall removes a PATH entry only when this
|
||||
installer added it. The app and installer use the same generic green hexagon
|
||||
icon. The Start menu includes dat-thang and a command prompt with the installed
|
||||
tools on PATH.
|
||||
|
||||
`cable-thang.exe` is included for opening a room address from the command
|
||||
prompt and connects through Cesspool.
|
||||
|
||||
`cesspool-bootstrap.exe` runs a dedicated Cesspool discovery node in the
|
||||
foreground. It is for an operator deploying a reachable public rendezvous
|
||||
host, not something chat users need to run. The node needs a stable state
|
||||
directory and inbound UDP on the selected port; see `docs\cesspool-bootstrap.1`
|
||||
for process-supervisor and firewall setup. The Windows installer includes the
|
||||
executable and the operator manpage in its `docs` folder.
|
||||
|
||||
Keep the node identity outside the checkout. In PowerShell, run the development
|
||||
executable with `--state-dir "$env:LOCALAPPDATA\dat-gpt\cesspool-bootstrap-state"`.
|
||||
That keeps the private identity key in per-user application data rather than in
|
||||
the source tree or disposable compiler output.
|
||||
Reference in new issue
Block a user