GithubHelp home page GithubHelp logo

Comments (26)

unicornss avatar unicornss commented on July 24, 2024

Hi @francoisdutoit We will check this in the Ubuntu version 17.10. In the meantime could you tell us the g++, gcc version in your system? Also, could you pl. try upgrading gcc, g++ and then run install-script again.

Thanks

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Hi @unicornss ,

Here are the versions as requested.
g++ (Ubuntu 7.2.0-8ubuntu3) 7.2.0
gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0

I will try your suggestion and provide some feedback.

Thanks! :)

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Hi @unicornss ,

The latest version is 7.3 - It's very new - 7.2 should be fine?

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

Hi @francoisdutoit I am seeing the issue flex 2.6.4 and gcc 7.2.0 westes/flex#219

Let me try flex 2.6.3 or 2.6.1 and update you soon.

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Hi @unicornss,
When I check the version of flex it shows 2.6.1 - however...when running the install script it does not find flex and downloads 2.6.4.... Could this be the issue?

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

It seems the GCC version 7.2 is not able to compile the 2.6.4. In you case since you already have flex 2.6.1 you could comment out the flex section in the install-script and tell us how it goes.

To make it self-contained install-script creates a separate folder to download and compile the open source dependencies (amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local)

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

@francoisdutoit I'm trying in Docker Ubuntu 17.10 to see if Flex 2.6.3 resolves the issue ( version conflict between GCC 7.2 and Flex 2.6.4)

# -----  libfl.2.dylib and libfl.2.so ---------------------
 if [ ! -f $DOWNLOADS/local/lib/libfl.2.dylib ]; then
   if [ ! -f $DOWNLOADS/local/lib/libfl.2.so ]; then
       if [ ! -f $DOWNLOADS/local/lib/libfl.so ]; then
         echo "flex not found. Installing"
         if [ ! -f $DOWNLOADS/flex-2.6.3.tar.gz ]; then
           cd $DOWNLOADS
           curl -L "https://github.com/westes/flex/releases/download/v2.6.3/flex-2.6.3.tar.gz" -o "flex-2.6.3.tar.xz"
         fi
         cd $DOWNLOADS
         tar -xvf flex-2.6.3.tar.xz
         cd $DOWNLOADS/flex-2.6.3
         ./configure --prefix=$DOWNLOADS/local  CFLAGS="-I$DOWNLOADS/local/include" LDFLAGS="-L$DOWNLOADS/local/lib"
         make
         make install
     fi
 fi
fi

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Hi @unicornss,

Ok - so getting a bit further now - I commented out the flex section as well as any other section that points to already installed packages ( the ones I installed as per Install steps for Ubuntu 17.x ) But now getting an error as below -

[ 73%] Building CXX object CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-pic/src/view/tst/ViewApiTest.cpp.o
[ 74%] Building CXX object CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-pic/src/view/tst/ViewTestFixture.cpp.o
[ 75%] Building CXX object CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.cpp.o
In file included from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/Auth.h:3:0,
from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/AwsV4Signer.h:3,
from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/DefaultCallbackProvider.h:6,
from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.h:9,
from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.cpp:1:
/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/Request.h:8:10: fatal error: curl/curl.h: No such file or directory
#include <curl/curl.h>

^~~~~~~~~~~~~
compilation terminated.
CMakeFiles/producer.dir/build.make:1886: recipe for target 'CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.cpp.o' failed
make[2]: *** [CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.cpp.o] Error 1
CMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/producer.dir/all' failed
francois@francois-VirtualBox:/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build$ curl --version
curl 7.55.1 (x86_64-pc-linux-gnu) libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
Release-Date: 2017-08-14
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telneffrafrancois@frafrfrancfrfrancoisfranfrancois@francois@franfrancois@francfrancois@francois-VirtualBox:
/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build$

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Hi @unicornss,

regarding above - also checked my curl version...

francois@francois-VirtualBox:~$ curl --version
curl 7.55.1 (x86_64-pc-linux-gnu) libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
Release-Date: 2017-08-14
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy PSL

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

Hi @francoisdutoit, you don't need to comment any sections in the install-script. The only change in ubuntu17.04 requires the Flex to be 2.6.3 (instead of 2.6.4). Please check out the latest install-script and should work with Flex 2.6.3. To set the Flex for 2.6.3.

 if [ ! -f $DOWNLOADS/local/lib/libfl.2.dylib ]; then
   if [ ! -f $DOWNLOADS/local/lib/libfl.2.so ]; then
       if [ ! -f $DOWNLOADS/local/lib/libfl.so ]; then
         echo "flex not found. Installing"
         if [ ! -f $DOWNLOADS/flex-2.6.3.tar.gz ]; then
           cd $DOWNLOADS
           curl -L "https://github.com/westes/flex/releases/download/v2.6.3/flex-2.6.3.tar.gz" -o "flex-2.6.3.tar.xz"
         fi
         cd $DOWNLOADS
         tar -xvf flex-2.6.3.tar.xz
         cd $DOWNLOADS/flex-2.6.3
         ./configure --prefix=$DOWNLOADS/local  CFLAGS="-I$DOWNLOADS/local/include" LDFLAGS="-L$DOWNLOADS/local/lib"
         make
         make install
     fi
 fi
fi

Please let us know how it goes. We will be updating the install-script to use Flex 2.6.3 so that it can work for Ubuntu 17.10 without any changes. Thanks.

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Hi @unicornss,

Thanks - as mentioned above - the script is now running fine up to the point where I get the error mentioned in my last comment - Please see below...

"Ok - so getting a bit further now - I commented out the flex section as well as any other section that points to already installed packages ( the ones I installed as per Install steps for Ubuntu 17.x ) But now getting an error as below -

[ 73%] Building CXX object CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-pic/src/view/tst/ViewApiTest.cpp.o
[ 74%] Building CXX object CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-pic/src/view/tst/ViewTestFixture.cpp.o
[ 75%] Building CXX object CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.cpp.o
In file included from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/Auth.h:3:0,
from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/AwsV4Signer.h:3,
from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/DefaultCallbackProvider.h:6,
from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.h:9,
from /home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.cpp:1:
/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/Request.h:8:10: fatal error: curl/curl.h: No such file or directory
#include <curl/curl.h>

^~~~~~~~~~~~~
compilation terminated.
CMakeFiles/producer.dir/build.make:1886: recipe for target 'CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.cpp.o' failed
make[2]: *** [CMakeFiles/producer.dir/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/KinesisVideoProducer.cpp.o] Error 1
CMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/producer.dir/all' failed
francois@francois-VirtualBox:/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build$ curl --version
curl 7.55.1 (x86_64-pc-linux-gnu) libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
Release-Date: 2017-08-14
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telneffrafrancois@frafrfrancfrfrancoisfranfrancois@francois@franfrancois@francfrancois@francois-VirtualBox:/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build$"

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Hi @unicornss,
If I only change that bit in the install script ( as per what you suggested ) I get the following

Checking util-linux at /home/francois/downloads/local/lib/libmount.dylib/.so
m4 not found. Installing
curl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

So if I comment out all the sections that refer to libraries that I already have installed - everything runs fine up to the point where I get the below error

/home/francois/Downloads/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer/src/Request.h:8:10: fatal error: curl/curl.h: No such file or directory
#include <curl/curl.h>

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

The error you are seeing is because it does not have sources for curl . This is used (along with libssl) by Producer SDK to send streams to Kinesis. If these are commented out in the install-script then it will not download the curl and ssl dependencies.

sdk-downloads-dir-struct

I would suggest pull the latest sdk (install-script) and run again. To initiate a clean download and build you can use the troubleshooting instructions ...

rm -rf ./kinesis-video-native-build/CMakeCache.txt ./kinesis-video-native-build/CMakeFiles

and run

./kinesis-video-native-build/install-script

to rebuild and re-link the project. Let us know if you have questions.

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Ok...So here is my plan now.....

  1. Clone repo
  2. Update install script to flex 2.6.3
  3. Run script
    Also ....I am not going to manually install any of prerequisites......
    Ps : I Also have a fresh ubuntu installtion

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Thanks again for all the help....lets hope it works this time ☺

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

Perfect.
Since you have latest Ubuntu installation, you do not need the build cache clean up.
Thanks for notifying us the Flex version conflict (with GCC) in the latest Ubuntu 17.10.

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Ok - so there is another error... but the build is going further now.... see below...

config.status: creating t/wrap/automake-1.15
GEN bin/automake
GEN bin/aclocal
GEN t/ax/shell-no-trail-bslash
GEN t/ax/cc-no-c-o
GEN runtest
GEN doc/aclocal.1
GEN doc/automake.1
GEN lib/Automake/Config.pm
GEN doc/aclocal-1.15.1
GEN doc/automake-1.15.1
help2man: can't get --help' info from automake-1.15 Try --no-discard-stderr' if option outputs to stderr
Makefile:3687: recipe for target 'doc/automake-1.15.1' failed
make: *** [doc/automake-1.15.1] Error 255
francois@francois-VirtualBox:~/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp$

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

Great to see it progressed further. Could you try using automake 1.15.1 as below?

#--------aclocal, aclocal-1.15 (hard linked with aclocal), automake, and automake-1.15 (hard linked with automake)--
  if [ ! -f $DOWNLOADS/local/bin/automake ]; then
    echo "automake not found. Installing"
    if [ ! -f $DOWNLOADS/automake-1.15.1.tar.gz ]; then
      cd $DOWNLOADS
      curl -L "https://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz" -o "automake-1.15.1.tar.xz"
    fi
    cd $DOWNLOADS
    tar -xvf automake-1.15.1.tar.xz
    cd $DOWNLOADS/automake-1.15.1
    ./configure --prefix=$DOWNLOADS/local  CFLAGS="-I$DOWNLOADS/local/include" LDFLAGS="-L$DOWNLOADS/local/lib"
    make
    make install
fi

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

Ok - so I have updated the script - but cant seem to get a clean install going...

cmake version 3.9.1 CMake suite maintained and supported by Kitware (kitware.com/cmake).
Checking openssl at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libssl.a
Checking curl at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libcurl.a
Checking log4cplus at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/liblog4cplus.dylib/.so
Checking gettext at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libgettextlib.dylib/.so
Checking libffi at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libffi.a
Checking pcre at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libpcre.dylib/.so
Checking zlib at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libz.dylib/.so
Checking iconv at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libiconv.dylib/.so
Checking util-linux at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libmount.dylib/.so
Checking glib at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libglib-2.0.dylib/.so
Checking googletest at /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/downloads/local/lib/libgtest.a
automake not found. Installing
curl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
francois@francois-VirtualBox:~/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp$

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

PS : I did run the below

rm -rf ./kinesis-video-native-build/CMakeCache.txt ./kinesis-video-native-build/CMakeFiles

and run

./kinesis-video-native-build/install-script

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

Strange .. can you confirm if the package pkg-config is installed on your system? if not, you can install by using the following:
apt-get install -y pkg-config

To resolve the shared library not found - you could try building after setting the LD_LIBRARY_PATH environment variable:
export LD_LIBRARY_PATH=<your_sdk_kinesis_video_native_build_folder_path>/downloads/local/lib:$LD_LIBRARY_PATH

On a different note,

  • What sort of device(s) are you planning to run the producer SDK?
  • What sort of video processing or analytics do you intend to perform?

Thanks

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

For now I'll be running on Ubuntu accessing Onvif IP Camera - so yeah just want to be able to stream from an IP camera....

I did mange to get a new build going - and again the build went further - but failed at the below...
[ 89%] Building CXX object CMakeFiles/KinesisVideoProducerJNI.dir/home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer-jni/src/source/com/amazonaws/kinesis/video/producer/jni/KinesisVideoClientWrapper.cpp.o
In file included from /home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer-jni/src/source/com/amazonaws/kinesis/video/producer/jni/KinesisVideoClientWrapper.cpp:5:0:
/home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/../kinesis-video-producer-jni/src/include/com/amazonaws/kinesis/video/producer/jni/KinesisVideoClientWrapper.h:14:10: fatal error: jni.h: No such file or directory
#include <jni.h> // Basic native API
^~~~~~~
compilation terminated.
CMakeFiles/KinesisVideoProducerJNI.dir/build.make:62: recipe for target 'CMakeFiles/KinesisVideoProducerJNI.dir/home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer-jni/src/source/com/amazonaws/kinesis/video/producer/jni/KinesisVideoClientWrapper.cpp.o' failed
make[2]: *** [CMakeFiles/KinesisVideoProducerJNI.dir/home/francois/Documents/Amazon/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-producer-jni/src/source/com/amazonaws/kinesis/video/producer/jni/KinesisVideoClientWrapper.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/KinesisVideoProducerJNI.dir/all' failed
make[1]: *** [CMakeFiles/KinesisVideoProducerJNI.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

PS: francois@francois-VirtualBox:~$ pkg-config --version
0.29.1

from amazon-kinesis-video-streams-producer-sdk-cpp.

unicornss avatar unicornss commented on July 24, 2024

Hi @francoisdutoit

Glad you are able to get the open source dependencies compiled for Ubuntu 17.10.

As referred in the https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/README.md

you have to Install Open JDK:
sudo apt-get install openjdk-8-jdk

Set JAVA_HOME environment variable:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

Run the build script:
./install-script

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

I have done that before building.... I just set the path again and trying another build...

from amazon-kinesis-video-streams-producer-sdk-cpp.

francoisdutoit avatar francoisdutoit commented on July 24, 2024

It Built!!! :)

[100%] Linking CXX executable kinesis_video_gstreamer_sample_app
[100%] Built target kinesis_video_gstreamer_sample_app


Success!!!


Thanks for all the help and quick response :)

from amazon-kinesis-video-streams-producer-sdk-cpp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.