WIP: net/libsignal-protocol-c

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

WIP: net/libsignal-protocol-c

Alex Holst
This is a WIP of the library used by the Signal messenger. Two tests are
currently failing, but they seem fixable.

Anyone else interested in the full Signal suite?

libsignal-protocol-c.tgz (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Renaud Allard-2


On 2/15/19 10:44 AM, Alex Holst wrote:
> This is a WIP of the library used by the Signal messenger. Two tests are
> currently failing, but they seem fixable.
>
> Anyone else interested in the full Signal suite?
>

Hi,

You will need to put devel/cmake in BUILD_DEPENDS instead of RUN_DEPENDS

Also, did you check this issue:
https://github.com/signalapp/libsignal-protocol-c/issues/119

Regards


smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Stuart Henderson
In reply to this post by Alex Holst
On 2019/02/15 10:44, Alex Holst wrote:
> This is a WIP of the library used by the Signal messenger. Two tests are
> currently failing, but they seem fixable.
>
> Anyone else interested in the full Signal suite?

Should use MODULES for cmake, and remove the various do-*.

Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Stuart Henderson
On 2019/02/15 12:05, Stuart Henderson wrote:
> On 2019/02/15 10:44, Alex Holst wrote:
> > This is a WIP of the library used by the Signal messenger. Two tests are
> > currently failing, but they seem fixable.
> >
> > Anyone else interested in the full Signal suite?
>
> Should use MODULES for cmake, and remove the various do-*.

Also

GH_ACCOUNT = signalapp
GH_PROJECT = libsignal-protocol-c
GH_TAGNAME = v2.3.2

instead of V/MASTER_SITES/DISTNAME/DISTFILES (and regenerate distinfo).

Rather than copying from a quite unrelated port, it is better to
start your Makefile with a copy of infrastructure/templates/Makefile.template
and remove the unnecessary things. It has comments to help.

Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Alex Holst
Hi,

Thanks for your input. It should all be adopted into this port except
for the 'test' target which I couldn't get working otherwise.

Any additional comments at this point?

libsignal-protocol-c.tgz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Anthony J. Bentley-4
Alex Holst writes:
> --1BsnumAxq185OLY9
> Content-Type: text/plain; charset=utf-8
> Content-Disposition: inline
>
> Hi,
>
> Thanks for your input. It should all be adopted into this port except
> for the 'test' target which I couldn't get working otherwise.

No need for a do-test, just use:

CONFIGURE_ARGS = -DBUILD_TESTING=ON

$ make test
===> libsignal-protocol-c-2.3.2 depends on: check-* -> check-0.10.0
===>  Regression tests for libsignal-protocol-c-2.3.2
[0/1] cd /ptmp/pobj/libsignal-protocol-c-2.3.2/build-amd64 && /usr/local/bin/ctest --force-new-ctest-process --exclude-regex "CMake.FileDownload|CTestTestUpload|RunCMake.ctest_submit"
Test project /ptmp/pobj/libsignal-protocol-c-2.3.2/build-amd64
      Start  1: test_curve25519
 1/13 Test  #1: test_curve25519 ..................   Passed    0.43 sec
      Start  2: test_hkdf
 2/13 Test  #2: test_hkdf ........................   Passed    0.01 sec
      Start  3: test_ratchet
 3/13 Test  #3: test_ratchet .....................   Passed    0.02 sec
      Start  4: test_protocol
 4/13 Test  #4: test_protocol ....................   Passed    0.01 sec
      Start  5: test_session_record
 5/13 Test  #5: test_session_record ..............   Passed    0.02 sec
      Start  6: test_session_cipher
 6/13 Test  #6: test_session_cipher ..............   Passed    0.33 sec
      Start  7: test_session_builder
 7/13 Test  #7: test_session_builder .............   Passed    0.14 sec
      Start  8: test_key_helper
 8/13 Test  #8: test_key_helper ..................   Passed    0.01 sec
      Start  9: test_simultaneous_initiate
 9/13 Test  #9: test_simultaneous_initiate .......   Passed    1.15 sec
      Start 10: test_sender_key_record
10/13 Test #10: test_sender_key_record ...........   Passed    0.01 sec
      Start 11: test_group_cipher
11/13 Test #11: test_group_cipher ................   Passed    0.87 sec
      Start 12: test_fingerprint
12/13 Test #12: test_fingerprint .................   Passed    0.08 sec
      Start 13: test_device_consistency
13/13 Test #13: test_device_consistency ..........   Passed    0.01 sec

100% tests passed, 0 tests failed out of 13

Total Test time (real) =   3.12 sec

Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Anthony J. Bentley-4
On Sun, Feb 17, 2019 at 2:57 PM Anthony J. Bentley <[hidden email]> wrote:

>
> Alex Holst writes:
> > Hi,
> >
> > Thanks for your input. It should all be adopted into this port except
> > for the 'test' target which I couldn't get working otherwise.
>
> No need for a do-test, just use:
>
> CONFIGURE_ARGS =        -DBUILD_TESTING=ON
Here's a port with that change, some minor whitespace changes, and a
tweaked DESCR.

Is this ready to go in?

--
Anthony J. Bentley

libsignal-protocol-c.tar.gz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Stefan Sperling-5
On Thu, Mar 07, 2019 at 12:34:35AM -0700, Anthony J. Bentley wrote:

> On Sun, Feb 17, 2019 at 2:57 PM Anthony J. Bentley <[hidden email]> wrote:
> >
> > Alex Holst writes:
> > > Hi,
> > >
> > > Thanks for your input. It should all be adopted into this port except
> > > for the 'test' target which I couldn't get working otherwise.
> >
> > No need for a do-test, just use:
> >
> > CONFIGURE_ARGS =        -DBUILD_TESTING=ON
>
> Here's a port with that change, some minor whitespace changes, and a
> tweaked DESCR.
>
> Is this ready to go in?

Some files have the executable bit set, please clear them.

It seems something is wrong with build dependencies.
After 'make prepare' which installed cmake and ninja packages,
I tried to run 'make package' and it failed:

$ make package
===>  Configuring for libsignal-protocol-c-2.3.2
-- Checking for one of the modules 'check'
CMake Error at /usr/local/share/cmake/Modules/FindPkgConfig.cmake:645 (message):
  None of the required 'check' found
Call Stack (most recent call first):
  CMakeModules/FindCheck.cmake:27 (PKG_SEARCH_MODULE)
  tests/CMakeLists.txt:3 (find_package)


-- Configuring incomplete, errors occurred!
See also "/usr/ports/pobj/libsignal-protocol-c-2.3.2/build-amd64/CMakeFiles/CMakeOutput.log".
See also "/usr/ports/pobj/libsignal-protocol-c-2.3.2/build-amd64/CMakeFiles/CMakeError.log".
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2762 'do-configure')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2782 '/usr/ports/pobj/libsignal-protocol-c-2.3.2/build-amd64/.configure_done')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2022 '/usr/ports/packages/amd64/all/libsignal-protocol-c-2.3.2.tgz')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2488 '_internal-package')
*** Error 1 in /usr/ports/mystuff/net/libsignal-protocol-c (/usr/ports/infrastructure/mk/bsd.port.mk:2467 'package')
$

Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Stuart Henderson
On 2019/03/07 13:55, Stefan Sperling wrote:

> On Thu, Mar 07, 2019 at 12:34:35AM -0700, Anthony J. Bentley wrote:
> > On Sun, Feb 17, 2019 at 2:57 PM Anthony J. Bentley <[hidden email]> wrote:
> > >
> > > Alex Holst writes:
> > > > Hi,
> > > >
> > > > Thanks for your input. It should all be adopted into this port except
> > > > for the 'test' target which I couldn't get working otherwise.
> > >
> > > No need for a do-test, just use:
> > >
> > > CONFIGURE_ARGS =        -DBUILD_TESTING=ON
> >
> > Here's a port with that change, some minor whitespace changes, and a
> > tweaked DESCR.
> >
> > Is this ready to go in?
>
> Some files have the executable bit set, please clear them.
>
> It seems something is wrong with build dependencies.
> After 'make prepare' which installed cmake and ninja packages,
> I tried to run 'make package' and it failed:

Setting -DBUILD_TESTING adds check as a build requirement.

Is there a reason not to build the shared lib?

diff --git Makefile Makefile
index b325797..e1fb826 100644
--- Makefile
+++ Makefile
@@ -6,21 +6,24 @@ GH_ACCOUNT = signalapp
 GH_PROJECT = libsignal-protocol-c
 GH_TAGNAME = v2.3.2
 
+SHARED_LIBS +=  signal-protocol-c         0.0 # 2.3
+
 CATEGORIES = net
 HOMEPAGE = https://signal.org/
 
 MAINTAINER = Alex Holst <[hidden email]>
 
-# GPL 3
+# GPLv3 only
 PERMIT_PACKAGE_CDROM = Yes
 
-WANTLIB += c pthread
+WANTLIB += m
 
 MODULES = devel/cmake
 RUN_DEPENDS = devel/protobuf-c
-TEST_DEPENDS = devel/check
+BUILD_DEPENDS = devel/check
 
-CONFIGURE_ARGS = -DBUILD_TESTING=ON
+CONFIGURE_ARGS = -DBUILD_TESTING=ON \
+ -DBUILD_SHARED_LIBS=ON
 
 SUBST_VARS += VARBASE
 
diff --git pkg/PLIST pkg/PLIST
index 4b6a313..69b3695 100644
--- pkg/PLIST
+++ pkg/PLIST
@@ -19,5 +19,5 @@ include/signal/session_record.h
 include/signal/session_state.h
 include/signal/signal_protocol.h
 include/signal/signal_protocol_types.h
-lib/libsignal-protocol-c.a
+@lib lib/libsignal-protocol-c.so.${LIBsignal-protocol-c_VERSION}
 lib/pkgconfig/libsignal-protocol-c.pc

Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Anthony J. Bentley-4
Stuart Henderson writes:

> On 2019/03/07 13:55, Stefan Sperling wrote:
> > On Thu, Mar 07, 2019 at 12:34:35AM -0700, Anthony J. Bentley wrote:
> > > On Sun, Feb 17, 2019 at 2:57 PM Anthony J. Bentley <[hidden email]> w
> rote:
> > > >
> > > > Alex Holst writes:
> > > > > Hi,
> > > > >
> > > > > Thanks for your input. It should all be adopted into this port except
> > > > > for the 'test' target which I couldn't get working otherwise.
> > > >
> > > > No need for a do-test, just use:
> > > >
> > > > CONFIGURE_ARGS =        -DBUILD_TESTING=ON
> > >
> > > Here's a port with that change, some minor whitespace changes, and a
> > > tweaked DESCR.
> > >
> > > Is this ready to go in?
> >
> > Some files have the executable bit set, please clear them.
> >
> > It seems something is wrong with build dependencies.
> > After 'make prepare' which installed cmake and ninja packages,
> > I tried to run 'make package' and it failed:
>
> Setting -DBUILD_TESTING adds check as a build requirement.
>
> Is there a reason not to build the shared lib?
Makes sense to me.

Attached tarball builds shared lib, sets BUILD_DEPENDS properly,
removes executable bit from files in the port directory.

--
Anthony J. Bentley

libsignal-protocol-c.tar.gz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Anthony J. Bentley-4
On Thu, Mar 7, 2019 at 10:35 PM Anthony J. Bentley <[hidden email]> wrote:

> Stuart Henderson writes:
> > On 2019/03/07 13:55, Stefan Sperling wrote:
> > > On Thu, Mar 07, 2019 at 12:34:35AM -0700, Anthony J. Bentley wrote:
> > > > On Sun, Feb 17, 2019 at 2:57 PM Anthony J. Bentley <[hidden email]> w
> > rote:
> > > > >
> > > > > Alex Holst writes:
> > > > > > Hi,
> > > > > >
> > > > > > Thanks for your input. It should all be adopted into this port except
> > > > > > for the 'test' target which I couldn't get working otherwise.
> > > > >
> > > > > No need for a do-test, just use:
> > > > >
> > > > > CONFIGURE_ARGS =        -DBUILD_TESTING=ON
> > > >
> > > > Here's a port with that change, some minor whitespace changes, and a
> > > > tweaked DESCR.
> > > >
> > > > Is this ready to go in?
> > >
> > > Some files have the executable bit set, please clear them.
> > >
> > > It seems something is wrong with build dependencies.
> > > After 'make prepare' which installed cmake and ninja packages,
> > > I tried to run 'make package' and it failed:
> >
> > Setting -DBUILD_TESTING adds check as a build requirement.
> >
> > Is there a reason not to build the shared lib?
>
> Makes sense to me.
>
> Attached tarball builds shared lib, sets BUILD_DEPENDS properly,
> removes executable bit from files in the port directory.
Is this version ready for import? Any oks?

--
Anthony J. Bentley

libsignal-protocol-c.tar.gz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: WIP: net/libsignal-protocol-c

Alex Holst
Quoting Anthony J. Bentley ([hidden email]):
> > > Is there a reason not to build the shared lib?
> >
> > Makes sense to me.
> >
> > Attached tarball builds shared lib, sets BUILD_DEPENDS properly,
> > removes executable bit from files in the port directory.
>
> Is this version ready for import? Any oks?

Works for me. Import would be great.