Skip to content

Commit

Permalink
[Scripts] Introduce fsdeb
Browse files Browse the repository at this point in the history
  • Loading branch information
andywolk authored and s3rj1k committed Jan 25, 2025
1 parent 8c92346 commit 9e77324
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 20 deletions.
56 changes: 36 additions & 20 deletions scripts/packaging/build/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,48 @@
# Build Scripts
# Building FreeSWITCH packages using `FSDEB`
## Prerequisites
FreeSWITCH packages can be built when FreeSWITCH is cloned using `git` only.
(Methods described here won't work if you download a source tarball and extract it)

This directory contains scripts for building FreeSWITCH.
Please make sure you have `git` and `curl` installed:
```bash
apt-get update
apt-get install -y git curl
```

## build-debs-native.sh
Builds Debian packages for FreeSWITCH from git tree on supported Debian distributions.
## Cloning FreeSWITCH
Assuming you build Debian packages for a FreeSWITCH release (this can be your fork or another branch as well).

### TLDR: Example running from FreeSWITCH git root
```bash
scripts/packaging/fsget.sh pat_hFooBar
scripts/packaging/build/build-debs-native.sh -b 999 -o /tmp/fsdebs/
cd /usr/src
git clone https://github.com/signalwire/freeswitch -b v1.10
```

### Prerequisites
- Root access is recommended
- Supported Debian system and architecture
- FreeSWITCH git repository in the working directory
- FreeSWITCH Debian repository configured (use `fsget.sh`)
## Configuring FreeSWITCH Debian repo (for dependencies)
Since we are building a FreeSWITCH release let's configure FreeSWITCH Community Release Debian repo.
We recommend using [FSGET](https://github.com/signalwire/freeswitch/blob/master/scripts/packaging).

### Features
- Automated dependency installation
- FreeSWITCH Debian (source) package creation
Replace `<PAT or API token>` with your `SignalWire Personal Access Token (PAT)`
[HOWTO Create a SignalWire Personal Access Token](https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Installation/how-to-create-a-personal-access-token/how-to-create-a-personal-access-token)
```bash
curl -sSL https://freeswitch.org/fsget | bash -s <PAT or API token>
```

### Usage
## Building packages with `FSDEB`
```bash
./build-debs-native.sh -b BUILD_NUMBER -o OUTPUT_DIR [-w WORKING_DIR]
curl -sSL https://freeswitch.org/fsdeb | bash -s -- -b 999 -o /usr/src/fsdebs/ -w /usr/src/freeswitch
```
That's pretty much it!

## Output
`FSDEB` will generate `.deb`, `.dsc`, `.changes`, and `.tar.*` files in the output directory:
```bash
ls -la /usr/src/fsdebs/
```

## Usage
You may be interested in other arguments of `FSDEB`:
```bash
curl -sSL https://freeswitch.org/fsdeb | bash -s -- -b BUILD_NUMBER -o OUTPUT_DIR [-w WORKING_DIR]
```

Required:
Expand All @@ -32,6 +51,3 @@ Required:

Optional:
- `-w`: Working directory (defaults to git root, needs to be git tree)

### Output
Generates `.deb`, `.dsc`, `.changes`, and `.tar.*` files in the output directory.
File renamed without changes.

0 comments on commit 9e77324

Please sign in to comment.