You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Installing SRT libraries on Windows using WinGet
#3114
Do you know WinGet, the Microsoft package manager for open source software for Windows, with a community-managed set of software? It is similar in principle to Linux package managers such as apt, dnf, apk or Homebrew in the macOS world. You can install all standard open source software with commands such as:
And update all installed software to their latest version using:
winget update --all
Now, you can install the SRT libraries for Windows using:
winget install libsrt
There has been third-party package managers for Windows, such as Chocolatey. However, WinGet is different because it is developed by Microsoft and it is pre-installed on all recent Windows systems. The best part of it is that Microsoft does not manage the repository of packages. It is managed by a community as a GitHub repository: https://github.com/microsoft/winget-pkgs
The principles is exactly the same as Homebrew, for macOS users. Anyone can propose a new package. The process is a pull request on the winget-pkgs repo with a manifest describing the package. A tool named wingetcreate can help in the creation of the manifest.
The PR is reviewed by the community and, when it is accepted, the package becomes available to any Windows users.
The main difference with Homebrew is that a Homebrew contributor proposes a formula (equivalent to a manifest) with the address of the source code and build instructions. The Homebrew CI/CD pipeline builds the package for the various architecture and OS version. With WinGet, the manifest points to binary packages. This difference is probably due to the fact that building some complex applications on Windows is some kind of black magic and most projects already provide binary installers because virtually no one is able to rebuild them without blood, sweat, and tears. So, it is easier to point on these binaries.
Since I already declared a few packages on WinGet, I submitted a PR for libsrt pointing to the SRT binaries which are published by Haivision on https://github.com/Haivision/srt/releases and the PR was merge today.
See a full installation log:
PS C:\Users\thierry> winget install libsrt
Found libsrt [Haivision.libsrt] Version 1.5.4
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/Haivision/srt/releases/download/v1.5.4/libsrt-1.5.4-win-installer.zip
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
The installer will request to run as administrator, expect a prompt.
Successfully installed
PS C:\Users\thierry>
Since there are (fortunately) some rules to respect about ownership and copyright, the complete name of the package is "Haivision.libsrt". Since there are no two libsrt, you can use the simple package name to install it.
Note that I am not affiliated to Haivision. However, just like packages for Debian, Ubuntu, Fedora, Red Hat, macOS (Homebrew), anyone can request a distro or package manager to integrate a public open source package they need. Since my project (TSDuck) uses SRT, I need libsrt and I requested the package.
If you want to have a look at the manifest for libsrt in the winget-pkgs repo, have a look here.
One important point: each time a new release of a package is published, a new PR shall be sent to the winget-pkgs repo with the new version. Once a package is already in the repo, an update (without structural change, just a new version) can be created using a single command, including the creation of the pull request:
In my project, I have automated the search for a new version and new release submission using a PowerShell script which can be used as template for other projects.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Hi,
Do you know WinGet, the Microsoft package manager for open source software for Windows, with a community-managed set of software? It is similar in principle to Linux package managers such as
apt,dnf,apkor Homebrew in the macOS world. You can install all standard open source software with commands such as:And update all installed software to their latest version using:
Now, you can install the SRT libraries for Windows using:
There has been third-party package managers for Windows, such as Chocolatey. However, WinGet is different because it is developed by Microsoft and it is pre-installed on all recent Windows systems. The best part of it is that Microsoft does not manage the repository of packages. It is managed by a community as a GitHub repository: https://github.com/microsoft/winget-pkgs
The principles is exactly the same as Homebrew, for macOS users. Anyone can propose a new package. The process is a pull request on the
winget-pkgsrepo with a manifest describing the package. A tool namedwingetcreatecan help in the creation of the manifest.The PR is reviewed by the community and, when it is accepted, the package becomes available to any Windows users.
The main difference with Homebrew is that a Homebrew contributor proposes a formula (equivalent to a manifest) with the address of the source code and build instructions. The Homebrew CI/CD pipeline builds the package for the various architecture and OS version. With WinGet, the manifest points to binary packages. This difference is probably due to the fact that building some complex applications on Windows is some kind of black magic and most projects already provide binary installers because virtually no one is able to rebuild them without blood, sweat, and tears. So, it is easier to point on these binaries.
Since I already declared a few packages on WinGet, I submitted a PR for
libsrtpointing to the SRT binaries which are published by Haivision on https://github.com/Haivision/srt/releases and the PR was merge today.See a full installation log:
Since there are (fortunately) some rules to respect about ownership and copyright, the complete name of the package is "Haivision.libsrt". Since there are no two
libsrt, you can use the simple package name to install it.Note that I am not affiliated to Haivision. However, just like packages for Debian, Ubuntu, Fedora, Red Hat, macOS (Homebrew), anyone can request a distro or package manager to integrate a public open source package they need. Since my project (TSDuck) uses SRT, I need
libsrtand I requested the package.If you want to have a look at the manifest for
libsrtin thewinget-pkgsrepo, have a look here.One important point: each time a new release of a package is published, a new PR shall be sent to the
winget-pkgsrepo with the new version. Once a package is already in the repo, an update (without structural change, just a new version) can be created using a single command, including the creation of the pull request:In my project, I have automated the search for a new version and new release submission using a PowerShell script which can be used as template for other projects.
Feel free to comment.
All reactions