Commit e03f0b8b authored by Simon Morlat's avatar Simon Morlat

Remove obsolete files and fix specfile.

parent 2e862a65
Pipeline #328 failed with stage
in 0 seconds
Main authors:
Belledonne Communications SARL team:
Simon Morlat, Jehan Monnier, Guillaume Beraudo
Contributors:
Florian Wintertein < f-win at gmx dot net > originaly wrotes the console version of linphone (linphonec)
in console/ directory.
Sandro Santilli < strk at keybit dot net > wrote enhancements in the
console interface (readline, new commands).
version 3.0.0: resizing of video window under linux often causes hang or crash (seems to be a SDL bug).
\ No newline at end of file
This diff is collapsed.
LINPHONE ON M68k-LINUX (by GIAN)
********************************
The console version of linphone works on arm-linux, but also on m68k-linux? Im trying to provide this:
* I used the same toolchain specified in the LTIB menu configuration, that is, on my system:
/opt/mtwk/usr/local/m68k-linux/gcc-3.4.0-glibc-2.3.2-v4e
* I have created within my home directory a ColdFire-install-environment/ directory, copied into it the fresh tarballs of libogg-1.1.3, libosip2-2.2.2, speex-1.1.12, linphone-1.4.0 readline-5.1 and ncurses-5.5 (readline needs ncurses) Uncompressed all these
tarballs.
Very important things common to all packages being cross compiled:
******************************************************************
* Copy the ipaq-config.site in the ipkg/ directory of linphone into some safe place, for example:
cp /home/gianluca/ColdFire-install-environment/linphone-1.4.0-install/linphone-1.4.0/ipkg/ipag-config.site /home/gianluca/ColdFire-install-environment/linphone-1.4.0-install/
Edit the ipaq-config.site file and replace all the arm-linux strings with m68k-linux one. Add also the mcfv4e flag to the CFLAGS, CXXFLAGS, and CPPFLAGS labels.
* You need a directory that we call M68K_INSTALL_TREE that will own files in the same way they will be installed on the target computer.
mkdir /ColdFire-linphonec-1.4.0-mcfv4e
export M68K_INSTALL_TREE=/ColdFire-linphonec-1.4.0-mcfv4e
export CONFIG_SITE=/home/gianluca/ColdFire-install-environment/linphone-1.4.0-install/ipaq-config.site
export PATH=$PATH:/opt/mtwk/usr/local/m68k-linux/gcc-3.4.0-glibc-2.3.2-v4e/bin
Cross compiling ncurses for M68k:
********************************
./configure --prefix=/usr --host=m68k-linux --with-gnu-ld --with-shared
make
make install DESTDIR=$M68K_INSTALL_TREE
Cross compiling readline for M68k:
*********************************
./configure --prefix=/usr --host=m68k-linux --with-gnu-ld --disable-static
make
make install DESTDIR=$M68K_INSTALL_TREE
Cross compiling libosip for M68k:
********************************
./configure --prefix=/usr --host=m68k-linux --with-gnu-ld --disable-static
make
make install DESTDIR=$M68K_INSTALL_TREE
Cross compiling libogg for M68k:
********************************
./configure --prefix=/usr --host=m68k-linux --with-gnu-ld --disable-static enable-fixed-point
make
make install DESTDIR=$M68K_INSTALL_TREE
Cross compiling speex for M68k:
********************************
./configure --prefix=/usr --host=m68k-linux --with-gnu-ld --disable-static --enable-fixed-point --enable-m68k-asm --with-ogg=/ColdFire-linphonec-1.4.0-mcfv4e/usr --with-ogg-includes=/ColdFire-linphonec-1.4.0-mcfv4e/usr/include with-ogg-libraries=/ColdFire-linphonec-1.4.0-mcfv4e/usr/lib --disable-oggtest
make
make install DESTDIR=$M68K_INSTALL_TREE
cp /home/gianluca/ColdFire-iinstall-environment/linphone-1.4.0-install/linphone-1.4.0/mediastreamer2/src/.libs/libquickstream.so.0.0.0 /opt/mtwk/usr/local/m68k-linux/gcc-3.4.0-glibc-2.3.2-v4e/m68k-linux/lib
cd /opt/mtwk/usr/local/m68k-linux/gcc-3.4.0-glibc-2.3.2-v4e/m68k-linux/lib
ln -s libquickstream.so.0.0.0 libquickstream.so.0
ln -s libquickstream.so.0.0.0 libquickstream.so
cp /home/gianluca/ColdFire-install-environment/linphone-1.4.0-install/linphone-1.4.0/mediastreamer2/src/.libs/libmediastreamer.so.0.0.0 /opt/mtwk/usr/local/m68k-linux/gcc-3.4.0-glibc-2.3.2-v4e/m68k-linux/lib
cd /opt/mtwk/usr/local/m68k-linux/gcc-3.4.0-glibc-2.3.2-v4e/m68k-linux/lib
ln -s libmediastreamer.so.0.0.0 libmediastreamer.so.0
ln -s libmediastreamer.so.0.0.0 libmediastreamer.so
Cross compiling linphone for M68k:
********************************
First you need to remove all .la files from the M68K_INSTALL_TREE because it confuses libtool and makes
the linker use your build machine binaries instead of the m68k-crosscompiled ones.
rm -f $M68K_INSTALL_TREE/usr/lib/*.la
#for some reason pkg-config doesn't like cross-compiling...
export PKG_CONFIG=/usr/bin/pkg-config
./configure --prefix=/usr --host=m68k-linux --with-gnu-ld --disable-static --disable-strict --enable-gnome_ui=no --enable-alsa --disable-glib --disable-video --with-osip=$ARM_INSTALL_TREE/usr --with-osipparser=$ARM_INSTALL_TREE/usr --with-readline=$ARM_INSTALL_TREE/usr SPEEX_CFLAGS="-I$ARM_INSTALL_TREE/usr/include" SPEEX_LIBS="-L$ARM_INSTALL_TREE/usr/lib -lspeex"
make
make install DESTDIR=$M68K_INSTALL_TREE
Binaries can also be stripped with m68k-linux-strip to save more space.
Running linphone under the ColdFire board
********************************************
You just have to start linphone from a terminal by typing 'linphonec'.
Gianluca Salvador
LINPHONE ON ARM-LINUX (HANDHELD COMPUTERS)
******************************************
The console version of linphone works on arm-linux and has been tested on ipaqs
under the familiar linux distribution (http://www.handhelds.org).
You can find .ipk binary packages on the linphone's download page.
If you want to build your own arm-linux packages, here are some instructions to
cross compile linphone and its dependencies: readline, speex and libosip.
This is my own experience on cross compiling software. As there is no precise
step by step documentation (as far as I know) on how to cross-compile on arm,
there is no guaranty that the following instructions are the best way to do it.
First, be aware that only the console version of linphone can compile on ARM.
* You need the lastest arm toolchain from http://www.handhelds.org. Uncompress it in / .
It contains all the cross-compilation tools. Be sure that the arm-linux-gcc binaries
are in your PATH (export PATH=$PATH:/usr/local/arm/3.4.1/bin/ , for example)
* create within your home directory a arm/ directory, copy into it the fresh
tarballs of libosip2>=2.2.x, speex>=1.1.6, linphone>=1.2.1 readline>=5.1 and ncurses>=5.5 (readline needs ncurses)
Uncompress all these
tarballs.
Very important things common to all packages being cross compiled:
******************************************************************
* copy the ipaq-config.site in the ipkg/ directory of linphone into some safe place,
for example: ~/ipaq-config.site .
* You need a directory that we call ARM_INSTALL_TREE that will own files in the same way they will be installed on the target computer.
It is also used to build linphone over the arm binaries of its dependencies (speex,osip,ncurses,readline).
For example:
export CONFIG_SITE=~/ipaq-config.site
export ARM_INSTALL_TREE=/armbuild
Cross compiling ncurses for ARM:
********************************
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --with-shared
make
make install DESTDIR=$ARM_INSTALL_TREE
make install DESTDIR=`pwd`/armbuild
Cross compiling readline for ARM:
*********************************
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static
make
make install DESTDIR=$ARM_INSTALL_TREE
make install DESTDIR=`pwd`/armbuild
Cross compiling libosip for ARM:
********************************
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static
make
make install DESTDIR=$ARM_INSTALL_TREE
make install DESTDIR=`pwd`/armbuild
Cross compiling speex for ARM:
********************************
First you need to remove ogg headers from your build system to avoid a dirty conflict between
your build machine binaries and the arm binaries. They are usually in a libogg-dev package (rpm or deb).
Then:
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static --enable-fixed-point --enable-arm-asm
make
make install DESTDIR=$ARM_INSTALL_TREE
make install DESTDIR='pwd'/armbuild
Cross compiling linphone for ARM
********************************
First you need to remove all .la files from the ARM_INSTALL_TREE because it confuses libtool and makes
the linker use your build machine binaries instead of the arm-crosscompiled ones.
rm -f $ARM_INSTALL_TREE/usr/lib/*.la
#for some reason pkg-config doesn't like cross-compiling...
export PKG_CONFIG=/usr/bin/pkg-config
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static \
--disable-glib --with-osip=$ARM_INSTALL_TREE/usr \
--with-readline=$ARM_INSTALL_TREE/usr \
SPEEX_CFLAGS="-I$ARM_INSTALL_TREE/usr/include" \
SPEEX_LIBS="-L$ARM_INSTALL_TREE/usr/lib -lspeex "
make
make install DESTDIR='pwd'/armbuild
You can use the install trees libosip2-x.x.x/armbuild speex-x.x.x/armbuild and
linphone-0.x.x/armbuild/ to make binary packages of
each software, as ipkgs for the familiar distribution (http://www.familiar.org).
In the ipkg/ directory of linphone you can find .control files for ipkg-build.
In order to make the osip ipkg, you have to do the following:
- create a directory named CONTROL inside libosip2-2.2.x/armbuild
- copy the libosip.control file into CONTROL/ and rename it into "control".
- edit the "control" file to adjust version number accordingly.
- remove the non essential parts of libosip inside libosip2-2.x.x/armbuild/usr/ : just
leave the lib/ directory. This saves space on the destination computer.
- then inside libosip2-2.x.x, run ipkg-build -o root -g root armbuild
The same procedure applies to make linphone's ipkg.
Binaries can also be stripped with arm-linux-strip to save more space.
Running linphone under the handheld computer
********************************************
You just have to start linphone from a terminal by typing 'linphonec'.
Simon
# Linphone on MacOS X
## Build prerequisite
* Xcode (download from apple or using appstore application)
* [Java SE](http://www.oracle.com/technetwork/java/javase/downloads/index.html) or openJDK
This is required to generate a C sourcefile from SIP grammar using [antlr3](http://www.antlr3.org/) generator.
* [HomeBrew](http://brew.sh) or [Macports](http://www.macports.org/).
### Dependencies
#### Using MacPorts
##### Multiple MacOS version support
In order to enable generation of bundle for older MacOS version, it is recommended to:
Edit `/opt/local/etc/macports/macports.conf` to add the following line:
> macosx_deployment_target 10.7
> buildfromsource always
##### Linphone library (liblinphone)
sudo port install automake autoconf libtool pkgconfig intltool wget bcunit \
antlr3 speex readline sqlite3 openldap libupnp \
ffmpeg-devel -gpl2
##### Linphone UI (GTK version)
Install `GTK`. It is recommended to use the `quartz` backend for better integration.
sudo port install gtk2 +quartz +no_x11
sudo port install gtk-osx-application-gtk2 +no_python
sudo port install hicolor-icon-theme
#### Using HomeBrew
##### Linphone library (liblinphone)
brew install intltool libtool wget pkg-config automake libantlr3.4c \
homebrew/versions/antlr3 gettext speex ffmpeg readline libvpx opus
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
brew link --force gettext
#readline is required from linphonec.c otherwise compilation will fail
brew link readline --force
##### Linphone UI (GTK version)
brew install cairo --without-x11
brew install gtk+ --without-x11
brew install gtk-mac-integration hicolor-icon-theme
### Building Linphone
The next pieces need to be compiled manually.
* To ensure compatibility with multiple MacOS versions it is recommended to do:
export MACOSX_DEPLOYMENT_TARGET=10.7
export LDFLAGS="-Wl,-headerpad_max_install_names"
* (MacPorts only) Install libantlr3c (library used by belle-sip for parsing)
git clone -b linphone git://git.linphone.org/antlr3.git
cd antlr3/runtime/C
./autogen.sh
./configure --disable-static --prefix=/opt/local && make
sudo make install
* Install polarssl (encryption library used by belle-sip)
git clone git://git.linphone.org/polarssl.git
cd polarssl
./autogen.sh && ./configure --prefix=/opt/local && make
sudo make install
* Install libvpx (Must be manualy build because the macport recipe does not support 'macosx_deployment_target')
git clone https://chromium.googlesource.com/webm/libvpx -b v1.4.0
cd libvpx
./configure --prefix=/opt/local \
--target=x86_64-darwin10-gcc \
--enable-error-concealment \
--enable-multithread \
--enable-realtime-only \
--enable-spatial-resampling \
--enable-vp8 \
--disable-vp9 \
--enable-libs \
--disable-install-docs \
--disable-debug-libs \
--disable-examples \
--disable-unit-tests \
--as=yasm
make
sudo make install
* Install belle-sip (sip stack)
git clone git://git.linphone.org/belle-sip.git
cd belle-sip
./autogen.sh && ./configure --prefix=/opt/local && make
sudo make install
* (Optional) Install srtp for call encryption
git clone git://git.linphone.org/srtp.git
cd srtp && autoconf && ./configure --prefix=/opt/local && make libsrtp.a
sudo make install
* (Optional) Install zrtp, for unbreakable call encryption
git clone git://git.linphone.org/bzrtp.git
cd bzrtp && ./autogen.sh && ./configure --prefix=/opt/local && make
sudo make install
* (Optional) Install gsm codec
git clone git://git.linphone.org/gsm.git
cd gsm
make CCFLAGS="$CFLAGS -c -O2 -DNeedFunctionPrototypes=1"
sudo make install INSTALL_ROOT=/opt/local GSM_INSTALL_INC=/opt/local/include
* (Optional, proprietary extension only) Compile and install the tunnel library
If you got the source code from git, run `./autogen.sh` first.
Then or otherwise, do:
./configure --prefix=/opt/local && make && sudo make install
* Compile Linphone
If you got the source code from git, run `./autogen.sh` first.
Then or otherwise, :
PKG_CONFIG_PATH=/opt/local/lib/pkgconfig ./configure --prefix=/opt/local --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp --disable-strict && make
* Install on the system
sudo make install
You are done.
### Generate portable bundle
If you want to generate a portable bundle, then install `gtk-mac-bundler` linphone fork:
git clone git://git.linphone.org/gtk-mac-bundler.git
cd gtk-mac-bundler
make install
export PATH=$PATH:~/.local/bin
# set writing right for owner on the libssl and libcrypto libraries in order gtk-mac-bundler
# be able to rewrite their rpath
sudo chmod u+w /opt/local/lib/libssl.1.0.0.dylib /opt/local/lib/libcrypto.1.0.0.dylib
The bundler file in `build/MacOS/linphone.bundle` expects some plugins to be installed in `/opt/local/lib/mediastreamer/plugins`.
If you don't need plugins, remove or comment out this line from the bundler file:
<binary>
${prefix:ms2plugins}/lib/mediastreamer/plugins/*.*.so
</binary>
If using HomeBrew, this is not working yet. However you will at least need to:
brew install shared-mime-info glib-networking hicolor-icon-theme
update-mime-database /usr/local/share/mime
And modify also:
<prefix name="default">/usr/local</prefix>
Then run, inside Linphone source tree configure as told before but with `--enable-relativeprefix` appended.
make && make bundle
The resulting bundle is located in Linphone build directory, together with a zipped version.
* For a better appearance, you can install `gtk-quartz-engine` (a GTK theme) that makes GTK application more similar to other Mac applications (but not perfect).
sudo port install gnome-common
git clone https://github.com/jralls/gtk-quartz-engine.git
cd gtk-quartz-engine
./autogen.sh
./configure --prefix=/opt/local CFLAGS="$CFLAGS -Wno-error" && make
sudo make install
Generate a new bundle to have it included.
[![pipeline status](https://gitlab.linphone.org/BC/public/linphone/badges/master/pipeline.svg)](https://gitlab.linphone.org/BC/public/linphone/commits/master)
liblinphone
========
===========
This is liblinphone, a free (GPL) video voip library based on the SIP protocol.
This library is used by Linphone. It's source code is available at *linphone-desktop[1]*.
Building liblinphone
-----------------
# Building liblinphone
### Required dependencies
## Required dependencies
* **BcToolbox[2]:** portability layer
* **BelleSIP[3]:** SIP stack
......@@ -25,13 +24,13 @@ Building liblinphone
* **doxygen** and **dot** (needed for C++ wrapper and API documentation)
### Opitonal dependencies
## Optional dependencies
* **Bzrtp[6]**: zrtp stack used for Linphone Instant Messaging Encryption.
* For API documentatino generation: **sphinx**, **javasphinx**, **sphinx_csharp** python modules are needed.
### Build instructions
## Build instructions
cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_prefixes>
......@@ -39,7 +38,7 @@ Building liblinphone
make install
### Supported build opitons
## Supported build opitons
* **`CMAKE_INSTALL_PREFIX=<string>`** : install prefix
* **`CMAKE_PREFIX_PATH=<string>`** : column-separated list of prefixes where to search for dependencies
......@@ -53,7 +52,7 @@ Building liblinphone
* **`ENABLE_TOOLS=NO`** : do not build tool binaries
* **`ENABLE_LIME=YES`** : disable Linphone Instant Messaging Encryption
### Note for packagers
## Note for packagers
Our CMake scripts may automatically add some paths into research paths of generated binaries.
To ensure that the installed binaries are striped of any rpath, use `-DCMAKE_SKIP_INSTALL_RPATH=ON`
......@@ -68,22 +67,13 @@ make package_source
rpmbuild -ta --clean --rmsource --rmspec liblinphone-<version>-<release>.tar.gz
Notes for developers
--------------------
Here is a short description of the content of the source tree.
- **coreapi/** is the central point of linphone, which handles relationship between sip signalisation and media
streaming. It contains an easy to use api to create a sip phone.
# Credits
Belledonne Communications SARL, all rights reserved.
- **console/**
* linphonec.c is the main file for the console version of linphone.
* sipomatic.c / sipomatic.h contains the code for sipomatic, the test program that auto-answer to linphone calls.
* shell.c (program name: linphonecsh) is a small utilities to send interactive commands to a running linphonec daemon.
# License
- **share/** contains translation, documentation, rings and hello sound files.
This software is distributed under GNU GPLv2. Please read COPYING file for full license text.
------------------------------
......
Software to install
*******************
Download lastest mingw-get-setup.exe from http://www.mingw.org
Run mingw-get-setup.exe.
In the package list, select and install:
* mingw-developer-toolkit
* mingw32-base
* mingw32-gcc-g++
* mingw32-pthreads-w32
* msys-base
* msys-zip
* msys-unzip
* msys-wget
For more information:
http://www.mingw.org/wiki/Getting_Started
In mingw shell (also refered as msys), run
mkdir -p /opt/perl/bin
cp /bin/perl /opt/perl/bin/.
cd ~
#Download intltool
wget http://ftp.acc.umu.se/pub/GNOME/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip
Download lastest linphone-deps-win32 zip from
http://download.savannah.gnu.org/releases-noredirect/linphone/misc
using your browser.
Download gtk+-2.24.10 win32 _bundle_ from http://www.gtk.org, direct link:
http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip
Install all these three package in /:
cd /
unzip ~/intltool_0.40.4-1_win32.zip
unzip <path to gtk bundle zip>
unzip <path to linphone-deps>
#Install GTK+ Outcrop theme, the one used by linphone for distribution.
cd /share/themes
wget ftp://ftp.gnome.org/mirror/gnome.org/teams/art.gnome.org/themes/gtk2/GTK2-Outcrop.tar.gz
tar -xvzf GTK2-Outcrop.tar.gz
#To get the translations working, remove from C:/MinGW/lib :
libintl.a libintl.la libintl.dll.a
* Download and install Inno Setup Compiler (required only if you run
'make setup.exe'). Add it to your windows Path environment variable.
* Install msys-git from (http://msysgit.github.io/). During installation you
are asked to make a choice about how line endings are treated by git. Choose
"Checkout line endings as they are, commit as they are". THIS CHOICE IS VERY
IMPORTANT. OTHERS BREAK AUTOMAKE.
General rules for compilation
*****************************
* It is recommended that you create a directory somewhere with a path without
any spaces or ~ characters, for example c:\sources\. This is the place where
source code must be compiled.
* git commands (to retrieve source code) must be performed within msys-git
terminal.
* all other commands (configure, autogen.sh, make) must be done within the
mingw shell (msys). In both msys and msys-git windows, change into the
directory you created for sources:
cd /c/sources
* make sure pkg-config works by adding this env variable to your terminal:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
Building belle-sip
******************
* make sure that java version 1.6 is available in the PATH. java-1.7 will
not work with antlr generator.
* download the sources with msys-git shell using the following command:
$ git clone git://git.linphone.org/belle-sip.git
* compile and install
$ ./autogen.sh
$ ./configure --prefix=/usr --enable-shared --disable-static
$ make && make install
Building Linphone
*****************
* download the sources using the following command:
$ git clone git://git.linphone.org/linphone.git --recursive
* compile
#always run autogen.sh after a git checkout or update
$ ./autogen.sh
$ ./configure --prefix=/usr --enable-shared --disable-static
#note: in order to use the tunnel (commercial extension), append
#--enable-tunnel to the configure line above.
$ make
$ make install
#Option: make a portable binary zip of linphone
$ make zip
#additionally you can make binary installer if you have Inno Setup 5
installed in its default path
$ make setup.exe
#now you're done, you have a fresh linphone windows installer in the
current directory.
Building plugins (optional)
***************************
This the example for msx264 (H264 plugin), the same applies for other
linphone plugins.
$ git clone git://git.linphone.org/msx264.git
$ cd msx264
$ ./autogen.sh
$ PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure --prefix=/usr --enable-shared --disable-static
#make a binary zip of this plugin
$ make zip
#or make an installer
$ make setup.exe
******************************************************
* Notes about linphone-deps generation *
******************************************************
Linphone-deps is a collection of linphone dependencies, that are for some of
them difficult to find as windows binaries. These notes are useful if you want
to upgrade part of the software that is included in the linphone-deps packages.
List of software included in linphone-deps:
antlr3c (compiled)
bzrtp (compiled)
polarssl (compiled
libsrtp (compiled)
libavcodec, libavutil, libavformat, libavdevice, libswscale (compiled, all
these from ffmpeg)
libtheora (from the web)
libx264 (compiled from the version distributed from linphone's web site)
libogg (from the web)
libspeex, libspeexdsp (compiled)
libgnutls (from the web)
libgsm (from the web)
libxml2 (compiled)
libsoup (compiled)
libsqlite3 (compiled)
Remarks:
For every package compiled that goes into linphone-deps, .la files (libtool
files) must be removed to avoid libtool errors. When running "make install
DESTDIR=<somepath>", somepath must be absolute and should not contain any ~ or
space.
- building antlr3c
* download the sources with:
$ git clone -b linphone git://git.linphone.org/antlr3.git
* compile and install
$ cd runtime/C
$ ./autogen.sh
$ ./configure --prefix=/usr --enable-shared --disable-static
$ make
$ make install
$ make install DESTDIR=/home/<myuser>/antlr3c-install
$ cp
- building polarssl
* download the sources with:
$ git clone -b linphone git://git.linphone.org/polarssl.git
* compile and install:
$ cd polarssl
$ make lib SHARED=1 WINDOWS=1
$ make install DESTDIR=/usr
$ make install DESTDIR=/home/<myuser>/polarssl-install
- building libsrtp
* download the sources with
$ git clone git://git.linphone.org/srtp.git
* compile with
$ autoconf
$ ./configure --prefix=/usr
$ make libsrtp.a
$ make install
$ make install DESTDIR=/home/<myuser>/libsrtp-install
- building bzrtp
* download the sources with msys-git shell using the following command:
$ git clone git://git.linphone.org/bzrtp.git
* compile and install
$ ./autogen.sh
$ ./configure --prefix=/usr --enable-shared --disable-static
$ make && make install
- building sqlite3
* download the sources on the following website:
http://www.sqlite.org/download.html (choose the sqlite-autoconf-3XXX.tar.gz)
* install:
./configure
make && make install DESTDIR=/home/<myuser>/sqlite3-install
then copy the content of ~/sqlite3-install/usr/local/ into linphone-deps/.
- building ffmpeg
./configure --enable-shared --disable-static --enable-memalign-hack --extra-cflags="-fno-common" --enable-gpl && make
make install DESTDIR=/home/<myuser>/ffmpeg-install
Copy to ~/ffmpeg-install/usr/local/* to linphone-deps/.
Copy also all *.dll.a files from the build tree to lib/ directort of
linphone-deps. These are the implibs necessary to link a program against the
dlls.
- building libxml2: the binaries found on the internet are generated with
MSVC++, and for obscure reason they are not suitable for building libsoup
(that requires libxml2).
./configure --enable-shared --disable-static && make && make install DESTDIR=/home/<myuser>/libxml2-install
copy ~/libxml2-install/usr/local/* into linphone-deps/.
- building x264:
* download yasm normal version windows executable from yasm project page:
http://www.tortall.net/projects/yasm/wiki/Download
copy it as /usr/local/bin/yasm.exe
cd into x264/ dir then run:
./configure --enable-pic
make
make install DESTDIR=/home/<myuser>/x264-install
then copy the content of ~/x264-install/usr/local/ into linphone-deps/.
- libgnutls (required for libsoup https support)
- download binary zip from http://josefsson.org/gnutls4win.org
- add to linphone-deps
- building libsoup (only required for buddylookup plugin)
- download source from gnome ftp (warning: at the time of the writing
only version 2.26.x can compile with the glib version supplied in the
gtk-bundle, 2.27 requires a new version of glib)
- uncompress libgnutls zip in /
- make sure you have libxml2 installed in /
- apply a bugfix patch (fix gnutls support on windows, completely
broken otherwise). The patch is in linphone-deps/src, apply it this
way:
cd libsoup-2.26.*
cd libsoup
patch -p0 < libsoup-gnutls-bugfix.patch
- run:
./configure --prefix=/usr --enable-shared --disable-static
make
make install
make install DESTDIR=/home/<myuser>/libsoup-install
- copy ~/libsoup-install/usr/* into linphone-deps/
Once you have everything in linphone-deps, remove .la files from lib:
cd lib && rm -f *.la
hot stuff:
---------
* ice support
* run a user given command upon incoming calls
* SIP/TLS
low priority:
-------------
* zeroconf support for advertising services (cool stuff!)
* have the possibility to define several profiles (config files) and switch between them
* help tips for the registration box
* 2. There could be a sound effect for "busy" - a short "beep-beep-beep" would be sufficient (try http://www.google.com/search?q=busy.wav)
......@@ -88,7 +88,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING NEWS README.md TODO
%doc ChangeLog.md COPYING README.md
%if @ENABLE_DAEMON@ || @ENABLE_CONSOLE_UI@ || @ENABLE_TOOLS@
%{_bindir}/*
%endif
......
# -*- rpm-spec -*-
## rpmbuild options
# default is to build with video support & without truespeech support
%define video %{?_without_video:0}%{!?_without_video:1}
# Linphone requires an old osip version, sometimes (e.g. fc6)
# delivered as "compat-"
%define _without_old_osip 0
Name: linphone
Version: @VERSION@
Release: %(version=`git describe --tags --abbrev=40 | sed -rn 's/^.*-([0-9]+)-g[a-z0-9]{40}$/\1/p'` && if test -z "$version" ; then echo 0 ; else echo $version ; fi)%{?dist}
Summary: Phone anywhere in the whole world by using the Internet
<