Skip to content

Update of the gephex graph based video jockey software to build with modern Linux.

License

Notifications You must be signed in to change notification settings

lucasw/gephex

 
 

Repository files navigation

Graph based image generation and manipulation:

gephex ui

CMake Build

export DEST=$HOME/other/install
# also put DEST/bin on PATH
sudo apt install qtbase5-dev libsdl-image1.2-dev libsdl-ttf2.0-dev
mkdir -p ~/other/src
cd ~/other/src
git clone git@github.com:lucasw/gephex --branch ubuntu_23_04
mkdir -p ~/other/build/gephex
cd ~/other/build/gephex
cmake ../../src/gephex -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$DEST
make
make install

The binary in the build dir will be in engine/src/engine, the installed location will be $DEST/bin

Then run for first time:

$ gephex
You started gephex for the first time!
Creating /home/lucasw/.gephex/0.4...
Copying and adapting default config file...
Copying example graphs...
cp: cannot stat '/home/lucasw/other/install/share/gephex//graphs/example1': No such file or directory
cp: cannot stat '/home/lucasw/other/install/share/gephex//graphs/example2': No such file or directory
cp: cannot stat '/home/lucasw/other/install/share/gephex//graphs/example3': No such file or directory
cp: cannot stat '/home/lucasw/other/install/share/gephex//graphs/noise': No such file or directory
cp: cannot stat '/home/lucasw/other/install/share/gephex//graphs/fzcam4': No such file or directory
cp: cannot stat '/home/lucasw/other/install/share/gephex//graphs/kaleidoskop': No such file or directory
...done!
Everything is set up.
Starting GePhex, have fun.
/home/lucasw/.gephex/0.4/run_in_terminal.sh does not exist, copying default one...
...done!
  media_path	= /home/lucasw/other/install/share/gephex
  ipc_type	= inet
  ipc_inet_hostname	= localhost
  ipc_namedpipe_servername	= .
  ipc_unix_node_prefix	= /tmp/gephex_socket_
  ipc_port	= 6666
  engine_binary	= /home/lucasw/other/install/bin/gephex-engine
protocol.cpp, dataReceived of listener throwed: could not scan tag

(/home/lucasw will be your equivalent)

gephex.conf

~/.gephex/0.4/gephex.conf will be created, it'll look like this, and can be manually edited to have different paths:

common {
    media_path           = [/home/lucasw/other/install/share/gephex]
}

engine {
    type_path            = [/home/lucasw/Desktop/gephex/types/;/home/lucasw/other/install/lib/gephex-0.4/types/]
    module_path          = [/home/lucasw/Desktop/gephex/modules/;/home/lucasw/other/install/lib/gephex-0.4/modules/]
    frei0r_path          = [/home/lucasw/.frei0r-1/lib/;/usr/local/lib/frei0r-1/;/usr/lib/frei0r-1/]
    graph_path           = [/home/lucasw/Desktop/gephex/graphs/]
    ipc_unix_node_prefix = [/tmp/gephex_socket_]
    ipc_type             = [inet]
    ipc_port             = [6666]
    renderer_interval    = [40]
    net_interval         = [40]
}

gui {
    ipc_type             = [inet]
    ipc_inet_hostname    = [localhost]
    ipc_port             = [6666]
    ipc_unix_node_prefix = [/tmp/gephex_socket_]
    engine_binary        = [/home/lucasw/other/install/bin/gephex-engine]
}

Earlier Build System

Once this is duplicated in CMake will remove it. Just archiving the entire build output would be good enough to duplicate in CMake later.

On Ubuntu 16.04.

gephex can't be built completely out of source, running bootrap inside the source tree is needed and will create a few m4 files and many Makefile.in files (that can be cleaned with git clean):

git clone https://github.com/lucasw/gephex.git
cd gephex
./bootstrap.sh
running cat_acinclude ...
running aclocal ...
running libtoolize --force ...
libtoolize: putting auxiliary files in '.'.
libtoolize: linking file './ltmain.sh'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
running autoheader ...
running automake --add-missing --copy --foreign ...
configure.ac:7: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.  For more info, see:
configure.ac:7: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
configure.ac:12: installing './compile'
...
util/src/libjoystick/Makefile.am:31: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
util/src/misc/Makefile.am:14: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
running autoconf ...

./configure has been successfully built!
See './configure --help' for available options

Haven't even tried ffmpeg build disabling it for now:

cd ..
mkdir build_gephex
cd build_gephex
../gephex/configure --prefix=$HOME/other/install --with-qt-libdir=/usr/lib/x86_64-linux-gnu --with-qt-bindir=/usr/share/qt4/bin --with-qt-incdir=/usr/share/qt4/include --without-FFMPEG

($HOME/other/install is already set up in bashrc to be used for binaries and libraries and so on)

checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
...
config.status: creating util/include/Makefile
config.status: creating util/include/compatibility/Makefile
config.status: creating util/src/Makefile
config.status: creating util/src/cpuinfo/Makefile
config.status: creating util/src/joystick_midi_net/Makefile
config.status: creating util/src/libgeo/Makefile
config.status: creating util/src/libjoystick/Makefile
config.status: creating util/src/misc/Makefile
config.status: creating doc/Makefile
config.status: creating doc/images/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

config.log has a lot of useful info in it in addition to the stdout.

make
mv -f .deps/tcpclientsocket.Tpo .deps/tcpclientsocket.Po
g++ -DHAVE_CONFIG_H -I. -I../../.. -I ./.. -I ./../../../util/include    -g -O2 -MT fdsocket.o -MD -MP -MF .deps/fdsocket.Tpo -c -o fdsocket.o fdsocket.cpp
mv -f .deps/fdsocket.Tpo .deps/fdsocket.Po
g++ -DHAVE_CONFIG_H -I. -I../../.. -I ./.. -I ./../../../util/include    -g -O2 -MT socketadaptor.o -MD -MP -MF .deps/socketadaptor.Tpo -c -o socketadaptor.o socketadaptor.cpp
mv -f .deps/socketadaptor.Tpo .deps/socketadaptor.Po
g++ -DHAVE_CONFIG_H -I. -I../../.. -I ./.. -I ./../../../util/include    -g -O2 -MT convertbin.o -MD -MP -MF .deps/convertbin.Tpo -c -o convertbin.o convertbin.cpp
mv -f .deps/convertbin.Tpo .deps/convertbin.Po
...
    </para>
      </refsect1>

      </refentry>

      if test "x" = "x"; then touch documentation.html; else xsltproc --xinclude -o documentation.html /html/docbook.xsl ./documentation.xml; fi
      make[3]: Leaving directory '/home/lucasw/own/github/gephex/doc'
      make[2]: Leaving directory '/home/lucasw/own/github/gephex/doc'
      make[2]: Entering directory '/home/lucasw/own/github/gephex'
      make[2]: Leaving directory '/home/lucasw/own/github/gephex'
      make[1]: Leaving directory '/home/lucasw/own/github/gephex'
make install

Install ends with manual pages getting displayed, and failing to be installed?

if test "xman" = "x"; then  touch gephex-gui.1; else man ./gephex-gui.xml; fi
 /bin/mkdir -p '/home/lucasw/other/install/share/man/man1'
  /usr/bin/install -c -m 644 ./gephex.1 ./gephex-engine.1 ./gephex-gui.1 '/home/lucasw/other/install/share/man/man1'
  /usr/bin/install: cannot stat './gephex.1': No such file or directory
  /usr/bin/install: cannot stat './gephex-engine.1': No such file or directory
  /usr/bin/install: cannot stat './gephex-gui.1': No such file or directory
  Makefile:437: recipe for target 'install-man1' failed
  make[3]: *** [install-man1] Error 1
  make[3]: Leaving directory '/home/lucasw/own/github/gephex/doc'
  Makefile:669: recipe for target 'install-am' failed
  make[2]: *** [install-am] Error 2
  make[2]: Leaving directory '/home/lucasw/own/github/gephex/doc'
  Makefile:508: recipe for target 'install-recursive' failed
  make[1]: *** [install-recursive] Error 1
  make[1]: Leaving directory '/home/lucasw/own/github/gephex/doc'
  Makefile:442: recipe for target 'install-recursive' failed
  make: *** [install-recursive] Error 1

Running

Run the executable:

gephex
  media_path	= /home/lucasw/other/install/share/gephex
  ipc_type	= inet
  ipc_inet_hostname	= localhost
  ipc_namedpipe_servername	= .
  ipc_unix_node_prefix	= /tmp/gephex_socket_
  ipc_port	= 6666
  engine_binary	= /home/lucasw/other/install/bin/gephex-engine

It will launch a server in a new terminal (unless it is already running?):

       ---             _           ---
    ----              | |            ----
  ----   __ _ ___ _ __| |  ___ _  __  ----
 -----  / _' | - \ '_ \ |_/ - \ \/ /  -----
------ | (_| | --/ |_) |  \ --/>  <   ------
 -----  \__. | \_| .__/ |' |\_/ /\ \  -----
  ----   ._' |\__/ |  |_||_|__//  \_| ----
   ----  |__/    |_|                 ----
      ---                          ---

[version:    "0.4.5"]
[build time: "May 28 2018 - 21:39:02"]
  media_path	= /home/lucasw/other/install/share/gephex
  graph_path	= /home/lucasw/Desktop/gephex/graphs/
  module_path	= /home/lucasw/Desktop/gephex/modules/;/home/lucasw/other/install/lib/gephex-0.4/modules/
  frei0r_path	= /home/lucasw/.frei0r-1/lib/;/usr/local/lib/frei0r-1/;/usr/lib/frei0r-1/
  type_path	= /home/lucasw/Desktop/gephex/types/;/home/lucasw/other/install/lib/gephex-0.4/types/
  ipc_type	= inet
  ipc_port	= 6666
  renderer_interval	= 40
  net_interval	= 40
  ipc_unix_node_prefix	= /tmp/gephex_socket_
  autostart	= 0
  render_graph_id	= default
  render_snap_id	= default
  ttl	= 0

Old README

Where to get the source

If this is a binary release, you can get the source at http://www.gephex.org.

ffmpeg

The source release contains the ffmpeg sources in contrib/ffmpeg. It's a recent cvs snapshot, and has not been modified.

Check http://ffmpeg.sf.net for details on ffmpeg.

EffecTV

This release contains effects that have been ported from EffecTV (http://effectv.sf.net). The sources are in './effectvmodules'.

Thanks to the EffecTV people for their cool effects!

Important note:

On unix platforms, the layout of the /.gephex directory has changed with 0.4.1. All files that previously have been in "/.gephex/" are now moved to the new directory "~/.gephex/0.4/". This change is done automatically when you first start gephex-0.4.1. Note that after that, you cannot simply start an older version of gephex, because it cannot find the config files and will create new ones.

For documentation, please have a look at doc/documentation.html or http://www.gephex.org.

Docker

cd gephex_docker/src/gephex
docker build . -t gephex
cd gephex_docker
docker run -it -v ${PWD}:/other -e "DISPLAY=$DISPLAY" -v "$HOME/.Xauthority:/root/.Xauthority:ro" --network host --ipc host gephex
cd build/gephex
cmake ../../src/gephex -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$DEST -DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=/usr/include/x86_64-linux-gnu/qt5
make install

TODO(lucasw) map in graphs and config dir

docker run -it -v ${PWD}:/other -e "DISPLAY=$DISPLAY" -v "$HOME/.Xauthority:/root/.Xauthority:ro" --network host --ipc host gephex
gephex

About

Update of the gephex graph based video jockey software to build with modern Linux.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 53.3%
  • C 31.5%
  • Ruby 4.3%
  • Makefile 4.0%
  • CMake 2.5%
  • Python 1.7%
  • Other 2.7%