# Install gupnp with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

Framework for creating UPnP devices and control points. Version 1.6.10 via Homebrew; verified 2026-06-25.

## Install

```sh
sudo av install brew:gupnp
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install gupnp
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install gupnp
```

  Evidence: MacPorts ports tree: net/gupnp/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add gupnp
```

  Evidence: Alpine Linux edge package indexes: gupnp from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install gir1.2-gupnp-1.6
```

  Evidence: Debian stable package indexes: gir1.2-gupnp-1.6 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install gupnp
```

  Evidence: Fedora Rawhide package metadata: gupnp from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#gupnp
```

  Evidence: nixpkgs package indexes: pkgs/by-name/gu/gupnp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S gupnp
```

  Evidence: Arch Linux sync databases: gupnp from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install gupnp-doc
```

  Evidence: openSUSE Tumbleweed package metadata: gupnp-doc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:gupnp
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/gupnp>
- **Version:** 1.6.10
- **Source summary:** Framework for creating UPnP devices and control points
- **Homepage:** <https://gitlab.gnome.org/GNOME/gupnp>
- **Repository:** <https://gitlab.gnome.org/GNOME/gupnp>
- **Upstream docs:** <https://gnome.pages.gitlab.gnome.org/gupnp/docs>
- **License:** LGPL-2.0-or-later
- **Source archive:** <https://download.gnome.org/sources/gupnp/1.6/gupnp-1.6.10.tar.xz>
- **Last updated:** 2026-06-25T13:37:44+02:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- gupnp-binding-tool-1.6 (cli)
- gupnp-binding-tool-1.6 (alias)

## Dependencies

- glib
- gssdp
- libsoup
- libxml2
- python@3.14

## Build dependencies

- docbook-xsl
- gobject-introspection
- meson
- ninja
- pkgconf
- vala

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.6.10
- Package-manager updated: 2026-06-25
- Local data: ok
- Upstream repository: https://gitlab.gnome.org/GNOME/gupnp
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

GUPnP is GNOME's GObject-based framework for creating UPnP devices and control points. It wraps resource discovery, device description, control, eventing, presentation, and HTTP integration behind GLib-friendly C APIs.

### Project history

The README says GUPnP was born from frustration with libupnp and its threading model. GUPnP chose a single-threaded asynchronous design integrated with the GLib main loop, aiming to provide libupnp's feature set while hiding much of the UPnP protocol machinery behind object-oriented APIs.

The framework is built from GSSDP for SSDP discovery and announcement plus GUPnP for the UPnP protocol layers. It intentionally leaves higher-level standardized resources, such as MediaServer helpers, to companion libraries including GUPnP AV and related projects.

GNOME release and Git history show GUPnP as a long-lived networking library: the repository has a gupnp-0.10 tag from May 2008, the GNOME archive contains 0.x tarball lines, 1.0.0 was published in September 2016, and the 1.6 branch moved the stack through libsoup3-era maintenance.

### Adoption history

GUPnP is packaged across Homebrew, Alpine, Debian/Ubuntu GIR packages, Fedora, MacPorts, Nix, Arch, and openSUSE because it is a shared library used by GNOME and media/networking applications rather than a single end-user program.

Its adoption is coupled to GSSDP, GUPnP AV, GUPnP DLNA, and GUPnP Tools. Distributions often split runtime libraries, introspection bindings, documentation, and tool packages so applications and developers can depend on the minimum needed pieces.

### How it is used

Developers use GUPnP to implement devices and control points that discover UPnP services, fetch device descriptions, invoke service actions, subscribe to events, and expose devices on the network. The official documentation includes both client and server tutorials.

The Homebrew formula exposes `gupnp-binding-tool-1.6`, but the package's main value is library and introspection support for applications using the GUPnP API.

### Why package nerds care

GUPnP matters to package maintainers because it is a classic shared-library stack with ABI/API versioning, GIR bindings, documentation, and companion tools. A small version bump can affect media sharing, device discovery, and GNOME networking tools across a distribution.

It is also a case study in replacing a lower-level C networking library with a GLib-native abstraction that fits desktop event loops and language bindings.

### Timeline

- 2008: gupnp-0.10 tag appears in the GNOME repository.
- 2011: GNOME release archive hosts 0.x GUPnP tarball directories.
- 2016: GUPnP 1.0.0 appears in the GNOME release archive.
- 2022: 1.6.0 NEWS records a stable re-release of the 1.5.4 development line.
- 2024: 1.6-series NEWS records fixes around IPv6 handling, NetworkManager contexts, introspection, and libsoup/libxml compatibility.
- 2026: 1.6-series NEWS records GSSDP requirement and IPv6 host-header validation fixes.

### Related projects

- GSSDP provides SSDP discovery and announcement using GObject.
- GUPnP AV provides helper objects for UPnP A/V profiles.
- GUPnP DLNA provides DLNA-oriented helpers around media metadata and profiles.
- GUPnP Tools packages utilities and sample control points for testing GUPnP networks.
- libsoup provides HTTP handling, and GLib/GObject provide the object system and main loop.

### Sources

- <https://download.gnome.org/sources/gupnp/>
- <https://download.gnome.org/sources/gupnp/1.0/>
- <https://gitlab.gnome.org/GNOME/gupnp>
- <https://gitlab.gnome.org/GNOME/gupnp/-/raw/master/NEWS>
- <https://gitlab.gnome.org/GNOME/gupnp/-/raw/master/README.md>
- <https://gnome.pages.gitlab.gnome.org/gupnp/docs/>
- <https://gnome.pages.gitlab.gnome.org/gupnp/docs/client-tutorial.html>
- <https://gnome.pages.gitlab.gnome.org/gupnp/docs/server-tutorial.html>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** gupnp
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - gir1.2-gupnp-1.6 - 1.6.8-2: normalized package name match | Debian stable package indexes: gir1.2-gupnp-1.6 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GObject introspection data for the GUPnP library | https://gnome.pages.gitlab.gnome.org/gupnp/docs/
- Debian apt - libgupnp-1.6-0 - 1.6.8-2: normalized package name match | Debian stable package indexes: libgupnp-1.6-0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GObject-based library for UPnP | https://gnome.pages.gitlab.gnome.org/gupnp/docs/
- Debian apt - libgupnp-1.6-dev - 1.6.8-2: normalized package name match | Debian stable package indexes: libgupnp-1.6-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GObject-based library for UPnP (development files) | https://gnome.pages.gitlab.gnome.org/gupnp/docs/
- Debian apt - libgupnp-doc - 1.6.8-2: normalized package name match | Debian stable package indexes: libgupnp-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GObject-based library for UPnP (documentation) | https://gnome.pages.gitlab.gnome.org/gupnp/docs/
- Nix - gupnp: normalized package name match | nixpkgs package indexes: pkgs/by-name/gu/gupnp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - gir1.2-gupnp-1.6 - 1.6.6-1build3: normalized package name match | Ubuntu 24.04 LTS package indexes: gir1.2-gupnp-1.6 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GObject introspection data for the GUPnP library | http://live.gnome.org/GObjectIntrospection
- Ubuntu apt - libgupnp-1.6-0 - 1.6.6-1build3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgupnp-1.6-0 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GObject-based library for UPnP | https://wiki.gnome.org/Projects/GUPnP
- Ubuntu apt - libgupnp-1.6-dev - 1.6.6-1build3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgupnp-1.6-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | GObject-based library for UPnP (development files) | https://wiki.gnome.org/Projects/GUPnP
- Ubuntu apt - libgupnp-doc - 1.6.6-1build3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgupnp-doc from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GObject-based library for UPnP (documentation) | https://wiki.gnome.org/Projects/GUPnP
- apk - gupnp - 1.6.10-r0: normalized package name match | Alpine Linux edge package indexes: gupnp from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GObject-based UPNP framework | https://gitlab.gnome.org/GNOME/gupnp
- apk - gupnp-dev - 1.6.10-r0: normalized package name match | Alpine Linux edge package indexes: gupnp-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GObject-based UPNP framework (development files) | https://gitlab.gnome.org/GNOME/gupnp
- apk - gupnp-doc - 1.6.10-r0: normalized package name match | Alpine Linux edge package indexes: gupnp-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GObject-based UPNP framework (documentation) | https://gitlab.gnome.org/GNOME/gupnp
- dnf - gupnp - 1.6.10-1.fc45: normalized package name match | Fedora Rawhide package metadata: gupnp from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | A framework for creating UPnP devices & control points | https://www.gupnp.org/
- dnf - gupnp-devel - 1.6.10-1.fc45: normalized package name match | Fedora Rawhide package metadata: gupnp-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development package for gupnp | https://www.gupnp.org/
- dnf - gupnp-docs - 1.6.10-1.fc45: normalized package name match | Fedora Rawhide package metadata: gupnp-docs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Documentation files for gupnp | https://www.gupnp.org/
- pacman - gupnp - 1:1.6.10-1: normalized package name match | Arch Linux sync databases: gupnp from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | GObject-based UPNP framework | https://wiki.gnome.org/Projects/GUPnP


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [glib](https://www.automicvault.com/pkg/brew/glib/) - Runtime dependency declared by Homebrew.
- [libxml2](https://www.automicvault.com/pkg/brew/libxml2/) - Runtime dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [docbook-xsl](https://www.automicvault.com/pkg/brew/docbook-xsl/) - Build dependency declared by Homebrew.
- [gobject-introspection](https://www.automicvault.com/pkg/brew/gobject-introspection/) - Build dependency declared by Homebrew.
- [meson](https://www.automicvault.com/pkg/brew/meson/) - Build dependency declared by Homebrew.
- [ninja](https://www.automicvault.com/pkg/brew/ninja/) - Build dependency declared by Homebrew.
- [gupnp-tools](https://www.automicvault.com/pkg/brew/gupnp-tools/) - Popular package that depends on this formula.
- [miniupnpc](https://www.automicvault.com/pkg/brew/miniupnpc/) - Shares av.db curated category or tags: cli, networking, upnp.
- [c-ares](https://www.automicvault.com/pkg/brew/c-ares/) - Shares av.db curated category or tags: cli, library, networking.
- [czmq](https://www.automicvault.com/pkg/brew/czmq/) - Shares av.db curated category or tags: cli, library, networking.
- [libnatpmp](https://www.automicvault.com/pkg/brew/libnatpmp/) - Shares av.db curated category or tags: cli, library, networking.
- [libnet](https://www.automicvault.com/pkg/brew/libnet/) - Shares av.db curated category or tags: cli, library, networking.
- [libproxy](https://www.automicvault.com/pkg/brew/libproxy/) - Shares av.db curated category or tags: cli, library, networking.
- [pacparser](https://www.automicvault.com/pkg/brew/pacparser/) - Shares av.db curated category or tags: cli, library, networking.
- [phodav](https://www.automicvault.com/pkg/brew/phodav/) - Local package facts share a topical domain. Shared terms: cli, glib, gnome, libsoup, networking.
- [gtk-vnc](https://www.automicvault.com/pkg/brew/gtk-vnc/) - Local package facts share a topical domain. Shared terms: cli, glib, gnome, networking.

## Combined YAML source

View the package source record on GitHub. [combined/gupnp.yml](https://github.com/automic-vault/db/blob/main/combined/gupnp.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
