Bug 2121585

Summary: Review Request: janus - An open source general purpose WebRTC server.
Product: [Fedora] Fedora Reporter: Renich Bon Ciric <renich>
Component: Package ReviewAssignee: Benson Muite <benson_muite>
Status: ASSIGNED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: amessina, benson_muite, ichavero, package-review, tao-j
Target Milestone: ---Flags: benson_muite: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
URL: https://janus.conf.meetecho.com/
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2159144    
Attachments:
Description Flags
The .spec file difference from Copr build 5152862 to 5200691
none
The .spec file difference from Copr build 5238279 to 5300635
none
The .spec file difference from Copr build 5300635 to 5303569
none
The .spec file difference from Copr build 5303569 to 5382837
none
The .spec file difference from Copr build 5382837 to 5580064
none
The .spec file difference from Copr build 5580064 to 5929568
none
The .spec file difference from Copr build 5929568 to 6281436 none

Description Renich Bon Ciric 2022-08-25 21:06:13 UTC
Spec URL: https://pagure.io/janus-gateway/raw/master/f/janus-gateway.spec
SRPM URL: https://pagure.io/janus-gateway/raw/master/f/janus-gateway-1.0.4-1.fc36.src.rpm
Description: An open source, general purpose, WebRTC server.
Fedora Account System Username: renich

Comment 1 Benson Muite 2022-08-26 06:20:50 UTC
fedora-review did not complete for me. Got the following error:

RPM build errors:
    File must begin with "/": %{_unitdir}/janus-gateway.service
Child return code was: 1
EXCEPTION: [Error()]
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/mockbuild/trace_decorator.py", line 93
, in trace
    result = func(*args, **kw)
  File "/usr/lib/python3.10/site-packages/mockbuild/util.py", line 598, in do_wi
th_status
    raise exception.Error("Command failed: \n # %s\n%s" % (command, output), chi
ld.returncode)
mockbuild.exception.Error: Command failed: 

On Copr build succedded:
https://copr.fedorainfracloud.org/coprs/fed500/janus-gateway/build/4767717/

Comment 2 Renich Bon Ciric 2022-08-26 15:46:17 UTC
(In reply to Benson Muite from comment #1)
> fedora-review did not complete for me. Got the following error:
> 
> RPM build errors:
>     File must begin with "/": %{_unitdir}/janus-gateway.service
> Child return code was: 1
> EXCEPTION: [Error()]
> Traceback (most recent call last):
>   File "/usr/lib/python3.10/site-packages/mockbuild/trace_decorator.py",
> line 93
> , in trace
>     result = func(*args, **kw)
>   File "/usr/lib/python3.10/site-packages/mockbuild/util.py", line 598, in
> do_wi
> th_status
>     raise exception.Error("Command failed: \n # %s\n%s" % (command, output),
> chi
> ld.returncode)
> mockbuild.exception.Error: Command failed: 

Thanks you @ben for checking. I missed adding: BuildRequires: systemd-rpm-macros. I applied the change and updated the spec and SRPM files. 

Spec URL: https://pagure.io/janus-gateway/raw/master/f/janus-gateway.spec
SRPM URL: https://pagure.io/janus-gateway/raw/master/f/janus-gateway-1.0.4-2.fc36.src.rpm

I dunno if I'm supposed to bump the revision on each change, though, heh. Let me know if so. I did.

Comment 3 Benson Muite 2022-08-27 06:07:20 UTC
Thanks. Can probably also remove automake and autoconf, and add gcc see https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/#_packaging

Probably adding systemd to BuildRequires rather than systemd-rpm-macros would also work, but expect systemd-rpm-macros is fine.

Do all the tests need network access? IF not, it would be good to try to run those that do not.

Comment 4 Benson Muite 2022-08-27 09:35:15 UTC
Licenses used:

*No copyright* GNU General Public License, Version 3
----------------------------------------------------
janus-gateway-1.0.4/README.md
janus-gateway-1.0.4/bower.json
janus-gateway-1.0.4/npm/package.json
janus-gateway-1.0.4/package.json

BSD 3-Clause License
--------------------
janus-gateway-1.0.4/fuzzers/corpora/rtcp_fuzzer/2webrtc/LICENSE

MIT License
-----------
janus-gateway-1.0.4/html/janus.js
janus-gateway-1.0.4/src/plugins/duktape-deps/LICENSE.txt


Further issues when running fedora-review:

Issues:
=======
- Header files in -devel subpackage, if present.
  Note: janus-gateway : /usr/include/janus/apierror.h janus-gateway :
  /usr/include/janus/config.h janus-gateway : /usr/include/janus/debug.h
  janus-gateway : /usr/include/janus/events/eventhandler.h janus-gateway :
  /usr/include/janus/ip-utils.h janus-gateway : /usr/include/janus/log.h
  janus-gateway : /usr/include/janus/loggers/logger.h janus-gateway :
  /usr/include/janus/mutex.h janus-gateway :
  /usr/include/janus/plugins/plugin.h janus-gateway :
  /usr/include/janus/record.h janus-gateway : /usr/include/janus/refcount.h
  janus-gateway : /usr/include/janus/rtcp.h janus-gateway :
  /usr/include/janus/rtp.h janus-gateway : /usr/include/janus/rtpsrtp.h
  janus-gateway : /usr/include/janus/sdp-utils.h janus-gateway :
  /usr/include/janus/text2pcap.h janus-gateway :
  /usr/include/janus/transports/transport.h janus-gateway :
  /usr/include/janus/utils.h
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages
- If (and only if) the source package includes the text of the license(s)
  in its own file, then that file, containing the text of the license(s)
  for the package is included in %license.
  Note: License file COPYING.html is not marked as %license
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/LicensingGuidelines/#_license_text
- systemd_post is invoked in %post, systemd_preun in %preun, and
  systemd_postun in %postun for Systemd service files.
  Note: Systemd service file(s) in janus-gateway
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Scriptlets/#_scriptlets

Comment 5 Renich Bon Ciric 2022-08-30 23:36:05 UTC
You rock! i definitely owe you one. :D

Fixed most of the issues. Let me address a few, though:

> Do all the tests need network access? IF not, it would be good to try to run those that do not.

It seems that the tests deviate from the generally used: make test. Also, they're more of a functionality test than unit or integration tests. It requires pip and it spins up a janus-gateway server and uses python to test it's functionality. 

I'm in the process of getting this to work using mock. That said, I dunno if I want to do that in koji's minions... It's OK for local development but not so much for automated testing. My two cents on that...

> Licenses used:
>
> *No copyright* GNU General Public License, Version 3
> ----------------------------------------------------
> janus-gateway-1.0.4/README.md
> janus-gateway-1.0.4/bower.json
> janus-gateway-1.0.4/npm/package.json
> janus-gateway-1.0.4/package.json
>
> BSD 3-Clause License
> --------------------
> janus-gateway-1.0.4/fuzzers/corpora/rtcp_fuzzer/2webrtc/LICENSE
>
> MIT License
> -----------
> janus-gateway-1.0.4/html/janus.js
> janus-gateway-1.0.4/src/plugins/duktape-deps/LICENSE.txt

The BSD-3-Clause license covers the fuzzers. They do not get packaged, AFAICT. Do we include them and throw in the license anyway?

Also, the MIT license covers one of the plugin's deps. I dunno what to do in this case. Maybe just include the license as well?

What do you think? I appreciate your hard work, btw. :D

New sources at:

Spec URL: https://renich.fedorapeople.org/janus-gateway/janus-gateway.spec
SRPM URL: https://renich.fedorapeople.org/janus-gateway/janus-gateway-1.0.4-3.fc36.src.rpm

It was a bad idea to use pagure to publish these (the SRPM at least). Moved to fedorapeople.org.

Comment 6 Benson Muite 2022-09-03 12:59:34 UTC
Thanks for the update. Fedora Review now runs:

Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Package does not contain duplicates in %files.
  Note: warning: File listed twice: /usr/share/doc/janus-gateway/janus-
  gateway-1.0.4/html/COPYING.html
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_duplicate_files


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[?]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[?]: License field in the package spec file matches the actual license.
     Note: There is no build directory. Running licensecheck on vanilla
     upstream sources. No licenses found. Please check the source files for
     licenses manually.
[ ]: License file installed when any subpackage combination is installed.
[?]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[?]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/janus/demos,
     /usr/share/janus/javascript, /usr/lib64/janus/events,
     /usr/include/janus, /usr/share/janus/demos/docs,
     /usr/include/janus/plugins, /usr/include/janus/events,
     /usr/share/janus/demos/css, /etc/janus,
     /usr/share/janus/demos/surround, /usr/share/janus,
     /usr/include/janus/transports, /usr/include/janus/loggers,
     /usr/lib64/janus/plugins, /usr/share/janus/demos/background,
     /usr/share/janus/duktape, /usr/share/janus/streams, /usr/lib64/janus,
     /usr/share/janus/recordings, /usr/lib64/janus/transports,
     /usr/share/janus/lua
[?]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib64/janus,
     /usr/include/janus/loggers, /usr/share/janus/demos,
     /usr/share/janus/javascript, /usr/share/janus/demos/docs,
     /usr/include/janus/plugins, /usr/lib64/janus/plugins,
     /usr/share/janus/recordings, /usr/include/janus/events,
     /usr/lib64/janus/events, /usr/lib64/janus/transports,
     /usr/share/janus/demos/css, /etc/janus,
     /usr/share/janus/demos/background, /usr/share/janus/demos/surround,
     /usr/share/janus, /usr/include/janus, /usr/share/janus/lua,
     /usr/share/janus/duktape, /usr/share/doc/janus-gateway,
     /usr/share/janus/streams, /usr/include/janus/transports
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 112640 bytes in 3 files.
[?]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in janus-gateway
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[?]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in janus-
     gateway-devel
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[?]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 41953280 bytes in /usr/share janus-
     gateway-doc-1.0.4-3.fc38.x86_64.rpm:36935680
     See:
     https://fedoraproject.org/wiki/Packaging:ReviewGuidelines#Package_Review_Guidelines
[x]: Rpmlint is run on debuginfo package(s).
     Note: There are rpmlint messages (see attachment).
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Package should not use obsolete m4 macros
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Cannot parse rpmlint output:


Rpmlint (debuginfo)
-------------------
Cannot parse rpmlint output:



Rpmlint (installed packages)
----------------------------
Cannot parse rpmlint output:


Unversioned so-files
--------------------
janus-gateway: /usr/lib64/janus/events/libjanus_gelfevh.so
janus-gateway: /usr/lib64/janus/events/libjanus_mqttevh.so
janus-gateway: /usr/lib64/janus/events/libjanus_nanomsgevh.so
janus-gateway: /usr/lib64/janus/events/libjanus_rabbitmqevh.so
janus-gateway: /usr/lib64/janus/events/libjanus_sampleevh.so
janus-gateway: /usr/lib64/janus/events/libjanus_wsevh.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_audiobridge.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_duktape.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_echotest.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_lua.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_nosip.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_recordplay.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_sip.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_streaming.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_textroom.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_videocall.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_videoroom.so
janus-gateway: /usr/lib64/janus/plugins/libjanus_voicemail.so
janus-gateway: /usr/lib64/janus/transports/libjanus_http.so
janus-gateway: /usr/lib64/janus/transports/libjanus_mqtt.so
janus-gateway: /usr/lib64/janus/transports/libjanus_nanomsg.so
janus-gateway: /usr/lib64/janus/transports/libjanus_pfunix.so
janus-gateway: /usr/lib64/janus/transports/libjanus_rabbitmq.so
janus-gateway: /usr/lib64/janus/transports/libjanus_websockets.so

Source checksums
----------------
https://github.com/meetecho/janus-gateway/archive/refs/tags/v1.0.4.tar.gz :
  CHECKSUM(SHA256) this package     : 7af5b218074666faea85f096e9fae290f455382982b219d2c257cdfce6c
4b8a7
  CHECKSUM(SHA256) upstream package : 7af5b218074666faea85f096e9fae290f455382982b219d2c257cdfce6c
4b8a7


Requires
--------
janus-gateway (rpmlib, GLIBC filtered):
    /bin/sh
    libavcodec.so.59()(64bit)
    libavcodec.so.59(LIBAVCODEC_59)(64bit)
    libavformat.so.59()(64bit)
    libavformat.so.59(LIBAVFORMAT_59)(64bit)
    libavutil.so.57()(64bit)
    libavutil.so.57(LIBAVUTIL_57)(64bit)
    libc.so.6()(64bit)
    libconfig.so.11()(64bit)
    libcrypto.so.3()(64bit)
    libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    libcurl.so.4()(64bit)
    libduktape.so.206()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_audiobridge.so.0()(64bit)
    libjanus_duktape.so.0()(64bit)
    libjanus_echotest.so.0()(64bit)
    libjanus_gelfevh.so.0()(64bit)
    libjanus_http.so.0()(64bit)
    libjanus_lua.so.0()(64bit)
    libjanus_mqtt.so.0()(64bit)
    libjanus_mqttevh.so.0()(64bit)
    libjanus_nanomsg.so.0()(64bit)
    libjanus_nanomsgevh.so.0()(64bit)
    libjanus_nosip.so.0()(64bit)
    libjanus_pfunix.so.0()(64bit)
    libjanus_rabbitmq.so.0()(64bit)
    libjanus_rabbitmqevh.so.0()(64bit)
    libjanus_recordplay.so.0()(64bit)
    libjanus_sampleevh.so.0()(64bit)
    libjanus_sip.so.0()(64bit)
    libjanus_streaming.so.0()(64bit)
    libjanus_textroom.so.0()(64bit)
    libjanus_videocall.so.0()(64bit)
    libjanus_videoroom.so.0()(64bit)
    libjanus_voicemail.so.0()(64bit)
    libjanus_websockets.so.0()(64bit)
    libjanus_wsevh.so.0()(64bit)
    liblua-5.4.so()(64bit)
    libm.so.6()(64bit)
    libmicrohttpd.so.12()(64bit)
    libnanomsg.so.5()(64bit)
    libnice.so.10()(64bit)
    libogg.so.0()(64bit)
    libopus.so.0()(64bit)
    libpaho-mqtt3as.so.1()(64bit)
    librabbitmq.so.4()(64bit)
    libsofia-sip-ua.so.0()(64bit)
    libsrtp2.so.1()(64bit)
    libssl.so.3()(64bit)
    libssl.so.3(OPENSSL_3.0.0)(64bit)
    libusrsctp.so.2()(64bit)
    libwebsockets.so.19()(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)

janus-gateway-devel (rpmlib, GLIBC filtered):

janus-gateway-doc (rpmlib, GLIBC filtered):

janus-gateway-debuginfo (rpmlib, GLIBC filtered):

janus-gateway-debugsource (rpmlib, GLIBC filtered):



Provides
--------
janus-gateway:
    janus-gateway
    janus-gateway(x86-64)
    libjanus_audiobridge.so.0()(64bit)
    libjanus_duktape.so.0()(64bit)
    libjanus_echotest.so.0()(64bit)
    libjanus_gelfevh.so.0()(64bit)
    libjanus_http.so.0()(64bit)
    libjanus_lua.so.0()(64bit)
    libjanus_mqtt.so.0()(64bit)
    libjanus_mqttevh.so.0()(64bit)
    libjanus_nanomsg.so.0()(64bit)
    libjanus_nanomsgevh.so.0()(64bit)
    libjanus_nosip.so.0()(64bit)
    libjanus_pfunix.so.0()(64bit)
    libjanus_rabbitmq.so.0()(64bit)
    libjanus_rabbitmqevh.so.0()(64bit)
    libjanus_recordplay.so.0()(64bit)
    libjanus_sampleevh.so.0()(64bit)
    libjanus_sip.so.0()(64bit)
    libjanus_streaming.so.0()(64bit)
    libjanus_textroom.so.0()(64bit)
    libjanus_videocall.so.0()(64bit)
    libjanus_videoroom.so.0()(64bit)
    libjanus_voicemail.so.0()(64bit)
    libjanus_websockets.so.0()(64bit)
    libjanus_wsevh.so.0()(64bit)

janus-gateway-devel:
    janus-gateway-devel
    janus-gateway-devel(x86-64)

janus-gateway-doc:
    janus-gateway-doc
    janus-gateway-doc(x86-64)

janus-gateway-debuginfo:
    debuginfo(build-id)
    janus-gateway-debuginfo
    janus-gateway-debuginfo(x86-64)
    libjanus_audiobridge.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_duktape.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_echotest.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_gelfevh.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_http.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_lua.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_mqtt.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_mqttevh.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_nanomsg.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_nanomsgevh.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_nosip.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_pfunix.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_rabbitmq.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_rabbitmqevh.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_recordplay.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_sampleevh.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_sip.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_streaming.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_textroom.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_videocall.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_videoroom.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_voicemail.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_websockets.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)
    libjanus_wsevh.so.0.0.0-1.0.4-3.fc38.x86_64.debug()(64bit)

janus-gateway-debugsource:
    janus-gateway-debugsource
    janus-gateway-debugsource(x86-64)



Generated by fedora-review 0.8.0 (e988316) last change: 2022-04-07
Command line :/usr/bin/fedora-review -b 2121585
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, C/C++, Shell-api
Disabled plugins: SugarActivity, PHP, Java, Ocaml, Python, fonts, Perl, Haskell, R
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH


Comments:
a) Should the .sample files go in the documentation directory?
b) Might consider renaming
Source0:		https://github.com/meetecho/janus-gateway/archive/refs/tags/v1.0.4.tar.gz
to
Source0:		https://github.com/meetecho/%{name}/archive/v%{version}/%{name}_%{version}.tar.gz
c) May want to check codecs used are freely licensed
d) Can one use the libraries independently of the application? If so, they should be in a subpackage:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_library_or_application

Comment 7 Renich Bon Ciric 2022-09-14 19:29:43 UTC
OK, sorry for the delay. 

> a) Should the .sample files go in the documentation directory?

OK, done. Moved all sample files to %{_docdir} as part of the main package (not the -doc package). 

> b) Might consider renaming
> Source0:		https://github.com/meetecho/janus-gateway/archive/refs/tags/v1.0.4.tar.gz
> to
> Source0:		https://github.com/meetecho/%{name}/archive/v%{version}/%{name}_%{version}.tar.gz

Done... somewhat. You suggested %{name}_%{version} but I used %{name}-%{version}.

> c) May want to check codecs used are freely licensed

I dunno if it uses codecs. Check out this FAQ: https://janus.conf.meetecho.com/docs/FAQ.html#transcoding. FAQ 13 and 14 say it doesn't use them. The plugins might. I'll check on those and report shortly. 

> d) Can one use the libraries independently of the application? If so, they should be in a subpackage:
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#_library_or_application

I wonder which libraries do youmean? Most .so components are just plugins, transports and event handlers for use of Janus. 


All that said for c) and d), I am unsure of my arguments so I will join their mailing list and ask about these two.

Comment 9 Renich Bon Ciric 2022-09-21 17:46:36 UTC
OK, asked the questions and got a response from the developer:

https://groups.google.com/g/meetecho-janus/c/ESCW9mQJpYc/m/k1fXZQr0AQAJ

In short:

c) No codecs used by the main app. Only one plugin transcodes and uses free codecs (opus and G.711). All licenses are FOSS-friendly.
d) No. They're just components. 

I, also, asked about the modularity of the project. Lorenzo even encouraged me to sub-package everything (transports, event handlers and plugins). I dunno if that can be a phase 2 or should I do it from the start. What do you suggest, Benson?

OK, thanks again for the great effort. Nearly there! :D

Comment 10 Benson Muite 2022-09-21 18:05:55 UTC
Great. Can you subpackage?  This is helpful for re-usability.

Comment 11 Renich Bon Ciric 2022-09-22 04:29:17 UTC
Right on.

Here's the sub-packaged ... err... package:

Spec URL: https://renich.fedorapeople.org/janus-gateway/janus-gateway.spec
SRPM URL: https://renich.fedorapeople.org/janus-gateway/janus-gateway-1.0.4-5.fc36.src.rpm

Will check with Lorenzo (upstream) to see if the file distribution is OK.

Comment 12 Renich Bon Ciric 2022-09-23 18:54:55 UTC
Hello, Benson. 

So, I've had a conversation with upstream and Lorenzo has a few request:

https://groups.google.com/g/meetecho-janus/c/ESCW9mQJpYc/m/ylBv2-_hAgAJ


package rename
--------------
He's asking us to use "janus" only. "janus-gateway" is the old name and doesn't reflect janus' funcionality anymore; it's much more than a gateway now. 

He suggested a few names but, since Debian is using "janus" as a name, I think we can be consistent with that. 

I've just renamed the package and spec files. I dunno if there is any procedure to do this or if it's allowed. 

Should I rename the revew request as well? 
What do you think?


Reorganized some files
----------------------
I've moved files around as per Lorenzo's recommendations. 


Build dependencies
------------------
I've added libpcap-devel to the dependencies so that the "tools" sub-package includes pcap2mjr.


Meta-package for plugins
------------------------
Lorenzo suggested the possibility of using "macro packages" as he calls them. It is not uncommon in Fedora to use a meta package to include, say, all plugins. Is it OK to add the meta-package?


In any case, here're the updated spec and SRPM files. 

Spec URL: https://renich.fedorapeople.org/janus/janus.spec
SRPM URL: https://renich.fedorapeople.org/janus/janus-1.0.4-6.fc36.src.rpm

Comment 13 Benson Muite 2022-09-24 07:08:11 UTC
Renamed since this is used when creating the repository. Thanks for re-packaging and your engagement with upstream.

Comment 14 Renich Bon Ciric 2022-09-25 07:06:06 UTC
(In reply to Benson Muite from comment #13)
> Renamed since this is used when creating the repository. Thanks for
> re-packaging and your engagement with upstream.

Happy to do my part. Thank you as well. :D

Comment 15 Benson Muite 2022-10-01 17:21:16 UTC
Doc package should have 
BuildArch: noarch

Libraries need versioning, see https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shared_libraries

Comment 16 Benson Muite 2022-10-01 17:32:21 UTC
Unversioned so-files
--------------------
janus-eventhandlers-gelf: /usr/lib64/janus/events/libjanus_gelfevh.so
janus-eventhandlers-mqtt: /usr/lib64/janus/events/libjanus_mqttevh.so
janus-eventhandlers-nanomsg: /usr/lib64/janus/events/libjanus_nanomsgevh.so
janus-eventhandlers-rabbitmq: /usr/lib64/janus/events/libjanus_rabbitmqevh.so
janus-eventhandlers-sample: /usr/lib64/janus/events/libjanus_sampleevh.so
janus-eventhandlers-ws: /usr/lib64/janus/events/libjanus_wsevh.so
janus-loggers-json: /usr/lib64/janus/loggers/libjanus_jsonlog.so
janus-plugins-audiobridge: /usr/lib64/janus/plugins/libjanus_audiobridge.so
janus-plugins-duktape: /usr/lib64/janus/plugins/libjanus_duktape.so
janus-plugins-echotest: /usr/lib64/janus/plugins/libjanus_echotest.so
janus-plugins-lua: /usr/lib64/janus/plugins/libjanus_lua.so
janus-plugins-nosip: /usr/lib64/janus/plugins/libjanus_nosip.so
janus-plugins-recordplay: /usr/lib64/janus/plugins/libjanus_recordplay.so
janus-plugins-sip: /usr/lib64/janus/plugins/libjanus_sip.so
janus-plugins-streaming: /usr/lib64/janus/plugins/libjanus_streaming.so
janus-plugins-textroom: /usr/lib64/janus/plugins/libjanus_textroom.so
janus-plugins-videocall: /usr/lib64/janus/plugins/libjanus_videocall.so
janus-plugins-videoroom: /usr/lib64/janus/plugins/libjanus_videoroom.so
janus-plugins-voicemail: /usr/lib64/janus/plugins/libjanus_voicemail.so
janus-transports-http: /usr/lib64/janus/transports/libjanus_http.so
janus-transports-mqtt: /usr/lib64/janus/transports/libjanus_mqtt.so
janus-transports-nanomsg: /usr/lib64/janus/transports/libjanus_nanomsg.so
janus-transports-pfunix: /usr/lib64/janus/transports/libjanus_pfunix.so
janus-transports-rabbitmq: /usr/lib64/janus/transports/libjanus_rabbitmq.so
janus-transports-websockets: /usr/lib64/janus/transports/libjanus_websockets.so

Comment 18 Renich Bon Ciric 2022-10-03 19:16:52 UTC
Hello Benson,

(In reply to Benson Muite from comment #15)
> Doc package should have 
> BuildArch: noarch

I will add the doc arch immediately. 
 
> Libraries need versioning, see
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shared_libraries

Yeah, well, in this case they're modules/plugins. Very similar to what nginx uses: https://src.fedoraproject.org/rpms/nginx/blob/f34/f/nginx.spec#_556

That said, upstream has agreed to version those. https://groups.google.com/g/meetecho-janus/c/ESCW9mQJpYc/m/QuL6uwDlAgAJ

the only issue is that they're gonna add a three digit version: n.n.n. :S

Any suggestions in this regard?

(In reply to Benson Muite from comment #17)
> The html documentation has javascript and webassets:
> https://docs.fedoraproject.org/en-US/packaging-guidelines/JavaScript/
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Web_Assets/

I will read on and fix this as well. 

Thank you! :D

Comment 19 Renich Bon Ciric 2022-10-03 21:15:28 UTC
OK, about the web assets and javascript... the amout of work in order to get the demos and docs sub-packages overwhelmed me for now. I am thinking of removing those in order to push that part of the RPM a bit so I can get some guidance from someone that has done this and maintained this for a while. 

I dunno if this applies to the docs subpackage; since it's a doxygen generated documentation website. It's supposed to be useful only internally or offline, if you ask me. 

In any case, I think I will be removing those two sub-packages for now, unless you advise differently. 

This will leave us only with the plugin/module versioning dilemma.

What do you think?

For now, here's the SRPM and spec file without doc and demos:

Spec URL: https://renich.fedorapeople.org/janus/janus.spec
SRPM URL: https://renich.fedorapeople.org/janus/janus-1.0.4-7.fc36.src.rpm

Comment 20 Benson Muite 2022-10-04 08:43:55 UTC
Thanks for this useful package which will make video conferencing easier.  Some of these are packaged. See for example:
https://packages.fedoraproject.org/pkgs/js-jquery/js-jquery/

bootswatch, bootstrap are the other javascript libraries needed for the documentation. Doxygen also seems like it can generate man pages, https://www.doxygen.nl/manual/starting.html#man_out Would this work here?

The examples have many more javascript dependencies that would need to be packaged. Maybe these can be left out for now, or some exemption sought.

Comment 21 Renich Bon Ciric 2022-10-04 23:41:23 UTC
(In reply to Benson Muite from comment #20)
> Thanks for this useful package which will make video conferencing easier. 
> Some of these are packaged. See for example:
> https://packages.fedoraproject.org/pkgs/js-jquery/js-jquery/

Yeah, I took a look at this. The thing is that the jquery version required by the sites is way lower. This is why I don't know if it would be worthwhile to package. 

> bootswatch, bootstrap are the other javascript libraries needed for the
> documentation. 

I am not reluctant to package those. But, maybe, I can do it iteratively. First, release a version without those (for now) and, eventually, add those sub-packages as I package the dependencies. 

I mean, the demo and doc websites live online. They would be useful for offline setups. I think we can live without them for now. 

> Doxygen also seems like it can generate man pages,
> https://www.doxygen.nl/manual/starting.html#man_out Would this work here?

This is a good idea. I'll try it out definitely. At least provide the man pages. 

> The examples have many more javascript dependencies that would need to be
> packaged. Maybe these can be left out for now, or some exemption sought.

In the case of the demos subpackage, those js files are kind of specific to the demo itself. I don't think they're wirth packaging. Their only value is when used in the demo sites; which resides online as well: https://janus.conf.meetecho.com/demos.html

We don't loose much if we don't package those. 
We gain the ability to host them offline (for ourselves) if we include them. 

Let me try out the doxygen to man thing and I'll get back to you. Let me know what you think in the meantime.

Comment 22 Renich Bon Ciric 2022-10-05 00:57:08 UTC
OK, that was a minor success! :D

I was able to generate the man pages. I can create a patch to either just build the man pages and move them manually, or just do it the right way, tell upstream about it provide a patch. 

<mock-chroot> sh-5.1# ls -l docs/man/man3/
total 2656
-rw-r--r--. 1 root root 79912 Oct  5 00:46 CHANGELOG.3
-rw-r--r--. 1 root root 36182 Oct  5 00:46 COPYING.3
-rw-r--r--. 1 root root  2509 Oct  5 00:46 CREDITS.3
-rw-r--r--. 1 root root  2473 Oct  5 00:46 DEPS.3
-rw-r--r--. 1 root root 30322 Oct  5 00:46 FAQ.3
-rw-r--r--. 1 root root 38377 Oct  5 00:46 JS.3
-rw-r--r--. 1 root root 23884 Oct  5 00:46 README.3
-rw-r--r--. 1 root root  3960 Oct  5 00:46 _builddir_build_BUILD_janus-gateway-1.0.4_src_.3
-rw-r--r--. 1 root root   840 Oct  5 00:46 _builddir_build_BUILD_janus-gateway-1.0.4_src_events_.3
-rw-r--r--. 1 root root   366 Oct  5 00:46 _builddir_build_BUILD_janus-gateway-1.0.4_src_loggers_.3
-rw-r--r--. 1 root root  1888 Oct  5 00:46 _builddir_build_BUILD_janus-gateway-1.0.4_src_plugins_.3
-rw-r--r--. 1 root root  2998 Oct  5 00:46 _builddir_build_BUILD_janus-gateway-1.0.4_src_postprocessing_.3
-rw-r--r--. 1 root root   865 Oct  5 00:46 _builddir_build_BUILD_janus-gateway-1.0.4_src_transports_.3
-rw-r--r--. 1 root root 16594 Oct  5 00:46 admin.3
-rw-r--r--. 1 root root   754 Oct  5 00:46 apierror.c.3
-rw-r--r--. 1 root root  7392 Oct  5 00:46 apierror.h.3
-rw-r--r--. 1 root root 46311 Oct  5 00:46 audiobridge.3
-rw-r--r--. 1 root root 11938 Oct  5 00:46 auth.3
-rw-r--r--. 1 root root  8319 Oct  5 00:46 auth.c.3
-rw-r--r--. 1 root root  7863 Oct  5 00:46 auth.h.3
-rw-r--r--. 1 root root 13094 Oct  5 00:46 config.c.3
-rw-r--r--. 1 root root 15134 Oct  5 00:46 config.h.3
-rw-r--r--. 1 root root  3167 Oct  5 00:46 core.3
-rw-r--r--. 1 root root  4165 Oct  5 00:46 debug.3
-rw-r--r--. 1 root root  5242 Oct  5 00:46 debug.h.3
-rw-r--r--. 1 root root  9463 Oct  5 00:46 deploy.3
-rw-r--r--. 1 root root  1829 Oct  5 00:46 dtls-bio.c.3
-rw-r--r--. 1 root root  2351 Oct  5 00:46 dtls-bio.h.3
-rw-r--r--. 1 root root 10336 Oct  5 00:46 dtls.c.3
-rw-r--r--. 1 root root 11330 Oct  5 00:46 dtls.h.3
-rw-r--r--. 1 root root 10625 Oct  5 00:46 duktape.3
-rw-r--r--. 1 root root  4553 Oct  5 00:46 echotest.3
-rw-r--r--. 1 root root 15177 Oct  5 00:46 eventhandler.h.3
-rw-r--r--. 1 root root   717 Oct  5 00:46 eventhandlerapi.3
-rw-r--r--. 1 root root  1411 Oct  5 00:46 eventhandlers.3
-rw-r--r--. 1 root root  4384 Oct  5 00:46 events.c.3
-rw-r--r--. 1 root root  4179 Oct  5 00:46 events.h.3
-rw-r--r--. 1 root root  1096 Oct  5 00:46 extended_report_block.3
-rw-r--r--. 1 root root 47032 Oct  5 00:46 ice.c.3
-rw-r--r--. 1 root root 51392 Oct  5 00:46 ice.h.3
-rw-r--r--. 1 root root  2303 Oct  5 00:46 ide.3
-rw-r--r--. 1 root root 16350 Oct  5 00:46 ip-utils.c.3
-rw-r--r--. 1 root root 19863 Oct  5 00:46 ip-utils.h.3
-rw-r--r--. 1 root root  2405 Oct  5 00:46 janus-cfgconv.c.3
-rw-r--r--. 1 root root  9142 Oct  5 00:46 janus-pp-rec.c.3
-rw-r--r--. 1 root root 22019 Oct  5 00:46 janus.c.3
-rw-r--r--. 1 root root 21746 Oct  5 00:46 janus.h.3
-rw-r--r--. 1 root root 11148 Oct  5 00:46 janus_audiobridge.c.3
-rw-r--r--. 1 root root   764 Oct  5 00:46 janus_audiobridge_message.3
-rw-r--r--. 1 root root  5625 Oct  5 00:46 janus_audiobridge_participant.3
-rw-r--r--. 1 root root  1635 Oct  5 00:46 janus_audiobridge_plainrtp_media.3
-rw-r--r--. 1 root root  4458 Oct  5 00:46 janus_audiobridge_room.3
-rw-r--r--. 1 root root  1842 Oct  5 00:46 janus_audiobridge_rtp_forwarder.3
-rw-r--r--. 1 root root   983 Oct  5 00:46 janus_audiobridge_rtp_relay_packet.3
-rw-r--r--. 1 root root  1283 Oct  5 00:46 janus_audiobridge_session.3
-rw-r--r--. 1 root root  1723 Oct  5 00:46 janus_av1_svc_context.3
-rw-r--r--. 1 root root  1123 Oct  5 00:46 janus_av1_svc_template.3
-rw-r--r--. 1 root root  9279 Oct  5 00:46 janus_callbacks.3
-rw-r--r--. 1 root root   970 Oct  5 00:46 janus_config.3
-rw-r--r--. 1 root root  1356 Oct  5 00:46 janus_config_container.3
-rw-r--r--. 1 root root  4243 Oct  5 00:46 janus_dtls_srtp.3
-rw-r--r--. 1 root root  9008 Oct  5 00:46 janus_duktape.c.3
-rw-r--r--. 1 root root   906 Oct  5 00:46 janus_duktape_async_event.3
-rw-r--r--. 1 root root   746 Oct  5 00:46 janus_duktape_callback.3
-rw-r--r--. 1 root root  3364 Oct  5 00:46 janus_duktape_data.h.3
-rw-r--r--. 1 root root  2005 Oct  5 00:46 janus_duktape_extra.c.3
-rw-r--r--. 1 root root  1963 Oct  5 00:46 janus_duktape_extra.h.3
-rw-r--r--. 1 root root  1290 Oct  5 00:46 janus_duktape_rtp_relay_packet.3
-rw-r--r--. 1 root root  4281 Oct  5 00:46 janus_duktape_session.3
-rw-r--r--. 1 root root  7039 Oct  5 00:46 janus_echotest.c.3
-rw-r--r--. 1 root root   746 Oct  5 00:46 janus_echotest_message.3
-rw-r--r--. 1 root root  3353 Oct  5 00:46 janus_echotest_session.3
-rw-r--r--. 1 root root  6207 Oct  5 00:46 janus_eventhandler.3
-rw-r--r--. 1 root root  5573 Oct  5 00:46 janus_gelfevh.c.3
-rw-r--r--. 1 root root  7486 Oct  5 00:46 janus_http.c.3
-rw-r--r--. 1 root root  1752 Oct  5 00:46 janus_http_msg.3
-rw-r--r--. 1 root root   687 Oct  5 00:46 janus_http_request_timeout.3
-rw-r--r--. 1 root root   892 Oct  5 00:46 janus_http_session.3
-rw-r--r--. 1 root root  8401 Oct  5 00:46 janus_ice_handle.3
-rw-r--r--. 1 root root   745 Oct  5 00:46 janus_ice_nacked_packet.3
-rw-r--r--. 1 root root   658 Oct  5 00:46 janus_ice_outgoing_traffic.3
-rw-r--r--. 1 root root 10514 Oct  5 00:46 janus_ice_peerconnection.3
-rw-r--r--. 1 root root 11677 Oct  5 00:46 janus_ice_peerconnection_medium.3
-rw-r--r--. 1 root root  1335 Oct  5 00:46 janus_ice_queued_packet.3
-rw-r--r--. 1 root root  1029 Oct  5 00:46 janus_ice_static_event_loop.3
-rw-r--r--. 1 root root   957 Oct  5 00:46 janus_ice_stats.3
-rw-r--r--. 1 root root  1705 Oct  5 00:46 janus_ice_stats_info.3
-rw-r--r--. 1 root root  1451 Oct  5 00:46 janus_ice_trickle.3
-rw-r--r--. 1 root root   627 Oct  5 00:46 janus_json_parameter.3
-rw-r--r--. 1 root root  4506 Oct  5 00:46 janus_jsonlog.c.3
-rw-r--r--. 1 root root   487 Oct  5 00:46 janus_jsonlog_line.3
-rw-r--r--. 1 root root   672 Oct  5 00:46 janus_log_buffer.3
-rw-r--r--. 1 root root  5508 Oct  5 00:46 janus_logger.3
-rw-r--r--. 1 root root  8248 Oct  5 00:46 janus_lua.c.3
-rw-r--r--. 1 root root   862 Oct  5 00:46 janus_lua_async_event.3
-rw-r--r--. 1 root root   718 Oct  5 00:46 janus_lua_callback.3
-rw-r--r--. 1 root root  3163 Oct  5 00:46 janus_lua_data.h.3
-rw-r--r--. 1 root root  1907 Oct  5 00:46 janus_lua_extra.c.3
-rw-r--r--. 1 root root  1934 Oct  5 00:46 janus_lua_extra.h.3
-rw-r--r--. 1 root root  1238 Oct  5 00:46 janus_lua_rtp_relay_packet.3
-rw-r--r--. 1 root root  3985 Oct  5 00:46 janus_lua_session.3
-rw-r--r--. 1 root root 15072 Oct  5 00:46 janus_mqtt.c.3
-rw-r--r--. 1 root root  3743 Oct  5 00:46 janus_mqtt_context.3
-rw-r--r--. 1 root root  7184 Oct  5 00:46 janus_mqttevh.c.3
-rw-r--r--. 1 root root  3276 Oct  5 00:46 janus_mqttevh_context.3
-rw-r--r--. 1 root root   862 Oct  5 00:46 janus_nack.3
-rw-r--r--. 1 root root  6276 Oct  5 00:46 janus_nanomsg.c.3
-rw-r--r--. 1 root root   633 Oct  5 00:46 janus_nanomsg_client.3
-rw-r--r--. 1 root root  4277 Oct  5 00:46 janus_nanomsgevh.c.3
-rw-r--r--. 1 root root  1378 Oct  5 00:46 janus_network_address.3
-rw-r--r--. 1 root root  1546 Oct  5 00:46 janus_network_address_string_buffer.3
-rw-r--r--. 1 root root  1013 Oct  5 00:46 janus_network_query_config.3
-rw-r--r--. 1 root root  8210 Oct  5 00:46 janus_nosip.c.3
-rw-r--r--. 1 root root  5547 Oct  5 00:46 janus_nosip_media.3
-rw-r--r--. 1 root root   728 Oct  5 00:46 janus_nosip_message.3
-rw-r--r--. 1 root root  1799 Oct  5 00:46 janus_nosip_session.3
-rw-r--r--. 1 root root  4284 Oct  5 00:46 janus_options.3
-rw-r--r--. 1 root root  7322 Oct  5 00:46 janus_pfunix.c.3
-rw-r--r--. 1 root root   896 Oct  5 00:46 janus_pfunix_client.3
-rw-r--r--. 1 root root 11744 Oct  5 00:46 janus_plugin.3
-rw-r--r--. 1 root root  1499 Oct  5 00:46 janus_plugin_data.3
-rw-r--r--. 1 root root  1815 Oct  5 00:46 janus_plugin_result.3
-rw-r--r--. 1 root root  1440 Oct  5 00:46 janus_plugin_rtcp.3
-rw-r--r--. 1 root root  1617 Oct  5 00:46 janus_plugin_rtp.3
-rw-r--r--. 1 root root  2786 Oct  5 00:46 janus_plugin_rtp_extensions.3
-rw-r--r--. 1 root root  1385 Oct  5 00:46 janus_plugin_session.3
-rw-r--r--. 1 root root  1622 Oct  5 00:46 janus_pp_frame_packet.3
-rw-r--r--. 1 root root  1418 Oct  5 00:46 janus_pp_g711_wav.3
-rw-r--r--. 1 root root  1418 Oct  5 00:46 janus_pp_g722_wav.3
-rw-r--r--. 1 root root  1246 Oct  5 00:46 janus_pp_rtp_header.3
-rw-r--r--. 1 root root   565 Oct  5 00:46 janus_pp_rtp_header_extension.3
-rw-r--r--. 1 root root  1756 Oct  5 00:46 janus_pp_rtp_skew_context.3
-rw-r--r--. 1 root root  2525 Oct  5 00:46 janus_pprec_options.3
-rw-r--r--. 1 root root  8622 Oct  5 00:46 janus_rabbitmq.c.3
-rw-r--r--. 1 root root  1774 Oct  5 00:46 janus_rabbitmq_client.3
-rw-r--r--. 1 root root   606 Oct  5 00:46 janus_rabbitmq_response.3
-rw-r--r--. 1 root root  4524 Oct  5 00:46 janus_rabbitmqevh.c.3
-rw-r--r--. 1 root root  4289 Oct  5 00:46 janus_recorder.3
-rw-r--r--. 1 root root  9943 Oct  5 00:46 janus_recordplay.c.3
-rw-r--r--. 1 root root  1008 Oct  5 00:46 janus_recordplay_frame_packet.3
-rw-r--r--. 1 root root   758 Oct  5 00:46 janus_recordplay_message.3
-rw-r--r--. 1 root root  2629 Oct  5 00:46 janus_recordplay_recording.3
-rw-r--r--. 1 root root   564 Oct  5 00:46 janus_recordplay_rtp_header_extension.3
-rw-r--r--. 1 root root  4041 Oct  5 00:46 janus_recordplay_session.3
-rw-r--r--. 1 root root   801 Oct  5 00:46 janus_red_block.3
-rw-r--r--. 1 root root   772 Oct  5 00:46 janus_refcount.3
-rw-r--r--. 1 root root  2056 Oct  5 00:46 janus_request.3
-rw-r--r--. 1 root root   622 Oct  5 00:46 janus_rtp_header_extension.3
-rw-r--r--. 1 root root   876 Oct  5 00:46 janus_rtp_packet.3
-rw-r--r--. 1 root root  3171 Oct  5 00:46 janus_rtp_simulcasting_context.3
-rw-r--r--. 1 root root  2746 Oct  5 00:46 janus_rtp_switching_context.3
-rw-r--r--. 1 root root  4357 Oct  5 00:46 janus_sampleevh.c.3
-rw-r--r--. 1 root root  2413 Oct  5 00:46 janus_sdp.3
-rw-r--r--. 1 root root  1371 Oct  5 00:46 janus_sdp_attribute.3
-rw-r--r--. 1 root root   741 Oct  5 00:46 janus_sdp_mdns_candidate.3
-rw-r--r--. 1 root root  2674 Oct  5 00:46 janus_sdp_mline.3
-rw-r--r--. 1 root root   939 Oct  5 00:46 janus_seq_info.3
-rw-r--r--. 1 root root  2550 Oct  5 00:46 janus_session.3
-rw-r--r--. 1 root root 13186 Oct  5 00:46 janus_sip.c.3
-rw-r--r--. 1 root root  1741 Oct  5 00:46 janus_sip_account.3
-rw-r--r--. 1 root root  6341 Oct  5 00:46 janus_sip_media.3
-rw-r--r--. 1 root root   716 Oct  5 00:46 janus_sip_message.3
-rw-r--r--. 1 root root  3460 Oct  5 00:46 janus_sip_session.3
-rw-r--r--. 1 root root   836 Oct  5 00:46 janus_sip_transfer.3
-rw-r--r--. 1 root root   520 Oct  5 00:46 janus_sip_uri_t.3
-rw-r--r--. 1 root root 16950 Oct  5 00:46 janus_streaming.c.3
-rw-r--r--. 1 root root   733 Oct  5 00:46 janus_streaming_codecs.3
-rw-r--r--. 1 root root   655 Oct  5 00:46 janus_streaming_file_source.3
-rw-r--r--. 1 root root  1221 Oct  5 00:46 janus_streaming_helper.3
-rw-r--r--. 1 root root   752 Oct  5 00:46 janus_streaming_message.3
-rw-r--r--. 1 root root  2684 Oct  5 00:46 janus_streaming_mountpoint.3
-rw-r--r--. 1 root root   855 Oct  5 00:46 janus_streaming_rtp_keyframe.3
-rw-r--r--. 1 root root  2095 Oct  5 00:46 janus_streaming_rtp_relay_packet.3
-rw-r--r--. 1 root root  1816 Oct  5 00:46 janus_streaming_rtp_source.3
-rw-r--r--. 1 root root  4038 Oct  5 00:46 janus_streaming_rtp_source_stream.3
-rw-r--r--. 1 root root  2116 Oct  5 00:46 janus_streaming_session.3
-rw-r--r--. 1 root root  1974 Oct  5 00:46 janus_streaming_session_stream.3
-rw-r--r--. 1 root root  1548 Oct  5 00:46 janus_text2pcap.3
-rw-r--r--. 1 root root   634 Oct  5 00:46 janus_text2pcap_ethernet_header.3
-rw-r--r--. 1 root root  1040 Oct  5 00:46 janus_text2pcap_global_header.3
-rw-r--r--. 1 root root  1294 Oct  5 00:46 janus_text2pcap_ip_header.3
-rw-r--r--. 1 root root   726 Oct  5 00:46 janus_text2pcap_packet_header.3
-rw-r--r--. 1 root root   700 Oct  5 00:46 janus_text2pcap_udp_header.3
-rw-r--r--. 1 root root  9406 Oct  5 00:46 janus_textroom.c.3
-rw-r--r--. 1 root root   746 Oct  5 00:46 janus_textroom_message.3
-rw-r--r--. 1 root root  1107 Oct  5 00:46 janus_textroom_participant.3
-rw-r--r--. 1 root root  1726 Oct  5 00:46 janus_textroom_room.3
-rw-r--r--. 1 root root  1348 Oct  5 00:46 janus_textroom_session.3
-rw-r--r--. 1 root root  8982 Oct  5 00:46 janus_transport.3
-rw-r--r--. 1 root root  6363 Oct  5 00:46 janus_transport_callbacks.3
-rw-r--r--. 1 root root  1781 Oct  5 00:46 janus_transport_session.3
-rw-r--r--. 1 root root  8433 Oct  5 00:46 janus_videocall.c.3
-rw-r--r--. 1 root root   752 Oct  5 00:46 janus_videocall_message.3
-rw-r--r--. 1 root root  3657 Oct  5 00:46 janus_videocall_session.3
-rw-r--r--. 1 root root  3914 Oct  5 00:46 janus_videoroom.3
-rw-r--r--. 1 root root 12734 Oct  5 00:46 janus_videoroom.c.3
-rw-r--r--. 1 root root   752 Oct  5 00:46 janus_videoroom_message.3
-rw-r--r--. 1 root root  4228 Oct  5 00:46 janus_videoroom_publisher.3
-rw-r--r--. 1 root root  5651 Oct  5 00:46 janus_videoroom_publisher_stream.3
-rw-r--r--. 1 root root   701 Oct  5 00:46 janus_videoroom_rtcp_receiver.3
-rw-r--r--. 1 root root  2541 Oct  5 00:46 janus_videoroom_rtp_forwarder.3
-rw-r--r--. 1 root root  1816 Oct  5 00:46 janus_videoroom_rtp_relay_packet.3
-rw-r--r--. 1 root root  1517 Oct  5 00:46 janus_videoroom_session.3
-rw-r--r--. 1 root root   978 Oct  5 00:46 janus_videoroom_srtp_context.3
-rw-r--r--. 1 root root  2228 Oct  5 00:46 janus_videoroom_subscriber.3
-rw-r--r--. 1 root root  3351 Oct  5 00:46 janus_videoroom_subscriber_stream.3
-rw-r--r--. 1 root root  8687 Oct  5 00:46 janus_voicemail.c.3
-rw-r--r--. 1 root root   752 Oct  5 00:46 janus_voicemail_message.3
-rw-r--r--. 1 root root  1700 Oct  5 00:46 janus_voicemail_session.3
-rw-r--r--. 1 root root  1250 Oct  5 00:46 janus_vp8_simulcast_context.3
-rw-r--r--. 1 root root  1140 Oct  5 00:46 janus_vp9_svc_info.3
-rw-r--r--. 1 root root  7516 Oct  5 00:46 janus_websockets.c.3
-rw-r--r--. 1 root root  1209 Oct  5 00:46 janus_websockets_client.3
-rw-r--r--. 1 root root  4667 Oct  5 00:46 janus_wsevh.c.3
-rw-r--r--. 1 root root   838 Oct  5 00:46 janus_wsevh_client.3
-rw-r--r--. 1 root root  7727 Oct  5 00:46 js-dependencies.3
-rw-r--r--. 1 root root  6548 Oct  5 00:46 js-modules.3
-rw-r--r--. 1 root root  1197 Oct  5 00:46 jspapi.3
-rw-r--r--. 1 root root  3897 Oct  5 00:46 log.c.3
-rw-r--r--. 1 root root  3569 Oct  5 00:46 log.h.3
-rw-r--r--. 1 root root  6908 Oct  5 00:46 logger.h.3
-rw-r--r--. 1 root root   654 Oct  5 00:46 loggerapi.3
-rw-r--r--. 1 root root   883 Oct  5 00:46 loggers.3
-rw-r--r--. 1 root root 10373 Oct  5 00:46 lua.3
-rw-r--r--. 1 root root  1104 Oct  5 00:46 luapapi.3
-rw-r--r--. 1 root root  1398 Oct  5 00:46 mach_gettime.h.3
-rw-r--r--. 1 root root   247 Oct  5 00:46 mainpage.dox.3
-rw-r--r--. 1 root root  4375 Oct  5 00:46 mjr2pcap.c.3
-rw-r--r--. 1 root root   599 Oct  5 00:46 mjr2pcap_ethernet_header.3
-rw-r--r--. 1 root root   977 Oct  5 00:46 mjr2pcap_global_header.3
-rw-r--r--. 1 root root  1203 Oct  5 00:46 mjr2pcap_ip_header.3
-rw-r--r--. 1 root root   684 Oct  5 00:46 mjr2pcap_packet_header.3
-rw-r--r--. 1 root root   658 Oct  5 00:46 mjr2pcap_udp_header.3
-rw-r--r--. 1 root root   442 Oct  5 00:46 multiple_fds.3
-rw-r--r--. 1 root root  6617 Oct  5 00:46 mutex.h.3
-rw-r--r--. 1 root root  6628 Oct  5 00:46 nosip.3
-rw-r--r--. 1 root root  1150 Oct  5 00:46 options.c.3
-rw-r--r--. 1 root root  2025 Oct  5 00:46 options.h.3
-rw-r--r--. 1 root root  4158 Oct  5 00:46 pcap2mjr.c.3
-rw-r--r--. 1 root root   599 Oct  5 00:46 pcap2mjr_ethernet_header.3
-rw-r--r--. 1 root root  3733 Oct  5 00:46 plugin.c.3
-rw-r--r--. 1 root root 24454 Oct  5 00:46 plugin.h.3
-rw-r--r--. 1 root root   758 Oct  5 00:46 pluginapi.3
-rw-r--r--. 1 root root  1965 Oct  5 00:46 plugins.3
-rw-r--r--. 1 root root  1176 Oct  5 00:46 pluginslist.3
-rw-r--r--. 1 root root  3453 Oct  5 00:46 postprocessing.3
-rw-r--r--. 1 root root  1940 Oct  5 00:46 pp-av1.c.3
-rw-r--r--. 1 root root  1777 Oct  5 00:46 pp-av1.h.3
-rw-r--r--. 1 root root  1415 Oct  5 00:46 pp-avformat.c.3
-rw-r--r--. 1 root root  1861 Oct  5 00:46 pp-avformat.h.3
-rw-r--r--. 1 root root  1795 Oct  5 00:46 pp-binary.c.3
-rw-r--r--. 1 root root  1339 Oct  5 00:46 pp-binary.h.3
-rw-r--r--. 1 root root  2175 Oct  5 00:46 pp-g711.c.3
-rw-r--r--. 1 root root  1413 Oct  5 00:46 pp-g711.h.3
-rw-r--r--. 1 root root  1940 Oct  5 00:46 pp-g722.c.3
-rw-r--r--. 1 root root  1421 Oct  5 00:46 pp-g722.h.3
-rw-r--r--. 1 root root  1965 Oct  5 00:46 pp-h264.c.3
-rw-r--r--. 1 root root  1801 Oct  5 00:46 pp-h264.h.3
-rw-r--r--. 1 root root  1965 Oct  5 00:46 pp-h265.c.3
-rw-r--r--. 1 root root  1801 Oct  5 00:46 pp-h265.h.3
-rw-r--r--. 1 root root  1485 Oct  5 00:46 pp-options.c.3
-rw-r--r--. 1 root root  2467 Oct  5 00:46 pp-options.h.3
-rw-r--r--. 1 root root   704 Oct  5 00:46 pp-opus-silence.h.3
-rw-r--r--. 1 root root  1991 Oct  5 00:46 pp-opus.c.3
-rw-r--r--. 1 root root  1528 Oct  5 00:46 pp-opus.h.3
-rw-r--r--. 1 root root  2098 Oct  5 00:46 pp-rtp.h.3
-rw-r--r--. 1 root root  1684 Oct  5 00:46 pp-srt.c.3
-rw-r--r--. 1 root root  1383 Oct  5 00:46 pp-srt.h.3
-rw-r--r--. 1 root root  2113 Oct  5 00:46 pp-webm.c.3
-rw-r--r--. 1 root root  1804 Oct  5 00:46 pp-webm.h.3
-rw-r--r--. 1 root root  1734 Oct  5 00:46 protocols.3
-rw-r--r--. 1 root root  8732 Oct  5 00:46 record.c.3
-rw-r--r--. 1 root root 10152 Oct  5 00:46 record.h.3
-rw-r--r--. 1 root root  5424 Oct  5 00:46 recordings.3
-rw-r--r--. 1 root root  8740 Oct  5 00:46 recordplay.3
-rw-r--r--. 1 root root  9649 Oct  5 00:46 refcount.h.3
-rw-r--r--. 1 root root   969 Oct  5 00:46 report_block.3
-rw-r--r--. 1 root root  7249 Oct  5 00:46 resources.3
-rw-r--r--. 1 root root 35599 Oct  5 00:46 rest.3
-rw-r--r--. 1 root root 24024 Oct  5 00:46 rtcp.c.3
-rw-r--r--. 1 root root 34639 Oct  5 00:46 rtcp.h.3
-rw-r--r--. 1 root root   719 Oct  5 00:46 rtcp_app.3
-rw-r--r--. 1 root root   658 Oct  5 00:46 rtcp_bye.3
-rw-r--r--. 1 root root  3320 Oct  5 00:46 rtcp_context.3
-rw-r--r--. 1 root root   964 Oct  5 00:46 rtcp_fb.3
-rw-r--r--. 1 root root   937 Oct  5 00:46 rtcp_fir.3
-rw-r--r--. 1 root root   886 Oct  5 00:46 rtcp_header.3
-rw-r--r--. 1 root root   753 Oct  5 00:46 rtcp_nack.3
-rw-r--r--. 1 root root  1033 Oct  5 00:46 rtcp_remb.3
-rw-r--r--. 1 root root   766 Oct  5 00:46 rtcp_rr.3
-rw-r--r--. 1 root root   622 Oct  5 00:46 rtcp_sdes.3
-rw-r--r--. 1 root root   583 Oct  5 00:46 rtcp_sdes_chunk.3
-rw-r--r--. 1 root root   572 Oct  5 00:46 rtcp_sdes_item.3
-rw-r--r--. 1 root root   844 Oct  5 00:46 rtcp_sr.3
-rw-r--r--. 1 root root   861 Oct  5 00:46 rtcp_transport_wide_cc_stats.3
-rw-r--r--. 1 root root   780 Oct  5 00:46 rtcp_xr.3
-rw-r--r--. 1 root root 22770 Oct  5 00:46 rtp.c.3
-rw-r--r--. 1 root root 30627 Oct  5 00:46 rtp.h.3
-rw-r--r--. 1 root root  1293 Oct  5 00:46 rtp_header.3
-rw-r--r--. 1 root root  5459 Oct  5 00:46 rtpsrtp.h.3
-rw-r--r--. 1 root root  1732 Oct  5 00:46 sctp.c.3
-rw-r--r--. 1 root root  1090 Oct  5 00:46 sctp.h.3
-rw-r--r--. 1 root root 27220 Oct  5 00:46 sdp-utils.c.3
-rw-r--r--. 1 root root 33756 Oct  5 00:46 sdp-utils.h.3
-rw-r--r--. 1 root root  7782 Oct  5 00:46 sdp.c.3
-rw-r--r--. 1 root root  7311 Oct  5 00:46 sdp.h.3
-rw-r--r--. 1 root root   937 Oct  5 00:46 sender_info.3
-rw-r--r--. 1 root root  6826 Oct  5 00:46 service.3
-rw-r--r--. 1 root root 32053 Oct  5 00:46 sip.3
-rw-r--r--. 1 root root  1155 Oct  5 00:46 ssip_s.3
-rw-r--r--. 1 root root 40776 Oct  5 00:46 streaming.3
-rw-r--r--. 1 root root  6053 Oct  5 00:46 text2pcap.c.3
-rw-r--r--. 1 root root  6151 Oct  5 00:46 text2pcap.h.3
-rw-r--r--. 1 root root 18307 Oct  5 00:46 textroom.3
-rw-r--r--. 1 root root   737 Oct  5 00:46 tools.3
-rw-r--r--. 1 root root  2064 Oct  5 00:46 transport.c.3
-rw-r--r--. 1 root root 11190 Oct  5 00:46 transport.h.3
-rw-r--r--. 1 root root   823 Oct  5 00:46 transportapi.3
-rw-r--r--. 1 root root  1362 Oct  5 00:46 transports.3
-rw-r--r--. 1 root root   243 Oct  5 00:46 turnrest.c.3
-rw-r--r--. 1 root root   243 Oct  5 00:46 turnrest.h.3
-rw-r--r--. 1 root root 28532 Oct  5 00:46 utils.c.3
-rw-r--r--. 1 root root 38349 Oct  5 00:46 utils.h.3
-rw-r--r--. 1 root root   983 Oct  5 00:46 version.c.3
-rw-r--r--. 1 root root  1299 Oct  5 00:46 version.h.3
-rw-r--r--. 1 root root  8346 Oct  5 00:46 videocall.3
-rw-r--r--. 1 root root 75715 Oct  5 00:46 videoroom.3
-rw-r--r--. 1 root root  2948 Oct  5 00:46 voicemail.3
-rw-r--r--. 1 root root  1313 Oct  5 00:46 wav_header.3


I think I will work on the latter. Not too good with autotools yet, but i'm ready to do the reading. 

I, also, wonder about filename clashes. I wonder if this will introduce conflicts of some kind?

Comment 23 Benson Muite 2022-10-05 08:35:55 UTC
That is awesome.  If only other documentation generation tools could also generate man pages. Upstream seems responsive.  Perhaps work with them to have the man pages also generated in the Makefile.  Probably an option can be passed on what documentation files to generate.

Comment 24 Renich Bon Ciric 2022-10-18 22:45:06 UTC
OK, I just presented the case to Lorenzo (upstream) and he doesn't like the doxygen => man approach. He didn't even know it existed. ;D

https://groups.google.com/g/meetecho-janus/c/ESCW9mQJpYc/m/tQgtsCIQEAAJ

In any case, I asked him to take a look at it later on if he wanted. For now, I will have to focus on packaging the documentation and demos with Fedora-provided web resources. Lorenzo doesn't want to loose the demos either so this approach is the best one for now.

In any case, I have the v1.1.0 version packaged. The shared objects (plugins) are versioned now (independently from the package). 

Spec URL: https://fedorapeople.org/~renich/janus/janus.spec
SRPM URL: https://fedorapeople.org/~renich/janus/janus-1.1.0-1.fc36.src.rpm

In the meantime, I will work on patching the doxygen docs as well as the demo files.

Comment 25 Benson Muite 2022-10-19 05:29:55 UTC
Should the spec file have a Requires section? Requires brings in dependent packages needed when using Janus.  At the moment,
only BuildRequires are listed.

Perhaps consider only adding demo files that have minimal Javascript dependencies, or Javascript dependencies that are already packaged?

Comment 26 Benson Muite 2022-10-31 16:32:05 UTC
Typically .so files go in -devel packages and are softlinks to .so.* files, this also is true for subpackages.

Issues when running fedora-review:
a)
    Note: Directories without known owners: /usr/include/janus/events,
     /usr/share/janus/javascript, /usr/lib64/janus/plugins,
     /usr/lib64/janus/transports, /usr/lib64/janus/events,
     /usr/lib64/janus/loggers, /usr/share/janus/duktape,
     /usr/include/janus, /usr/share/janus, /usr/include/janus/loggers,
     /usr/include/janus/plugins, /usr/include/janus/transports,
     /usr/lib64/janus, /usr/share/janus/streams,
     /usr/share/janus/recordings, /etc/janus, /usr/share/janus/lua
b)
INFO: installing package(s): /builddir/janus-plugins-audiobridge-1.1.0-1.fc38.x86_64.rpm /builddir/janus-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-http-1.1.0-1.fc38.x86_64.rpm /builddir/janus-tools-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-recordplay-1.1.0-1.fc38.x86_64.rpm /builddir/janus-loggers-json-1.1.0-1.fc38.x86_64.rpm /builddir/janus-tools-1.1.0-1.fc38.x86_64.rpm /builddir/janus-loggers-json-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-nanomsg-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-videocall-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-echotest-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-duktape-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-voicemail-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-voicemail-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-duktape-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-rabbitmq-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-videoroom-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-streaming-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-lua-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-textroom-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-mqtt-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-pfunix-1.1.0-1.fc38.x86_64.rpm /builddir/janus-devel-1.1.0-1.fc38.x86_64.rpm /builddir/janus-debugsource-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-echotest-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-websockets-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-rabbitmq-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-sip-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-http-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-gelf-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-gelf-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-mqtt-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-nosip-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-rabbitmq-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-nosip-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-recordplay-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-websockets-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-streaming-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-ws-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-nanomsg-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-rabbitmq-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-nanomsg-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-sample-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-nanomsg-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-videoroom-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-videocall-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-audiobridge-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-sample-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-pfunix-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-ws-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-mqtt-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-sip-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-lua-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-mqtt-1.1.0-1.fc38.x86_64.rpm /builddir/janus-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-textroom-debuginfo-1.1.0-1.fc38.x86_64.rpm
ERROR: Command failed: 
 # /usr/bin/systemd-nspawn -q -M d79e9c67ebb847689873e491ada18b81 -D /var/lib/mock/fedora-rawhide-x86_64-bootstrap/root -a --capability=cap_ipc_lock --bind=/tmp/mock-resolv.yfyj9_8u:/etc/resolv.conf --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/var/lib/mock/fedora-rawhide-x86_64/root/installation-homedir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin --setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007" --setenv=PS1=<mock-chroot> \s-\v\$  --setenv=LANG=C.UTF-8 --setenv=LC_MESSAGES=C.UTF-8 --resolv-conf=off /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64/root/ --releasever 38 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk --disableplugin=versionlock install /builddir/janus-plugins-audiobridge-1.1.0-1.fc38.x86_64.rpm /builddir/janus-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-http-1.1.0-1.fc38.x86_64.rpm /builddir/janus-tools-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-recordplay-1.1.0-1.fc38.x86_64.rpm /builddir/janus-loggers-json-1.1.0-1.fc38.x86_64.rpm /builddir/janus-tools-1.1.0-1.fc38.x86_64.rpm /builddir/janus-loggers-json-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-nanomsg-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-videocall-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-echotest-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-duktape-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-voicemail-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-voicemail-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-duktape-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-rabbitmq-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-videoroom-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-streaming-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-lua-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-textroom-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-mqtt-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-pfunix-1.1.0-1.fc38.x86_64.rpm /builddir/janus-devel-1.1.0-1.fc38.x86_64.rpm /builddir/janus-debugsource-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-echotest-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-websockets-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-rabbitmq-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-sip-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-http-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-gelf-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-gelf-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-mqtt-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-nosip-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-rabbitmq-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-nosip-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-recordplay-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-websockets-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-streaming-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-ws-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-nanomsg-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-rabbitmq-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-nanomsg-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-sample-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-nanomsg-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-videoroom-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-videocall-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-audiobridge-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-sample-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-pfunix-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-eventhandlers-ws-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-mqtt-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-sip-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-lua-debuginfo-1.1.0-1.fc38.x86_64.rpm /builddir/janus-transports-mqtt-1.1.0-1.fc38.x86_64.rpm /builddir/janus-1.1.0-1.fc38.x86_64.rpm /builddir/janus-plugins-textroom-debuginfo-1.1.0-1.fc38.x86_64.rpm --setopt=tsflags=nocontexts

Comment 27 Renich Bon Ciric 2022-10-31 22:50:08 UTC
(In reply to Benson Muite from comment #25)
> Should the spec file have a Requires section? Requires brings in dependent
> packages needed when using Janus.  At the moment,
> only BuildRequires are listed.
> 
> Perhaps consider only adding demo files that have minimal Javascript
> dependencies, or Javascript dependencies that are already packaged?

Hello, Benson.

Well, the tools package has a requirement. Outside of it, janus, mostly, is standalone, AFAIK. I'll double-check, though. 

(In reply to Benson Muite from comment #26)
> Typically .so files go in -devel packages and are softlinks to .so.* files,
> this also is true for subpackages.

In this case, remember that the .so files (the versioned ones) are plugins. Very similar to NginX's modules. These are packaged in their respective sub-packages. 

I am hoping to add a meta-package so that all plugins can be installed easily. 
 
> Issues when running fedora-review:
> a)
>     Note: Directories without known owners: /usr/include/janus/events,
>      /usr/share/janus/javascript, /usr/lib64/janus/plugins,
>      /usr/lib64/janus/transports, /usr/lib64/janus/events,
>      /usr/lib64/janus/loggers, /usr/share/janus/duktape,
>      /usr/include/janus, /usr/share/janus, /usr/include/janus/loggers,
>      /usr/include/janus/plugins, /usr/include/janus/transports,
>      /usr/lib64/janus, /usr/share/janus/streams,
>      /usr/share/janus/recordings, /etc/janus, /usr/share/janus/lua

Ah, the directories. I will add them. Thanks for htis. 

> ...
> /builddir/janus-plugins-textroom-debuginfo-1.1.0-1.fc38.x86_64.rpm
> ERROR: Command failed: 
>  # /usr/bin/systemd-nspawn -q -M d79e9c67ebb847689873e491ada18b81 -D
> /var/lib/mock/fedora-rawhide-x86_64-bootstrap/root -a
> --capability=cap_ipc_lock --bind=/tmp/mock-resolv.yfyj9_8u:/etc/resolv.conf
> --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash
> --setenv=HOME=/var/lib/mock/fedora-rawhide-x86_64/root/installation-homedir
> --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin
> --setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007"
> --setenv=PS1=<mock-chroot> \s-\v\$  --setenv=LANG=C.UTF-8
> --setenv=LC_MESSAGES=C.UTF-8 --resolv-conf=off /usr/bin/dnf --installroot
> ...

It's not clear to me which command failed here and what the error was. :s

Comment 28 Renich Bon Ciric 2022-10-31 23:12:56 UTC
OK, fixes applied. The directories are now owned. 

Spec URL: https://fedorapeople.org/~renich/janus/janus.spec
SRPM URL: https://fedorapeople.org/~renich/janus/janus-1.1.0-3.fc36.src.rpm

I'm still working on figuring out the docs. I will see if I can submit a package review soon. Thank you for your help and your patience. :D

Comment 29 Benson Muite 2022-11-01 05:39:09 UTC
Ok. Fedora-review has problems with metapackages, so perhaps do that last.

It may be helpful to see the web assets guidelines:
https://docs.fedoraproject.org/en-US/packaging-guidelines/JavaScript/

Comment 30 Benson Muite 2022-11-14 05:29:39 UTC
For pulling in the main package dependency, perhaps use:
Requires: %{name}%{?_isa} = %{version}-%{release}
instead of
Requires: %{name} = %{version}

Comment 31 Renich Bon Ciric 2022-11-15 13:20:09 UTC
(In reply to Benson Muite from comment #30)
> For pulling in the main package dependency, perhaps use:
> Requires: %{name}%{?_isa} = %{version}-%{release}
> instead of
> Requires: %{name} = %{version}

Understood. I will do that today.

Comment 32 Renich Bon Ciric 2022-11-17 18:48:57 UTC
So, "today" came a little late, heh. :`)

Spec URL: https://fedorapeople.org/~renich/janus/janus.spec
SRPM URL: https://fedorapeople.org/~renich/janus/janus-1.1.0-3.fc36.src.rpm

Fixed what you asked in your comment from 2022-11-14. 

Trying to find some time to change the dependency of jquery to Fedora's and mark the others as bundled(); as Petr Menšík suggested here: https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/message/G4SR25UUCDF4EJCWUF5T5H4WENSUUO6B/

What do you think, Benson?

In any case, sorry for the huge delays.

Comment 33 Renich Bon Ciric 2022-11-17 18:49:48 UTC
Err, sorry; wrong link for the SRPM:

Spec URL: https://fedorapeople.org/~renich/janus/janus.spec
SRPM URL: https://fedorapeople.org/~renich/janus/janus-1.1.0-4.fc36.src.rpm

Comment 34 Benson Muite 2022-11-21 07:12:56 UTC
From fedora-review:
RPM build warnings:
    File listed twice: /etc/janus/janus.jcfg
    File listed twice: /usr/lib/.build-id/01/5e83451daacf185e261b495dc8c71463be54
ff
    File listed twice: /usr/lib/.build-id/03/8ee15b9494b1d96857f7e2637a8c9aa0c11a
e8
    File listed twice: /usr/lib/.build-id/06/1fc9fedeff2ad8005d617c1c6f44503af5bc
be
    File listed twice: /usr/lib/.build-id/0f/31a95390b207bb6ad7b50e70c52a5357322e
a1
    File listed twice: /usr/lib/.build-id/11/069fe29ae4ed6fcd53df791c217dfa69593e
9e
    File listed twice: /usr/lib/.build-id/16/baae4689156b02ce37018ebd55471d2ede95
86
    File listed twice: /usr/lib/.build-id/1e/2af89e5c851ed2bd825f7f3780ed8212a23f
02
    File listed twice: /usr/lib/.build-id/1f/e07a629dad38aec85cfd13ecbf518fcfd0a6
52
    File listed twice: /usr/lib/.build-id/56/0a874975cc6da95a1a2d1614d058f26e8ab8
be
    File listed twice: /usr/lib/.build-id/5e/02f7d31eea15586ccd7cb4616a0905c0b087
f5
    File listed twice: /usr/lib/.build-id/5e/752b2b4a8bfc09b65aca3331b1743af4765a
c9
    File listed twice: /usr/lib/.build-id/70/eada316e3d53e42e4f61f7f90e08bf676696
bb
    File listed twice: /usr/lib/.build-id/7a/51c52b9abb38de8b6684ceb46dd31065b403
98
    File listed twice: /usr/lib/.build-id/86/c1353912f03b8daa46efd37891170769308a
08
    File listed twice: /usr/lib/.build-id/92/2a12b64c01d93d22c89182bcfd606b5917c8
22
    File listed twice: /usr/lib/.build-id/9a/cecaa2018b0619c806f29c128f8e2b82e49c
06
    File listed twice: /usr/lib/.build-id/ab/ccdc38547e15a8ab99a8e0280aa41eeba74c
7c
    File listed twice: /usr/lib/.build-id/b5/1536bb0ac79b69a540563911ca3d953f3bae
d3
    File listed twice: /usr/lib/.build-id/c1/5b8a308ea61a433459cee7bbddac755b3341
89
    File listed twice: /usr/lib/.build-id/c2/e6ced91ccae6f0d3e42497596c873b0162e9
97
    File listed twice: /usr/lib/.build-id/c6/bea753c831d8d14bbb94bc5f4289de6a1eed
5f
    File listed twice: /usr/lib/.build-id/cd/c48948e17325e71ad55d0216861195e80051
b2
    File listed twice: /usr/lib/.build-id/f4/735863009e68823bfe6e2c53107722fd871e
f0
    File listed twice: /usr/lib/.build-id/f6/39a096f253f97965a4d1da63c8fd62f76733
81
    File listed twice: /usr/lib/.build-id/fb/f40b30a7ec978e5ac9320c3fa09a52f02274
d1
    File listed twice: /usr/lib64/janus/events
    File listed twice: /usr/lib64/janus/events/libjanus_gelfevh.so
    File listed twice: /usr/lib64/janus/events/libjanus_gelfevh.so.1
    File listed twice: /usr/lib64/janus/events/libjanus_gelfevh.so.1.0.1
    File listed twice: /usr/lib64/janus/events/libjanus_mqttevh.so
    File listed twice: /usr/lib64/janus/events/libjanus_mqttevh.so.1
    File listed twice: /usr/lib64/janus/events/libjanus_mqttevh.so.1.0.1
    File listed twice: /usr/lib64/janus/events/libjanus_nanomsgevh.so
    File listed twice: /usr/lib64/janus/events/libjanus_nanomsgevh.so.1
    File listed twice: /usr/lib64/janus/events/libjanus_nanomsgevh.so.1.0.1
    File listed twice: /usr/lib64/janus/events/libjanus_rabbitmqevh.so
    File listed twice: /usr/lib64/janus/events/libjanus_rabbitmqevh.so.1
    File listed twice: /usr/lib64/janus/events/libjanus_rabbitmqevh.so.1.0.1
    File listed twice: /usr/lib64/janus/events/libjanus_sampleevh.so
    File listed twice: /usr/lib64/janus/events/libjanus_sampleevh.so.1
    File listed twice: /usr/lib64/janus/events/libjanus_sampleevh.so.1.0.1
    File listed twice: /usr/lib64/janus/events/libjanus_wsevh.so
    File listed twice: /usr/lib64/janus/events/libjanus_wsevh.so.1
    File listed twice: /usr/lib64/janus/events/libjanus_wsevh.so.1.0.1
    File listed twice: /usr/lib64/janus/loggers
    File listed twice: /usr/lib64/janus/loggers/libjanus_jsonlog.so
    File listed twice: /usr/lib64/janus/loggers/libjanus_jsonlog.so.1
    File listed twice: /usr/lib64/janus/loggers/libjanus_jsonlog.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins
    File listed twice: /usr/lib64/janus/plugins/libjanus_audiobridge.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_audiobridge.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_audiobridge.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_duktape.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_duktape.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_duktape.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_echotest.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_echotest.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_echotest.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_lua.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_lua.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_lua.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_nosip.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_nosip.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_nosip.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_recordplay.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_recordplay.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_recordplay.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_sip.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_sip.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_sip.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_streaming.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_streaming.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_streaming.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_textroom.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_textroom.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_textroom.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_videocall.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_videocall.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_videocall.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_videoroom.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_videoroom.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_videoroom.so.1.0.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_voicemail.so
    File listed twice: /usr/lib64/janus/plugins/libjanus_voicemail.so.1
    File listed twice: /usr/lib64/janus/plugins/libjanus_voicemail.so.1.0.1
    File listed twice: /usr/lib64/janus/transports
    File listed twice: /usr/lib64/janus/transports/libjanus_http.so
    File listed twice: /usr/lib64/janus/transports/libjanus_http.so.1
    File listed twice: /usr/lib64/janus/transports/libjanus_http.so.1.0.1
    File listed twice: /usr/lib64/janus/transports/libjanus_mqtt.so
    File listed twice: /usr/lib64/janus/transports/libjanus_mqtt.so.1
    File listed twice: /usr/lib64/janus/transports/libjanus_mqtt.so.1.0.1
    File listed twice: /usr/lib64/janus/transports/libjanus_nanomsg.so
    File listed twice: /usr/lib64/janus/transports/libjanus_nanomsg.so.1
    File listed twice: /usr/lib64/janus/transports/libjanus_nanomsg.so.1.0.1
    File listed twice: /usr/lib64/janus/transports/libjanus_pfunix.so
    File listed twice: /usr/lib64/janus/transports/libjanus_pfunix.so.1
    File listed twice: /usr/lib64/janus/transports/libjanus_pfunix.so.1.0.1
    File listed twice: /usr/lib64/janus/transports/libjanus_rabbitmq.so
    File listed twice: /usr/lib64/janus/transports/libjanus_rabbitmq.so.1
    File listed twice: /usr/lib64/janus/transports/libjanus_rabbitmq.so.1.0.1
    File listed twice: /usr/lib64/janus/transports/libjanus_websockets.so
    File listed twice: /usr/lib64/janus/transports/libjanus_websockets.so.1
    File listed twice: /usr/lib64/janus/transports/libjanus_websockets.so.1.0.1
    File listed twice: /usr/share/janus/javascript
    File listed twice: /usr/share/janus/javascript/janus.js
    File listed twice: /usr/share/janus/javascript/janus.js
    File listed twice: /usr/include/janus/apierror.h
    File listed twice: /usr/include/janus/config.h
    File listed twice: /usr/include/janus/debug.h
    File listed twice: /usr/include/janus/events
    File listed twice: /usr/include/janus/events/eventhandler.h
    File listed twice: /usr/include/janus/events/eventhandler.h
    File listed twice: /usr/include/janus/ip-utils.h
    File listed twice: /usr/include/janus/log.h
    File listed twice: /usr/include/janus/loggers
    File listed twice: /usr/include/janus/loggers/logger.h
    File listed twice: /usr/include/janus/loggers/logger.h
    File listed twice: /usr/include/janus/mutex.h
    File listed twice: /usr/include/janus/plugins
    File listed twice: /usr/include/janus/plugins/plugin.h
    File listed twice: /usr/include/janus/plugins/plugin.h
    File listed twice: /usr/include/janus/record.h
    File listed twice: /usr/include/janus/refcount.h
    File listed twice: /usr/include/janus/rtcp.h
    File listed twice: /usr/include/janus/rtp.h
    File listed twice: /usr/include/janus/rtpsrtp.h
    File listed twice: /usr/include/janus/sdp-utils.h
    File listed twice: /usr/include/janus/text2pcap.h
    File listed twice: /usr/include/janus/transports
    File listed twice: /usr/include/janus/transports/transport.h
    File listed twice: /usr/include/janus/transports/transport.h
    File listed twice: /usr/include/janus/utils.h
    File listed twice: /usr/share/doc/janus/html/COPYING.html
    File listed twice: /usr/share/janus/duktape/echotest.js
    File listed twice: /usr/share/janus/duktape/janus-sdp.js
    File listed twice: /usr/share/janus/lua/echotest.lua
    File listed twice: /usr/share/janus/lua/janus-logger.lua
    File listed twice: /usr/share/janus/lua/janus-sdp.lua
    File listed twice: /usr/share/janus/lua/videoroom.lua
    File listed twice: /usr/share/janus/recordings/1234.nfo
    File listed twice: /usr/share/janus/recordings/rec-sample-audio.mjr
    File listed twice: /usr/share/janus/recordings/rec-sample-video.mjr
    File listed twice: /usr/share/janus/streams/music.mulaw
    File listed twice: /usr/share/janus/streams/radio.alaw
    File listed twice: /usr/share/janus/streams/test_gstreamer.sh
    File listed twice: /usr/share/janus/streams/test_gstreamer1.sh
    File listed twice: /usr/share/janus/streams/test_gstreamer1_multistream.sh
    File listed twice: /usr/share/janus/streams/test_gstreamer_multistream.sh

Comment 35 Renich Bon Ciric 2022-11-23 18:01:38 UTC
Ah, sorry for that. Made sure no ducplicate files are present anymore. Took the chance to list all files and stop using whole directories. I, also, built it using the fc37 target:

Spec URL: https://fedorapeople.org/~renich/janus/janus.spec
SRPM URL: https://fedorapeople.org/~renich/janus/janus-1.1.0-5.fc37.src.rpm

Comment 36 Renich Bon Ciric 2022-12-16 04:59:10 UTC
Hello,

I've updated to v1.1.1.

Spec URL: https://renich.fedorapeople.org/janus/janus.spec
SRPM URL: https://renich.fedorapeople.org/janus/janus-1.1.1-1.fc37.src.rpm

I've been kind of busy. I am planning to finish the documentation and examples issue (resources being pulled from a CDN) this weekend.

Just letting you know. :)

Comment 37 Renich Bon Ciric 2022-12-18 05:55:23 UTC
OK, finally, this should be the version that provides all bundled libraries while using jquery in docs and demos. Phew! That took a while. 

I've also added a: make check right after build. 

Spec URL: https://renich.fedorapeople.org/janus/janus.spec
SRPM URL: https://renich.fedorapeople.org/janus/janus-1.1.1-2.fc37.src.rpm

There were a lot of javascript and css resources being pulled from CDNs. I downloaded them all, put them in place and versioned them (because of name clashes between bootstrap-3.4.1 (bootstrap.min.css) and bootswatch-3.4.0 (bootstrap.min.css). 

I'll ask upstream to normalize this in the near future. 

In any case. Let me know what you think.

Comment 38 Benson Muite 2022-12-22 08:28:24 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Package installs properly.
  Note: Installation errors (see attachment)
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[ ]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* GNU General Public
     License, Version 3", "MIT License", "BSD 3-Clause License". 442 files
     have unknown license. Detailed output of licensecheck in
     /home/fedora-packaging/2121585-janus/licensecheck.txt
[ ]: License file installed when any subpackage combination is installed.
[ ]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[ ]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries without FPC exception.
[ ]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[ ]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[?]: Package is not known to require an ExcludeArch tag.
[ ]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 409600 bytes in 29 files.
[ ]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: %config files are marked noreplace or the reason is justified.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in janus
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[ ]: Final provides and requires are sane (see attachments).
[ ]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in janus-
     devel , janus-tools
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[ ]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[!]: Rpmlint is run on all installed packages.
     Note: Mock build failed
     See: https://docs.fedoraproject.org/en-US/packaging-
     guidelines/#_use_rpmlint
[!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 40837120 bytes in /usr/share janus-
     doc-1.1.1-2.fc38.aarch64.rpm:33054720
     See:
     https://fedoraproject.org/wiki/Packaging:ReviewGuidelines#Package_Review_Guidelines
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)
[x]: Package should not use obsolete m4 macros


Installation errors
-------------------
INFO: mock.py version 3.5 starting (python version = 3.11.1, NVR = mock-3.5-1.fc38)...
Start(bootstrap): init plugins
INFO: selinux enabled
Finish(bootstrap): init plugins
Start: init plugins
INFO: selinux enabled
Finish: init plugins
INFO: Signal handler active
Start: run
Start(bootstrap): chroot init
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled package manager cache
Start(bootstrap): cleaning package manager metadata
Finish(bootstrap): cleaning package manager metadata
INFO: enabled HW Info plugin
Mock Version: 3.5
INFO: Mock Version: 3.5
Finish(bootstrap): chroot init
Start: chroot init
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled package manager cache
Start: cleaning package manager metadata
Finish: cleaning package manager metadata
INFO: enabled HW Info plugin
Mock Version: 3.5
INFO: Mock Version: 3.5
Finish: chroot init
INFO: installing package(s): /builddir/janus-transports-websockets-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-mqtt-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-echotest-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-recordplay-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-tools-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-ws-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-mqtt-1.1.1-2.fc38.aarch64.rpm /builddir/janus-tools-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-mqtt-1.1.1-2.fc38.aarch64.rpm /builddir/janus-debugsource-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-ws-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-nanomsg-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-videoroom-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-lua-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-rabbitmq-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-duktape-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-nanomsg-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-pfunix-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-videocall-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-lua-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-nosip-1.1.1-2.fc38.aarch64.rpm /builddir/janus-doc-1.1.1-2.fc38.aarch64.rpm /builddir/janus-demos-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-textroom-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-http-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-sip-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-streaming-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-sample-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-videocall-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-echotest-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-voicemail-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-nanomsg-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-audiobridge-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-recordplay-1.1.1-2.fc38.aarch64.rpm /builddir/janus-devel-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-streaming-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-videoroom-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-pfunix-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-1.1.1-2.fc38.aarch64.rpm /builddir/janus-loggers-json-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-rabbitmq-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-nosip-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-websockets-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-mqtt-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-loggers-json-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-voicemail-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-sample-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-sip-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-gelf-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-gelf-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-audiobridge-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-http-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-rabbitmq-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-rabbitmq-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-duktape-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-nanomsg-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-textroom-debuginfo-1.1.1-2.fc38.aarch64.rpm
ERROR: Command failed: 
 # /usr/bin/systemd-nspawn -q -M 9de465640c6a45488a901113f0c0bd59 -D /var/lib/mock/fedora-rawhide-aarch64-bootstrap/root -a --capability=cap_ipc_lock --bind=/tmp/mock-resolv.cupfffe3:/etc/resolv.conf --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/var/lib/mock/fedora-rawhide-aarch64/root/installation-homedir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin --setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007" --setenv=PS1=<mock-chroot> \s-\v\$  --setenv=LANG=C.UTF-8 --setenv=LC_MESSAGES=C.UTF-8 --resolv-conf=off /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-aarch64/root/ --releasever 38 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk --disableplugin=versionlock install /builddir/janus-transports-websockets-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-mqtt-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-echotest-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-recordplay-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-tools-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-ws-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-mqtt-1.1.1-2.fc38.aarch64.rpm /builddir/janus-tools-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-mqtt-1.1.1-2.fc38.aarch64.rpm /builddir/janus-debugsource-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-ws-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-nanomsg-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-videoroom-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-lua-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-rabbitmq-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-duktape-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-nanomsg-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-pfunix-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-videocall-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-lua-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-nosip-1.1.1-2.fc38.aarch64.rpm /builddir/janus-doc-1.1.1-2.fc38.aarch64.rpm /builddir/janus-demos-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-textroom-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-http-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-sip-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-streaming-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-sample-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-videocall-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-echotest-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-voicemail-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-nanomsg-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-audiobridge-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-recordplay-1.1.1-2.fc38.aarch64.rpm /builddir/janus-devel-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-streaming-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-videoroom-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-pfunix-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-1.1.1-2.fc38.aarch64.rpm /builddir/janus-loggers-json-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-rabbitmq-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-nosip-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-websockets-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-mqtt-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-loggers-json-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-voicemail-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-sample-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-sip-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-gelf-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-eventhandlers-gelf-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-audiobridge-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-http-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-rabbitmq-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-rabbitmq-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-duktape-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-transports-nanomsg-debuginfo-1.1.1-2.fc38.aarch64.rpm /builddir/janus-plugins-textroom-debuginfo-1.1.1-2.fc38.aarch64.rpm --setopt=tsflags=nocontexts



Rpmlint
-------
Checking: janus-1.1.1-2.fc38.aarch64.rpm
          janus-demos-1.1.1-2.fc38.aarch64.rpm
          janus-devel-1.1.1-2.fc38.aarch64.rpm
          janus-doc-1.1.1-2.fc38.aarch64.rpm
          janus-eventhandlers-gelf-1.1.1-2.fc38.aarch64.rpm
          janus-eventhandlers-mqtt-1.1.1-2.fc38.aarch64.rpm
          janus-eventhandlers-nanomsg-1.1.1-2.fc38.aarch64.rpm
          janus-eventhandlers-rabbitmq-1.1.1-2.fc38.aarch64.rpm
          janus-eventhandlers-sample-1.1.1-2.fc38.aarch64.rpm
          janus-eventhandlers-ws-1.1.1-2.fc38.aarch64.rpm
          janus-loggers-json-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-audiobridge-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-duktape-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-echotest-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-lua-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-nosip-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-recordplay-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-sip-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-streaming-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-textroom-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-videocall-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-videoroom-1.1.1-2.fc38.aarch64.rpm
          janus-plugins-voicemail-1.1.1-2.fc38.aarch64.rpm
          janus-tools-1.1.1-2.fc38.aarch64.rpm
          janus-transports-http-1.1.1-2.fc38.aarch64.rpm
          janus-transports-mqtt-1.1.1-2.fc38.aarch64.rpm
          janus-transports-nanomsg-1.1.1-2.fc38.aarch64.rpm
          janus-transports-pfunix-1.1.1-2.fc38.aarch64.rpm
          janus-transports-rabbitmq-1.1.1-2.fc38.aarch64.rpm
          janus-transports-websockets-1.1.1-2.fc38.aarch64.rpm
          janus-debuginfo-1.1.1-2.fc38.aarch64.rpm
          janus-debugsource-1.1.1-2.fc38.aarch64.rpm
          janus-1.1.1-2.fc38.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpehkywi5h')]
checks: 31, packages: 33

janus-plugins-audiobridge.aarch64: E: summary-too-long This is a plugin implementing an audio conference bridge for janus, specifically mixing Opus streams
janus-plugins-duktape.aarch64: E: summary-too-long This is a plugin that implements a simple bridge to JavaScript via Duktape for janus
janus-plugins-echotest.aarch64: E: summary-too-long This is a trivial EchoTest plugin for janus, just used to showcase the plugin interface
janus-plugins-nosip.aarch64: E: summary-too-long This is quite a basic plugin, as it only takes care of acting as an RTP bridge for janus
janus-plugins-sip.aarch64: E: summary-too-long Allows WebRTC peers to register at a SIP server and call SIP user agents through janus
janus-plugins-videocall.aarch64: E: summary-too-long This is a simple video call plugin, allowing two WebRTC peers to call each other through janus
janus-plugins-videoroom.aarch64: E: summary-too-long This is a plugin implementing a videoconferencing SFU for janus, that is an audio/video router
janus-transports-http.aarch64: E: summary-too-long This is an implementation of a RESTs transport for the janus API, using the libmicrohttpd library
janus-transports-mqtt.aarch64: E: summary-too-long This is an implementation of a MQTT transport for the janus API, using the Eclipse Paho C Client library
janus-plugins-streaming.aarch64: E: non-executable-script /usr/share/janus/streams/test_gstreamer.sh 644 /bin/sh
janus-plugins-streaming.aarch64: E: non-executable-script /usr/share/janus/streams/test_gstreamer1.sh 644 /bin/sh
janus-plugins-streaming.aarch64: E: non-executable-script /usr/share/janus/streams/test_gstreamer1_multistream.sh 644 /bin/sh
janus-plugins-streaming.aarch64: E: non-executable-script /usr/share/janus/streams/test_gstreamer_multistream.sh 644 /bin/sh
janus-demos.aarch64: W: no-documentation
janus-devel.aarch64: W: no-documentation
janus-demos.aarch64: E: no-binary
janus-doc.aarch64: E: no-binary
janus.aarch64: W: name-repeated-in-summary Janus
janus.src: W: name-repeated-in-summary Janus
janus.spec:2276: W: macro-in-%changelog %check
janus-doc.aarch64: W: files-duplicate /usr/share/doc/janus/html/search/variables_10.js /usr/share/doc/janus/html/search/all_10.js
janus-doc.aarch64: W: files-duplicate /usr/share/doc/janus/html/search/variables_a.js /usr/share/doc/janus/html/search/all_a.js
janus-eventhandlers-gelf.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/events/libjanus_gelfevh.so
janus-eventhandlers-mqtt.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/events/libjanus_mqttevh.so
janus-eventhandlers-nanomsg.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/events/libjanus_nanomsgevh.so
janus-eventhandlers-rabbitmq.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/events/libjanus_rabbitmqevh.so
janus-eventhandlers-sample.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/events/libjanus_sampleevh.so
janus-eventhandlers-ws.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/events/libjanus_wsevh.so
janus-loggers-json.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/loggers/libjanus_jsonlog.so
janus-plugins-audiobridge.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_audiobridge.so
janus-plugins-duktape.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_duktape.so
janus-plugins-echotest.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_echotest.so
janus-plugins-lua.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_lua.so
janus-plugins-nosip.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_nosip.so
janus-plugins-recordplay.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_recordplay.so
janus-plugins-sip.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_sip.so
janus-plugins-streaming.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_streaming.so
janus-plugins-textroom.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_textroom.so
janus-plugins-videocall.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_videocall.so
janus-plugins-videoroom.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_videoroom.so
janus-plugins-voicemail.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/plugins/libjanus_voicemail.so
janus-transports-http.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/transports/libjanus_http.so
janus-transports-mqtt.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/transports/libjanus_mqtt.so
janus-transports-nanomsg.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/transports/libjanus_nanomsg.so
janus-transports-pfunix.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/transports/libjanus_pfunix.so
janus-transports-rabbitmq.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/transports/libjanus_rabbitmq.so
janus-transports-websockets.aarch64: W: devel-file-in-non-devel-package /usr/lib64/janus/transports/libjanus_websockets.so
janus-eventhandlers-nanomsg.aarch64: W: description-shorter-than-summary
janus-tools.aarch64: W: description-shorter-than-summary
janus-plugins-audiobridge.aarch64: E: description-line-too-long This is a plugin implementing an audio conference bridge for janus, specifically mixing Opus streams
janus-plugins-duktape.aarch64: E: description-line-too-long This is a plugin that implements a simple bridge to JavaScript via Duktape for janus
janus-plugins-echotest.aarch64: E: description-line-too-long This is a trivial EchoTest plugin for janus, just used to showcase the plugin interface
janus-plugins-nosip.aarch64: E: description-line-too-long This is quite a basic plugin, as it only takes care of acting as an RTP bridge for janus
janus-plugins-recordplay.aarch64: E: description-line-too-long This is a simple application that implements two different features for janus: it allows you to record a message you send with
janus-plugins-recordplay.aarch64: E: description-line-too-long WebRTC and subsequently replay this recording (or other previously recorded) through WebRTC as well
janus-plugins-sip.aarch64: E: description-line-too-long This is a simple SIP plugin for Janus, allowing WebRTC peers to register at a SIP server (e.g., Asterisk) and call SIP user agents
janus-plugins-streaming.aarch64: E: description-line-too-long This is a streaming plugin for janus, allowing WebRTC peers to watch/listen to pre-recorded files or media generated by another tool
janus-plugins-videocall.aarch64: E: description-line-too-long This is a simple video call plugin for Janus, allowing two WebRTC peers to call each other through janus
janus-plugins-videoroom.aarch64: E: description-line-too-long This is a plugin implementing a videoconferencing SFU (Selective Forwarding Unit) for janus, that is an audio/video router
janus-transports-http.aarch64: E: description-line-too-long This is an implementation of a RESTs transport for the janus API, using the libmicrohttpd library
janus-transports-mqtt.aarch64: E: description-line-too-long This is an implementation of a MQTT transport for the janus API, using the Eclipse Paho C Client library
janus.aarch64: W: crypto-policy-non-compliance-openssl /usr/bin/janus SSL_CTX_set_cipher_list
janus-plugins-audiobridge.aarch64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/janus/plugins/libjanus_audiobridge.so.0.1.1
janus-plugins-nosip.aarch64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/janus/plugins/libjanus_nosip.so.0.1.1
janus-plugins-sip.aarch64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/janus/plugins/libjanus_sip.so.0.1.1
 33 packages and 0 specfiles checked; 27 errors, 38 warnings, 27 badness; has taken 9.7 s 




Unversioned so-files
--------------------
janus-eventhandlers-gelf: /usr/lib64/janus/events/libjanus_gelfevh.so
janus-eventhandlers-mqtt: /usr/lib64/janus/events/libjanus_mqttevh.so
janus-eventhandlers-nanomsg: /usr/lib64/janus/events/libjanus_nanomsgevh.so
janus-eventhandlers-rabbitmq: /usr/lib64/janus/events/libjanus_rabbitmqevh.so
janus-eventhandlers-sample: /usr/lib64/janus/events/libjanus_sampleevh.so
janus-eventhandlers-ws: /usr/lib64/janus/events/libjanus_wsevh.so
janus-loggers-json: /usr/lib64/janus/loggers/libjanus_jsonlog.so
janus-plugins-audiobridge: /usr/lib64/janus/plugins/libjanus_audiobridge.so
janus-plugins-duktape: /usr/lib64/janus/plugins/libjanus_duktape.so
janus-plugins-echotest: /usr/lib64/janus/plugins/libjanus_echotest.so
janus-plugins-lua: /usr/lib64/janus/plugins/libjanus_lua.so
janus-plugins-nosip: /usr/lib64/janus/plugins/libjanus_nosip.so
janus-plugins-recordplay: /usr/lib64/janus/plugins/libjanus_recordplay.so
janus-plugins-sip: /usr/lib64/janus/plugins/libjanus_sip.so
janus-plugins-streaming: /usr/lib64/janus/plugins/libjanus_streaming.so
janus-plugins-textroom: /usr/lib64/janus/plugins/libjanus_textroom.so
janus-plugins-videocall: /usr/lib64/janus/plugins/libjanus_videocall.so
janus-plugins-videoroom: /usr/lib64/janus/plugins/libjanus_videoroom.so
janus-plugins-voicemail: /usr/lib64/janus/plugins/libjanus_voicemail.so
janus-transports-http: /usr/lib64/janus/transports/libjanus_http.so
janus-transports-mqtt: /usr/lib64/janus/transports/libjanus_mqtt.so
janus-transports-nanomsg: /usr/lib64/janus/transports/libjanus_nanomsg.so
janus-transports-pfunix: /usr/lib64/janus/transports/libjanus_pfunix.so
janus-transports-rabbitmq: /usr/lib64/janus/transports/libjanus_rabbitmq.so
janus-transports-websockets: /usr/lib64/janus/transports/libjanus_websockets.so

Source checksums
----------------
https://github.com/meetecho/janus-gateway/archive/v1.1.1/janus-1.1.1.tar.gz :
  CHECKSUM(SHA256) this package     : bb83c19d6137e39833e8eb2b1deeecb33b5d19d4f503d51703bdcc478c447940
  CHECKSUM(SHA256) upstream package : bb83c19d6137e39833e8eb2b1deeecb33b5d19d4f503d51703bdcc478c447940


Requires
--------
janus (rpmlib, GLIBC filtered):
    /bin/sh
    config(janus)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libconfig.so.11()(64bit)
    libcrypto.so.3()(64bit)
    libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    libcurl.so.4()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libnice.so.10()(64bit)
    libsrtp2.so.1()(64bit)
    libssl.so.3()(64bit)
    libssl.so.3(OPENSSL_3.0.0)(64bit)
    libusrsctp.so.2()(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)

janus-demos (rpmlib, GLIBC filtered):
    janus(aarch-64)
    js-jquery

janus-devel (rpmlib, GLIBC filtered):

janus-doc (rpmlib, GLIBC filtered):
    js-query

janus-eventhandlers-gelf (rpmlib, GLIBC filtered):
    config(janus-eventhandlers-gelf)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_gelfevh.so.0()(64bit)
    rtld(GNU_HASH)

janus-eventhandlers-mqtt (rpmlib, GLIBC filtered):
    config(janus-eventhandlers-mqtt)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_mqttevh.so.0()(64bit)
    libpaho-mqtt3as.so.1()(64bit)
    rtld(GNU_HASH)

janus-eventhandlers-nanomsg (rpmlib, GLIBC filtered):
    config(janus-eventhandlers-nanomsg)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_nanomsgevh.so.0()(64bit)
    libnanomsg.so.5()(64bit)
    rtld(GNU_HASH)

janus-eventhandlers-rabbitmq (rpmlib, GLIBC filtered):
    config(janus-eventhandlers-rabbitmq)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_rabbitmqevh.so.0()(64bit)
    librabbitmq.so.4()(64bit)
    rtld(GNU_HASH)

janus-eventhandlers-sample (rpmlib, GLIBC filtered):
    config(janus-eventhandlers-sample)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libcurl.so.4()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_sampleevh.so.0()(64bit)
    libm.so.6()(64bit)
    rtld(GNU_HASH)

janus-eventhandlers-ws (rpmlib, GLIBC filtered):
    config(janus-eventhandlers-ws)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_wsevh.so.0()(64bit)
    libwebsockets.so.19()(64bit)
    rtld(GNU_HASH)

janus-loggers-json (rpmlib, GLIBC filtered):
    config(janus-loggers-json)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_jsonlog.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-audiobridge (rpmlib, GLIBC filtered):
    config(janus-plugins-audiobridge)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_audiobridge.so.0()(64bit)
    libogg.so.0()(64bit)
    libopus.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-duktape (rpmlib, GLIBC filtered):
    config(janus-plugins-duktape)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libduktape.so.207()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_duktape.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-echotest (rpmlib, GLIBC filtered):
    config(janus-plugins-echotest)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_echotest.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-lua (rpmlib, GLIBC filtered):
    config(janus-plugins-lua)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_lua.so.0()(64bit)
    liblua-5.4.so()(64bit)
    libm.so.6()(64bit)
    rtld(GNU_HASH)

janus-plugins-nosip (rpmlib, GLIBC filtered):
    config(janus-plugins-nosip)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_nosip.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-recordplay (rpmlib, GLIBC filtered):
    config(janus-plugins-recordplay)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_recordplay.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-sip (rpmlib, GLIBC filtered):
    config(janus-plugins-sip)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_sip.so.0()(64bit)
    libsofia-sip-ua.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-streaming (rpmlib, GLIBC filtered):
    config(janus-plugins-streaming)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libcurl.so.4()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_streaming.so.0()(64bit)
    libogg.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-textroom (rpmlib, GLIBC filtered):
    config(janus-plugins-textroom)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_textroom.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-videocall (rpmlib, GLIBC filtered):
    config(janus-plugins-videocall)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_videocall.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-videoroom (rpmlib, GLIBC filtered):
    config(janus-plugins-videoroom)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_videoroom.so.0()(64bit)
    rtld(GNU_HASH)

janus-plugins-voicemail (rpmlib, GLIBC filtered):
    config(janus-plugins-voicemail)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_voicemail.so.0()(64bit)
    libogg.so.0()(64bit)
    rtld(GNU_HASH)

janus-tools (rpmlib, GLIBC filtered):
    gstreamer1.0-plugins-good
    ld-linux-aarch64.so.1()(64bit)
    libavcodec.so.59()(64bit)
    libavcodec.so.59(LIBAVCODEC_59)(64bit)
    libavformat.so.59()(64bit)
    libavformat.so.59(LIBAVFORMAT_59)(64bit)
    libavutil.so.57()(64bit)
    libavutil.so.57(LIBAVUTIL_57)(64bit)
    libc.so.6()(64bit)
    libcrypto.so.3()(64bit)
    libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libpcap.so.1()(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)

janus-transports-http (rpmlib, GLIBC filtered):
    config(janus-transports-http)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_http.so.0()(64bit)
    libmicrohttpd.so.12()(64bit)
    rtld(GNU_HASH)

janus-transports-mqtt (rpmlib, GLIBC filtered):
    config(janus-transports-mqtt)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_mqtt.so.0()(64bit)
    libpaho-mqtt3as.so.1()(64bit)
    rtld(GNU_HASH)

janus-transports-nanomsg (rpmlib, GLIBC filtered):
    config(janus-transports-nanomsg)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_nanomsg.so.0()(64bit)
    libnanomsg.so.5()(64bit)
    rtld(GNU_HASH)

janus-transports-pfunix (rpmlib, GLIBC filtered):
    config(janus-transports-pfunix)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_pfunix.so.0()(64bit)
    libsystemd.so.0()(64bit)
    libsystemd.so.0(LIBSYSTEMD_209)(64bit)
    rtld(GNU_HASH)

janus-transports-rabbitmq (rpmlib, GLIBC filtered):
    config(janus-transports-rabbitmq)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_rabbitmq.so.0()(64bit)
    librabbitmq.so.4()(64bit)
    rtld(GNU_HASH)

janus-transports-websockets (rpmlib, GLIBC filtered):
    config(janus-transports-websockets)
    janus(aarch-64)
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libglib-2.0.so.0()(64bit)
    libjansson.so.4()(64bit)
    libjanus_websockets.so.0()(64bit)
    libwebsockets.so.19()(64bit)
    rtld(GNU_HASH)

janus-debuginfo (rpmlib, GLIBC filtered):

janus-debugsource (rpmlib, GLIBC filtered):



Provides
--------
janus:
    config(janus)
    group(janus)
    janus
    janus(aarch-64)
    user(janus)

janus-demos:
    bundled(bootstrap-slider)
    bundled(bootswatch-cerulean)
    bundled(js-blueimp-md5)
    bundled(js-bootbox)
    bundled(js-bootstrap)
    bundled(js-bootstrap-slider)
    bundled(js-jquery)
    bundled(js-jquery.blockUI)
    bundled(js-selfie_segmentation)
    bundled(js-spin)
    bundled(js-toastr)
    bundled(js-webrtc-adapter)
    bundled(toastr)
    janus-demos
    janus-demos(aarch-64)

janus-devel:
    janus-devel
    janus-devel(aarch-64)

janus-doc:
    bundled(bootswatch-cerulean)
    bundled(js-bootstrap)
    janus-doc
    janus-doc(aarch-64)

janus-eventhandlers-gelf:
    config(janus-eventhandlers-gelf)
    janus-eventhandlers-gelf
    janus-eventhandlers-gelf(aarch-64)
    libjanus_gelfevh.so.0()(64bit)

janus-eventhandlers-mqtt:
    config(janus-eventhandlers-mqtt)
    janus-eventhandlers-mqtt
    janus-eventhandlers-mqtt(aarch-64)
    libjanus_mqttevh.so.0()(64bit)

janus-eventhandlers-nanomsg:
    config(janus-eventhandlers-nanomsg)
    janus-eventhandlers-nanomsg
    janus-eventhandlers-nanomsg(aarch-64)
    libjanus_nanomsgevh.so.0()(64bit)

janus-eventhandlers-rabbitmq:
    config(janus-eventhandlers-rabbitmq)
    janus-eventhandlers-rabbitmq
    janus-eventhandlers-rabbitmq(aarch-64)
    libjanus_rabbitmqevh.so.0()(64bit)

janus-eventhandlers-sample:
    config(janus-eventhandlers-sample)
    janus-eventhandlers-sample
    janus-eventhandlers-sample(aarch-64)
    libjanus_sampleevh.so.0()(64bit)

janus-eventhandlers-ws:
    config(janus-eventhandlers-ws)
    janus-eventhandlers-ws
    janus-eventhandlers-ws(aarch-64)
    libjanus_wsevh.so.0()(64bit)

janus-loggers-json:
    config(janus-loggers-json)
    janus-loggers-json
    janus-loggers-json(aarch-64)
    libjanus_jsonlog.so.0()(64bit)

janus-plugins-audiobridge:
    config(janus-plugins-audiobridge)
    janus-plugins-audiobridge
    janus-plugins-audiobridge(aarch-64)
    libjanus_audiobridge.so.0()(64bit)

janus-plugins-duktape:
    config(janus-plugins-duktape)
    janus-plugins-duktape
    janus-plugins-duktape(aarch-64)
    libjanus_duktape.so.0()(64bit)

janus-plugins-echotest:
    config(janus-plugins-echotest)
    janus-plugins-echotest
    janus-plugins-echotest(aarch-64)
    libjanus_echotest.so.0()(64bit)

janus-plugins-lua:
    config(janus-plugins-lua)
    janus-plugins-lua
    janus-plugins-lua(aarch-64)
    libjanus_lua.so.0()(64bit)

janus-plugins-nosip:
    config(janus-plugins-nosip)
    janus-plugins-nosip
    janus-plugins-nosip(aarch-64)
    libjanus_nosip.so.0()(64bit)

janus-plugins-recordplay:
    config(janus-plugins-recordplay)
    janus-plugins-recordplay
    janus-plugins-recordplay(aarch-64)
    libjanus_recordplay.so.0()(64bit)

janus-plugins-sip:
    config(janus-plugins-sip)
    janus-plugins-sip
    janus-plugins-sip(aarch-64)
    libjanus_sip.so.0()(64bit)

janus-plugins-streaming:
    config(janus-plugins-streaming)
    janus-plugins-streaming
    janus-plugins-streaming(aarch-64)
    libjanus_streaming.so.0()(64bit)

janus-plugins-textroom:
    config(janus-plugins-textroom)
    janus-plugins-textroom
    janus-plugins-textroom(aarch-64)
    libjanus_textroom.so.0()(64bit)

janus-plugins-videocall:
    config(janus-plugins-videocall)
    janus-plugins-videocall
    janus-plugins-videocall(aarch-64)
    libjanus_videocall.so.0()(64bit)

janus-plugins-videoroom:
    config(janus-plugins-videoroom)
    janus-plugins-videoroom
    janus-plugins-videoroom(aarch-64)
    libjanus_videoroom.so.0()(64bit)

janus-plugins-voicemail:
    config(janus-plugins-voicemail)
    janus-plugins-voicemail
    janus-plugins-voicemail(aarch-64)
    libjanus_voicemail.so.0()(64bit)

janus-tools:
    janus-tools
    janus-tools(aarch-64)

janus-transports-http:
    config(janus-transports-http)
    janus-transports-http
    janus-transports-http(aarch-64)
    libjanus_http.so.0()(64bit)

janus-transports-mqtt:
    config(janus-transports-mqtt)
    janus-transports-mqtt
    janus-transports-mqtt(aarch-64)
    libjanus_mqtt.so.0()(64bit)

janus-transports-nanomsg:
    config(janus-transports-nanomsg)
    janus-transports-nanomsg
    janus-transports-nanomsg(aarch-64)
    libjanus_nanomsg.so.0()(64bit)

janus-transports-pfunix:
    config(janus-transports-pfunix)
    janus-transports-pfunix
    janus-transports-pfunix(aarch-64)
    libjanus_pfunix.so.0()(64bit)

janus-transports-rabbitmq:
    config(janus-transports-rabbitmq)
    janus-transports-rabbitmq
    janus-transports-rabbitmq(aarch-64)
    libjanus_rabbitmq.so.0()(64bit)

janus-transports-websockets:
    config(janus-transports-websockets)
    janus-transports-websockets
    janus-transports-websockets(aarch-64)
    libjanus_websockets.so.0()(64bit)

janus-debuginfo:
    debuginfo(build-id)
    janus-debuginfo
    janus-debuginfo(aarch-64)

janus-debugsource:
    janus-debugsource
    janus-debugsource(aarch-64)



Diff spec file in url and in SRPM
---------------------------------
--- /home/fedora/2121585-janus/srpm/janus.spec	2022-12-22 04:45:10.295034136 +0000
+++ /home/fedora/2121585-janus/srpm-unpacked/janus.spec	2022-12-18 05:49:51.000000000 +0000
@@ -25,4 +25,5 @@
 Source15:       webrtc-adapter-8.2.0.min.js
 
+
 patch0:         0001-janus-docs-make-web-resources-local.patch
 patch1:         0002-janus-demos-make-web-resources-local.patch


Generated by fedora-review 0.9.0 (6761b6c) last change: 2022-08-23
Command line :/usr/bin/fedora-review -b 2121585
Buildroot used: fedora-rawhide-aarch64
Active plugins: Shell-api, Generic, C/C++
Disabled plugins: Java, PHP, R, fonts, SugarActivity, Haskell, Perl, Python, Ocaml
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comments:
a) If you do a build in copr, you can get output of fedora-review, see:

b) jquery is packaged:
https://packages.fedoraproject.org/pkgs/js-jquery/js-jquery/
The spec file has both:
Requires:       js-jquery
and 
Provides:       bundled(js-jquery) = 1.9.1
Is this reasonable? Could only the packaged js-jquery be used?
c) None of the other javascript libraries seem to be packaged. Are any of them likely to be used elsewhere? For example boostrap? In which case, could they be packaged separately?
d) $ rpmlint -e summary-too-long
summary-too-long:
The 'Summary:' must not exceed 80 characters.
e) Demo and docs packages should probably be marked as noarch
f) The cipher warning seems to come from line 491 in src/dtls.c see 
https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/#_cc_applications
Probably an exemption or some coordination will be required with upstream.
g) Maybe consider using this for The creative summit instead of Jitsi:
  https://communityblog.fedoraproject.org/youre-invited-to-the-creative-freedom-summit-hosted-by-the-fedora-design-team/       
  https://fedoraproject.org/wiki/Creative_Freedom_Summit_2023_Schedule
Would be happy to create a custom easily packaged theme.

Comment 39 Renich Bon Ciric 2022-12-23 16:48:18 UTC
Hey Benson!

> a) If you do a build in copr, you can get output of fedora-review, see:

OK, I'll try to do this in order to get the review so I can figure out and fix the issues presented. 

b) jquery is packaged:
https://packages.fedoraproject.org/pkgs/js-jquery/js-jquery/

The spec file has both:
Requires:       js-jquery
and 
Provides:       bundled(js-jquery) = 1.9.1

Is this reasonable? Could only the packaged js-jquery be used?

I think it is. The docs require this old version of jquery (1.9.1 vs 3.6.0 which is what Fedora packaged). Upstream has a ticket where they upgraded to the newest version that didn't break their demos and documentation. I'll propose to upgrade to v3.6.0 and, when they do, update the packages to use what Fedora provides. 

I'll remove the Requires js-jquery for now. 

Do you agree?

c) None of the other javascript libraries seem to be packaged. Are any of them likely to be used elsewhere? For example boostrap? In which case, could they be packaged separately?

Well, they could be packaged but, for now, I'd like to go with what Petr Mensik suggested here: https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/message/G4SR25UUCDF4EJCWUF5T5H4WENSUUO6B/

I'd like to do exactly that: 

* use the bundled js-query when possible (read above).
* use bundled() for now and create bug tickets subsequently to create packages for those. 

The bootstrap one is a bit tricky. Janus' docs and demos use the ECMAScript part of bootstrap but not the CSS. The CSS is modified and is provided as a theme. That project is called Bootswatch: https://bootswatch.com/

In order to be consistent, I would have to package bootswatch and all the themes for Fedora. I am not saying no but I want to do this in a later occasion.

IMHO, for now, we're good with the bundled() setup and, later on, I will submit packages for each and every one. Well, probably one exception; they use this node-js library from a different project. I would keep that one as bundled(). 

d) $ rpmlint -e summary-too-long
summary-too-long:
The 'Summary:' must not exceed 80 characters.

Right on. Will fix the summaries everywhere. 

e) Demo and docs packages should probably be marked as noarch

You're correct. I will mark them as so. 

f) The cipher warning seems to come from line 491 in src/dtls.c see 
https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/#_cc_applications
Probably an exemption or some coordination will be required with upstream.

I will take this to upstream and see what they say. If that fails, I'll see what I can do with FESCo... if that's where one gets an exception granted. ;D

g) Maybe consider using this for The creative summit instead of Jitsi:
  https://communityblog.fedoraproject.org/youre-invited-to-the-creative-freedom-summit-hosted-by-the-fedora-design-team/       
  https://fedoraproject.org/wiki/Creative_Freedom_Summit_2023_Schedule
Would be happy to create a custom easily packaged theme.

Err... sure. I wouldn't know where to start, hehe. I use janus as part of the communications stack that NextCloud's Talk requires. 

Let me know how can I help to do this.

Comment 40 Renich Bon Ciric 2022-12-23 18:45:13 UTC
Hey Benson! Me again. Just formating the past comment with proper quotes. Sorry for the mistake. 

> a) If you do a build in copr, you can get output of fedora-review, see:

OK, I'll try to do this in order to get the review so I can figure out and fix the issues presented. 

> b) jquery is packaged:
> https://packages.fedoraproject.org/pkgs/js-jquery/js-jquery/

> The spec file has both:
> Requires:       js-jquery
> and 
> Provides:       bundled(js-jquery) = 1.9.1

> Is this reasonable? Could only the packaged js-jquery be used?

I think it is. The docs require this old version of jquery (1.9.1 vs 3.6.0 which is what Fedora packaged). Upstream has a ticket where they upgraded to the newest version that didn't break their demos and documentation. I'll propose to upgrade to v3.6.0 and, when they do, update the packages to use what Fedora provides. 

I'll remove the Requires js-jquery for now. 

Do you agree?

> c) None of the other javascript libraries seem to be packaged. Are any of them likely to be used elsewhere? For example boostrap? In which case, could they be packaged separately?

Well, they could be packaged but, for now, I'd like to go with what Petr Mensik suggested here: https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/message/G4SR25UUCDF4EJCWUF5T5H4WENSUUO6B/

I'd like to do exactly that: 

* use the bundled js-query when possible (read above).
* use bundled() for now and create bug tickets subsequently to create packages for those. 

The bootstrap one is a bit tricky. Janus' docs and demos use the ECMAScript part of bootstrap but not the CSS. The CSS is modified and is provided as a theme. That project is called Bootswatch: https://bootswatch.com/

In order to be consistent, I would have to package bootswatch and all the themes for Fedora. I am not saying no but I want to do this in a later occasion.

IMHO, for now, we're good with the bundled() setup and, later on, I will submit packages for each and every one. Well, probably one exception; they use this node-js library from a different project. I would keep that one as bundled(). 

> d) $ rpmlint -e summary-too-long
> summary-too-long:
> The 'Summary:' must not exceed 80 characters.

Right on. Will fix the summaries everywhere. 

> e) Demo and docs packages should probably be marked as noarch

You're correct. I will mark them as so. 

> f) The cipher warning seems to come from line 491 in src/dtls.c see 
> https://docs.fedoraproject.org/en-US/packaging-guidelines/CryptoPolicies/#_cc_applications
> Probably an exemption or some coordination will be required with upstream.

I will take this to upstream and see what they say. If that fails, I'll see what I can do with FESCo... if that's where one gets an exception granted. ;D

> g) Maybe consider using this for The creative summit instead of Jitsi:
>   https://communityblog.fedoraproject.org/youre-invited-to-the-creative-freedom-summit-hosted-by-the-fedora-design-team/       
>   https://fedoraproject.org/wiki/Creative_Freedom_Summit_2023_Schedule
> Would be happy to create a custom easily packaged theme.

Err... sure. I wouldn't know where to start, hehe. I use janus as part of the communications stack that NextCloud's Talk requires. 

Let me know how can I help to do this.

Comment 41 Benson Muite 2022-12-27 16:28:15 UTC
f) Perhaps ask on Fedora security list:
https://lists.fedoraproject.org/admin/lists/security.lists.fedoraproject.org/

Current version fails to build:
In file included from /usr/include/curl/curl.h:3195,
                 from turnrest.c:21:
turnrest.c: In function 'janus_turnrest_request':
turnrest.c:168:9: error: void value not ignored as it ought to be
  168 |         curl_easy_setopt(curl, api_http_get ? CURLOPT_HTTPGET : CURLOPT_
POST, 1);
      |  

Reported this https://github.com/meetecho/janus-gateway/issues/3131

g) Browsers such as Firefox and Chrome seem to ship with a configuration specifically for Fedora. Maybe we could do the same for janus, have a Fedora themed demo?

Comment 42 Benson Muite 2023-01-04 15:24:07 UTC
Issue https://github.com/meetecho/janus-gateway/issues/3131 is fixed,
may want to either use a later commit/release or apply a patch.

Comment 43 Renich Bon Ciric 2023-01-04 19:23:38 UTC
Hey Benson! Happy new year and all that. ;D

(In reply to Benson Muite from comment #41)
> f) Perhaps ask on Fedora security list:
> https://lists.fedoraproject.org/admin/lists/security.lists.fedoraproject.org/

OK. I'll take it into account. I'm waiting on upstream to see if a proposed patch fixes stuff. They're checking. I'll consult with the Fedora Security team afterwards. 

> Current version fails to build:
> In file included from /usr/include/curl/curl.h:3195,
>                  from turnrest.c:21:
> turnrest.c: In function 'janus_turnrest_request':
> turnrest.c:168:9: error: void value not ignored as it ought to be
>   168 |         curl_easy_setopt(curl, api_http_get ? CURLOPT_HTTPGET :
> CURLOPT_
> POST, 1);
>       |  
> 
> Reported this https://github.com/meetecho/janus-gateway/issues/3131

Thank you, so much, for reporting this. I see they've fixed it and I've taken the patch and applied it. Thanks for the help.

> g) Browsers such as Firefox and Chrome seem to ship with a configuration
> specifically for Fedora. Maybe we could do the same for janus, have a Fedora
> themed demo?

I dunno how this will sit with upstream. They seem interested in their industrial design (or whatever that is called). My take would be to focus on packaging as is and, later on, we could ask upstream about this and see what they think. I'm all for it, though. 

So, spec and SRPM:

SPEC: https://renich.fedorapeople.org/janus/janus.spec
SRPM: https://renich.fedorapeople.org/janus/janus-1.1.1-4.fc37.src.rpm

I've tested the build with mock; using F37 and F36 profiles. The F37 build finished successfully. The F36 didn't. It reported some "files not found" which is kind of odd since I am using the same SRPM for both (same spec and all). 

I get this when trying to build on Fedora 36: 


# mock -r fedora-36-x86_64 ...
...

Processing files: janus-doc-1.1.1-4.fc36.noarch
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/bc_sd.png
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/dir_000004_000000.html
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/dir_000004_000001.html
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/dir_000004_000002.html
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/dir_000004_000005.html
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/docd.png
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/nav_fd.png
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/nav_hd.png
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/search/mag.svg
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/search/mag_d.svg
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/search/mag_seld.svg
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/splitbard.png
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/tab_ad.png
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/tab_bd.png
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/tab_hd.png
error: File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/tab_sd.png

RPM build errors:
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/bc_sd.png
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/dir_000004_000000.html
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/dir_000004_000001.html
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/dir_000004_000002.html
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/dir_000004_000005.html
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/docd.png
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/nav_fd.png
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/nav_hd.png
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/search/mag.svg
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/search/mag_d.svg
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/search/mag_seld.svg
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/splitbard.png
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/tab_ad.png
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/tab_bd.png
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/tab_hd.png
    File not found: /builddir/build/BUILDROOT/janus-1.1.1-4.fc36.x86_64/usr/share/doc/janus/html/tab_sd.png
...

Will investigate further.

Comment 44 Jakub Kadlčík 2023-01-04 20:22:18 UTC
Created attachment 1935812 [details]
The .spec file difference from Copr build 5152862 to 5200691

Comment 45 Jakub Kadlčík 2023-01-04 20:22:20 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5200691
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/frostyx/fedora-review-2121585-janus/fedora-rawhide-x86_64/05200691-janus/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

Comment 46 Renich Bon Ciric 2023-01-16 18:55:07 UTC
OK, the mock build was failing due to a dependency issue:

* I was requiring gstreamer1.0-plugins-good while it should've been gstreamer1-plugins-good. 
* Also, I had a needless dependency for js-jquery on the doc package. We agreed to use the bundled one (jquery v1.9.4) and, later on, see if upstream wants to upgrade to it. 

In any case, mock builds fine now. Can we try again?

SPEC: https://renich.fedorapeople.org/janus/janus.spec
SRPM: https://renich.fedorapeople.org/janus/janus-1.1.1-5.fc37.src.rpm

Comment 47 Jakub Kadlčík 2023-01-16 19:58:32 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5238279
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2121585-janus/fedora-rawhide-x86_64/05238279-janus/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

Comment 48 Renich Bon Ciric 2023-01-17 02:56:13 UTC
Thanks a lot, Jakub, for that. I see all X's, which is a good thing, for Rawhide and Fedora 37. For some reason, it didn't find some files in Fedora 36. It seems I'm suffering of what I mentined in this comment: ccomment #43. 

I'll see what I can find. doxygen might be to blame.

Comment 49 Renich Bon Ciric 2023-01-26 01:11:43 UTC
OK, i've:

* updated to v1.1.2.
* fixed the fc36 issue by selectively grabbing files for the RPM when fc36 is being used to package.
* removed the libcurl patch since it's included in upstream. 

SPEC: https://renich.fedorapeople.org/janus/janus.spec
SRPM: https://renich.fedorapeople.org/janus/janus-1.1.2-1.fc37.src.rpm

Fingers crossed.

Comment 50 Jakub Kadlčík 2023-01-26 01:17:27 UTC
Created attachment 1940528 [details]
The .spec file difference from Copr build 5238279 to 5300635

Comment 51 Jakub Kadlčík 2023-01-26 01:17:30 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5300635
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2121585-janus/fedora-rawhide-x86_64/05300635-janus/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

Comment 52 Renich Bon Ciric 2023-01-26 06:21:57 UTC
Ah, I forgot about rawhide, hehe. 

SPEC: https://renich.fedorapeople.org/janus/janus.spec
SRPM: https://renich.fedorapeople.org/janus/janus-1.1.2-2.fc37.src.rpm

I tested this build on fc36, fc37 and rawhide this time.

Comment 53 Jakub Kadlčík 2023-01-26 07:23:32 UTC
Created attachment 1940547 [details]
The .spec file difference from Copr build 5300635 to 5303569

Comment 54 Jakub Kadlčík 2023-01-26 07:23:35 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5303569
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2121585-janus/fedora-rawhide-x86_64/05303569-janus/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

Comment 55 Renich Bon Ciric 2023-01-30 18:18:20 UTC
Hello, I'll address the review's rpmlint warnings and errors here:

> janus-devel.x86_64: W: only-non-binary-in-usr-lib

There are several files here that might have to be part of the main package, as stated here (from https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages):

"As an additional complication, some software generates unversioned shared objects which are not intended to be used as system libraries. These files are usually plugins or modular functionality specific to an application, and are not located in the ld library paths or cache. This means that they are not located directly in /usr/lib or /usr/lib64, or in a directory listed as a library path in /etc/ld.so.conf (or an /etc/ld.so.conf.d/config file). Usually, these unversioned shared objects can be found in a dedicated subdirectory under /usr/lib or /usr/lib64 (e.g. /usr/lib/purple-2/ is the plugin directory used for libpurple applications). In these cases, the unversioned shared objects do not need to be placed in a -devel package."

In this case, these, in fact, are plugins and do live in a path listed as a library path. They also live in their own subdirectory. 

If you agree, I am moving these to the main package. Also, I think, these warnings should be ignored.


> janus-demos.noarch: W: no-documentation
There is, in fact, no documentation for demos. It's just an "offline website" that shows a demonstration of the plugin's capabilities. Let me know how to proceed here. 

> janus-devel.x86_64: W: no-documentation

Devel does have a ton of documentation but it is packaged in the "doc" sub-package. I didn't find anything in the packaging guidelines that says I should forcibly include anything in the devel sub-package. I think this message should be ignored as well. Let me know how to proceed, please.

> janus-doc.noarch: W: files-duplicate /usr/share/doc/janus/html/search/variables_10.js /usr/share/doc/janus/html/search/all_10.js

Indeed, I have two cases of "duplicate files" here but this documentation is generated on-the-fly by doxygen. I don't know enough doxygen as to know if I can safely remove or merge these files. Let me know how to proceed with these, please. Nothing in the packaging guidelines either. 

I found nothing in the packaging guidelines in regards to duplicate documentation resources. The only duplication subject I could find was in regards to bundled libraries. 

> janus-doc.noarch: E: file-contains-date-and-time /usr/share/doc/janus/html/recordplay.html
> janus-doc.noarch: E: file-contains-current-date /usr/share/doc/janus/html/voicemail.html

As mentined above, the documentation package is generated by doxygen. All files will have the current date so, IMHO, that message should be ignored. About the files containing the current date, yes, this is, also, expected. 

One curious thing, though. When I run rpmlint against the doc subpackage, I don't get those messages; not even with the `--strict` flag. I wonder if this message is no longer useful and the builder's rpmlint version still has it?

> janus.x86_64: W: crypto-policy-non-compliance-openssl /usr/bin/janus SSL_CTX_set_cipher_list

I've talked about this with upstream here: https://groups.google.com/g/meetecho-janus/c/ESCW9mQJpYc/m/YGXU4J0VAwAJ

I've proposed a patch but, as said there, I am not a C developer. 

In any case, that conversation fell off. I'm gonna start a thread on their mailing list just about this to see if we can work it out. 

> janus-plugins-audiobridge.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/janus/plugins/libjanus_audiobridge.so.1.1.2
> janus-plugins-nosip.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/janus/plugins/libjanus_nosip.so.1.1.2
> janus-plugins-sip.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/janus/plugins/libjanus_sip.so.1.1.2

These I haven't mentioned, I think, to upstream. I'll see if I can get them to switch to getaddrinfo.

Comment 56 Benson Muite 2023-01-31 09:11:48 UTC
a) devel packages should have header files and .so libraries, other library files .so.1 and .so.1.1.2 should be in main packages.  Should the plugins have devel packages? If not, plugin libraries should not be on ld path. A method of listing private libraries which may work is described at:
https://lists.fedoraproject.org/pipermail/devel/2012-June/169190.html

b) no-documentation warnings are fine
c) Ok on duplicates at this point. Can address this after other issues.  It is likely there are minor differences in the files.

d) 
rpmlint -e file-contains-date-and-time
file-contains-date-and-time:
Your file uses __DATE__ and __TIME__ which causes the package to rebuild when
not needed.

rpmlint -e file-contains-current-date
file-contains-current-date:
Your file contains the current date, this may cause the package to rebuild in
excess.


Doxygen does not add a timestamp:
https://github.com/meetecho/janus-gateway/blob/master/docs/janus-doxygen.cfg#L1219
https://github.com/meetecho/janus-gateway/blob/master/docs/janus-doxygen.cfg#L1846

However, footer has a date:
https://github.com/meetecho/janus-gateway/blob/master/docs/footer.html#L16

For record_play not sure what is causing this error:
https://github.com/meetecho/janus-gateway/blob/master/src/plugins/janus_recordplay.c
For version, maybe it is better to get GitHub CI to generate this information and have it distributed:
https://github.com/meetecho/janus-gateway/blob/master/src/version.h
https://stackoverflow.com/questions/1704907/how-can-i-get-my-c-code-to-automatically-print-out-its-git-version-hash/1843783#1843783

It seems one can set SOURCE_DATE_EPOCH as an optional parameter before using autogen
https://github.com/meetecho/janus-gateway/blob/master/src/Makefile.am#L178
However, having this information in the release would likely enable more efficient automated builds.

e) Raised an issue on gethostbyname https://github.com/meetecho/janus-gateway/issues/3156

f) Further comments:
i) Consider adding make as a build dependency, cmake will bring it in, but one might consider builds without cmake
ii) Would it be better to use BoringSSL https://boringssl.googlesource.com/boringssl/ instead of OpenSSL

Comment 57 Renich Bon Ciric 2023-02-01 05:19:36 UTC
(In reply to Benson Muite from comment #56)
> a) devel packages should have header files and .so libraries, other library
> files .so.1 and .so.1.1.2 should be in main packages.  Should the plugins
> have devel packages? If not, plugin libraries should not be on ld path. A
> method of listing private libraries which may work is described at:
> https://lists.fedoraproject.org/pipermail/devel/2012-June/169190.html

Hey Benson, nice to read you. :D

Well, I failed to see which the listing method was. I've added the __provides_exclude_from and __requires_exclude_from macros to all .so files to avoid looking for dependencies there since they, indeed, are private libraries. (event handlers, loggers, plugins and transports). 

If you think I need to create devel packages for every plugin and include the .so files there, I will. No problem. 

I might've understood wrongly what you said.

> b) no-documentation warnings are fine

OK. Phew!

> c) Ok on duplicates at this point. Can address this after other issues.  It
> is likely there are minor differences in the files.

OK. 

> d) 
> rpmlint -e file-contains-date-and-time
> file-contains-date-and-time:
> Your file uses __DATE__ and __TIME__ which causes the package to rebuild when
> not needed.
> 
> rpmlint -e file-contains-current-date
> file-contains-current-date:
> Your file contains the current date, this may cause the package to rebuild in
> excess.
> 
> 
> Doxygen does not add a timestamp:
> https://github.com/meetecho/janus-gateway/blob/master/docs/janus-doxygen.
> cfg#L1219
> https://github.com/meetecho/janus-gateway/blob/master/docs/janus-doxygen.
> cfg#L1846
> 
> However, footer has a date:
> https://github.com/meetecho/janus-gateway/blob/master/docs/footer.html#L16

I've created a patch to remove the date from the footer. I'll include it in the next build. Hopefully, that takes care of most of the messages. 

> For record_play not sure what is causing this error:
> https://github.com/meetecho/janus-gateway/blob/master/src/plugins/
> janus_recordplay.c

I see there is an example date written in an example, right after the note: https://janus.conf.meetecho.com/docs/recordplay.html

That might be triggering the warning, right? 

> For version, maybe it is better to get GitHub CI to generate this
> information and have it distributed:
> https://github.com/meetecho/janus-gateway/blob/master/src/version.h
> https://stackoverflow.com/questions/1704907/how-can-i-get-my-c-code-to-
> automatically-print-out-its-git-version-hash/1843783#1843783

version.c gets auto-generated after `make`. it's even ignored in .gitignore to this end. I have no idea of how it gets generated but, when it does, it has the current date. 

[root@bc8d0dcfefb2 janus]# cat src/version.c 
#include "version.h"
const char *janus_build_git_sha = "e8d1395d3de9caa5e244605ec1a7281cd7d3ecf1";
const char *janus_build_git_time = "Wed Feb  1 05:08:47 UTC 2023";
int janus_version = 1102;
const char *janus_version_string = "1.1.2";
const char *libnice_version_string = "0.1.19";

> It seems one can set SOURCE_DATE_EPOCH as an optional parameter before using
> autogen
> https://github.com/meetecho/janus-gateway/blob/master/src/Makefile.am#L178
> However, having this information in the release would likely enable more
> efficient automated builds.

I didn't really understand what you meant here. We should pass this SOURCE_DATE_EPOCH env var to autgen? Which date should we provide? The commit's date?

OK, I know where version.c gets generated. Right bellow the link you gave me: https://github.com/meetecho/janus-gateway/blob/master/src/Makefile.am#L183. With gawk. :D

What do we do with this?
 
> e) Raised an issue on gethostbyname
> https://github.com/meetecho/janus-gateway/issues/3156

Thank you very much for the help. :D

> f) Further comments:
> i) Consider adding make as a build dependency, cmake will bring it in, but
> one might consider builds without cmake

Done. It's been added to BuildRequires. 

> ii) Would it be better to use BoringSSL
> https://boringssl.googlesource.com/boringssl/ instead of OpenSSL

Well, the message in their own website is discouraging. "Although BoringSSL is an open source project, it is not intended for general use, as OpenSSL is.". I'd rather stick to openssl unless you think boring is better. 

The updated SPEC and SRPM:

SPEC: https://renich.fedorapeople.org/janus/janus.spec
SRPM: https://renich.fedorapeople.org/janus/janus-1.1.2-3.fc37.src.rpm

Comment 58 Jakub Kadlčík 2023-02-01 06:19:27 UTC
Created attachment 1941456 [details]
The .spec file difference from Copr build 5303569 to 5382837

Comment 59 Jakub Kadlčík 2023-02-01 06:19:30 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5382837
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2121585-janus/fedora-rawhide-x86_64/05382837-janus/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

Comment 60 Renich Bon Ciric 2023-02-16 04:15:44 UTC
Great! Less warnings. 

I have an untested patch for the SSL issue and we have a branch to test the gethostbyname issue. Once we do those, the only thing left is to figure out the: "undefined-non-weak-symbol" warning... no idea on that one.

Comment 61 Renich Bon Ciric 2023-02-28 18:02:13 UTC
OK, here's a test. Lorenzo asked us to see if this was enough when it comes to "gethostbyname":

SPEC: https://renich.fedorapeople.org/janus/janus.spec
SRPM: https://renich.fedorapeople.org/janus/janus-1.1.2-4.fc37.src.rpm

If all goes well, this should solve the "binary-or-shlib-calls-gethostbyname" issue. Fingers crossed. In my test, it does. ;D


[builder@bldr0 fc-rawhide]$ ls
build.log                                                       janus-plugins-nosip-1.1.2-4.fc39.x86_64.rpm
hw_info.log                                                     janus-plugins-nosip-debuginfo-1.1.2-4.fc39.x86_64.rpm
installed_pkgs.log                                              janus-plugins-recordplay-1.1.2-4.fc39.x86_64.rpm
janus-1.1.2-4.fc39.src.rpm                                      janus-plugins-recordplay-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-1.1.2-4.fc39.x86_64.rpm                                   janus-plugins-sip-1.1.2-4.fc39.x86_64.rpm
janus-debuginfo-1.1.2-4.fc39.x86_64.rpm                         janus-plugins-sip-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-debugsource-1.1.2-4.fc39.x86_64.rpm                       janus-plugins-streaming-1.1.2-4.fc39.x86_64.rpm
janus-demos-1.1.2-4.fc39.noarch.rpm                             janus-plugins-streaming-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-devel-1.1.2-4.fc39.x86_64.rpm                             janus-plugins-textroom-1.1.2-4.fc39.x86_64.rpm
janus-doc-1.1.2-4.fc39.noarch.rpm                               janus-plugins-textroom-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-gelf-1.1.2-4.fc39.x86_64.rpm                janus-plugins-videocall-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-gelf-debuginfo-1.1.2-4.fc39.x86_64.rpm      janus-plugins-videocall-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-mqtt-1.1.2-4.fc39.x86_64.rpm                janus-plugins-videoroom-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-mqtt-debuginfo-1.1.2-4.fc39.x86_64.rpm      janus-plugins-videoroom-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-nanomsg-1.1.2-4.fc39.x86_64.rpm             janus-plugins-voicemail-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-nanomsg-debuginfo-1.1.2-4.fc39.x86_64.rpm   janus-plugins-voicemail-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-rabbitmq-1.1.2-4.fc39.x86_64.rpm            janus-tools-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-rabbitmq-debuginfo-1.1.2-4.fc39.x86_64.rpm  janus-tools-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-sample-1.1.2-4.fc39.x86_64.rpm              janus-transports-http-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-sample-debuginfo-1.1.2-4.fc39.x86_64.rpm    janus-transports-http-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-ws-1.1.2-4.fc39.x86_64.rpm                  janus-transports-mqtt-1.1.2-4.fc39.x86_64.rpm
janus-eventhandlers-ws-debuginfo-1.1.2-4.fc39.x86_64.rpm        janus-transports-mqtt-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-loggers-json-1.1.2-4.fc39.x86_64.rpm                      janus-transports-nanomsg-1.1.2-4.fc39.x86_64.rpm
janus-loggers-json-debuginfo-1.1.2-4.fc39.x86_64.rpm            janus-transports-nanomsg-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-plugins-audiobridge-1.1.2-4.fc39.x86_64.rpm               janus-transports-pfunix-1.1.2-4.fc39.x86_64.rpm
janus-plugins-audiobridge-debuginfo-1.1.2-4.fc39.x86_64.rpm     janus-transports-pfunix-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-plugins-duktape-1.1.2-4.fc39.x86_64.rpm                   janus-transports-rabbitmq-1.1.2-4.fc39.x86_64.rpm
janus-plugins-duktape-debuginfo-1.1.2-4.fc39.x86_64.rpm         janus-transports-rabbitmq-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-plugins-echotest-1.1.2-4.fc39.x86_64.rpm                  janus-transports-websockets-1.1.2-4.fc39.x86_64.rpm
janus-plugins-echotest-debuginfo-1.1.2-4.fc39.x86_64.rpm        janus-transports-websockets-debuginfo-1.1.2-4.fc39.x86_64.rpm
janus-plugins-lua-1.1.2-4.fc39.x86_64.rpm                       root.log
janus-plugins-lua-debuginfo-1.1.2-4.fc39.x86_64.rpm             state.log
[builder@bldr0 fc-rawhide]$ rpmlint *.rpm
========================================================================= rpmlint session starts =========================================================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 59

janus-devel.x86_64: W: only-non-binary-in-usr-lib
janus-demos.noarch: W: no-documentation
janus-devel.x86_64: W: no-documentation
janus.x86_64: W: incoherent-version-in-changelog 1.1.2-3 ['1.1.2-4.fc39', '1.1.2-4']
janus-doc.noarch: W: files-duplicate /usr/share/doc/janus/html/search/variables_10.js /usr/share/doc/janus/html/search/all_10.js
janus-doc.noarch: W: files-duplicate /usr/share/doc/janus/html/search/variables_a.js /usr/share/doc/janus/html/search/all_a.js
janus.x86_64: W: crypto-policy-non-compliance-openssl /usr/bin/janus SSL_CTX_set_cipher_list
========================================= 59 packages and 0 specfiles checked; 0 errors, 7 warnings, 0 badness; has taken 6.3 s ==========================================

Comment 62 Jakub Kadlčík 2023-02-28 19:03:33 UTC
Created attachment 1947031 [details]
The .spec file difference from Copr build 5382837 to 5580064

Comment 63 Jakub Kadlčík 2023-02-28 19:03:36 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5580064
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2121585-janus/fedora-rawhide-x86_64/05580064-janus/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 64 Renich Bon Ciric 2023-05-17 23:47:27 UTC
OK, I've figured out how to do copr builds myself, hehe. Finally. 

In any case, will leave this here for now. I still need to try the patch for resolving "crypto-policy-non-compliance-openssl". 

Also, I would like to know how to solve so many "undefined-non-weak-symbol" errors. 

SPEC: https://renich.fedorapeople.org/janus/janus.spec
SRPM: https://renich.fedorapeople.org/janus/janus-1.1.3-1.fc38.src.rpm
Latest build (with review): https://copr.fedorainfracloud.org/coprs/renich/janus/build/5929542/

I am not gone yet. I've just had a ton of work lately. Found some time to do this today. Will try hard to do this more regularly.

Comment 65 Fedora Review Service 2023-05-18 00:46:01 UTC
Created attachment 1965307 [details]
The .spec file difference from Copr build 5580064 to 5929568

Comment 66 Fedora Review Service 2023-05-18 00:46:04 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5929568
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2121585-janus/fedora-rawhide-x86_64/05929568-janus/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 67 Renich Bon Ciric 2023-08-15 11:10:14 UTC
Hello again,

So, I've:

* Updated to v1.2.0.
* Removed the audiobridge plugin. 
* Again, selectively including files generated by doxygen in Fedora 37, 38, 39 and rawhide.
* Patched janus so it uses the system's cypher recommendations.

SPEC: https://renich.fedorapeople.org/janus/janus.spec
SRPM: https://renich.fedorapeople.org/janus/janus-1.2.0-1.fc40.src.rpm

Comment 68 Fedora Review Service 2023-08-15 12:07:50 UTC
Created attachment 1983386 [details]
The .spec file difference from Copr build 5929568 to 6281436

Comment 69 Fedora Review Service 2023-08-15 12:07:53 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6281436
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2121585-janus/fedora-rawhide-x86_64/06281436-janus/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 70 Benson Muite 2023-09-12 13:59:34 UTC
When trying to run it on a Fedora 38 server, janus-devel seems to be needed. 
The service file also fails to start, but can start it on the command line

Comment 71 Benson Muite 2023-09-12 18:06:35 UTC
Service file works.

audiobridge plugin seem to be missing.

It may be helpful to get the demo package to explicitly require all needed plugins

May also want to set the folder for the demo package /usr/share/janus/demos to have se-linux context for a webserver httpd_sys_content_t

Comment 72 Renich Bon Ciric 2023-09-13 04:34:08 UTC
Hey Benson! 

> When trying to run it on a Fedora 38 server, janus-devel seems to be needed. 

Yeah, you're right. the devel package contains all the plugins. I shouldn't have put those in the devel package. They're loaded at runtime if required. They should be package with each plugin, event handler, etc. 

> Service file works.

Good to know. :)

> audiobridge plugin seem to be missing.

Yeah, it's not being built anymore. Tried looking for the reason somewhere but couldn't find it. 

> It may be helpful to get the demo package to explicitly require all needed plugins

Good idea. Will look into this. 

> May also want to set the folder for the demo package /usr/share/janus/demos to have se-linux context for a webserver httpd_sys_content_t

I'll look into the SELinux thingy as well. I dunno if demos is supposed to be served by a web server. It's just a local/static website. It's more of a documentation implementation so that one can see how it works. 

On other matters, versioned plugins (libjanus_http.so.2.0.0, for example) aren't being loaded; only unversioned ones are (which we don't ship). A workaround would be to synlink versioned to unversioned files but I don't think it's a good idea to do that. 

I already raised the issue with upstream: https://github.com/meetecho/janus-gateway/issues/3270

Comment 73 Renich Bon Ciric 2023-09-14 04:32:11 UTC
OK, here's here's what I did:

- Moved .so files into their respective plugins. Plugins don't work without them.
- Added lua-json as a dependency for the lua plugin.
- Added plugin dependencies to janus-demos.
- Added back the audiobridge plugin.

spec: https://renich.fedorapeople.org/janus/janus.spec
srpm: https://renich.fedorapeople.org/janus/janus-1.2.0-2.fc38.src.rpm

Comment 74 Benson Muite 2023-09-15 07:46:52 UTC
[fedora-review-service-build]

Comment 75 Benson Muite 2023-09-15 08:06:23 UTC
For selinux permissions see:

https://fedoraproject.org/wiki/PackagingDrafts/SELinux

Probably does not make sense to create a new policy, since if one wants to run demos, they are read by a web server.
Thus add:

Requires(post): policycoreutils-python
Requires(postun): policycoreutils-python

...

%post
semanage fcontext -a -t httpd_sys_content_t '%{_datadir}/%{name}/demos(/.*)?' 2>/dev/null || :
restorecon -R %{_datadir}/awstats/wwwroot/cgi-bin || :

%postun
if [ $1 -eq 0 ] ; then  # final removal
semanage fcontext -d -t httpd_sys_content_t '%{_datadir}/%{name}/demos(/.*)?' 2>/dev/null || :
fi

Comment 76 Benson Muite 2023-09-15 11:51:33 UTC
Related review:
https://bugzilla.redhat.com/show_bug.cgi?id=2239129

Comment 77 Renich Bon Ciric 2023-09-15 23:39:16 UTC
Right on. Had to tweak that a little. The requires is for policycoreutils-python-utils, which would be a kind of a para-palindrome if it was named policycoreutils-python-utilscorepolicy. :D

Bad joke, I know. 

Here're the resources:

spec: https://renich.fedorapeople.org/janus/janus.spec
srpm: https://renich.fedorapeople.org/janus/janus-1.2.0-3.fc38.src.rpm

A test run and it seems to have worked. 

~~~
[renich@desktop rpmbuild]$ sudo dnf --nogpgcheck --repofrompath=local,results/fedora-38-x86_64/ install janus-demos
[sudo] password for renich:
Sorry, try again.
[sudo] password for renich:
Added local repo from results/fedora-38-x86_64/
local                                                                                                                                                                                1.1 MB/s |  23 kB     00:00
Dependencies resolved.
=====================================================================================================================================================================================================================
 Package                                                        Architecture                                Version                                                Repository                                   Size
=====================================================================================================================================================================================================================
Installing:
 janus-demos                                                    noarch                                      1.2.0-3.fc38                                           local                                       1.3 M
Installing dependencies:
 janus                                                          x86_64                                      1.2.0-3.fc38                                           local                                       356 k
 janus-plugins-audiobridge                                      x86_64                                      1.2.0-3.fc38                                           local                                       122 k
 janus-plugins-echotest                                         x86_64                                      1.2.0-3.fc38                                           local                                        34 k
 janus-plugins-recordplay                                       x86_64                                      1.2.0-3.fc38                                           local                                       200 k
 janus-plugins-sip                                              x86_64                                      1.2.0-3.fc38                                           local                                        97 k
 janus-plugins-streaming                                        x86_64                                      1.2.0-3.fc38                                           local                                       4.0 M
 janus-plugins-textroom                                         x86_64                                      1.2.0-3.fc38                                           local                                        55 k
 janus-plugins-videocall                                        x86_64                                      1.2.0-3.fc38                                           local                                        39 k
 janus-plugins-videoroom                                        x86_64                                      1.2.0-3.fc38                                           local                                       159 k
 sofia-sip                                                      x86_64                                      1.13.13-1.fc38                                         fedora                                      619 k
 usrsctp                                                        x86_64                                      1:0.9.5.0-6.fc38                                       fedora                                      258 k

Transaction Summary
=====================================================================================================================================================================================================================
Install  12 Packages

Total size: 7.2 M
Total download size: 877 k
Installed size: 12 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): usrsctp-0.9.5.0-6.fc38.x86_64.rpm                                                                                                                                             147 kB/s | 258 kB     00:01
(2/2): sofia-sip-1.13.13-1.fc38.x86_64.rpm                                                                                                                                           274 kB/s | 619 kB     00:02
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                300 kB/s | 877 kB     00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                             1/1
  Installing       : usrsctp-1:0.9.5.0-6.fc38.x86_64                                                                                                                                                            1/12
  Running scriptlet: janus-1.2.0-3.fc38.x86_64                                                                                                                                                                  2/12
  Installing       : janus-1.2.0-3.fc38.x86_64                                                                                                                                                                  2/12
  Running scriptlet: janus-1.2.0-3.fc38.x86_64                                                                                                                                                                  2/12
  Installing       : janus-plugins-audiobridge-1.2.0-3.fc38.x86_64                                                                                                                                              3/12
  Installing       : janus-plugins-echotest-1.2.0-3.fc38.x86_64                                                                                                                                                 4/12
  Installing       : janus-plugins-recordplay-1.2.0-3.fc38.x86_64                                                                                                                                               5/12
  Installing       : janus-plugins-streaming-1.2.0-3.fc38.x86_64                                                                                                                                                6/12
  Installing       : janus-plugins-textroom-1.2.0-3.fc38.x86_64                                                                                                                                                 7/12
  Installing       : janus-plugins-videocall-1.2.0-3.fc38.x86_64                                                                                                                                                8/12
  Installing       : janus-plugins-videoroom-1.2.0-3.fc38.x86_64                                                                                                                                                9/12
  Installing       : sofia-sip-1.13.13-1.fc38.x86_64                                                                                                                                                           10/12
  Installing       : janus-plugins-sip-1.2.0-3.fc38.x86_64                                                                                                                                                     11/12
  Installing       : janus-demos-1.2.0-3.fc38.noarch                                                                                                                                                           12/12
  Running scriptlet: janus-demos-1.2.0-3.fc38.noarch                                                                                                                                                           12/12
  Verifying        : sofia-sip-1.13.13-1.fc38.x86_64                                                                                                                                                            1/12
  Verifying        : usrsctp-1:0.9.5.0-6.fc38.x86_64                                                                                                                                                            2/12
  Verifying        : janus-1.2.0-3.fc38.x86_64                                                                                                                                                                  3/12
  Verifying        : janus-demos-1.2.0-3.fc38.noarch                                                                                                                                                            4/12
  Verifying        : janus-plugins-audiobridge-1.2.0-3.fc38.x86_64                                                                                                                                              5/12
  Verifying        : janus-plugins-echotest-1.2.0-3.fc38.x86_64                                                                                                                                                 6/12
  Verifying        : janus-plugins-recordplay-1.2.0-3.fc38.x86_64                                                                                                                                               7/12
  Verifying        : janus-plugins-sip-1.2.0-3.fc38.x86_64                                                                                                                                                      8/12
  Verifying        : janus-plugins-streaming-1.2.0-3.fc38.x86_64                                                                                                                                                9/12
  Verifying        : janus-plugins-textroom-1.2.0-3.fc38.x86_64                                                                                                                                                10/12
  Verifying        : janus-plugins-videocall-1.2.0-3.fc38.x86_64                                                                                                                                               11/12
  Verifying        : janus-plugins-videoroom-1.2.0-3.fc38.x86_64                                                                                                                                               12/12

Installed:
  janus-1.2.0-3.fc38.x86_64                            janus-demos-1.2.0-3.fc38.noarch                     janus-plugins-audiobridge-1.2.0-3.fc38.x86_64         janus-plugins-echotest-1.2.0-3.fc38.x86_64
  janus-plugins-recordplay-1.2.0-3.fc38.x86_64         janus-plugins-sip-1.2.0-3.fc38.x86_64               janus-plugins-streaming-1.2.0-3.fc38.x86_64           janus-plugins-textroom-1.2.0-3.fc38.x86_64
  janus-plugins-videocall-1.2.0-3.fc38.x86_64          janus-plugins-videoroom-1.2.0-3.fc38.x86_64         sofia-sip-1.13.13-1.fc38.x86_64                       usrsctp-1:0.9.5.0-6.fc38.x86_64

Complete!
[renich@desktop rpmbuild]$ ll -Z /usr/share/janus/demos/
total 956
drwxr-xr-x. 1 root root system_u:object_r:httpd_sys_content_t:s0     92 Sep 15 17:36 background
drwxr-xr-x. 1 root root system_u:object_r:httpd_sys_content_t:s0    176 Sep 15 17:36 css
drwxr-xr-x. 1 root root system_u:object_r:httpd_sys_content_t:s0     20 Sep 15 17:36 docs
drwxr-xr-x. 1 root root system_u:object_r:httpd_sys_content_t:s0    482 Sep 15 17:36 js
drwxr-xr-x. 1 root root system_u:object_r:httpd_sys_content_t:s0     72 Sep 15 17:36 surround
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   9225 Sep 14 18:00 admin.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  52489 Sep 14 18:00 admin.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   4750 Sep 14 18:00 audiobridgetest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  17812 Sep 14 18:00 audiobridgetest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   7847 Sep 14 18:00 canvas.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  24660 Sep 14 18:00 canvas.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   6023 Sep 14 18:00 citeus.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   4922 Sep 14 18:00 demos.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   6893 Sep 14 18:00 devicetest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  30010 Sep 14 18:00 devicetest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   6343 Sep 14 18:00 e2etest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  29170 Sep 14 18:00 e2etest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   7562 Sep 14 18:00 echotest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  28294 Sep 14 18:00 echotest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   1150 Sep 14 18:00 favicon.ico
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0     92 Sep 14 18:00 footer.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   7327 Sep 14 18:00 forkme_left_darkblue_121621.png
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   3348 Sep 14 18:00 index.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0 113533 Sep 14 18:00 janus.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  20596 Sep 14 18:00 janus-logo.png
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  20535 Sep 14 18:00 janus-logo-small.png
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   9574 Sep 14 18:00 meetecho-logo.png
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   7300 Sep 14 18:00 multiopus.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  23485 Sep 14 18:00 multiopus.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   6697 Sep 14 18:00 mvideoroomtest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  45364 Sep 14 18:00 mvideoroomtest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   2433 Sep 14 18:00 navbar.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   4965 Sep 14 18:00 nosiptest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  19972 Sep 14 18:00 nosiptest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   5202 Sep 14 18:00 recordplaytest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  22786 Sep 14 18:00 recordplaytest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   5332 Sep 14 18:00 screensharingtest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  21535 Sep 14 18:00 screensharingtest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   4191 Sep 14 18:00 settings.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   7306 Sep 14 18:00 siptest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  72555 Sep 14 18:00 siptest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   4608 Sep 14 18:00 streamingtest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  33360 Sep 14 18:00 streamingtest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   3555 Sep 14 18:00 support.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   5219 Sep 14 18:00 textroomtest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  14063 Sep 14 18:00 textroomtest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   2611 Sep 14 18:00 up_arrow.png
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   7959 Sep 14 18:00 videocalltest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  32457 Sep 14 18:00 videocalltest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   8223 Sep 14 18:00 videoroomtest.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  41665 Sep 14 18:00 videoroomtest.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   5409 Sep 14 18:00 virtualbg.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  26122 Sep 14 18:00 virtualbg.js
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0   5274 Sep 14 18:00 webaudio.html
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t:s0  13494 Sep 14 18:00 webaudio.js
~~~

Comment 78 Renich Bon Ciric 2023-09-15 23:46:08 UTC
(In reply to Benson Muite from comment #76)
> Related review:
> https://bugzilla.redhat.com/show_bug.cgi?id=2239129

You rock. Thanks!

Comment 79 Benson Muite 2023-09-16 18:01:32 UTC
html documentation  downloads javascript and css files from Cloudflare, yet most of them are packaged.

Demo files try to read /usr/share/font-awesome-web/css/ which will typically not be available
when the demos are accessed from a remote website.

Comment 80 Benson Muite 2023-09-17 11:05:04 UTC
Each Janus service has a set of default ports it uses.  If running Janus without a reverse proxy,
these ports need to be open.  If using a reverse proxy, then the webserver needs to be able to
connect to Janus.  It may be helpful to modify SELinux configurations to allow for these.

Comment 81 Benson Muite 2023-09-22 05:14:41 UTC
A description of steps have taken to deploy Janus:
https://github.com/nairobilug/nairobilug.or.ke/pull/201/files

Some web applications like Apache or Nginx can run directly when installed.  For Janus,
choices of configuration options make this more difficult.  One could enable all
transports, but STUN server choice should be set by the person deploying.  May want
to examine choices made in other distros.  Will see if can add more documentation to
the .jcfg files upstream.  It may be helpful to package some of the additional
Javascript files and remove non-essential ones from the demos. FEdora had jquery 1:

https://src.fedoraproject.org/rpms/js-jquery1/blob/f32/f/js-jquery1.spec
And has newer versions:
https://src.fedoraproject.org/rpms/js-jquery
https://src.fedoraproject.org/rpms/js-jquery2
Will see if can make a pull request upstream

Comment 82 Benson Muite 2023-10-02 17:57:04 UTC
Upstream has migrated to using lua-term which is in Fedora:
https://github.com/meetecho/janus-gateway/issues/3272
https://packages.fedoraproject.org/pkgs/lua-term/lua-term/

Comment 83 Benson Muite 2023-10-15 12:21:14 UTC
Pull request to use newer versions of jquery and other external assets:
https://github.com/meetecho/janus-gateway/pull/3279