guardship 0.2.0-amd64-freebsd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (6) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +95 -0
  4. data/exe/mothership +12 -0
  5. data/libexec/mothership +0 -0
  6. metadata +62 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 97711bf66111c592144081c6543991a44b5c6bf4bd8b2ba9f63265053674413b
4
+ data.tar.gz: 71fceda326f6790c7dc9a04643f5826b5aed24ceb71e33e3a836a8d67c520124
5
+ SHA512:
6
+ metadata.gz: ea5cc9fb925923ee2a04cee9ddd07cd0604914d45784964931ee70289cf59a17e23e3d78dde62e5b7f62cbf6114d7c31ac126ccf2eddcdfc231496fc47c854b3
7
+ data.tar.gz: 2791c8d7daa8b304ccca73460c4e6278fcf7c97d451d7b023a9c4b3bc21cac70222956c25b71d68f3fa50c309e28b82594723ea2b37ff27337d4cca89e844961
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Abdelkader Boudih
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,95 @@
1
+ # Guardship
2
+
3
+ Ruby wrapper and release packaging for [Mothership](https://github.com/seuros/mothership), the process supervisor with HTTP exposure.
4
+
5
+ ## Installation
6
+
7
+ RubyGems should resolve the matching platform gem automatically on supported targets:
8
+
9
+ ```bash
10
+ gem install guardship
11
+ ```
12
+
13
+ The generic `guardship` gem is a stub. Platform-specific releases carry the bundled native `mothership` binary.
14
+
15
+ ## What Is Included
16
+
17
+ - Stub gem:
18
+ - Ruby launcher only
19
+ - no bundled native binary
20
+ - Platform gems:
21
+ - `mothership` native binary under `libexec/`
22
+ - default feature set only
23
+
24
+ ## Usage
25
+
26
+ ```bash
27
+ mothership --config mothership.toml
28
+ ```
29
+
30
+ If you install the stub gem directly on a platform without a matching packaged binary, the launcher will tell you that no bundled binary is present.
31
+
32
+ ## Supported Platforms
33
+
34
+ - Linux: `x86_64-linux`, `aarch64-linux`
35
+ - macOS: `x86_64-darwin`, `arm64-darwin`
36
+
37
+ All packaged binaries are precompiled. No local Rust toolchain is required to run the gem.
38
+
39
+ ## Release Workflow
40
+
41
+ The release build produces one stub gem and one platform gem for each supported target. Run it from the repository root after the Rust crate and gem versions have been bumped together.
42
+
43
+ ```bash
44
+ just build
45
+ cd gem
46
+ bundle exec rake gem:build
47
+ mise exec zig@0.17.0 -- bundle exec rake platforms:build
48
+ ```
49
+
50
+ `platforms:build` is the common ecosystem entry point for `gem:build_platforms`.
51
+ It compiles and packages every supported platform; it does not publish anything.
52
+ The full matrix needs a macOS host with the Apple SDK for both Darwin targets,
53
+ Rust/rustup, `cargo-zigbuild`, and Zig for Linux and FreeBSD. Missing Rust targets are
54
+ installed automatically, and a failed build stops packaging rather than
55
+ substituting a host binary.
56
+
57
+ Together with `gem:build`, these tasks build:
58
+
59
+ - `guardship-VERSION.gem`
60
+ - `guardship-VERSION-arm64-darwin.gem`
61
+ - `guardship-VERSION-x86_64-darwin.gem`
62
+ - `guardship-VERSION-aarch64-linux.gem`
63
+ - `guardship-VERSION-x86_64-linux.gem`
64
+ - `guardship-VERSION-amd64-freebsd.gem`
65
+
66
+ Linux platform gems are built with `cargo zigbuild` through the configured Zig toolchain. The task uses glibc-versioned targets by default:
67
+
68
+ - `x86_64-unknown-linux-gnu.2.36`
69
+ - `aarch64-unknown-linux-gnu.2.36`
70
+
71
+ The FreeBSD gem is cross-built for FreeBSD 15 and later: `libc` is compiled for
72
+ FreeBSD 15's struct layouts (`--cfg libc_unstable_freebsd_version="15"`; the
73
+ crate defaults to FreeBSD 12), and it links only symbol versions FreeBSD 15
74
+ provides. Its gem platform is `amd64-freebsd`, the CPU name FreeBSD's Ruby
75
+ reports, without a release so FreeBSD 16 matches too.
76
+
77
+ The glibc floor can be changed for a release with `GUARDSHIP_GLIBC_VERSION=2.xx`. Do not use the plain `*-unknown-linux-gnu` Zig targets for the local all-platform release; Rama DNS links resolver symbols such as `res_nquery` require the glibc-versioned target.
78
+
79
+ Publish after the artifacts are present:
80
+
81
+ ```bash
82
+ bundle exec rake gem:push
83
+ # or
84
+ bundle exec rake gem:push_all
85
+ ```
86
+
87
+ ## Documentation
88
+
89
+ - [Main Repository](https://github.com/seuros/mothership)
90
+ - [Configuration Guide](https://github.com/seuros/mothership#configuration)
91
+ - [API Documentation](https://docs.rs/mothership)
92
+
93
+ ## License
94
+
95
+ MIT
data/exe/mothership ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ binary = File.expand_path("../libexec/mothership", __dir__)
5
+
6
+ unless File.file?(binary)
7
+ warn "guardship stub gem installed: no bundled mothership binary was found at #{binary}."
8
+ warn "Install a platform-specific guardship gem release, or use cargo install mothership."
9
+ exit 1
10
+ end
11
+
12
+ exec binary, *ARGV
Binary file
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: guardship
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: amd64-freebsd
6
+ authors:
7
+ - Abdelkader Boudih
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rake
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '13.0'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '13.0'
26
+ description: Platform-specific Mothership gem with a bundled native binary.
27
+ email:
28
+ - oss@seuros.com
29
+ executables:
30
+ - mothership
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - LICENSE
35
+ - README.md
36
+ - exe/mothership
37
+ - libexec/mothership
38
+ homepage: https://github.com/seuros/mothership
39
+ licenses:
40
+ - MIT
41
+ metadata:
42
+ source_code_uri: https://github.com/seuros/mothership
43
+ changelog_uri: https://github.com/seuros/mothership/blob/master/CHANGELOG.md
44
+ rubygems_mfa_required: 'true'
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '4.0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ requirements: []
59
+ rubygems_version: 4.0.10
60
+ specification_version: 4
61
+ summary: Mothership gem wrapper
62
+ test_files: []