= AG Proiects Debian and Ubuntu Linux repositories =
Install AG Projects software signing key:
```sudo curl -o /usr/share/keyrings/agp-debian-key.gpg http://download.ag-projects.com/agp-debian-key.gpg```
If you don't have Curl:
```sudo wget -O /usr/share/keyrings/agp-debian-key.gpg http://download.ag-projects.com/agp-debian-key.gpg```
Depending on your Linux OS version add the following lines to `/etc/apt/sources.list.d/ag-projects.list`:
== Debian ==
Debian Unstable:
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian unstable main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian unstable main
```
Debian stable (Bookworm 12):
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian bookworm main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian bookworm main
```
Debian oldstable (Bullseye 11):
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian bullseye main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian bullseye main
```
Debian oldoldstable (Buster 10):
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian buster main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian buster main
```
Debian Strech 9:
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian stretch main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/debian stretch main
```
== Ubuntu ==
Ubuntu Jammy Jellyfish (22.04):
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/ubuntu jammy main
```
Ubuntu Focal (20.04):
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/ubuntu focal main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/ubuntu focal main
```
Ubuntu Bionic Beaver (18.04):
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/ubuntu bionic main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/ubuntu bionic main
```
== Rasbian ==
Raspbian Unstable:
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] https://packages.ag-projects.com/raspbian unstable main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] http://packages.ag-projects.com/raspbian unstable main
```
Raspbian Stable (Buster 10):
```
deb [signed-by=/usr/share/keyrings/agp-debian-key.gpg] http://packages.ag-projects.com/raspbian buster main
deb-src [signed-by=/usr/share/keyrings/agp-debian-key.gpg] http://packages.ag-projects.com/raspbian buster main
```
To install or upgrade a software package:
```
sudo apt-get update
sudo apt-get install package_name
```
Replace `package_name` with the name of the software package.
= Tar Archives =
Some packages are available as tar archives:
http://download.ag-projects.com/
The tar archives may be out of date compared to the latest source code versions.
= Version Controlled Repositories =
== Darcs ==
AG Projects manages its software versions using **darcs** version control tool available from https://darcs.net.
The repositories can be fetched with these commands:
```
darcs clone http://devel.ag-projects.com/repositories/PACKAGE_NAME
```
Replace PACKAGE_NAME with the name of the software package. To obtain the incremental changes after the initial get run:
```
darcs pull -a
```
== Github ==
All darcs repositories are mirrored read-only to https://github.com/AGProjects
Github pull requests are not processed.
If in doubt about the latest version check darcs repositories first.
== Contributions==
If you want to help us fixing a bug that you found or if you want to contribute with a new feature you must be familiar with the darcs version control system from http://darcs.net
First make sure you are using the latest version by doing a darcs pull. Then record your changes using darcs record.
Follow the following guidelines for recording your changes:
* Keep a patch name under 80 characters, so that a darcs changes in a 80 char console is consistent and readable. If you need to write more than that, use --edit-long-comment or do not specify -m "patch name" and it will automatically ask for a patch name and a long comment.
* Keep the long comment inside the 80 char frame. When you add a long comment, you have the patch name on the first line. After that, leave an empty line and then add the long comment starting from the 1st column. If you need to add bulleted entries in the long comment, use a dash (-) not an asterisk (*), to avoid confusion with the asterisk darcs places before every patch name.
* Record separate patches for each distinct changes you make. Do not mix different changes in a single record.
* Use darcs replace to rename tokens if possible instead of using a search and replace in your editor. It correctly handles cases where someone else still kept using the old name (it will automatically rename this uses of the old name when he pull the darcs replace patch, which a simple token rename done by the editor and recorded as a standard diff will never do, requiring further patches to rename the old tokens that the other developer added in his code while you were doing the renaming).
Finally, notify us on the SIP Beyond VoIP mailing list. After approval submit the patch using:
darcs send --to devel@ag-projects.com
=Manual Installation=
All python software packages can be installed in local user environment using:
```pip3 install -user .```
= Debian Package Building=
Some of the packages are ready to be packaged for Debian like distributions by using this procedure:
Check if there is a file called makedeb.sh. If there is run it, if not then continue with:
Create under each repository a clean distribution file:
```
python3 setup.py sdist
```
Go to `./dist` directory and untar the file created at the step above.
Go to the newly created directory and type:
```
debuild -us -uc --no-sign
```
The .deb and related files are built in the upper directory.