GNU bug report logs - #47274
Linphone Packages

Previous Next

Package: guix-patches;

Reported by: Raghav Gururajan <rg <at> raghavgururajan.name>

Date: Sat, 20 Mar 2021 04:28:02 UTC

Severity: normal

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 47274 in the body.
You can then email your comments to 47274 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sat, 20 Mar 2021 04:28:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Raghav Gururajan <rg <at> raghavgururajan.name>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 20 Mar 2021 04:28:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: guix-patches <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>,
 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Linphone Packages
Date: Sat, 20 Mar 2021 00:26:42 -0400
[Message part 1 (text/plain, inline)]
Hello Guix!

The packages in linphone.scm has been severely outdated and posses risk, 
as upstream even removed the tarballs. So I have re-worked all the 
packages in linphone.scm, as fast as I could.

@Maxim: Thanks so much for offering to review.

Please find the attached patch-set.

I am still working on one component, linphone-desktop. The upgrade from 
v4.1.1 to v4.2.5, turns to be more complicated than I expected.

Regards,
RG.
[0001-gnu-Add-libdecaf.patch (text/x-patch, attachment)]
[0002-gnu-bcunit-Update-to-3.0.2-13.patch (text/x-patch, attachment)]
[0003-gnu-bcunit-Enable-curses-support.patch (text/x-patch, attachment)]
[0004-gnu-bcunit-Enable-documentation.patch (text/x-patch, attachment)]
[0005-gnu-bcunit-Enable-examples.patch (text/x-patch, attachment)]
[0006-gnu-bcunit-Enable-tests.patch (text/x-patch, attachment)]
[0007-gnu-bcunit-Enable-mem-trace-support.patch (text/x-patch, attachment)]
[0008-gnu-bctoolbox-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0009-gnu-bctoolbox-Enable-tests.patch (text/x-patch, attachment)]
[0010-gnu-bctoolbox-Enable-decaf-support.patch (text/x-patch, attachment)]
[0011-gnu-belr-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0012-gnu-belr-Enable-tests.patch (text/x-patch, attachment)]
[0013-gnu-belcard-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0014-gnu-belcard-Seperate-outputs.patch (text/x-patch, attachment)]
[0015-gnu-bcmatroska2-Change-source.patch (text/x-patch, attachment)]
[0016-gnu-bcg729-Remove-.git-suffix-from-URL.patch (text/x-patch, attachment)]
[0017-gnu-bcg729-Enable-tests.patch (text/x-patch, attachment)]
[0018-gnu-bcg729-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0019-gnu-ortp-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0020-gnu-ortp-Seperate-outputs.patch (text/x-patch, attachment)]
[0021-gnu-ortp-Enable-tests.patch (text/x-patch, attachment)]
[0022-gnu-ortp-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0023-gnu-bztrp-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0024-gnu-bzrtp-Enable-tests.patch (text/x-patch, attachment)]
[0025-gnu-bzrtp-Update-license.patch (text/x-patch, attachment)]
[0026-gnu-belle-sip-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0027-gnu-belle-sip-Enable-tests.patch (text/x-patch, attachment)]
[0028-gnu-belle-sip-Enable-mDNS-support.patch (text/x-patch, attachment)]
[0029-gnu-belle-sip-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0030-gnu-mediastreamer2-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0031-gnu-mediastreamer2-Enable-tests.patch (text/x-patch, attachment)]
[0032-gnu-mediastreamer2-Enable-PCAP-support.patch (text/x-patch, attachment)]
[0033-gnu-mediastreamer2-Enable-port-audio-support.patch (text/x-patch, attachment)]
[0034-gnu-mediastreamer2-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0035-gnu-mediastreamer2-Enable-G729B-support.patch (text/x-patch, attachment)]
[0036-gnu-soci-Propagate-inputs.patch (text/x-patch, attachment)]
[0037-gnu-Add-lime.patch (text/x-patch, attachment)]
[0038-gnu-Add-build.patch (text/x-patch, attachment)]
[0039-gnu-Add-libcutl.patch (text/x-patch, attachment)]
[0040-gnu-Add-libxsd-frontend.patch (text/x-patch, attachment)]
[0041-gnu-Add-cli.patch (text/x-patch, attachment)]
[0042-gnu-Add-xsd.patch (text/x-patch, attachment)]
[0043-gnu-liblinphone-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0044-gnu-liblinphone-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0045-gnu-linphoneqt-Rename-to-linphone-desktop-and-change.patch (text/x-patch, attachment)]
[0046-gnu-linphone-desktop-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0047-gnu-msopenh264-Update-to-1.2.1-21.patch (text/x-patch, attachment)]
[0048-gnu-mssilk-Update-to-1.1.1-8.patch (text/x-patch, attachment)]
[0049-gnu-mswebrtc-Update-to-1.1.1-23.patch (text/x-patch, attachment)]
[0050-gnu-msamr-Update-to-1.1.3-11.patch (text/x-patch, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sun, 21 Mar 2021 06:14:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: guix-patches <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>,
 Léo Le Bouter <lle-bout <at> zaclys.net>,
 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Re: Linphone Packages
Date: Sun, 21 Mar 2021 02:13:23 -0400
[Message part 1 (text/plain, inline)]
Hello Guix!

> The packages in linphone.scm has been severely outdated and posses risk, 
> as upstream even removed the tarballs. So I have re-worked all the 
> packages in linphone.scm, as fast as I could.
> 
> @Maxim: Thanks so much for offering to review.
> 
> Please find the attached patch-set.
> 
> I am still working on one component, linphone-desktop. The upgrade from 
> v4.1.1 to v4.2.5, turns to be more complicated than I expected.

Phew! All done.

Attached new patch-set.

Regards,
RG.
[0001-gnu-Add-libdecaf.patch (text/x-patch, attachment)]
[0002-gnu-bcunit-Update-to-3.0.2-13.patch (text/x-patch, attachment)]
[0003-gnu-bcunit-Enable-curses-support.patch (text/x-patch, attachment)]
[0004-gnu-bcunit-Enable-documentation.patch (text/x-patch, attachment)]
[0005-gnu-bcunit-Enable-examples.patch (text/x-patch, attachment)]
[0006-gnu-bcunit-Enable-tests.patch (text/x-patch, attachment)]
[0007-gnu-bcunit-Enable-mem-trace-support.patch (text/x-patch, attachment)]
[0008-gnu-bctoolbox-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0009-gnu-bctoolbox-Enable-tests.patch (text/x-patch, attachment)]
[0010-gnu-bctoolbox-Enable-decaf-support.patch (text/x-patch, attachment)]
[0011-gnu-belr-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0012-gnu-belr-Enable-tests.patch (text/x-patch, attachment)]
[0013-gnu-belcard-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0014-gnu-belcard-Seperate-outputs.patch (text/x-patch, attachment)]
[0015-gnu-bcmatroska2-Change-source.patch (text/x-patch, attachment)]
[0016-gnu-bcg729-Remove-.git-suffix-from-URL.patch (text/x-patch, attachment)]
[0017-gnu-bcg729-Enable-tests.patch (text/x-patch, attachment)]
[0018-gnu-bcg729-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0019-gnu-ortp-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0020-gnu-ortp-Seperate-outputs.patch (text/x-patch, attachment)]
[0021-gnu-ortp-Enable-tests.patch (text/x-patch, attachment)]
[0022-gnu-ortp-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0023-gnu-bztrp-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0024-gnu-bzrtp-Enable-tests.patch (text/x-patch, attachment)]
[0025-gnu-bzrtp-Update-license.patch (text/x-patch, attachment)]
[0026-gnu-belle-sip-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0027-gnu-belle-sip-Enable-tests.patch (text/x-patch, attachment)]
[0028-gnu-belle-sip-Enable-mDNS-support.patch (text/x-patch, attachment)]
[0029-gnu-belle-sip-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0030-gnu-mediastreamer2-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0031-gnu-mediastreamer2-Enable-tests.patch (text/x-patch, attachment)]
[0032-gnu-mediastreamer2-Enable-PCAP-support.patch (text/x-patch, attachment)]
[0033-gnu-mediastreamer2-Enable-port-audio-support.patch (text/x-patch, attachment)]
[0034-gnu-mediastreamer2-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0035-gnu-mediastreamer2-Enable-G729B-support.patch (text/x-patch, attachment)]
[0036-gnu-soci-Propagate-inputs.patch (text/x-patch, attachment)]
[0037-gnu-Add-lime.patch (text/x-patch, attachment)]
[0038-gnu-Add-build.patch (text/x-patch, attachment)]
[0039-gnu-Add-libcutl.patch (text/x-patch, attachment)]
[0040-gnu-Add-libxsd-frontend.patch (text/x-patch, attachment)]
[0041-gnu-Add-cli.patch (text/x-patch, attachment)]
[0042-gnu-Add-xsd.patch (text/x-patch, attachment)]
[0043-gnu-liblinphone-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0044-gnu-liblinphone-Enable-LDAP-support.patch (text/x-patch, attachment)]
[0045-gnu-liblinphone-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0046-gnu-linphoneqt-Update-to-4.2.5.patch (text/x-patch, attachment)]
[0047-gnu-linphone-desktop-Enable-daemon-interface.patch (text/x-patch, attachment)]
[0048-gnu-linphone-desktop-Enable-console-interface.patch (text/x-patch, attachment)]
[0049-gnu-linphone-desktop-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0050-gnu-msopenh264-Update-to-1.2.1-21.patch (text/x-patch, attachment)]
[0051-gnu-mssilk-Update-to-1.1.1-8.patch (text/x-patch, attachment)]
[0052-gnu-mswebrtc-Update-to-1.1.1-23.patch (text/x-patch, attachment)]
[0053-gnu-msamr-Update-to-1.1.3-11.patch (text/x-patch, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 22 Mar 2021 01:50:02 GMT) Full text and rfc822 format available.

Message #11 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: guix-patches <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>,
 Léo Le Bouter <lle-bout <at> zaclys.net>,
 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Re: Linphone Packages
Date: Sun, 21 Mar 2021 21:48:59 -0400
[Message part 1 (text/plain, inline)]
Hello Guix!

Please find the attached patch-set, which contains modifications in 
0046-gnu-linphoneqt-Update-to-4.2.5.patch w.r.t to previous patch-set.

HELP! The app crashes upon launch.

I tried creating symlink "{out}/lib" --> "{liblinphone}/lib", which 
didn't work.

Regards,
RG.
[0001-gnu-Add-libdecaf.patch (text/x-patch, attachment)]
[0002-gnu-bcunit-Update-to-3.0.2-13.patch (text/x-patch, attachment)]
[0003-gnu-bcunit-Enable-curses-support.patch (text/x-patch, attachment)]
[0004-gnu-bcunit-Enable-documentation.patch (text/x-patch, attachment)]
[0005-gnu-bcunit-Enable-examples.patch (text/x-patch, attachment)]
[0006-gnu-bcunit-Enable-tests.patch (text/x-patch, attachment)]
[0007-gnu-bcunit-Enable-mem-trace-support.patch (text/x-patch, attachment)]
[0008-gnu-bctoolbox-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0009-gnu-bctoolbox-Enable-tests.patch (text/x-patch, attachment)]
[0010-gnu-bctoolbox-Enable-decaf-support.patch (text/x-patch, attachment)]
[0011-gnu-belr-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0012-gnu-belr-Enable-tests.patch (text/x-patch, attachment)]
[0013-gnu-belcard-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0014-gnu-belcard-Seperate-outputs.patch (text/x-patch, attachment)]
[0015-gnu-bcmatroska2-Change-source.patch (text/x-patch, attachment)]
[0016-gnu-bcg729-Remove-.git-suffix-from-URL.patch (text/x-patch, attachment)]
[0017-gnu-bcg729-Enable-tests.patch (text/x-patch, attachment)]
[0018-gnu-bcg729-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0019-gnu-ortp-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0020-gnu-ortp-Seperate-outputs.patch (text/x-patch, attachment)]
[0021-gnu-ortp-Enable-tests.patch (text/x-patch, attachment)]
[0022-gnu-ortp-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0023-gnu-bztrp-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0024-gnu-bzrtp-Enable-tests.patch (text/x-patch, attachment)]
[0025-gnu-bzrtp-Update-license.patch (text/x-patch, attachment)]
[0026-gnu-belle-sip-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0027-gnu-belle-sip-Enable-tests.patch (text/x-patch, attachment)]
[0028-gnu-belle-sip-Enable-mDNS-support.patch (text/x-patch, attachment)]
[0029-gnu-belle-sip-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0030-gnu-mediastreamer2-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0031-gnu-mediastreamer2-Enable-tests.patch (text/x-patch, attachment)]
[0032-gnu-mediastreamer2-Enable-PCAP-support.patch (text/x-patch, attachment)]
[0033-gnu-mediastreamer2-Enable-port-audio-support.patch (text/x-patch, attachment)]
[0034-gnu-mediastreamer2-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0035-gnu-mediastreamer2-Enable-G729B-support.patch (text/x-patch, attachment)]
[0036-gnu-soci-Propagate-inputs.patch (text/x-patch, attachment)]
[0037-gnu-Add-lime.patch (text/x-patch, attachment)]
[0038-gnu-Add-build.patch (text/x-patch, attachment)]
[0039-gnu-Add-libcutl.patch (text/x-patch, attachment)]
[0040-gnu-Add-libxsd-frontend.patch (text/x-patch, attachment)]
[0041-gnu-Add-cli.patch (text/x-patch, attachment)]
[0042-gnu-Add-xsd.patch (text/x-patch, attachment)]
[0043-gnu-liblinphone-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0044-gnu-liblinphone-Enable-LDAP-support.patch (text/x-patch, attachment)]
[0045-gnu-liblinphone-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0046-gnu-linphoneqt-Update-to-4.2.5.patch (text/x-patch, attachment)]
[0047-gnu-linphone-desktop-Enable-daemon-interface.patch (text/x-patch, attachment)]
[0048-gnu-linphone-desktop-Enable-console-interface.patch (text/x-patch, attachment)]
[0049-gnu-linphone-desktop-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0050-gnu-msopenh264-Update-to-1.2.1-21.patch (text/x-patch, attachment)]
[0051-gnu-mssilk-Update-to-1.1.1-8.patch (text/x-patch, attachment)]
[0052-gnu-mswebrtc-Update-to-1.1.1-23.patch (text/x-patch, attachment)]
[0053-gnu-msamr-Update-to-1.1.3-11.patch (text/x-patch, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 22 Mar 2021 04:45:02 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: guix-patches <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>,
 Léo Le Bouter <lle-bout <at> zaclys.net>,
 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Re: Linphone Packages
Date: Mon, 22 Mar 2021 00:44:06 -0400
[Message part 1 (text/plain, inline)]
Hello Guix!

> HELP! The app crashes upon launch.

Fixed it in the attached patch-set. The app works now. \o/

Anyway, I think we can do something for the following, w.r.t 
linphone-desktop:
[1] Warnings. Fixing them might prevent them to become errors.
[2] Better solution than symlinks in 'post-install phase. Because 
linphone-desktop should be able to read files in /lib and /share of 
*all* of its dependencies. Not just for those we made symlinks for, 
which is a temporary fix.

Regarding [1], for one of the warnings, I tried creating symlink 
"{linphone-desktop}/lib" --> "{liblinphone}/lib", which worked. But is 
it the correct way?
Regarding [2], I tried wrapping the program with XDG_DATA_DIRS, but 
didn't work.

Regards,
RG.
[0001-gnu-Add-libdecaf.patch (text/x-patch, attachment)]
[0002-gnu-bcunit-Update-to-3.0.2-13.patch (text/x-patch, attachment)]
[0003-gnu-bcunit-Enable-curses-support.patch (text/x-patch, attachment)]
[0004-gnu-bcunit-Enable-documentation.patch (text/x-patch, attachment)]
[0005-gnu-bcunit-Enable-examples.patch (text/x-patch, attachment)]
[0006-gnu-bcunit-Enable-tests.patch (text/x-patch, attachment)]
[0007-gnu-bcunit-Enable-mem-trace-support.patch (text/x-patch, attachment)]
[0008-gnu-bctoolbox-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0009-gnu-bctoolbox-Enable-tests.patch (text/x-patch, attachment)]
[0010-gnu-bctoolbox-Enable-decaf-support.patch (text/x-patch, attachment)]
[0011-gnu-belr-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0012-gnu-belr-Enable-tests.patch (text/x-patch, attachment)]
[0013-gnu-belcard-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0014-gnu-belcard-Seperate-outputs.patch (text/x-patch, attachment)]
[0015-gnu-bcmatroska2-Change-source.patch (text/x-patch, attachment)]
[0016-gnu-bcg729-Remove-.git-suffix-from-URL.patch (text/x-patch, attachment)]
[0017-gnu-bcg729-Enable-tests.patch (text/x-patch, attachment)]
[0018-gnu-bcg729-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0019-gnu-ortp-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0020-gnu-ortp-Seperate-outputs.patch (text/x-patch, attachment)]
[0021-gnu-ortp-Enable-tests.patch (text/x-patch, attachment)]
[0022-gnu-ortp-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0023-gnu-bztrp-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0024-gnu-bzrtp-Enable-tests.patch (text/x-patch, attachment)]
[0025-gnu-bzrtp-Update-license.patch (text/x-patch, attachment)]
[0026-gnu-belle-sip-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0027-gnu-belle-sip-Enable-tests.patch (text/x-patch, attachment)]
[0028-gnu-belle-sip-Enable-mDNS-support.patch (text/x-patch, attachment)]
[0029-gnu-belle-sip-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0030-gnu-mediastreamer2-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0031-gnu-mediastreamer2-Enable-tests.patch (text/x-patch, attachment)]
[0032-gnu-mediastreamer2-Enable-PCAP-support.patch (text/x-patch, attachment)]
[0033-gnu-mediastreamer2-Enable-port-audio-support.patch (text/x-patch, attachment)]
[0034-gnu-mediastreamer2-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0035-gnu-mediastreamer2-Enable-G729B-support.patch (text/x-patch, attachment)]
[0036-gnu-soci-Propagate-inputs.patch (text/x-patch, attachment)]
[0037-gnu-Add-lime.patch (text/x-patch, attachment)]
[0038-gnu-Add-build.patch (text/x-patch, attachment)]
[0039-gnu-Add-libcutl.patch (text/x-patch, attachment)]
[0040-gnu-Add-libxsd-frontend.patch (text/x-patch, attachment)]
[0041-gnu-Add-cli.patch (text/x-patch, attachment)]
[0042-gnu-Add-xsd.patch (text/x-patch, attachment)]
[0043-gnu-liblinphone-Update-to-4.4.34.patch (text/x-patch, attachment)]
[0044-gnu-liblinphone-Enable-LDAP-support.patch (text/x-patch, attachment)]
[0045-gnu-liblinphone-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0046-gnu-linphoneqt-Update-to-4.2.5.patch (text/x-patch, attachment)]
[0047-gnu-linphone-desktop-Enable-daemon-interface.patch (text/x-patch, attachment)]
[0048-gnu-linphone-desktop-Enable-console-interface.patch (text/x-patch, attachment)]
[0049-gnu-linphone-desktop-Update-home-page-and-license.patch (text/x-patch, attachment)]
[0050-gnu-msopenh264-Update-to-1.2.1-21.patch (text/x-patch, attachment)]
[0051-gnu-mssilk-Update-to-1.1.1-8.patch (text/x-patch, attachment)]
[0052-gnu-mswebrtc-Update-to-1.1.1-23.patch (text/x-patch, attachment)]
[0053-gnu-msamr-Update-to-1.1.3-11.patch (text/x-patch, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 22 Mar 2021 05:00:02 GMT) Full text and rfc822 format available.

Message #17 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: guix-patches <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>,
 Léo Le Bouter <lle-bout <at> zaclys.net>,
 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Re: Linphone Packages
Date: Mon, 22 Mar 2021 00:59:46 -0400
[Message part 1 (text/plain, inline)]
Hello Guix!

> Fixed it in the attached patch-set. The app works now. \o/

Spoke too soon. :/

New error now.

> Anyway, I think we can do something for the following, w.r.t 
> linphone-desktop:
> [1] Warnings. Fixing them might prevent them to become errors.
> [2] Better solution than symlinks in 'post-install phase. Because 
> linphone-desktop should be able to read files in /lib and /share of 
> *all* of its dependencies. Not just for those we made symlinks for, 
> which is a temporary fix.
> 
> Regarding [1], for one of the warnings, I tried creating symlink 
> "{linphone-desktop}/lib" --> "{liblinphone}/lib", which worked. But is 
> it the correct way?
> Regarding [2], I tried wrapping the program with XDG_DATA_DIRS, but 
> didn't work.

Looks like we need to do something about the [2]. The new error is 
because of that. I can fix this new error with another symlink, but new 
ones will keep happening.

Context:
The old error that I mentioned and fixed in my previous email is, 
"[Error]Core:linphone: Could not load grammar vcard_grammar because the 
file could not be located.".
The new error I am mentioning in this email is, "[Error]Core:linphone: 
Could not load grammar identity_grammar because the file could not be 
located."

Regards,
RG.

[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Wed, 24 Mar 2021 02:26:01 GMT) Full text and rfc822 format available.

Message #20 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org, Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: bug#47274: Linphone Packages
Date: Tue, 23 Mar 2021 22:25:35 -0400
Hi!

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> * gnu/packages/crypto.scm (libdecaf): New variable.
> ---
>  gnu/packages/crypto.scm | 63 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
>
> diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
> index 0000e7fbf2..3959464d56 100644
> --- a/gnu/packages/crypto.scm
> +++ b/gnu/packages/crypto.scm
> @@ -47,9 +47,11 @@
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages crates-io)
>    #:use-module (gnu packages cryptsetup)
> +  #:use-module (gnu packages documentation)
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages gnupg)
>    #:use-module (gnu packages golang)
> +  #:use-module (gnu packages graphviz)
>    #:use-module (gnu packages image)
>    #:use-module (gnu packages kerberos)
>    #:use-module (gnu packages libbsd)
> @@ -88,6 +90,67 @@
>    #:use-module (srfi srfi-1)
>    #:use-module (srfi srfi-26))
>  
> +(define-public libdecaf
> +  (package
> +    (name "libdecaf")
> +    (version "1.0.1")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "git://git.code.sf.net/p/ed448goldilocks/code")
> +                    (commit
> +                     (string-append "v" version))))
> +              (file-name
> +               (git-file-name name version))
> +              (sha256
> +               (base32 "1ajgmyvc6a4m1h2hg1g4wz7ibx10x1xys9m6ancnmmf1f2srlfly"))))
> +    (build-system cmake-build-system)
> +    (outputs '("out" "python" "doc"))
> +    (arguments
> +     `(#:configure-flags '("-DENABLE_STATIC=OFF")
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch-python-binding
> +           (lambda _
> +             (substitute* "python/setup.py"
> +               (("gmake")
> +                "make")
> +               (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
> +                "'..', '..', 'build', 'src', 'libdecaf.so'"))
> +             #t))

Ending phases with #t is no longer required on core-updates, and we can
stop doing it on master and staging already too, to save us the hassle
of editing them out at some later point in time :-)

> +         (add-after 'install 'install-python-binding
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (with-directory-excursion "../source/python"
> +               (invoke "python" "setup.py" "install"
> +                       (string-append "--prefix=" (assoc-ref outputs "python"))
> +                       "--root=/"))
> +             #t))
> +         (add-after 'install-python-binding 'install-documentation
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (invoke "make" "doc")
> +             (let* ((doc (assoc-ref outputs "doc"))
> +                    (dest (string-append doc "/share/doc")))
> +               (copy-recursively "doc" dest))
> +             #t)))))
> +    (native-inputs
> +     `(("dot" ,graphviz)
> +       ("doxygen" ,doxygen)
> +       ("python" ,python-wrapper)))
> +    (inputs
> +     `(("python2" ,python-2.7)
> +       ("python3" ,python)))

This inputs field seems unnecessary, especially we don't want to add a
dependency to Python 2, which is slowly being carved out of Guix.

> +    (synopsis "Decaf Elliptic Curve Library")
> +    (description "The libdecaf library is an implementation of elliptic curve
> +cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
> +Ed448-Goldilocks and Curve448, using the Decaf encoding.")
> +    (home-page "http://ed448goldilocks.sourceforge.net/")
> +    (license
> +     (list
> +      ;; Library.
> +      license:expat
> +      ;; Binding.
> +      license:bsd-2))))

I personally prefer the more compact (and common?) indentation of the
licenses list as:

    (license (list license:expat        ;library
                   license:bsd-2))))    ;python bindings

It's down to personal preferences, but I tend to value compactness in
thousand lines long modules :-).

I've made the following changes:

--8<---------------cut here---------------start------------->8---
1 file changed, 5 insertions(+), 15 deletions(-)
gnu/packages/crypto.scm | 20 +++++---------------

modified   gnu/packages/crypto.scm
@@ -116,40 +116,30 @@
                (("gmake")
                 "make")
                (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
-                "'..', '..', 'build', 'src', 'libdecaf.so'"))
-             #t))
+                "'..', '..', 'build', 'src', 'libdecaf.so'"))))
          (add-after 'install 'install-python-binding
            (lambda* (#:key outputs #:allow-other-keys)
              (with-directory-excursion "../source/python"
                (invoke "python" "setup.py" "install"
                        (string-append "--prefix=" (assoc-ref outputs "python"))
-                       "--root=/"))
-             #t))
+                       "--root=/"))))
          (add-after 'install-python-binding 'install-documentation
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke "make" "doc")
              (let* ((doc (assoc-ref outputs "doc"))
                     (dest (string-append doc "/share/doc")))
-               (copy-recursively "doc" dest))
-             #t)))))
+               (copy-recursively "doc" dest)))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)
        ("python" ,python-wrapper)))
-    (inputs
-     `(("python2" ,python-2.7)
-       ("python3" ,python)))
     (synopsis "Decaf Elliptic Curve Library")
     (description "The libdecaf library is an implementation of elliptic curve
 cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
 Ed448-Goldilocks and Curve448, using the Decaf encoding.")
     (home-page "http://ed448goldilocks.sourceforge.net/")
-    (license
-     (list
-      ;; Library.
-      license:expat
-      ;; Binding.
-      license:bsd-2))))
+    (license (list license:expat        ;library
+                   license:bsd-2))))    ;python bindings
 
 (define-public libsodium
   (package
--8<---------------cut here---------------end--------------->8---

And pushed as commit c221d49510.

Thank you!

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Wed, 24 Mar 2021 04:13:01 GMT) Full text and rfc822 format available.

Message #23 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org, Léo Le Bouter <lle-bout <at> zaclys.net>,
 Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: Linphone Packages
Date: Wed, 24 Mar 2021 00:12:19 -0400
Hi again,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> From 4b03df1e5abf22da27c65e1f22ffe4be65377d29 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Sat, 13 Mar 2021 12:04:37 -0500
> Subject: [PATCH 02/53] gnu: bcunit: Update to 3.0.2-13.
>
> * gnu/packages/linphone.scm (bcunit) [source]: Switch to git repository.

Nitpick: there should be no space between (bcunit) and [source].

> [version]: Update to 3.0.2-13.
> [native-inputs]: Add perl.
> ---
>  gnu/packages/linphone.scm | 30 ++++++++++++++++++------------
>  1 file changed, 18 insertions(+), 12 deletions(-)
>
> diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
> index afa542412f..6d243d2073 100644
> --- a/gnu/packages/linphone.scm
> +++ b/gnu/packages/linphone.scm
> @@ -35,6 +35,7 @@
>    #:use-module (gnu packages gtk)
>    #:use-module (gnu packages image)
>    #:use-module (gnu packages linux)
> +  #:use-module (gnu packages perl)
>    #:use-module (gnu packages pulseaudio)
>    #:use-module (gnu packages python)
>    #:use-module (gnu packages python-xyz)
> @@ -57,28 +58,33 @@
>    #:use-module (guix build-system gnu))
>
>  (define-public bcunit
> -  (package
> -    (name "bcunit")
> -    (version "3.0.2")
> -    (source
> -     (origin
> -       (method url-fetch)
> -       (uri
> -        (string-append "https://www.linphone.org/releases/sources/" name
> -                       "/" name "-" version ".tar.gz"))
> -       (sha256
> -        (base32 "0ylchj8w98ic2fkqpxc6yk4s6s0h0ql2zsz5n49jd7126m4h8dqk"))))
> +  (let ((commit "74021cc7cb20a4e177748dd2948173e1f9c270ae")
> +        (revision "13"))

When not using an official release, a comment is in order to mention the
reason; in this case something like: "Use the latest commit as there
hasn't been a release in nearly 4 years." :-).

Also, why start the revision number at 13?  Perhaps the number of
commits since the last tagged release?  It's a detail, but since there
was no revision used before for this package, I'd expect it to start at
0.

> +    (package
> +      (name "bcunit")
> +      (version (git-version "3.0.2" revision commit))
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url "git://git.linphone.org/bcunit")
> +               (commit commit)))
> +         (file-name (git-file-name name version))
> +         (sha256
> +          (base32 "0npdwvanjkfg9vrqs5yi8vh6wliv50ycdli8pzavir84nb31nq1b"))))
>      (build-system cmake-build-system)
>      (arguments
>       '(#:tests? #f                      ; No test target
>         #:configure-flags
>         (list "-DENABLE_STATIC=NO")))    ; Not required
> +    (native-inputs
> +     `(("perl" ,perl)))

Seems Perl is not actually needed.

>      (synopsis "Belledonne Communications Unit Testing Framework")
>      (description "BCUnit is a fork of the defunct project CUnit, with several
>  fixes and patches applied.  It is an unit testing framework for writing,
                                     ^ a

>  administering, and running unit tests in C.")
>      (home-page "https://gitlab.linphone.org/BC/public/bcunit")
> -    (license license:lgpl2.0+)))
> +    (license license:lgpl2.0+))))
>
>  (define-public bctoolbox
>    (package

I ended up squashing all the bcunit changes in one, as I found it a bit
too micro to manage.

I've edited the result slightly, mostly taking out #t, the examples
output (examples are doc after all):

--8<---------------cut here---------------start------------->8---
1 file changed, 18 insertions(+), 26 deletions(-)
gnu/packages/linphone.scm | 44 ++++++++++++++++++--------------------------

modified   gnu/packages/linphone.scm
@@ -60,7 +60,7 @@
 
 (define-public bcunit
   (let ((commit "74021cc7cb20a4e177748dd2948173e1f9c270ae")
-        (revision "13"))
+        (revision "0"))
     (package
       (name "bcunit")
       (version (git-version "3.0.2" revision commit))
@@ -74,16 +74,14 @@
          (sha256
           (base32 "0npdwvanjkfg9vrqs5yi8vh6wliv50ycdli8pzavir84nb31nq1b"))))
       (build-system cmake-build-system)
-      (outputs '("out" "doc" "example"))
+      (outputs '("out" "doc"))
       (arguments
-       `(#:configure-flags
-         (list
-          "-DENABLE_STATIC=NO"
-          "-DENABLE_CURSES=ON"
-          "-DENABLE_DOC=ON"
-          "-DENABLE_EXAMPLES=ON"
-          "-DENABLE_TEST=ON"
-          "-DENABLE_MEMTRACE=ON")
+       `(#:configure-flags (list "-DENABLE_STATIC=NO"
+                                 "-DENABLE_CURSES=ON"
+                                 "-DENABLE_DOC=ON"
+                                 "-DENABLE_EXAMPLES=ON"
+                                 "-DENABLE_TEST=ON"
+                                 "-DENABLE_MEMTRACE=ON")
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'patch-source
@@ -99,36 +97,30 @@
                  (("target_include_directories\\(bcunit_test PUBLIC Test\\)")
                   (string-append
                    "target_include_directories(bcunit_test PUBLIC Test)\n"
-                   "target_link_libraries(bcunit_test bcunit)")))
-               #t))
+                   "target_link_libraries(bcunit_test bcunit)")))))
            (replace 'check
              (lambda _
                (with-directory-excursion "BCUnit/Sources/Test"
-                 (invoke "./test_bcunit"))
-               #t))
-           (add-after 'install 'seperate-outputs
+                 (invoke "./test_bcunit"))))
+           (add-after 'install 'move-doc
              (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (doc (assoc-ref outputs "doc"))
-                      (example (assoc-ref outputs "example")))
+               (let ((out (assoc-ref outputs "out"))
+                     (doc (assoc-ref outputs "doc")))
                  (for-each mkdir-p
                            `(,(string-append doc "/share/doc")
-                             ,(string-append example "/share/BCUnit")))
+                             ,(string-append doc "/share/BCUnit")))
                  (rename-file
                   (string-append out "/share/doc/BCUnit")
                   (string-append doc "/share/doc/BCUnit"))
                  (rename-file
                   (string-append out "/share/BCUnit/Examples")
-                  (string-append example "/share/BCUnit/Examples")))
-               #t)))))
-      (native-inputs
-       `(("perl" ,perl)))
+                  (string-append doc "/share/BCUnit/Examples"))))))))
       (inputs
        `(("ncurses" ,ncurses)))
       (synopsis "Belledonne Communications Unit Testing Framework")
-      (description "BCUnit is a fork of the defunct project CUnit, with several
-fixes and patches applied.  It is an unit testing framework for writing,
-administering, and running unit tests in C.")
+      (description "BCUnit is a fork of the defunct project CUnit, with
+several fixes and patches applied.  It is a unit testing framework for
+writing, administering, and running unit tests in C.")
       (home-page "https://gitlab.linphone.org/BC/public/bcunit")
       (license license:lgpl2.0+))))
--8<---------------cut here---------------end--------------->8---

I've also "normalized" the commit message in a way that I think is more
typical.  Arguments such as phases, configure-flags, and such are
typically enclosed in a conditional marker (square brakets); e.g.:

--8<---------------cut here---------------start------------->8---
gnu: bcunit: Update to 3.0.2-0.74021cc and enable more features.

* gnu/packages/linphone.scm (bcunit)[source]: Switch to git repository.
[version]: Update to 3.0.2-0.74021cc.
[outputs]: Add a "doc" output.
[arguments]: Remove the tests? argument, enabling tests.
[configure-flags]: Enable curses, doc, examples, tests and memtrace.
[phases]{patch-source, move-doc}: New phases.
{check}: Override phase.
[inputs]: Add ncurses.
[description]: Fix typo.
--8<---------------cut here---------------end--------------->8---

That's all very subjective, but hoping you get a feel :-).

After having verified that bcunit's dependent packages could still be
built fine and testing the resulting linphoneqt, I've pushed the
squashed bcunit series as commit c2a9b05f02.

Thank you!

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Thu, 25 Mar 2021 01:56:02 GMT) Full text and rfc822 format available.

Message #26 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Wed, 24 Mar 2021 21:55:30 -0400
Hi,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> * gnu/packages/linphone.scm (bctoolbox) [arguments]<#:phases>['patch-source]: Modify.
> [inputs]: Add libdecaf.
> ---
>  gnu/packages/linphone.scm | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
> index 9d54b1b874..1a83105334 100644
> --- a/gnu/packages/linphone.scm
> +++ b/gnu/packages/linphone.scm
> @@ -25,6 +25,7 @@
>    #:use-module (gnu packages audio)
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages compression)
> +  #:use-module (gnu packages crypto)
>    #:use-module (gnu packages documentation)
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages gl)
> @@ -151,7 +152,16 @@ administering, and running unit tests in C.")
>         #:phases
>         (modify-phases %standard-phases
>           (add-after 'unpack 'patch-source
> -           (lambda _
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             ;; Fix decaf dependency.
> +             (let* ((decaf (assoc-ref inputs "decaf")))
> +               (substitute* (find-files "." "CMakeLists.txt")
> +                 (("find_package\\(Decaf CONFIG\\)")
> +                  "set(DECAF_FOUND 1)")
> +                 (("\\$\\{DECAF_INCLUDE_DIRS\\}")
> +                  (string-append decaf "/include/decaf"))
> +                 (("\\$\\{DECAF_TARGETNAME\\}")
> +                  "decaf")))
>               ;; Disable failing tests.
>               (substitute* "tester/port.c"
>                 (("[ \t]*TEST_NO_TAG\\(\"Addrinfo sort\", bctbx_addrinfo_sort_test\\)")
> @@ -164,6 +174,7 @@ administering, and running unit tests in C.")
>               #t)))))
>      (inputs
>       `(("bcunit" ,bcunit)
> +       ("decaf" ,libdecaf)
>         ("mbedtls" ,mbedtls-apache)))
>      (synopsis "Belledonne Communications Tool Box")
>      (description "BcToolBox is an utilities library used by Belledonne

I've squashed the 3 bctoolbox commits together, adjusted the commit
message as below:

gnu: bctoolbox: Update to 4.4.34 and enable libdecaf, tests.

* gnu/packages/linphone.scm (bctoolbox)[version]: Update to 4.4.34.
[source]: Switch to git repository.
[arguments]: Remove tests? argument, enabling tests.
[phases]{patch-source}: New phase.
{check}: Override phase.
[inputs]: Add libdecaf.
[license]: Update to GPLv3+.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

1 file changed, 33 insertions(+), 10 deletions(-)
gnu/packages/linphone.scm | 43 +++++++++++++++++++++++++++++++++----------

modified   gnu/packages/linphone.scm
@@ -25,6 +25,7 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
@@ -127,28 +128,50 @@ writing, administering, and running unit tests in C.")
 (define-public bctoolbox
   (package
     (name "bctoolbox")
-    (version "0.6.0")
+    (version "4.4.34")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://www.linphone.org/releases/sources/" name
-                       "/" name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.linphone.org/BC/public/bctoolbox.git")
+             (commit version)))

Used their HTTPS GitLab git here as its browsable;

+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1a1i70pb4hhnykkwyhhc7fv67q556l8kprny8xzgfqpj1nby2ms6"))))
+        (base32 "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list "-DENABLE_STATIC=OFF")))   ; Not required
+     `(#:configure-flags '("-DENABLE_STATIC=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Fix decaf dependency (see:
+             ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/3).

Added an issue upstream for the problem worked around here.

+             (let* ((decaf (assoc-ref inputs "decaf")))
+               (substitute* (find-files "." "CMakeLists.txt")
+                 (("find_package\\(Decaf CONFIG\\)")
+                  "set(DECAF_FOUND 1)")
+                 (("\\$\\{DECAF_INCLUDE_DIRS\\}")
+                  (string-append decaf "/include/decaf"))
+                 (("\\$\\{DECAF_TARGETNAME\\}")
+                  "decaf")))
+             ;; The following test relies on networking; disable it.

Mentioned this had to do with networking, which is inherent to the
absence of networking in the Guix build container (otherwise it'd had
been good to report the test failure upstream).

+             (substitute* "tester/port.c"
+               (("[ \t]*TEST_NO_TAG.*bctbx_addrinfo_sort_test\\)")

Used .* to shorten the line below 80 chars ;-)

+                ""))))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "tester"
+               (invoke "./bctoolbox_tester")))))))
     (inputs
      `(("bcunit" ,bcunit)
+       ("decaf" ,libdecaf)
        ("mbedtls" ,mbedtls-apache)))
     (synopsis "Belledonne Communications Tool Box")
     (description "BcToolBox is an utilities library used by Belledonne
 Communications software like belle-sip, mediastreamer2 and linphone.")
     (home-page "https://gitlab.linphone.org/BC/public/bctoolbox")
-    (license license:gpl2+)))
+    (license license:gpl3+)))
 
Can't be pushed yet as it breaks stuff.

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Thu, 25 Mar 2021 13:08:02 GMT) Full text and rfc822 format available.

Message #29 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org, Léo Le Bouter <lle-bout <at> zaclys.net>,
 Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: bug#47274: Linphone Packages
Date: Thu, 25 Mar 2021 09:07:15 -0400
Hi Raghav,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> * gnu/packages/linphone.scm (ortp) [outputs]: New output "test".
> [arguments]<#:configure-flag>[-DENABLE_TESTS]: New flag.
> <#:phases>['seperate-outputs]: Modify.
> ---
>  gnu/packages/linphone.scm | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
> index 3273df02c2..98209ee982 100644
> --- a/gnu/packages/linphone.scm
> +++ b/gnu/packages/linphone.scm
> @@ -403,23 +403,30 @@ such as conferencing.")
>         (sha256
>          (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
>      (build-system cmake-build-system)
> -    (outputs '("out" "doc"))
> +    (outputs '("out" "doc" "test"))
>      (arguments
> -     `(#:tests? #f                      ; No test target
> +     `(#:tests? #f                      ; Require networking
>         #:configure-flags
>         (list
> -        "-DENABLE_STATIC=NO")
> +        "-DENABLE_STATIC=NO"
> +        "-DENABLE_TESTS=YES")
>         #:phases
>         (modify-phases %standard-phases
>           (add-after 'install 'seperate-outputs
>             (lambda* (#:key outputs #:allow-other-keys)
>               (let* ((out (assoc-ref outputs "out"))
>                      (doc (assoc-ref outputs "doc"))
> -                    (doc-name (string-append ,name "-4.4.0")))
> -               (mkdir-p (string-append doc "/share/doc"))
> +                    (doc-name (string-append ,name "-4.4.0"))
> +                    (test (assoc-ref outputs "test")))
> +               (for-each mkdir-p
> +                         `(,(string-append doc "/share/doc")
> +                           ,(string-append test "/bin")))
>                 (rename-file
>                  (string-append out "/share/doc/" doc-name)
> -                (string-append doc "/share/doc/" doc-name)))
> +                (string-append doc "/share/doc/" doc-name))
> +               (rename-file
> +                (string-append out "/bin")
> +                (string-append test "/bin")))
>               #t)))))
>      (native-inputs
>       `(("dot" ,graphviz)
> -- 
> 2.31.0
>
> From 89e071f57db2da8deed0c19e722e8eec35b509a1 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Mon, 15 Mar 2021 22:19:47 -0400
> Subject: [PATCH 20/53] gnu: ortp: Seperate outputs.
>
> * gnu/packages/linphone.scm (ortp) [outputs]: New output "doc".
> [arguments]<#:phases>['seperate-outputs]: New phase.
> ---
>  gnu/packages/linphone.scm | 16 +++++++++++++++-
>  1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
> index fbe9d81d58..3273df02c2 100644
> --- a/gnu/packages/linphone.scm
> +++ b/gnu/packages/linphone.scm
> @@ -403,10 +403,24 @@ such as conferencing.")
>         (sha256
>          (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
>      (build-system cmake-build-system)
> +    (outputs '("out" "doc"))
>      (arguments
>       `(#:tests? #f                      ; No test target
>         #:configure-flags
> -       (list "-DENABLE_STATIC=NO")))    ; Not required
> +       (list
> +        "-DENABLE_STATIC=NO")
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'install 'seperate-outputs
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (doc (assoc-ref outputs "doc"))
> +                    (doc-name (string-append ,name "-4.4.0")))
> +               (mkdir-p (string-append doc "/share/doc"))
> +               (rename-file
> +                (string-append out "/share/doc/" doc-name)
> +                (string-append doc "/share/doc/" doc-name)))
> +             #t)))))
>      (native-inputs
>       `(("dot" ,graphviz)
>         ("doxygen" ,doxygen)))
> -- 
> 2.31.0
>
> From aa8b9dbcca306c55bfd8335d8a8ee933cfa60654 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Mon, 15 Mar 2021 22:09:07 -0400
> Subject: [PATCH 19/53] gnu: ortp: Update to 4.4.34.
>
> * gnu/packages/linphone.scm (ortp) [source]: Switch to git repository.
> [version]: Update to 4.4.34.
> ---
>  gnu/packages/linphone.scm | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
> index f1bcae1208..fbe9d81d58 100644
> --- a/gnu/packages/linphone.scm
> +++ b/gnu/packages/linphone.scm
> @@ -392,15 +392,16 @@ such as conferencing.")
>  (define-public ortp
>    (package
>      (name "ortp")
> -    (version "1.0.2")
> +    (version "4.4.34")
>      (source
>       (origin
> -       (method url-fetch)
> -       (uri
> -        (string-append "https://www.linphone.org/releases/sources/" name
> -                       "/" name "-" version ".tar.gz"))
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "git://git.linphone.org/ortp")
> +             (commit version)))
> +       (file-name (git-file-name name version))
>         (sha256
> -        (base32 "016qg0lmdgmqh2kv19w9qhi4kkiyi5h1xp35g2s65b1j8ccm25d5"))))
> +        (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
>      (build-system cmake-build-system)
>      (arguments
>       `(#:tests? #f                      ; No test target

I suggest squashing these into one patch like this:

--8<---------------cut here---------------start------------->8---
1 file changed, 13 insertions(+), 17 deletions(-)
gnu/packages/linphone.scm | 30 +++++++++++++-----------------

modified   gnu/packages/linphone.scm
@@ -363,15 +363,15 @@ such as conferencing.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/ortp")
+             (url "https://gitlab.linphone.org/BC/public/ortp")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
     (build-system cmake-build-system)
-    (outputs '("out" "doc" "test"))
+    (outputs '("out" "doc" "tester"))
     (arguments
-     `(#:tests? #f                      ; Require networking
+     `(#:tests? #f                      ;requires networking
        #:configure-flags
        (list
         "-DENABLE_STATIC=NO"
@@ -380,20 +380,16 @@ such as conferencing.")
        (modify-phases %standard-phases
          (add-after 'install 'seperate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc"))
-                    (doc-name (string-append ,name "-4.4.0"))
-                    (test (assoc-ref outputs "test")))
-               (for-each mkdir-p
-                         `(,(string-append doc "/share/doc")
-                           ,(string-append test "/bin")))
-               (rename-file
-                (string-append out "/share/doc/" doc-name)
-                (string-append doc "/share/doc/" doc-name))
-               (rename-file
-                (string-append out "/bin")
-                (string-append test "/bin")))
-             #t)))))
+             (let ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc"))
+                   (doc-name (string-append ,name "-4.4.0"))
+                   (tester (assoc-ref outputs "tester")))
+               (for-each mkdir-p (list (string-append doc "/share/doc")
+                                       (string-append test "/bin")))
+               (rename-file (string-append out "/share/doc/" doc-name)
+                            (string-append doc "/share/doc/" doc-name))
+               (rename-file (string-append out "/bin")
+                            (string-append tester "/bin"))))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)))
--8<---------------cut here---------------end--------------->8---

Was there a reason to version the doc using the hard-coded 4.4.0 version
string rather than the package version?

Thanks,

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sat, 27 Mar 2021 02:14:02 GMT) Full text and rfc822 format available.

Message #32 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Fri, 26 Mar 2021 22:13:01 -0400
Hi, 
> From c9e23524c79159f78e4c4738cad9544cfe3ac1ce Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Tue, 16 Mar 2021 15:51:11 -0400
> Subject: [PATCH 30/53] gnu: mediastreamer2: Update to 4.4.34.
>
> * gnu/packages/linphone.scm (mediastreamer2) [source]: Switch to git repository.
> [version]: Update to 4.4.34.
> [patches]: Remove field.
> [outputs]: Rename "tester" to "test".
> [arguments]<#:configure-flags>[-DENABLE_STRICT]: Remove flag.
> [-DENABLE_BV16]: Remove flag.
> [-DCMAKE_C_FLAGS]: Remove flag.
> [-DCMAKE_CXX_FLAGS]: Remove flag.
> <#:phases>['separate-outputs]: Modify.
> [native-inputs]: Replace python with python-wrapper.
> * gnu/packages/patches/mediastreamer2-srtp2.patch: Remove file.
> * gnu/local.mk (dist_patch_DATA): Remove it.
> ---
>  gnu/local.mk                                  |   1 -
>  gnu/packages/linphone.scm                     |  62 ++++---
>  .../patches/mediastreamer2-srtp2.patch        | 155 ------------------
>  3 files changed, 28 insertions(+), 190 deletions(-)
>  delete mode 100644 gnu/packages/patches/mediastreamer2-srtp2.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 3d4147a879..5a69518923 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -1391,7 +1391,6 @@ dist_patch_DATA =						\
>    %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
>    %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
>    %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
> -  %D%/packages/patches/mediastreamer2-srtp2.patch		\
>    %D%/packages/patches/mesa-skip-tests.patch			\
>    %D%/packages/patches/mescc-tools-boot.patch			\
>    %D%/packages/patches/meson-for-build-rpath.patch		\
> diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
> index e573e71932..025fd90c46 100644
> --- a/gnu/packages/linphone.scm
> +++ b/gnu/packages/linphone.scm
> @@ -569,56 +569,50 @@ API.  It also comprises a simple HTTP/HTTPS client implementation.")
>  (define-public mediastreamer2
>    (package
>      (name "mediastreamer2")
> -    (version "2.16.1")
> +    (version "4.4.34")
>      (source
>       (origin
> -       (method url-fetch)
> -       (uri
> -        (string-append "https://www.linphone.org/releases/sources/"
> -                       "mediastreamer/mediastreamer-" version ".tar.gz"))
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "git://git.linphone.org/mediastreamer2")
> +             (commit version)))
> +       (file-name (git-file-name name version))
>         (sha256
> -        (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k"))
> -       (patches (search-patches "mediastreamer2-srtp2.patch"))))
> -    (outputs '("out" "doc" "tester"))
> +        (base32 "0989h3d0h7qrx4kjx8gg09j8c5hvvi3h8qi1iq1dqbppwbaxbz8c"))))
> +    (outputs '("out" "doc" "test"))

The change of the output name from tester to test seems arbitrary :-).
I'd argue that "tester" makes more sense as this outputs contains a
tester binary or command rather than a test suite.

>      (build-system cmake-build-system)
>      (arguments
>       `(#:tests? #f                      ; No test target
>         #:configure-flags
> -       (list "-DENABLE_STATIC=NO"      ; Not required
> -             "-DENABLE_STRICT=NO"      ; Would otherwise treat warnings as err
> -             "-DENABLE_BV16=NO"        ; Not available
> -             "-DCMAKE_C_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\""
> -             "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"")
> +       (list
> +        "-DENABLE_STATIC=NO")
>         #:phases
>         (modify-phases %standard-phases
>           (add-after 'install 'separate-outputs
>             (lambda* (#:key outputs #:allow-other-keys)
>               (let* ((out (assoc-ref outputs "out"))
> +                    (test (assoc-ref outputs "test"))
> +                    (test-name (string-append ,name "_tester"))
>                      (doc (assoc-ref outputs "doc"))
> -                    (tester (assoc-ref outputs "tester"))
> -                    (tester-name (string-append ,name "_tester")))
> -               ;; Copy the tester executable.

While it may seem obvious, I believe the comments helped the human brain
keep track of the process flow more cheaply; please don't remove them.

> -               (mkdir-p (string-append tester "/bin"))
> -               (rename-file (string-append out "/bin/" tester-name)
> -                            (string-append tester "/bin/" tester-name))
> -               ;; Copy the tester data files.
> -               (copy-recursively (string-append out "/share/" tester-name)
> -                                 (string-append tester "/share/" tester-name))
> -               (delete-file-recursively (string-append out "/share/"
> -                                                       tester-name))
> -               ;; Copy the HTML documentation.
> -               (copy-recursively (string-append out "/share/doc/"
> -                                                ,name "-" ,version "/html")
> -                                 (string-append doc "/share/doc/"
> -                                                ,name "-" ,version "/html"))
> -               (delete-file-recursively (string-append out "/share/doc/"
> -                                                       ,name "-" ,version
> -                                                       "/html"))
> -               #t))))))
> +                    (doc-name (string-append ,name "-4.4.0")))
> +               (for-each mkdir-p
> +                         `(,(string-append test "/bin")
> +                           ,(string-append test "/share")
> +                           ,(string-append doc "/share/doc")))
> +               (rename-file
> +                (string-append out "/bin/" test-name)
> +                (string-append test "/bin/" test-name))
> +               (rename-file
> +                (string-append out "/share/" test-name)
> +                (string-append test "/share/" test-name))
> +               (rename-file
> +                (string-append out "/share/doc/" doc-name)
> +                (string-append doc "/share/doc/" doc-name)))
> +             #t)))))
>      (native-inputs
>       `(("dot" ,graphviz)
>         ("doxygen" ,doxygen)
> -       ("python" ,python)))
> +       ("python" ,python-wrapper)))
>      (inputs
>       `(("alsa" ,alsa-lib)
>         ("bcg729" ,bcg729)

I've squashed this one with the home page update and license change, as
they are small and are related to the update.

I still there's still stuff depending on this to be reviewed before it
can be pushed, so I'm amassing a stack here... please be patient :-)

Thank you,

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sat, 27 Mar 2021 05:06:01 GMT) Full text and rfc822 format available.

Message #35 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Sat, 27 Mar 2021 01:05:00 -0400
Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> Headers of soci has include-references to headers of these inputs.

This explanation would be better kept as a comment in the code :-).

> * gnu/packages/databases.scm (soci) [inputs]: Move to ...
> [propagated-inputs]: ... here.
> ---
>  gnu/packages/databases.scm | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
> index 8be83f5cbe..76eb2357ef 100644
> --- a/gnu/packages/databases.scm
> +++ b/gnu/packages/databases.scm
> @@ -3777,7 +3777,7 @@ The drivers officially supported by @code{libdbi} are:
>                 (base32
>                  "14x2gjblkgpflv75wl144cyjp1sis5rbxnr9r2gj3yw16v2av0bp"))))
>      (build-system cmake-build-system)
> -    (inputs
> +    (propagated-inputs
>       `(("firebird" ,firebird)
>         ("postgresql" ,postgresql)
>         ("sqlite" ,sqlite)

Otherwise LGTM.




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sat, 27 Mar 2021 05:12:01 GMT) Full text and rfc822 format available.

Message #38 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Sat, 27 Mar 2021 01:11:28 -0400
Hi,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> * gnu/packages/codesynthesis.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> * gnu/packages/codesythesis.scm (build): New variable.

Why create a new module for this?  We already have (gnu packages
build-tools), which seem a good home.

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sun, 28 Mar 2021 00:53:01 GMT) Full text and rfc822 format available.

Message #41 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org, Léo Le Bouter <lle-bout <at> zaclys.net>,
 Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: bug#47274: Linphone Packages
Date: Sat, 27 Mar 2021 20:52:36 -0400
Hello,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> From 2c1e262e549b928a624513e2c91b059b88b8e822 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Thu, 18 Mar 2021 14:33:34 -0400
> Subject: [PATCH 41/53] gnu: Add cli.
>
> * gnu/packages/codesynthesis.scm (cli): New variable.
> ---
>  gnu/packages/codesynthesis.scm | 45 ++++++++++++++++++++++++++++++++++
>  1 file changed, 45 insertions(+)
>
> diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
> index f24fb760de..b70e53cd7c 100644
> --- a/gnu/packages/codesynthesis.scm
> +++ b/gnu/packages/codesynthesis.scm
> @@ -151,3 +151,48 @@ XML Schema definition language.  It includes a parser, semantic graph types and
>  a traversal mechanism.")
>      (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
>      (license license:gpl2+)))
> +
> +(define-public cli
> +  (package
> +    (name "cli")
> +    (version "1.1.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://www.codesynthesis.com/download/"
> +                           "cli/" (version-major+minor version)
> +                           "/cli-" version ".tar.bz2"))
> +       (sha256
> +        (base32 "0bg0nsai2q4h3mldpnj0jz4iy4svs0bcfvmq0v0c9cdyknny606g"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:test-target "test"
> +       #:make-flags
> +       (list
> +        (string-append "install_prefix=" (assoc-ref %outputs "out")))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch
> +           (lambda _
> +             (substitute* (find-files "." "\\.make$")
> +               (("build-0\\.3")
> +                (string-append (assoc-ref %build-inputs "build")
> +                               "/include/build-0.3")))
> +             (substitute* (find-files "." "\\.?xx$")
> +               (("add \\(typeid \\(type\\), \\*this\\);")
> +                "traverser_map<B>::add (typeid (type), *this);")
> +               (("iterate_and_dispatch \\(s\\.names_begin \\(\\), s\\.names_end \\(\\), d\\);")
> +                "edge_dispatcher::iterate_and_dispatch (s.names_begin (), s.names_end (), d);"))
> +             #t))

What is the above substitution for?  A comment would be helpful!

Thanks,

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sun, 28 Mar 2021 04:02:01 GMT) Full text and rfc822 format available.

Message #44 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Sun, 28 Mar 2021 00:01:33 -0400
Hi!

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> [39. text/x-patch; 0038-gnu-Add-build.patch]...

I had an old package of build from 2020 with a more fleshed out
description, so I've pushed that version instead as commit 65719505b8.

> From c6e27b74e1f90985513167b52cd0e0f9cc54aa73 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Thu, 18 Mar 2021 13:57:53 -0400
> Subject: [PATCH 39/53] gnu: Add libcutl.
>
> * gnu/packages/codesynthesis.scm (libcutl): New variable.
> ---
>  gnu/packages/codesynthesis.scm | 44 ++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)
>
> diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
> index 7cb9a427a5..a264692c19 100644
> --- a/gnu/packages/codesynthesis.scm
> +++ b/gnu/packages/codesynthesis.scm
> @@ -19,6 +19,8 @@
>
>  (define-module (gnu packages codesynthesis)
>    #:use-module (gnu packages)
> +  #:use-module (gnu packages pkg-config)

pkg-config turned out not to be needed.

> +  #:use-module (gnu packages xml)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix packages)
>    #:use-module (guix download)
> @@ -53,3 +55,45 @@
>  implemented on top of GNU make.")
>      (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
>      (license license:gpl2+)))
> +
> +(define-public libcutl
> +  (package
> +    (name "libcutl")
> +    (version "1.10.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://www.codesynthesis.com/download/libcutl/"
> +                           (version-major+minor version)
> +                           "/libcutl-" version ".tar.bz2"))
> +       (sha256
> +        (base32 "070j2x02m4gm1fn7gnymrkbdxflgzxwl7m96aryv8wp3f3366l8j"))
> +       (modules '((guix build utils)))
> +       (snippet
> +        `(begin
> +           ;; Remove bundled sources.
> +           (with-directory-excursion "cutl/details"
> +             (for-each delete-file-recursively
> +                       ;; FIXME: Boost_RegEx isn't being detected.
> +                       (list
> +                        ;; "boost"
> +                        "expat")))
> +           #t))))

I removed the trailing #t.

> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:configure-flags
> +       (list
> +        "--disable-static"
> +        ;; "--with-external-boost"
> +        "--with-external-expat")))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)))

Removed the native-inputs field.

> +    (inputs
> +     `(;; ("boost" ,boost)
> +       ("expat" ,expat)))
> +    (synopsis "C++ utility library")
> +    (description "@package{libcutl} is a C++ utility library.  It contains a
> +collection of generic and independent components such as meta-programming tests,
> +smart pointers, containers, compiler building blocks, etc.")
> +    (home-page "https://www.codesynthesis.com/projects/libcutl/")
> +    (license license:expat)))
> --
> 2.31.0

And pushed as ae479f1834.

> From e3abe6dbfcbd6bfb352694fd5efcb9db9da6dce6 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Thu, 18 Mar 2021 14:00:13 -0400
> Subject: [PATCH 40/53] gnu: Add libxsd-frontend.
>
> * gnu/packages/codesynthesis.scm (libxsd-frontend): New variable.
> ---
>  gnu/packages/codesynthesis.scm | 54 ++++++++++++++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
>
> diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
> index a264692c19..f24fb760de 100644
> --- a/gnu/packages/codesynthesis.scm
> +++ b/gnu/packages/codesynthesis.scm
> @@ -97,3 +97,57 @@ collection of generic and independent components such as meta-programming tests,
>  smart pointers, containers, compiler building blocks, etc.")
>      (home-page "https://www.codesynthesis.com/projects/libcutl/")
>      (license license:expat)))
> +
> +(define-public libxsd-frontend
> +  (package
> +    (name "libxsd-frontend")
> +    (version "2.0.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://www.codesynthesis.com/download/"
> +                           "libxsd-frontend/" (version-major+minor version)
> +                           "/libxsd-frontend-" version ".tar.bz2"))
> +       (sha256
> +        (base32 "1nmzchsvwvn66jpmcx18anzyl1a3l309x1ld4zllrg37ijc31fim"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:test-target "test"
> +       #:imported-modules
> +       ((guix build copy-build-system)
> +        ,@%gnu-build-system-modules)
> +       #:modules
> +       (((guix build copy-build-system)
> +         #:prefix copy:)
> +        (guix build gnu-build-system)
> +        (guix build utils))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch
> +           (lambda _
> +             (substitute* (find-files "." "\\.make$")
> +               (("build-0\\.3")
> +                (string-append (assoc-ref %build-inputs "build") "/include/build-0.3")))
> +             #t))

I could turn this patch phase into a make flag:

--8<---------------cut here---------------start------------->8---
        #:modules (((guix build copy-build-system) #:prefix copy:)
                   (guix build gnu-build-system)
                   (guix build utils))
+       #:make-flags (list (string-append "--include-dir="
+                                         (assoc-ref %build-inputs "build")
+                                         "/include/"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch
-           (lambda _
-             (substitute* (find-files "." "\\.make$")
-               (("build-0\\.3")
-                (string-append (assoc-ref %build-inputs "build")
-                               "/include/build-0.3")))))
          (delete 'configure)
          (replace 'install
--8<---------------cut here---------------end--------------->8---


> +         (delete 'configure)
> +         (replace 'install
> +           (lambda args
> +             (apply (assoc-ref copy:%standard-phases 'install)
> +                    #:install-plan
> +                    '(("xsd-frontend" "include/xsd-frontend"
> +                       #:include-regexp ("\\.?xx$"))
> +                      ("xsd-frontend" "lib"
> +                       #:include-regexp ("\\.so$")))
> +                    args))))))
> +    (native-inputs
> +     `(("build" ,build)
> +       ("pkg-config" ,pkg-config)))

Removed pkg-config, which was not needed.

> +    (inputs
> +     `(("libcutl" ,libcutl)
> +       ("libxerces-c" ,xerces-c)))
> +    (synopsis "XSD Front-end")
> +    (description "@package{libxsd-frontend} is a compiler frontend
> for the W3C

Replaced @package by @code, as the former is not valid Texinfo markup.

> +XML Schema definition language.  It includes a parser, semantic graph types and
> +a traversal mechanism.")
> +    (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
> +    (license license:gpl2+)))
> --
> 2.31.0

And pushed as 111004cc58.

>
> From 2c1e262e549b928a624513e2c91b059b88b8e822 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Thu, 18 Mar 2021 14:33:34 -0400
> Subject: [PATCH 41/53] gnu: Add cli.
>
> * gnu/packages/codesynthesis.scm (cli): New variable.
> ---
>  gnu/packages/codesynthesis.scm | 45 ++++++++++++++++++++++++++++++++++
>  1 file changed, 45 insertions(+)
>
> diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
> index f24fb760de..b70e53cd7c 100644
> --- a/gnu/packages/codesynthesis.scm
> +++ b/gnu/packages/codesynthesis.scm
> @@ -151,3 +151,48 @@ XML Schema definition language.  It includes a parser, semantic graph types and
>  a traversal mechanism.")
>      (home-page "https://www.codesynthesis.com/projects/libxsd-frontend/")
>      (license license:gpl2+)))
> +
> +(define-public cli
> +  (package
> +    (name "cli")
> +    (version "1.1.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://www.codesynthesis.com/download/"
> +                           "cli/" (version-major+minor version)
> +                           "/cli-" version ".tar.bz2"))
> +       (sha256
> +        (base32 "0bg0nsai2q4h3mldpnj0jz4iy4svs0bcfvmq0v0c9cdyknny606g"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:test-target "test"
> +       #:make-flags
> +       (list
> +        (string-append "install_prefix=" (assoc-ref %outputs "out")))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch
> +           (lambda _
> +             (substitute* (find-files "." "\\.make$")
> +               (("build-0\\.3")
> +                (string-append (assoc-ref %build-inputs "build")
> +                               "/include/build-0.3")))

I used the same --include-dir make flag trick here.

> +             (substitute* (find-files "." "\\.?xx$")
> +               (("add \\(typeid \\(type\\), \\*this\\);")
> +                "traverser_map<B>::add (typeid (type), *this);")
> +               (("iterate_and_dispatch \\(s\\.names_begin \\(\\), s\\.names_end \\(\\), d\\);")
> +                "edge_dispatcher::iterate_and_dispatch (s.names_begin (), s.names_end (), d);"))
> +             #t))

Dropped the #t, added a comment and added the prefix to the default
regexp group bound to 'all', like this:

+             ;; Add the namespace prefix, to avoid errors such as "error:
+             ;; ‘iterate_and_dispatch’ was not declared in this scope".
+             (substitute* (find-files "." "\\.?xx$")
+               (("add \\(typeid \\(type\\), \\*this\\);" all)
+                (string-append "traverser_map<B>::" all))
+               (("iterate_and_dispatch \\(s\\.names_begin.*;" all)
+                (string-append "edge_dispatcher::" all)))))

> +         (delete 'configure))))
> +    (native-inputs
> +     `(("build" ,build)
> +       ("pkg-config" ,pkg-config)))

Removed pkg-config, which was not needed.

> +    (inputs
> +     `(("libcutl" ,libcutl)))
> +    (synopsis "Command Line Interface (CLI) definition language")
> +    (description "@package{cli} is a domain-specific language (DSL)
> for defining

s/@package/@code/, as for the previous package.

> +command line interfaces of C++ programs.  It allows you to describe the options
> +that your program supports, their types, default values, and documentation.")
> +    (home-page "https://codesynthesis.com/projects/cli/")
> +    (license license:expat)))
> --
> 2.31.0

And pushed as commit f649a0a557.

>
> From d46ed1d4bd1d85ad5c89d2c713f387714f152358 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <rg <at> raghavgururajan.name>
> Date: Thu, 18 Mar 2021 15:51:18 -0400
> Subject: [PATCH 42/53] gnu: Add xsd.
>
> * gnu/packages/codesynthesis.scm (xsd): New variable.
> ---
>  gnu/packages/codesynthesis.scm | 48 ++++++++++++++++++++++++++++++++++
>  1 file changed, 48 insertions(+)
>
> diff --git a/gnu/packages/codesynthesis.scm b/gnu/packages/codesynthesis.scm
> index b70e53cd7c..58f4fa9301 100644
> --- a/gnu/packages/codesynthesis.scm
> +++ b/gnu/packages/codesynthesis.scm
> @@ -19,6 +19,7 @@
>
>  (define-module (gnu packages codesynthesis)
>    #:use-module (gnu packages)
> +  #:use-module (gnu packages onc-rpc)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages xml)
>    #:use-module ((guix licenses) #:prefix license:)
> @@ -196,3 +197,50 @@ command line interfaces of C++ programs.  It allows you to describe the options
>  that your program supports, their types, default values, and documentation.")
>      (home-page "https://codesynthesis.com/projects/cli/")
>      (license license:expat)))
> +
> +(define-public xsd
> +  (package
> +    (name "xsd")
> +    (version "4.0.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://www.codesynthesis.com/download/"
> +                           "xsd/" (version-major+minor version)
> +                           "/xsd-" version ".tar.bz2"))
> +       (sha256
> +        (base32 "1hi9ppxd34np8ydv1h0vgc2qpdmgcd1cdzgk30aidv670xjg91fx"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:test-target "test"
> +       #:make-flags
> +       (list
> +        (string-append "install_prefix=" (assoc-ref %outputs "out")))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch
> +           (lambda _
> +             (substitute* (find-files "." "\\.make$")
> +               (("build-0\\.3")
> +                (string-append (assoc-ref %build-inputs "build")
> +                               "/include/build-0.3")))
> +             #t))

I added a doc output to hold the multi-megabyte documentation and
examples and used the same make flag trick to allow finding build-0.3
files:

+    (outputs '("out" "doc"))            ;3.8 MiB of doc and examples
+    (arguments
+     `(#:test-target "test"
+       #:make-flags (list (string-append "--include-dir="
+                                         (assoc-ref %build-inputs "build")
+                                         "/include/")
+                          (string-append "install_prefix="
+                                         (assoc-ref %outputs "out")))
+       #:phases (modify-phases %standard-phases
+                  (add-after 'install 'move-doc
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out"))
+                            (doc (assoc-ref outputs "doc")))
+                        (mkdir-p (string-append doc "/share/doc"))
+                        (rename-file (string-append out "/share/doc/xsd")
+                                     (string-append doc "/share/doc/xsd-"
+                                                    ,version)))))
+                  (delete 'configure))))

> +         (delete 'configure))))
> +    (native-inputs
> +     `(("build" ,build)
> +       ("cli" ,cli)
> +       ("pkg-config" ,pkg-config)))

Dropped pkg-config here as well.

> +    (inputs
> +     `(("libcutl" ,libcutl)
> +       ("libnsl" ,libnsl)
> +       ("libxsd-frontend" ,libxsd-frontend)))
> +    (propagated-inputs
> +     `(("libexpat" ,expat)
> +       ("libxerces-c" ,xerces-c)))

I removed expat from propagated-inputs, as the xsd generated code
default to using xerces-c.  Someone wanting to use expat could add it
manually.  I've also added a comment like this, as it was not clear to
me initially why propagation was useful:

    (propagated-inputs
     ;; The code XSD generates requires the following library at run time;
     ;; propagate it for convenience.
     `(("xerces-c" ,xerces-c)))

> +    (synopsis "XML Schema to C++ translator")
> +    (description "@package{xsd} is a W3C XML Schema to C++ translator.  It
> +generates vocabulary-specific, statically-typed C++ mappings/bindings from XML
> +Schema definitions.  It supports two C++ mappings: in-memory C++/Tree and
> +event-driven C++/Parser.")
> +    (home-page "https://codesynthesis.com/projects/xsd/")
> +    (license license:gpl2+)))

For this package, I also had an unfinished version locally; the
description was slightly more accurate, with an extra comment for the
license:

+    (synopsis "XML Data Binding for C++")
+    (description "CodeSynthesis XSD (also known as libxsd or xsdcxx) is an XML
+Schema to C++ data binding compiler.  Provided with an XML instance
+specification (XML Schema), it generates C++ classes that represent the given
+vocabulary as well as XML parsing and serialization code.  The data stored in
+XML can then be accessed using types and functions that semantically
+correspond to an application domain rather than dealing with the intricacies
+of reading and writing XML.")
+    (home-page "https://codesynthesis.com/projects/xsd/")
+    ;; Exceptions are made to allow using the generated source files as well
+    ;; as the libxsd library in free software projects whose license is
+    ;; incompatible with the GPL v2.  Refer to the file named FLOSSE for the
+    ;; details.

So I've used those parts and pushed as commit 510e24f973.

Phew.  I've now reached the core bits of the review, to be continued.

Thanks :-)

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sun, 28 Mar 2021 04:06:01 GMT) Full text and rfc822 format available.

Message #47 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Sun, 28 Mar 2021 00:05:42 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> Why create a new module for this?  We already have (gnu packages
> build-tools), which seem a good home.

The idea is similar to suckless.scm and linphone.scm. This project has 
produce multiple software, which are often inter-connected and/or 
inter-dependent. So created dedicated module for this project 'Code 
Synthesis'.

Also, I will be adding more of their packages to this module.

Regards,
RG.

[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Sun, 28 Mar 2021 04:44:01 GMT) Full text and rfc822 format available.

Message #50 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Sun, 28 Mar 2021 00:43:21 -0400
Hello Raghav,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> Hi Maxim!
>
>> Why create a new module for this?  We already have (gnu packages
>> build-tools), which seem a good home.
>
> The idea is similar to suckless.scm and linphone.scm. This project has
> produce multiple software, which are often inter-connected and/or 
> inter-dependent. So created dedicated module for this project 'Code
> Synthesis'.
>
> Also, I will be adding more of their packages to this module.
>
> Regards,
> RG.

OK, thanks for the answer.

As I've answered on IRC, so far, the (gnu packgaes cpp) module seems
sufficient; it's a relatively small module itself.  The problem I see
with having codesynthesis as a module is that it'd be misleading as a
module name: not all their tools are about code synthesis (that's their
company name, but that's not obvious!  I got confused that way when
first looking at your patch series).

I've merged the codesynthesis packgaes in the cpp module already; if it
becomes a problem we can revisit this choice.

Thank you,

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 04:04:01 GMT) Full text and rfc822 format available.

Message #53 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 00:03:16 -0400
Hi Raghav!

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> Hello Guix!
>
>> Fixed it in the attached patch-set. The app works now. \o/
>
> Spoke too soon. :/
>
> New error now.
>
>> Anyway, I think we can do something for the following, w.r.t
>> linphone-desktop:
>> [1] Warnings. Fixing them might prevent them to become errors.
>> [2] Better solution than symlinks in 'post-install phase. Because
>> linphone-desktop should be able to read files in /lib and /share of 
>> *all* of its dependencies. Not just for those we made symlinks for,
>> which is a temporary fix.
>> Regarding [1], for one of the warnings, I tried creating symlink 
>> "{linphone-desktop}/lib" --> "{liblinphone}/lib", which worked. But
>> is it the correct way?
>> Regarding [2], I tried wrapping the program with XDG_DATA_DIRS, but
>> didn't work.
>
> Looks like we need to do something about the [2]. The new error is
> because of that. I can fix this new error with another symlink, but
> new ones will keep happening.
>
> Context:
> The old error that I mentioned and fixed in my previous email is,
> "[Error]Core:linphone: Could not load grammar vcard_grammar because
> the file could not be located.".
> The new error I am mentioning in this email is, "[Error]Core:linphone:
> Could not load grammar identity_grammar because the file could not be 
> located."
>
> Regards,
> RG.

I think I've managed to fix the issue, with the following:

--8<---------------cut here---------------start------------->8---
 (let* ((out (assoc-ref outputs "out"))
                    (liblinphone (assoc-ref inputs "liblinphone"))
                    (grammar-dest (string-append out
                    "/share/belr/grammars")))
               [...]     
               (mkdir-p (dirname grammar-dest))
               (symlink (string-append liblinphone "/share/belr/grammars")
                        grammar-dest)
--8<---------------cut here---------------end--------------->8---

At least it launches now, and everything seems to work.

Will submit it soon!

Thank you :-)

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 05:08:02 GMT) Full text and rfc822 format available.

Message #56 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org, Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:07:23 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> Ending phases with #t is no longer required on core-updates, and we can
> stop doing it on master and staging already too, to save us the hassle
> of editing them out at some later point in time :-)

Agreed.

> This inputs field seems unnecessary, especially we don't want to add a
> dependency to Python 2, which is slowly being carved out of Guix.

Makes sense.

> I've made the following changes:
> 
> --8<---------------cut here---------------start------------->8---
> 1 file changed, 5 insertions(+), 15 deletions(-)
> gnu/packages/crypto.scm | 20 +++++---------------
> 
> modified   gnu/packages/crypto.scm
> @@ -116,40 +116,30 @@
>                  (("gmake")
>                   "make")
>                  (("'\\.\\.', 'build', 'lib', 'libdecaf\\.so'")
> -                "'..', '..', 'build', 'src', 'libdecaf.so'"))
> -             #t))
> +                "'..', '..', 'build', 'src', 'libdecaf.so'"))))
>            (add-after 'install 'install-python-binding
>              (lambda* (#:key outputs #:allow-other-keys)
>                (with-directory-excursion "../source/python"
>                  (invoke "python" "setup.py" "install"
>                          (string-append "--prefix=" (assoc-ref outputs "python"))
> -                       "--root=/"))
> -             #t))
> +                       "--root=/"))))
>            (add-after 'install-python-binding 'install-documentation
>              (lambda* (#:key outputs #:allow-other-keys)
>                (invoke "make" "doc")
>                (let* ((doc (assoc-ref outputs "doc"))
>                       (dest (string-append doc "/share/doc")))
> -               (copy-recursively "doc" dest))
> -             #t)))))
> +               (copy-recursively "doc" dest)))))))
>       (native-inputs
>        `(("dot" ,graphviz)
>          ("doxygen" ,doxygen)
>          ("python" ,python-wrapper)))
> -    (inputs
> -     `(("python2" ,python-2.7)
> -       ("python3" ,python)))
>       (synopsis "Decaf Elliptic Curve Library")
>       (description "The libdecaf library is an implementation of elliptic curve
>   cryptography using the Montgomery and Edwards curves Curve25519, Ed25519,
>   Ed448-Goldilocks and Curve448, using the Decaf encoding.")
>       (home-page "http://ed448goldilocks.sourceforge.net/")
> -    (license
> -     (list
> -      ;; Library.
> -      license:expat
> -      ;; Binding.
> -      license:bsd-2))))
> +    (license (list license:expat        ;library
> +                   license:bsd-2))))    ;python bindings
>   
>   (define-public libsodium
>     (package
> --8<---------------cut here---------------end--------------->8---
> 
> And pushed as commit c221d49510.

Thank you!

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 05:15:01 GMT) Full text and rfc822 format available.

Message #59 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:13:55 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> I've squashed the 3 bctoolbox commits together, adjusted the commit
> message as below:

Thanks.

> Used their HTTPS GitLab git here as its browsable;

Okay. I prefer git://git.linphone.org, as it is generic and not tied to 
specific platform and will even work when upstream moves to another 
platform like gitea etc., but no big deal.

> Added an issue upstream for the problem worked around here.

Cool.

> Mentioned this had to do with networking, which is inherent to the
> absence of networking in the Guix build container (otherwise it'd had
> been good to report the test failure upstream).

Makes sense.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 05:17:02 GMT) Full text and rfc822 format available.

Message #62 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org, Léo Le Bouter <lle-bout <at> zaclys.net>,
 Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:16:40 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> I suggest squashing these into one patch like this:

Cool.

> Was there a reason to version the doc using the hard-coded 4.4.0 version
> string rather than the package version?

This package used the version-series (4.4.0), instead of version-string 
(4.4.X).

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 05:20:01 GMT) Full text and rfc822 format available.

Message #65 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:19:05 -0400
Hello Raghav!  This addresses the review up to linphone-desktop (mostly
done with this ticket!).

I'm afraid commenting on all the small changes I've done to the original
submission would take us through the night; if you don't mind I invite
you to consult the changes now merged into master.

I'll try to summarize the higher value bits here:

1. bctoolbox

@@ -133,19 +138,21 @@ writing, administering, and running unit tests in C.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/bctoolbox")
+             (url "https://gitlab.linphone.org/BC/public/bctoolbox.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25"))))
     (build-system cmake-build-system)
+    (outputs '("out" "debug"))
     (arguments
      `(#:configure-flags '("-DENABLE_STATIC=OFF")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source
+         (add-after 'unpack 'patch-cmake
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; Fix decaf dependency.
+             ;; Fix decaf dependency (see:
+             ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/3).

I've reported the issue upstream.

              (let* ((decaf (assoc-ref inputs "decaf")))
                (substitute* (find-files "." "CMakeLists.txt")
                  (("find_package\\(Decaf CONFIG\\)")
@@ -153,17 +160,28 @@ writing, administering, and running unit tests in C.")
                  (("\\$\\{DECAF_INCLUDE_DIRS\\}")
                   (string-append decaf "/include/decaf"))
                  (("\\$\\{DECAF_TARGETNAME\\}")
-                  "decaf")))
-             ;; Disable failing tests.
+                  "decaf")))))
+         (add-after 'unpack 'skip-problematic-tests
+           (lambda _
+             ;; The following test relies on networking; disable it.
              (substitute* "tester/port.c"
-               (("[ \t]*TEST_NO_TAG\\(\"Addrinfo sort\", bctbx_addrinfo_sort_test\\)")
-                ""))
-             #t))
+               (("[ \t]*TEST_NO_TAG.*bctbx_addrinfo_sort_test\\)")
+                ""))))
+         (add-after 'unpack 'fix-installed-resource-directory-detection
+           (lambda _
+             ;; There's some broken logic in tester.c that checks if CWD, or
+             ;; if its parent exist, and if so, sets the prefix where the test
+             ;; resources are looked up to; disable it (see:
+             ;; https://gitlab.linphone.org/BC/public/bctoolbox/-/issues/4).
+             (substitute* "src/tester.c"
+               (("if \\(file_exists\\(\".\"\\)\\)")
+                "if (NULL)")
+               (("if \\(file_exists\\(\"..\"\\)\\)")
+                "if (NULL)"))))

I figured a way to have the bctoolbox library refer to its resource
directory more correctly, at least for our uses of it.

2. belr

@@ -181,41 +200,42 @@ Communications software like belle-sip, mediastreamer2 and linphone.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/belr")
+             (url "https://gitlab.linphone.org/BC/public/belr.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0w2canwwm0qb99whnangvaybvjzq8xg6vksqxykgr8fbx7clw03h"))))
     (build-system cmake-build-system)
-    (outputs '("out" "test"))
+    (outputs '("out" "debug" "tester"))

I've settled to keep 'tester', which was already used in the module and
which better maps to what this output is (a tester binary to run self tests).

     (arguments
      `(#:configure-flags '("-DENABLE_STATIC=OFF")
        #:phases
        (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (copy-file "tester/belr_tester" "../source/tester/belr_tester")
-             (with-directory-excursion "../source/tester"
-               (invoke "./belr_tester"))
-             #t))
-         (add-after 'install 'seperate-outputs
+         (delete 'check)                ;moved after the install phase
+         (add-after 'install 'check
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((tester (assoc-ref outputs "tester"))
+                    (belr_tester (string-append tester "/bin/belr_tester"))
+                    (tester-share (string-append tester "/share/belr_tester")))
+               (invoke belr_tester))))
+         (add-after 'install 'move-tester
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (test (assoc-ref outputs "test"))
-                    (test-name (string-append ,name "_tester")))
+                    (tester (assoc-ref outputs "tester")))
                (for-each mkdir-p
-                         `(,(string-append test "/bin")
-                           ,(string-append test "/share")))
+                         (list (string-append tester "/bin")
+                               (string-append tester "/share")))
                (rename-file
-                (string-append out "/bin/" test-name)
-                (string-append test "/bin/" test-name))
+                (string-append out "/bin/belr_tester")
+                (string-append tester "/bin/belr_tester"))
                (rename-file
                 (string-append out "/share/belr-tester")
-                (string-append test "/share/" test-name)))
-             #t)))))
+                ;; The detect_res_prefix procedure in bctoolbox's tester.c
+                ;; resolves the resource path based on the executable path and
+                ;; name, so have it match.
+                (string-append tester "/share/belr_tester"))))))))

Here I noticed the code relies on the tester file name to resolve its
resources, so adapted the resource install directory to match.

     (inputs
-     `(("bctoolbox" ,bctoolbox)
-       ("libudev" ,eudev)))

Dropped eudev, apparently unnecessary.

+     `(("bctoolbox" ,bctoolbox)))
     (synopsis "Belledonne Communications Language Recognition Library")
     (description "Belr is Belledonne Communications' language recognition
 library, written in C++11.  It parses text inputs formatted according to a

3. belcard

      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/belcard")
+             (url "https://gitlab.linphone.org/BC/public/belcard.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "16x2xp8d0a115132zhy1kpxkyj86ia7vrsnpjdg78fnbvmvysc8m"))))
     (build-system cmake-build-system)
-    (outputs '("out" "test"))
+    (outputs '("out" "debug" "tester"))
     (arguments
-     `(#:tests? #f ; FIX-ME
+     `(#:tests? #t
        #:configure-flags '("-DENABLE_STATIC=OFF")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'install 'seperate-outputs
+         (add-after 'unpack 'patch-vcard-grammar-location
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (test (assoc-ref outputs "test"))
-                    (test-name (string-append ,name "_tester")))
+                    (vcard-grammar
+                     (string-append out "/share/belr/grammars/vcard_grammar")))
+               (substitute* "include/belcard/vcard_grammar.hpp"
+                 (("define VCARD_GRAMMAR \"vcard_grammar\"")
+                  (format #f "define VCARD_GRAMMAR ~s" vcard-grammar))))))
+         (add-after 'install 'install-tester
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (tester (assoc-ref outputs "tester"))
+                   (test-name (string-append ,name "_tester")))
                (for-each mkdir-p
-                         `(,(string-append test "/bin")
-                           ,(string-append test "/share")))
-               (rename-file
-                (string-append out "/bin/" test-name)
-                (string-append test "/bin/" test-name))
-               (rename-file
-                (string-append out "/share/" test-name)
-                (string-append test "/share/" test-name)))
-             #t)))))
-    (native-inputs
-     `(("python" ,python-wrapper)))
+                         (list (string-append tester "/bin")
+                               (string-append tester "/share")))
+               (rename-file (string-append out "/bin/" test-name)
+                            (string-append tester "/bin/" test-name))
+               (rename-file (string-append out "/share/" test-name)
+                            (string-append tester "/share/" test-name)))))
+         (delete 'check)
+         (add-after 'install-tester 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (let* ((tester (assoc-ref outputs "tester"))
+                      (belcard_tester (string-append tester
+                                                     "/bin/belcard_tester")))
+                 (invoke belcard_tester))))))))

I've found that moving the check phase after installing, along with the
resource fix made for belr allowed the test suite to run, so I enabled it.

     (inputs
      `(("bctoolbox" ,bctoolbox)
-       ("belr" ,belr)
-       ("libudev" ,eudev)))

eudev was here also unnecessary, as well as python.

+       ("belr" ,belr)))
     (synopsis "Belledonne Communications VCard Library")
     (description "Belcard is a C++ library to manipulate VCard standard
 format.")

4. ortp

 (define-public ortp
   (package
@@ -363,37 +407,40 @@ such as conferencing.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/ortp")
+             (url "https://gitlab.linphone.org/BC/public/ortp.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1r1kvjzyfvkf66in4p51wi87balzg3sw3aq6r4xr609mz86spi5m"))))
     (build-system cmake-build-system)
-    (outputs '("out" "doc" "test"))
+    (outputs '("out""tester"
+               "doc"))                  ;1.5 MiB of HTML doc

Added a comment about why we are adding a 'doc' output.

     (arguments
-     `(#:tests? #f                      ; Require networking
-       #:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_TESTS=YES")
+     `(#:tests? #f                      ;requires networking
+       #:configure-flags (list "-DENABLE_STATIC=NO"
+                               "-DENABLE_TESTS=YES")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'install 'seperate-outputs
+         (add-after 'unpack 'fix-version-strings
+           ;; See: https://gitlab.linphone.org/BC/public/ortp/-/issues/5.
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
+                (string-append "VERSION " ,version))
+               (("\\$\\{ORTP_DOC_VERSION\\}")
+                ,version))))

Here I've found an issue where some CMake variables were not set,
causing the doc to be installed in a 'ortp-' named directory.

+         (add-after 'install 'separate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (doc (assoc-ref outputs "doc"))
-                    (doc-name (string-append ,name "-4.4.0"))
-                    (test (assoc-ref outputs "test")))
-               (for-each mkdir-p
-                         `(,(string-append doc "/share/doc")
-                           ,(string-append test "/bin")))
-               (rename-file
-                (string-append out "/share/doc/" doc-name)
-                (string-append doc "/share/doc/" doc-name))
-               (rename-file
-                (string-append out "/bin")
-                (string-append test "/bin")))
-             #t)))))
+                    (doc-src (string-append out "/share/doc/ortp-" ,version))
+                    (doc-dest (string-append doc "/share/doc/ortp-" ,version))
+                    (tester (assoc-ref outputs "tester")))
+               (for-each mkdir-p (list (string-append doc "/share/doc")
+                                       (string-append tester "/bin")))
+               (rename-file doc-src doc-dest)
+               (rename-file (string-append out "/bin")
+                            (string-append tester "/bin"))))))))

Which simplified moving the doc directory.

     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)))

5: mediastreamer2

      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/mediastreamer2")
+             (url "https://gitlab.linphone.org/BC/public/mediastreamer2.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "0989h3d0h7qrx4kjx8gg09j8c5hvvi3h8qi1iq1dqbppwbaxbz8c"))))
-    (outputs '("out" "doc" "test"))
+    (outputs '("out" "doc" "tester"))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_PCAP=YES"
-        "-DENABLE_STRICT=NO"       ; To disable strict compile options
-        "-DENABLE_PORTAUDIO=YES"
-        "-DENABLE_G729B_CNG=YES")
+     `(#:configure-flags (list "-DENABLE_STATIC=NO"
+                               "-DENABLE_PCAP=YES"
+                               ;; Do not fail on compile warnings.
+                               "-DENABLE_STRICT=NO"
+                               "-DENABLE_PORTAUDIO=YES"
+                               "-DENABLE_G729B_CNG=YES")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("VERSION [0-9]+\\.[0-9]+\\.[0-9]+")
+                (string-append "VERSION " ,version)))))
          (add-after 'unpack 'patch-source
            (lambda _
              (substitute* "src/otherfilters/mspcapfileplayer.c"
-               (("O_BINARY") "L_INCR"))
-             #t))
+               (("O_BINARY") "L_INCR"))))
          (add-before 'check 'pre-check
            (lambda _
              ;; Tests require a running X server.
              (system "Xvfb :1 +extension GLX &")
              (setenv "DISPLAY" ":1")
              ;; Tests write to $HOME.
-             (setenv "HOME" (getenv "TEMP"))
-             #t))
-         (replace 'check
-           (lambda _
-             (copy-file
-              "tester/mediastreamer2_tester"
-              "../source/tester/mediastreamer2_tester")
-             (with-directory-excursion "../source/tester"
-               (for-each
-                (lambda (suite-name)
-                  (invoke "./mediastreamer2_tester" "--suite" suite-name))
-                (list
-                 "Basic Audio"
-                 ;; "Sound Card"
-                 ;; "AdaptiveAlgorithm"
-                 ;; "AudioStream"
-                 ;; "VideoStream"
-                 "H26x Tools"
-                 "Framework"
-                 ;; "Player"
-                 "TextStream")))
-             #t))
+             (setenv "HOME" (getenv "TEMP"))))
+         (delete 'check)                ;move after install
          (add-after 'install 'separate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (test (assoc-ref outputs "test"))
-                    (test-name (string-append ,name "_tester"))
+                    (tester (assoc-ref outputs "tester"))
+                    (tester-name (string-append ,name "_tester"))
                     (doc (assoc-ref outputs "doc"))
-                    (doc-name (string-append ,name "-4.4.0")))
+                    (doc-name (string-append ,name "-" ,version)))
                (for-each mkdir-p
-                         `(,(string-append test "/bin")
-                           ,(string-append test "/share")
-                           ,(string-append doc "/share/doc")))
-               (rename-file
-                (string-append out "/bin/" test-name)
-                (string-append test "/bin/" test-name))
-               (rename-file
-                (string-append out "/share/" test-name)
-                (string-append test "/share/" test-name))
-               (rename-file
-                (string-append out "/share/doc/" doc-name)
-                (string-append doc "/share/doc/" doc-name)))
-             #t)))))
+                         (list (string-append tester "/bin")
+                               (string-append tester "/share")
+                               (string-append doc "/share/doc")))
+               ;; Move the tester executable.
+               (rename-file (string-append out "/bin/" tester-name)
+                            (string-append tester "/bin/" tester-name))
+               ;; Move the tester data files.
+               (rename-file (string-append out "/share/" tester-name)
+                            (string-append tester "/share/" tester-name))
+               ;; Move the HTML documentation.
+               (rename-file (string-append out "/share/doc/" doc-name)
+                            (string-append doc "/share/doc/" doc-name)))))

I moved the check phase after the installation, which allowed not having
to copy the binary or resource files, and reinstated some comments.

+         (add-after 'separate-outputs 'check
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((tester (string-append  (assoc-ref outputs "tester")
+                                           "/bin/mediastreamer2_tester")))
+               (for-each (lambda (suite-name)
+                           (invoke tester "--suite" suite-name))
+                         ;; Some tests fail, due to requiring access to the
+                         ;; sound card or the network.

Added a comment of why some tests are not enabled.

+                           (list "Basic Audio"
+                                 ;; "Sound Card"
+                                 ;; "AdaptiveAlgorithm"
+                                 ;; "AudioStream"
+                                 ;; "VideoStream"
+                                 "H26x Tools"
+                                 "Framework"
+                                 ;; "Player"
+                                 "TextStream"))))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)

6. belle-sip

      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "git://git.linphone.org/belle-sip")
+             (url "https://gitlab.linphone.org/BC/public/belle-sip.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1kknnlczq7dpqaj1dwxvy092dzrqjy11ndkv90rqwmdryigkjk6z"))))
     (build-system cmake-build-system)
-    (outputs '("out" "test"))
+    (outputs '("out" "tester"))
     (arguments
-     `(#:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_MDNS=ON")
+     `(#:configure-flags (list "-DENABLE_STATIC=NO"
+                               "-DENABLE_MDNS=ON")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch
@@ -514,58 +512,44 @@ including both ARM and x86.")
              (substitute* "src/CMakeLists.txt"
                ;; ANTLR would use multithreaded DFA generation otherwise,
                ;; which would not be reproducible.
-               (("-Xmultithreaded ") ""))
-             #t))
-         (replace 'check
-           (lambda _
-             (copy-file
-              "tester/belle_sip_tester"
-              "../source/tester/belle_sip_tester")
-             (with-directory-excursion "../source/tester"
-               (for-each
-                (lambda (suite-name)
-                  (invoke "./belle_sip_tester" "--suite" suite-name))
-                (list
-                 "Object inheritance"
-                 "SIP URI"
-                 "FAST SIP URI"
-                 "FAST SIP URI 2"
-                 "Generic uri"
-                 "Headers"
-                 "Core"
-                 "SDP"
-                 ;; "Resolver"
-                 "Message"
-                 "Authentication helper"
-                 ;; "Register"
-                 ;; "Dialog"
-                 "Refresher"
-                 ;; "HTTP stack"
-                 "Object")))
-             #t))
-         (add-after 'install 'seperate-outputs
+               (("-Xmultithreaded ") ""))))
+         (delete 'check)                ;move after install
+         (add-after 'install 'separate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (test (assoc-ref outputs "test"))
-                    (test-name (string-append "belle_sip" "_tester")))
-               (for-each mkdir-p
-                         `(,(string-append test "/bin")
-                           ,(string-append test "/share")))
-               (rename-file
-                (string-append out "/bin/" test-name)
-                (string-append test "/bin/" test-name))
-               (rename-file
-                (string-append out "/share/" test-name)
-                (string-append test "/share/" test-name)))
-             #t)))))
-    (native-inputs
-     `(("python" ,python-wrapper)))

Python was not needed.

+                    (tester (assoc-ref outputs "tester"))
+                    (tester-name "belle_sip_tester"))
+               (for-each mkdir-p (list (string-append tester "/bin")
+                                       (string-append tester "/share")))
+               (rename-file (string-append out "/bin")
+                            (string-append tester "/bin"))
+               (rename-file (string-append out "/share/" tester-name)
+                            (string-append tester "/share/" tester-name)))))
+         (add-after 'separate-outputs 'check
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((tester (string-append (assoc-ref outputs "tester")
+                                          "/bin/belle_sip_tester")))
+               (for-each (lambda (suite-name)
+                           (invoke tester "--suite" suite-name))
+                         (list "Object inheritance"
+                               "SIP URI"
+                               "FAST SIP URI"
+                               "FAST SIP URI 2"
+                               "Generic uri"
+                               "Headers"
+                               "Core"
+                               "SDP"
+                               ;;"Resolver"
+                               "Message"
+                               "Authentication helper"
+                               ;;"Register"
+                               ;;"Dialog"
+                               "Refresher"
+                               ;;"HTTP stack"
+                               "Object"))))))))

This is the same trick as done earlier, moving the check phase after the
install phase.
     
     (inputs
-     `(("antlr3" ,antlr3-3.3)
-       ("antlr3c" ,libantlr3c)
-       ("avahi" ,avahi)
+     `(("avahi" ,avahi)
        ("bctoolbox" ,bctoolbox)
-       ("java" ,icedtea)
        ("zlib" ,zlib)))

Java was not needed, nor was antlr3 or libantlr3c.

     (synopsis "Belledonne Communications SIP Library")
     (description "Belle-sip is a modern library implementing SIP transport,

7. liblinphone

--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -25,7 +25,7 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
-  #:use-module (gnu packages codesynthesis)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
@@ -739,36 +739,34 @@ device.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.linphone.org/BC/public/liblinphone")
+             (url "https://gitlab.linphone.org/BC/public/liblinphone.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1lwabr93jw24y04pdqnw9dgg8jb3lzfplyx19f83jgp9dj8kmfq9"))))
-    (outputs '("out" "test"))
+    (outputs '("out" "tester"))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; Tests require networking
-       #:configure-flags
-       (list
-        "-DENABLE_STATIC=NO"
-        "-DENABLE_LDAP=YES")
+       #:configure-flags (list "-DENABLE_STATIC=NO"
+                               "-DENABLE_DOC=NO" ;requires unpackaged javasphinx
+                               "-DENABLE_LDAP=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'separate-outputs
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (test (assoc-ref outputs "test"))
-                    (test-name (string-append ,name "_tester")))
+                    (tester (assoc-ref outputs "tester"))
+                    (tester-name (string-append ,name "_tester")))
                (for-each mkdir-p
-                         `(,(string-append test "/bin")
-                           ,(string-append test "/share")))
-               (rename-file
-                (string-append out "/bin/" test-name)
-                (string-append test "/bin/" test-name))
-               (rename-file
-                (string-append out "/share/" test-name)
-                (string-append test "/share/" test-name)))
-             #t)))))
+                         (list (string-append tester "/bin")
+                               (string-append tester "/share")))
+               (rename-file (string-append out "/bin/" tester-name)
+                            (string-append tester "/bin/" tester-name))
+               (rename-file (string-append out "/bin/groupchat_benchmark")
+                            (string-append tester "/bin/groupchat_benchmark"))
+               (rename-file (string-append out "/share/" tester-name)
+                            (string-append tester "/share/" tester-name))))))))
     (native-inputs
      `(("dot" ,graphviz)
        ("doxygen" ,doxygen)

Not much else than copying the groupchat_benchmark 500 KiB command with
the tester, where it belonged according to the build system.

8. linphone-desktop

Finally :-)

         (base32 "1gq4l9p21rbrcksa7fbkzn9fzbbynqmn6ni6lhnvzk359sb1xvbz"))
        (patches (search-patches "linphone-desktop-without-sdk.patch"))))
     (build-system qt-build-system)
+    (outputs '("out" "debug"))
     (arguments
      `(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list
-        "-DENABLE_UPDATE_CHECK=NO")
+       #:configure-flags (list "-DENABLE_UPDATE_CHECK=NO"
+                               "-DENABLE_DAEMON=YES"
+                               "-DENABLE_CONSOLE_UI=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'pre-configure
            (lambda _
-             (for-each make-file-writable (find-files "."))
+             (make-file-writable "linphone-app/linphoneqt_version.cmake")
              (substitute* "linphone-app/linphoneqt_version.cmake"
-               (("\\$\\{GUIX-SET-VERSION\\}") ,version))
-             #t))
+               (("\\$\\{GUIX-SET-VERSION\\}") ,version))))
          (add-after 'install 'post-install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (liblinphone (assoc-ref inputs "liblinphone"))
-                    (belcard (assoc-ref inputs "belcard")))
+                    (grammar-dest (string-append out "/share/belr/grammars")))
                ;; Remove unnecessary Qt configuration file.
                (delete-file (string-append out "/bin/qt.conf"))
                ;; Not using the FHS exposes an issue where the client
                ;; refers to its own "share" directory, which lacks files
                ;; installed by the dependencies.
-               (symlink
-                (string-append liblinphone "/share/sounds")
-                (string-append out "/share/sounds"))
-               (symlink
-                (string-append belcard "/share/belr")
-                (string-append out "/share/belr"))
-               #t))))))
+               (symlink (string-append liblinphone "/share/sounds")
+                        (string-append out "/share/sounds"))
+               (mkdir-p (dirname grammar-dest))
+               (symlink (string-append liblinphone "/share/belr/grammars")
+                        grammar-dest)))))))

I've found that only liblinphone resources were necessary to have the
application not crash.

     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (inputs
      `(("bctoolbox" ,bctoolbox)
        ("belcard" ,belcard)
-       ("bellesip" ,belle-sip)

Removed this unnecessary input.

        ("belr" ,belr)
        ("liblinphone" ,liblinphone)
        ("mediastreamer2" ,mediastreamer2)
@@ -883,8 +880,11 @@ and video calls or instant messaging capabilities to an application.")
 @item Audio codecs: opus, speex, g711, g729, gsm, iLBC, g722, SILK, etc.
 @item Video codecs: VP8, H.264 and H.265 with resolutions up to 1080P, MPEG4
 @end itemize")
-    (home-page "https://gitlab.linphone.org/BC/public/linphone-desktop")
-    (license license:gpl2+)))
+    (home-page "https://linphone.org/technical-corner/linphone")
+    (license license:gpl3+)))
+
+(define-public linphoneqt
+  (deprecated-package "linphoneqt" linphone-desktop))

Added this for easing the migration for people having linphoneqt in
their profile.

Phew!  There's just 4 patches left to review, about codec updates.  I'll
look at them soon.  Many thanks for this
big effort and fine work! :-)

Maxim




Reply sent to Maxim Cournoyer <maxim.cournoyer <at> gmail.com>:
You have taken responsibility. (Mon, 29 Mar 2021 05:45:02 GMT) Full text and rfc822 format available.

Notification sent to Raghav Gururajan <rg <at> raghavgururajan.name>:
bug acknowledged by developer. (Mon, 29 Mar 2021 05:45:02 GMT) Full text and rfc822 format available.

Message #70 received at 47274-done <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274-done <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:44:28 -0400
Hi Raghav,

I've pushed the last 4 commits with a99932503e along the previous
reviewed ones to master, after checking that every dependents could
build fine.

Thanks again!

Closing.

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 05:53:02 GMT) Full text and rfc822 format available.

Message #73 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:52:13 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> The change of the output name from tester to test seems arbitrary :-).
> I'd argue that "tester" makes more sense as this outputs contains a
> tester binary or command rather than a test suite.

Agreed, as we discussed this in IRC.

> While it may seem obvious, I believe the comments helped the human brain
> keep track of the process flow more cheaply; please don't remove them.

Oops. sorry about that.

> I've squashed this one with the home page update and license change, as
> they are small and are related to the update.

Thanks!

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 05:54:01 GMT) Full text and rfc822 format available.

Message #76 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:53:00 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

>> Headers of soci has include-references to headers of these inputs.
> 
> This explanation would be better kept as a comment in the code :-).

Agreed.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 05:54:02 GMT) Full text and rfc822 format available.

Message #79 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:53:35 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> Why create a new module for this?  We already have (gnu packages
> build-tools), which seem a good home.

Agreed, as we discussed this in IRC.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 05:56:02 GMT) Full text and rfc822 format available.

Message #82 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org, Léo Le Bouter <lle-bout <at> zaclys.net>,
 Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 01:55:43 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> What is the above substitution for?  A comment would be helpful!

It is for gcc 7+ and its related C++ standard support. The code was 
initially written for gcc 4.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 06:02:02 GMT) Full text and rfc822 format available.

Message #85 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 02:01:17 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> I had an old package of build from 2020 with a more fleshed out
> description, so I've pushed that version instead as commit 65719505b8.

Sounds good.

> pkg-config turned out not to be needed.
> 
> I removed the trailing #t.
> 
> Removed the native-inputs field.
> 
> And pushed as ae479f1834.
> 
> I could turn this patch phase into a make flag:
> 
> Removed pkg-config, which was not needed.
> 
> Replaced @package by @code, as the former is not valid Texinfo markup.
> 
> And pushed as 111004cc58.
> 
> I used the same --include-dir make flag trick here.
> 
> Removed pkg-config, which was not needed.
> 
> s/@package/@code/, as for the previous package.
> 
> And pushed as commit f649a0a557.
> 
> I added a doc output to hold the multi-megabyte documentation and
> examples and used the same make flag trick to allow finding build-0.3
> files:
> 
> Dropped pkg-config here as well.
> 
> I removed expat from propagated-inputs, as the xsd generated code
> default to using xerces-c.  Someone wanting to use expat could add it
> manually.  I've also added a comment like this, as it was not clear to
> me initially why propagation was useful:

Thanks a lot for making the changes.

> For this package, I also had an unfinished version locally; the
> description was slightly more accurate, with an extra comment for the
> license:

Sounds good.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 06:03:02 GMT) Full text and rfc822 format available.

Message #88 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 02:02:11 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> As I've answered on IRC, so far, the (gnu packgaes cpp) module seems
> sufficient; it's a relatively small module itself.  The problem I see
> with having codesynthesis as a module is that it'd be misleading as a
> module name: not all their tools are about code synthesis (that's their
> company name, but that's not obvious!  I got confused that way when
> first looking at your patch series).

Agreed.

> I've merged the codesynthesis packgaes in the cpp module already; if it
> becomes a problem we can revisit this choice.

Sounds good.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 06:06:01 GMT) Full text and rfc822 format available.

Message #91 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 02:05:14 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> I think I've managed to fix the issue, with the following:
> 
> --8<---------------cut here---------------start------------->8---
>   (let* ((out (assoc-ref outputs "out"))
>                      (liblinphone (assoc-ref inputs "liblinphone"))
>                      (grammar-dest (string-append out
>                      "/share/belr/grammars")))
>                 [...]
>                 (mkdir-p (dirname grammar-dest))
>                 (symlink (string-append liblinphone "/share/belr/grammars")
>                          grammar-dest)
> --8<---------------cut here---------------end--------------->8---
> 
> At least it launches now, and everything seems to work.

Thanks a lot. Btw, did you try restarting the app multiple-times? 
Different error (missing /share/stuff) popped-up, each time.

I also wonder why wrapping XDG_DATA_DIRS doesn't work, as it will give 
access to {all-inputs}/share/stuff.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 06:13:01 GMT) Full text and rfc822 format available.

Message #94 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 02:12:32 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> I'm afraid commenting on all the small changes I've done to the original
> submission would take us through the night; if you don't mind I invite
> you to consult the changes now merged into master.

No worries!

> 1. bctoolbox
> 
> I've reported the issue upstream.
> 
> 2. belr
> 
> I've settled to keep 'tester', which was already used in the module and
> which better maps to what this output is (a tester binary to run self tests).
> 
> Here I noticed the code relies on the tester file name to resolve its
> resources, so adapted the resource install directory to match.
> 
> 3. belcard
> 
> eudev was here also unnecessary, as well as python.
> 
> 4. ortp
> 
> Added a comment about why we are adding a 'doc' output.
> 
> Here I've found an issue where some CMake variables were not set,
> causing the doc to be installed in a 'ortp-' named directory.
> 
> Which simplified moving the doc directory.
> 
> 5: mediastreamer2
> 
> I moved the check phase after the installation, which allowed not having
> to copy the binary or resource files, and reinstated some comments.
> 
> Added a comment of why some tests are not enabled.
> 
> 6. belle-sip
> 
> Python was not needed.
> 
> This is the same trick as done earlier, moving the check phase after the
> install phase.
> 
> Java was not needed, nor was antlr3 or libantlr3c.
> 
> 7. liblinphone
> 
> Not much else than copying the groupchat_benchmark 500 KiB command with
> the tester, where it belonged according to the build system.
> 
> 8. linphone-desktop
> 
> I've found that only liblinphone resources were necessary to have the
> application not crash.
> 
> Removed this unnecessary input.
> 
> Added this for easing the migration for people having linphoneqt in
> their profile.

Huge thanks!

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 06:14:01 GMT) Full text and rfc822 format available.

Message #97 received at 47274-done <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274-done <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 02:13:36 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> Thanks again!
> 
> Closing.

Couldn't have done it without you.

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 18:39:01 GMT) Full text and rfc822 format available.

Message #100 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 14:38:23 -0400
Hi Raghav,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> Hi Maxim!
>
>> I think I've managed to fix the issue, with the following:
>> --8<---------------cut here---------------start------------->8---
>>   (let* ((out (assoc-ref outputs "out"))
>>                      (liblinphone (assoc-ref inputs "liblinphone"))
>>                      (grammar-dest (string-append out
>>                      "/share/belr/grammars")))
>>                 [...]
>>                 (mkdir-p (dirname grammar-dest))
>>                 (symlink (string-append liblinphone "/share/belr/grammars")
>>                          grammar-dest)
>> --8<---------------cut here---------------end--------------->8---
>> At least it launches now, and everything seems to work.
>
> Thanks a lot. Btw, did you try restarting the app multiple-times?
> Different error (missing /share/stuff) popped-up, each time.

Yes! Both running the binary directly from the store or in a pure
environment, multiple times have worked after the above change.  Do you
experience failures still?

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 18:40:02 GMT) Full text and rfc822 format available.

Message #103 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Raghav Gururajan <rg <at> raghavgururajan.name>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 14:39:30 -0400
Hi Raghav,

Raghav Gururajan <rg <at> raghavgururajan.name> writes:

> Hi Maxim!
>
>> Thanks again!
>> Closing.
>
> Couldn't have done it without you.

Thanks for taking the time to reply to each email, eh!

Have a great week,

Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#47274; Package guix-patches. (Mon, 29 Mar 2021 18:48:01 GMT) Full text and rfc822 format available.

Message #106 received at 47274 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 47274 <at> debbugs.gnu.org
Subject: Re: bug#47274: Linphone Packages
Date: Mon, 29 Mar 2021 14:47:13 -0400
[Message part 1 (text/plain, inline)]
Hi Maxim!

> Yes! Both running the binary directly from the store or in a pure
> environment, multiple times have worked after the above change.  Do you
> experience failures still?

Yes! Connection to linphone account fails due to missing 
/share/linphone/rootca.pem and loading of codecs fails due to missing 
/lib. I have fixed them in the attached patch. Could you merge it please?

Thank you!

Regards,
RG.
[0001-gnu-linphone-desktop-Fix-functionality.patch (text/x-patch, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 27 Apr 2021 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.