Git

From VoIPmonitor.org
Revision as of 18:27, 9 January 2026 by Admin (talk | contribs) (Add ARM64 upgrade instructions with upgrade_by_git configuration)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

GIT upload

If you attempt to push a large set of changes to a Git repository with HTTP or HTTPS, you may get an error message such as error: RPC failed; result=22, HTTP code = 411. This is caused by a Git configuration default which limits certain HTTP operations to 1 megabyte. To change this limit run within your local repository

git config http.postBuffer *bytes*where bytes is the maximum number of bytes permitted. For exmaple:

git config http.postBuffer 524288000

Self-compiled sniffer from Git sources

If you use a self-compiled sniffer from Git (required for Napatech cards, which are not supported in static binaries provided by voipmonitor.org), configure the sniffer's /etc/voipmonitor.conf with:

upgrade_by_git = yes
git_folder = /usr/src/voipmonitor-git

When you click UPGRADE in the GUI, the sniffer will perform these steps:

git pull
configure
make clean
make
service voipmonitor stop
make install
service voipmonitor start

If you need special parameters for configure (e.g., for Napatech support), add them with the configure_param option:

configure_param = --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib

Troubleshooting Git Upgrade Issues

= Error: "You are not currently on a branch"

If the git upgrade fails with the error fatal: You are not currently on a branch., your Git repository is in a detached HEAD state. This typically happens if a specific commit hash or tag was previously checked out, or if a previous upgrade attempt was interrupted.

The upgrade_by_git mechanism relies on git pull to update the source code, which only works when you are actively tracking a branch (e.g., master or develop).

Solution:

1. Navigate to your Git source directory:

cd $(grep "^git_folder" /etc/voipmonitor.conf | awk '{print $2}')
# Or directly if you know the path:
cd /usr/src/voipmonitor-git

2. Check the current Git status:

git status

Expected output should show: HEAD detached at <commit-hash>

3. Switch to the appropriate branch:

  For standard production (stable) installations:
git checkout master
  For Napatech cards or development builds:
git checkout develop

4. Update to the latest code:

git pull

5. Verify you are on the correct branch:

git branch

Expected output should show an asterisk (*) next to master or develop.

6. Retry the upgrade process from the GUI or command line.

Note: The Napatech documentation and official instructions refer to the branch as develop (NOT "development"). Use the exact branch name to avoid errors.

ARM64/aarch64 Platform Support

If you are running VoIPmonitor on an ARM64 (aarch64) system, standard automatic upgrades via the GUI are not supported because VoIPmonitor provides pre-compiled static binaries only for x86_64, i686, and ARMv6k (Raspberry Pi).

Attempting to upgrade an ARM64 system with the GUI UPGRADE button will fail with:

Exec format error

This occurs because the upgrade downloaded an x86_64 binary which cannot execute on ARM64 architecture.

Solution: Configure Git-Based Upgrades

To enable automatic upgrades on ARM64, you must compile from source and configure the sniffer to use git for updates:

# 1. Initialize the source directory (if not already compiled from source)
git clone https://github.com/voipmonitor/sniffer.git /usr/src/sniffer

# 2. Compile the sniffer (follow compilation instructions from Sniffer_installation)
cd /usr/src/sniffer
./configure
make
make install

# 3. Edit /etc/voipmonitor.conf and add:
upgrade_by_git = yes
git_folder = /usr/src/sniffer

# 4. Restart the service
systemctl restart voipmonitor

How It Works

When you click UPGRADE in the GUI (or trigger an upgrade via API), the sniffer will perform:

git pull
configure
make clean
make
service voipmonitor stop
make install
service voipmonitor start

This automatically compiles the latest version from the git repository. The first upgrade will take several minutes to complete.

⚠️ Warning: The build process requires all compilation dependencies. See Sniffer_installation for required packages.