Package Details: janus-gateway 1.3.0-1

Git Clone URL: https://aur.archlinux.org/janus-gateway.git (read-only, click to copy)
Package Base: janus-gateway
Description: An open source, general purpose, WebRTC server
Upstream URL: https://janus.conf.meetecho.com
Licenses: GPL-3.0-only
Submitter: dseg
Maintainer: alerque (feighur, robertfoster)
Last Packager: alerque
Votes: 8
Popularity: 0.008054
First Submitted: 2016-01-29 11:22 (UTC)
Last Updated: 2024-11-26 09:31 (UTC)

Latest Comments

« First ‹ Previous 1 2

alerque commented on 2020-05-07 19:47 (UTC)

@feighur I've done a first pass at noting the things that are optional. It looks like I might be wrong and only some of those are required at build time, it looks like others may be run-time checks. If you get any solid info on which are which I'd be happy to help get this updated to reflect that or you can submit PRs from Github.

alerque commented on 2020-05-07 19:32 (UTC)

Thanks for the tips @feighur. I'll definitely cleanup the certs/install thing based on your input.

About dependencies though, I think you're handling them wrong. It does sort of work that way on the AUR, but the problem is those are not actually optdepends. By rights they would be optmakedepends — they must be present (or not) and compile time in order to be useful. In Arch packaging parlance optdepends are for packages you can install to your system and have the extra functionality available at run time. This is the only way it can work for most Arch Linux package repositories, whether the official core/extras/community/testing ones or any of the unofficial ones. This includes the unofficial one I host (that has this package). Since packages are precompiled whatever options you are going to bake in (or not) have to be done at the time of making the package. That means the packager has do decide on what to enable, and usually that means most/all of the common features and plugins possible.

About the best compromise I can think of is annotating the PKGBUILD so that people building it on there own can know what dependencies can be commented out if they don't want the extra features.

By the way if you have anything you want to contribute directly you can also open PRs against this package here.

feighur commented on 2020-05-07 16:17 (UTC)

I'd like to offer a few PKGBUILD modification I'm using myself:

The certs and the entire /usr/share/janus directory are no longer created or required in the current version of Janus. I've simply removed the .install file and all references to the directory

A set of (not fully tested) {make,opt,}depends that builds all features except docs and JS modules (as reported by configure), and is sufficient for the echo test demo without any optdepends. Descriptions for the optdepends items are taken from the upstream website (not fully tested)

depends=('jansson' 'libconfig' 'libnice' 'openssl' 'libsrtp' 'glib2'
         'libusrsctp-git' 'libmicrohttpd')
optdepends=('libwebsockets: WebSockets support for Janus API'
            'librabbitmq-c: RabbitMQ support for the Janus API or events'
            'paho-mqtt-c-git: MQTT support for the Janus API or events'
            'nanomsg: Nanomsg support for the Janus API'
            'curl: TURN REST API support, RTSP support in Streaming/Event Handler plugin'
            'sofia-sip: SIP plugin'
            'opus: Bridge plugin'
            'libogg: Voicemail plugin and/or post-processor'
            'ffmpeg: Post-processor'
            'lua: Lua plugin')
makedepends=('gengetopt' 'libwebsockets' 'librabbitmq-c' 'paho-mqtt-c-git'
             'nanomsg' 'curl' 'sofia-sip' 'opus' 'libogg' 'lua' 'ffmpeg')

alerque commented on 2020-05-06 08:48 (UTC)

Note to anyone trying to version-bump this package: You must actually (re)build the package before trying to regenerate the .SRCINFO file or the backups array won't be populated. The upstream seems to have a revolving door of config files so it is scanning what make configs actually installs to catch all the non-sample files. You can't cheat and bump the PKGBUILD without actually building it.

alerque commented on 2020-05-06 08:45 (UTC) (edited on 2020-05-06 08:46 (UTC) by alerque)

@ubuntourist The first packaging issue you mentioned is fixed, the new package finds and makes backups of all config files.

The second issue you note is more problematic, and I didn't attempt to fix it yet. Honestly the current solution using the post_install() hook looks like a really dirty hack to me. I'm wondering if there is a better mechanism to handle that. Any thoughts @robertfoster?

alerque commented on 2020-05-06 08:02 (UTC)

I'm sorry @robertfoster I didn't mean to snip this orphaned package from you. I got an email notification about it and actually thought I had filed the orphan request. I have some previous attempts at updating the package that I'll be posting as soon as I can verify their current build status. The dependencies have changed quite a bit since this was pasted and it looks like not all of the dependencies currently build from the AUR so it might take a bit before I actually post it. I've added you as a co-maintainer too, we can ever reverse that if it matters to you.

ubuntourist commented on 2020-04-11 19:04 (UTC) (edited on 2020-04-11 19:05 (UTC) by ubuntourist)

Two issues during the build. Neither of which appears to be a show-stopper

First:

==> WARNING: backup entry file not in package : etc/janus/janus.cfg

though there are a fair number of .jcfg files in /etc/janus/ there's no .cfg file.

Second (easily fixable):

Generating a RSA private key
........+++++
............................................+++++
writing new private key to '/usr/share/janus/certs/mycert.key'
... '/usr/share/janus/certs/mycert.key' No such file or directory

Manually adding a certs directory and reinstalling fixed the second issue:

$ sudo mkdir -p /usr/share/janus/certs/

Martchus commented on 2018-12-08 12:22 (UTC)

Can you git am https://martchus.no-ip.biz/shares/a4f78bd3d1154882e0feb89711c615/0001-Depend-on-ffmpeg.patch and https://martchus.no-ip.biz/shares/a4f78bd3d1154882e0feb89711c615/0002-Add-systemd-support.patch ? See my previous comment and the commit messages.

Martchus commented on 2018-12-07 09:32 (UTC)

This seems to depend on ffmpeg. Otherwise I get:

configure: error: Package requirements (
                           glib-2.0 >= 2.34
                           jansson >= 2.5
                           libavutil
                           libavcodec
                           libavformat
                           ogg
                         ) were not met:

Package 'libavutil', required by 'virtual:world', not found
Package 'libavcodec', required by 'virtual:world', not found
Package 'libavformat', required by 'virtual:world', not found