Setup of the hires PET PC

Installing VMEDAQ (short version)

Install dependencies

gamma@linux-nakn:~> sudo zypper install kernel-devel git autoconf \
    libtool python-devel python3-devel zlib-devel gtk2-devel \
    python-gtk-devel gtk-doc libxml2-devel libglade2-devel mlocate
    make automake gcc pkg-config

The SIS1100 driver:

gamma@linux-nakn:~>cd /data/software/packages
gamma@linux-nakn:/data/software/packages> wget http://www.struck.de/sis1100-2.13-9.tar.gz
gamma@linux-nakn:/data/software/packages> cd ../src
gamma@linux-nakn:/data/software/src> tar xvzf ../packages/sis1100-2.13-9.tar.gz
gamma@linux-nakn:/data/software/src> cd sis1100-2.13-9/dev/pci/
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> make
#install the kernel module
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> sudo make install
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> cd ../../sis3100_calls
#add fPIC flags
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> sed -i.bu '/CFLAGS.*=/s%$% -fPIC%' Makefile
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> make clean
#compile vme calls
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> make

Supporting software:

gamma@linux-nakn:~>cd /data/software/build
gamma@linux-nakn:/data/software/build> git clone git://git.code.sf.net/p/gtkhst/gtkhst gtkhst
gamma@linux-nakn:/data/software/build> git clone git://git.code.sf.net/p/daqpp/daqpp daqpp
gamma@linux-nakn:/data/software/build> cd daqpp
gamma@linux-nakn:/data/software/build/daqpp> ./autogen.sh --prefix=/data/software/install/daqpp
gamma@linux-nakn:/data/software/build/daqpp> make
gamma@linux-nakn:/data/software/build/daqpp> make install
gamma@linux-nakn:/data/software/build> cd ../gtkhst
gamma@linux-nakn:/data/software/build/gtkhst> ./autogen.sh --prefix=/data/software/install/gtkhst --enable-python
gamma@linux-nakn:/data/software/build/gtkhst> make 
gamma@linux-nakn:/data/software/build/gtkhst> make install

Vmedaq itself:

gamma@linux-nakn:/data/software/build> git clone git://git.code.sf.net/p/daqpp/vmedaq vmedaq
gamma@linux-nakn:/data/software/build> cd vmedaq
#switch to osu branch
gamma@linux-nakn:/data/software/build/vmedaq> git checkout osu_version
#make a setup enviroment script
gamma@linux-nakn:/data/software/build/vmedaq> echo GTKHST=/data/software/install/gtkhst >> ~/scripts/vmedaqSetup.sh
gamma@linux-nakn:/data/software/build/vmedaq> echo 'export PKG_CONFIG_PATH=$GTKHST/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/scripts/vmedaqSetup.sh
gamma@linux-nakn:/data/software/build/vmedaq> echo DAQPP=/data/software/install/daqpp >> ~/scripts/vmedaqSetup.sh
gamma@linux-nakn:/data/software/build/vmedaq> echo 'export PKG_CONFIG_PATH=$DAQPP/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/scripts/vmedaqSetup.sh
gamma@linux-nakn:/data/software/build/vmedaq> echo VMEDAQ=/data/software/install/vmedaq >> ~/scripts/vmedaqSetup.sh
gamma@linux-nakn:/data/software/build/vmedaq> echo 'export PKG_CONFIG_PATH=$VMEDAQ/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/scripts/vmedaqSetup.sh
gamma@linux-nakn:/data/software/build/vmedaq> echo 'export PATH=$VMEDAQ/bin:$PATH' >> ~/scripts/vmedaqSetup.sh
# source the script
gamma@linux-nakn:/data/software/build/vmedaq> . ~/scripts/vmedaqSetup.sh
#configure
gamma@linux-nakn:/data/software/build/vmedaq> ./autogen.sh --prefix=/data/software/install/vmedaq
gamma@linux-nakn:/data/software/build/vmedaq> make
gamma@linux-nakn:/data/software/build/vmedaq> make install DESTDIR=/
#update permissions
gamma@linux-nakn:~> sudo chmod 666 /dev/sis1100_00remote
gamma@linux-nakn:~> sudo chmod 666 /dev/ttyS0
#get the configuration files
gamma@linux-nakn:~> git clone http://www-f9.ijs.si/~studen/git/vmedaq_config
gamma@linux-nakn:~> cd vmedaq_config
#run vmedaq
gamma@linux-nakn:~/vmedaq_config> vmedaq sis1100-pet-sibgo-osu-v1-today.xml

Updating the firmware:

gamma@linux-nakn:/data/software/src/CVUpgrade_sis3100> bin/CVUpgrade 
   ../V1495_USER_DEMO/FIT/v1495usr_demo.rbf 14950000 
   -param conf/CAENV1495/CVupgrade_params_V1495_USER.txt

Once installed, add run_pet.sh to ~/scripts directory and then you can do:

gamma@linux-nakn:~>chmod u+x ~/scripts/run_pet.sh
gamma@linux-nakn:~>~/scripts/run_pet.sh

No enviornemnt setting is neccesary.

Installing VMEDAQ (the long version)

Status

PET PC at OSU has IP address 128.146.34.94. Some details of the PC:

#>df -h
devtmpfs        490M     0  490M   0% /dev
tmpfs           496M  252K  496M   1% /dev/shm
tmpfs           496M  2,1M  494M   1% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/sda2        41G  7,9G   32G  20% /
/dev/sda2        41G  7,9G   32G  20% /.snapshots
/dev/sda2        41G  7,9G   32G  20% /var/spool
/dev/sda2        41G  7,9G   32G  20% /tmp
/dev/sda2        41G  7,9G   32G  20% /var/tmp
/dev/sda2        41G  7,9G   32G  20% /var/opt
/dev/sda2        41G  7,9G   32G  20% /var/crash
/dev/sda2        41G  7,9G   32G  20% /var/lib/pgsql
/dev/sda2        41G  7,9G   32G  20% /var/lib/named
/dev/sda2        41G  7,9G   32G  20% /var/lib/libvirt/images
/dev/sda2        41G  7,9G   32G  20% /var/lib/mariadb
/dev/sda2        41G  7,9G   32G  20% /var/lib/mysql
/dev/sda2        41G  7,9G   32G  20% /var/lib/mailman
/dev/sda2        41G  7,9G   32G  20% /srv
/dev/sda2        41G  7,9G   32G  20% /usr/local
/dev/sda2        41G  7,9G   32G  20% /var/log
/dev/sda2        41G  7,9G   32G  20% /boot/grub2/x86_64-efi
/dev/sda2        41G  7,9G   32G  20% /opt
/dev/sda2        41G  7,9G   32G  20% /boot/grub2/i386-pc
/dev/sda3       400G  142M  400G   1% /home
/dev/sda4       1,4T   33M  1,4T   1% /data

I have no idea why so many directories under /dev/sda2 pop up, but this is what I get. The processor is a pentium:

#>less /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping        : 10
microcode       : 0x4
cpu MHz         : 2992.504
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant
_tsc pebs bts nopl pni dtes64 monitor ds_cpl est cid cx16 xtpr lahf_lm
bugs            :
bogomips        : 5985.00
clflush size    : 64
cache_alignment : 128
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Intel(R) Pentium(R) 4 CPU 3.00GHz
stepping        : 10
microcode       : 0x4
cpu MHz         : 2992.504
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl est cid cx16 xtpr lahf_lm
bugs            :
bogomips        : 5985.00
clflush size    : 64
cache_alignment : 128
address sizes   : 36 bits physical, 48 bits virtual
power management:

There is 1 GByte of memory and 2 GByte of swap:

#>top
top - 14:52:24 up 2 days,  1:27,  1 user,  load average: 0,00, 0,00, 0,00
Tasks: 170 total,   2 running, 168 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,2 us,  0,5 sy,  0,0 ni, 99,3 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:   1015264 total,   910204 used,   105060 free,        8 buffers
KiB Swap:  2103292 total,    50640 used,  2052652 free.   588896 cached Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND    
1575 root      20   0  270520  31048  14112 S 0,332 3,058   4:12.38 X          
23473 gamma     20   0  983140 100568  67080 S 0,332 9,906   0:36.87 kscreenlo+ 
24210 gamma     20   0   14232   2536   2052 R 0,332 0,250   0:00.02 top  

The core system is SUSE:

gamma@linux-nakn:~> cat /etc/SUSE-brand 
openSUSE
VERSION = 42.1

All new software goes under /data. First I change ownership of /data so gamma can write on it:

#>chown gamma:users /data

Then I create a directory called /data/software. Then I add src, build and install directories therein to organize software source, place for building and installing binaries.

gamma@linux-nakn:/data/software> ll
skupno 0
drwxr-xr-x 2 gamma users 6 sep 12 10:18 build
drwxr-xr-x 2 gamma users 6 sep 12 14:59 install
drwxr-xr-x 2 gamma users 6 sep 12 14:59 src

SIS1100 driver

Start with the SIS1100 driver. Go to the SIS1100 web page. I selected the latest version, and the manual gives you the installation instructions.

Find out if the hardware is installed:

gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> /sbin/lspci 
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 82945G/GZ/P/PL PCI Express Root Port (rev 02)
00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 (rev 01)
00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1e.2 Multimedia audio controller: Intel Corporation 82801G (ICH7 Family) AC'97 Audio Controller (rev 01)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation NM10/ICH7 Family SATA Controller [IDE mode] (rev 01)
00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller (rev 01)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV370 [Radeon X600/X600 SE]
01:00.1 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] RV380 [Radeon X300/X550/X1050 Series] (Secondary)
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01)
04:00.0 Ethernet controller: D-Link System Inc Gigabit Ethernet Adapter (rev 11)
04:02.0 Communication controller: Research Centre Juelich SIS1100 [Gigabit link] (rev 01)

Following instructions I try to compile the driver.

@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> make
make -C /lib/modules/4.1.27-27-default/build SUBDIRS=/data/software/src/sis1100-2.13-9/dev/pci modules
make[1]: *** /lib/modules/4.1.27-27-default/build: Datoteka ali imenik s tem imenom ne obstaja.  Stop.
Makefile:13: recipe for target 'driver' failed
make: *** [driver] Error 2

It seems a directory is missing, so I create the build directory. This is probably because this is a virgin build with precompiled kernel module and this is the first time a module is being compiled.

gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> sudo mkdir /lib/modules/4.1.27-27-default/build

Not a valid solution. In fact, I need the kernel makefiles (the makefiles used to build the kernel). I assume kernel-devel package or similar will give me these.

#this searches for packages that contain kernel in their names
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> zypper se kernel
#this does the install
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> sudo zypper install kernel-devel 
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> sudo zypper install kernel-devel
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 3 NEW packages are going to be installed:
  kernel-default-devel kernel-devel kernel-macros

  3 new packages to install.
  Overall download size: 13,9 MiB. Already cached: 0 B. After the operation, additional 53,8 MiB will be used.
  Continue? [y/n/? shows all options] (y): 
  Retrieving package kernel-macros-4.1.31-30.1.noarch                                                           (1/3), 636,0 KiB (  6,2 KiB unpacked)
  Retrieving: kernel-macros-4.1.31-30.1.noarch.rpm ............................................................................................[done]
  Retrieving package kernel-devel-4.1.31-30.1.noarch                                                            (2/3),  10,5 MiB ( 50,4 MiB unpacked)
  Retrieving: kernel-devel-4.1.31-30.1.noarch.rpm .................................................................................[done (4,6 MiB/s)]
  Retrieving package kernel-default-devel-4.1.31-30.2.x86_64                                                    (3/3),   2,8 MiB (  3,4 MiB unpacked)
  Retrieving: kernel-default-devel-4.1.31-30.2.x86_64.rpm .....................................................................................[done]
  Checking for file conflicts: ................................................................................................................[done]
  (1/3) Installing: kernel-macros-4.1.31-30.1.noarch ..........................................................................................[done]
  (2/3) Installing: kernel-devel-4.1.31-30.1.noarch ...........................................................................................[done]
  (3/3) Installing: kernel-default-devel-4.1.31-30.2.x86_64 ...................................................................................[done

Another catch: system is running 4.1.27-27, but latest kernel version is 4.1.31-31. So I need to downgrade:

gamma@linux-nakn:~> sudo zypper in -f kernel-macros-4.1.27-27.1
gamma@linux-nakn:~> sudo zypper in -f kernel-devel-4.1.27-27.1
gamma@linux-nakn:~> sudo zypper in -f kernel-default-devel-4.1.27-27.1

The packages were the one installed previously. Now we can do:

gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> make
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> sudo make install

Verify installation:

gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> lsmod | grep sis1100
sis1100               106496  0 
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/dev/pci> ll /dev/sis1100_0*
crw------- 1 root root 248,  8 sep 12 16:19 /dev/sis1100_00ctrl
crw------- 1 root root 248, 12 sep 12 16:19 /dev/sis1100_00dsp
crw------- 1 root root 248,  4 sep 12 16:19 /dev/sis1100_00ram
crw------- 1 root root 248,  0 sep 12 16:19 /dev/sis1100_00remote
crw------- 1 root root 248,  9 sep 12 16:19 /dev/sis1100_01ctrl
crw------- 1 root root 248, 13 sep 12 16:19 /dev/sis1100_01dsp
crw------- 1 root root 248,  5 sep 12 16:19 /dev/sis1100_01ram
crw------- 1 root root 248,  1 sep 12 16:19 /dev/sis1100_01remote
crw------- 1 root root 248, 10 sep 12 16:19 /dev/sis1100_02ctrl
crw------- 1 root root 248, 14 sep 12 16:19 /dev/sis1100_02dsp
crw------- 1 root root 248,  6 sep 12 16:19 /dev/sis1100_02ram
crw------- 1 root root 248,  2 sep 12 16:19 /dev/sis1100_02remote
crw------- 1 root root 248, 11 sep 12 16:19 /dev/sis1100_03ctrl
crw------- 1 root root 248, 15 sep 12 16:19 /dev/sis1100_03dsp
crw------- 1 root root 248,  7 sep 12 16:19 /dev/sis1100_03ram
crw------- 1 root root 248,  3 sep 12 16:19 /dev/sis1100_03remote

VMEDAQ and related

DAQpp

Install git to access software under sourceforge's version control:

gamma@linux-nakn:/data/software/build>sudo zypper install git

The following 18 NEW packages are going to be installed

cvs cvsps git git-core git-cvs git-email git-gui gitk git-svn libapr1 libapr-util1 libserf=1=1 libsvn_auth_kwallet-1-0 
perl-Authen-SASL perl-Error perl-Net-SMTP-SSL subversion subversion-perl

( 1/18) Installing: perl-Authen-SASL-2.16-7.2.noarch
( 2/18) Installing: perl-Error-0.17021-3.2.noarch
( 3/18) Installing: perl-Net-SMTP-SSL-1.03-3.2.noarch
( 4/18) Installing: cvs-1.12.12-183.1.x86_64
( 5/18) Installing: cvsps-2.1-184.2.x86_64
( 6/18) Installing: libapr1-1.5.1-5.1.x86_64
( 7/18) Installing: libapr-util1-1.5.3-3.2.x86_64
( 8/18) Installing: libsef-1-1-1-.3.8-4.2.x86_64
( 9/18) Installing: git-core-2.6.6-7.1.x86_64
(10/18) Installing: subversion-1.8.10-9.1.x86_64
(11/18) Installing: gitk-2.6.6-7.1.x86_64
(12/18) Installing: git-gui-2.6.6.6-7.1.x86_64
(13/18) Installing: git-email-2.6.6-7.1.x86_64
(14/18) Installing: git-cvs-2.6.6-7.1.x86_64
(15/18) Installing: git-2.6.6-7.1.x86_64
(16/18) Installing: subversion-perl-1.8.10-9.1.x86_64
(17/18) Installing: libsvn_auth_kwallet-1-0-1.8.10-9.1.x86_64
(18/18) Installing: git-svn-2.6.6-7.1.x86_64

Get DAQ++:

gamma@linux-nakn:/data/software/build> git clone git://git.code.sf.net/p/daqpp/daqpp daqpp
Cloning into 'daqpp'...
remote: Counting objects: 2186, done.
remote: Compressing objects: 100% (845/845), done.
remote: Total 2186 (delta 1514), reused 1870 (delta 1331)
Receiving objects: 100% (2186/2186), 1.49 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1514/1514), done.
Checking connectivity... done.

Now we need autoconf and related tools. While searching I get complaints:

gamma@linux-nakn:/data/software/build/daqpp> zypper se autoconf
Repository 'Main Update Repository' is out-of-date. You can run 'zypper refresh' as root to update it.
Repository 'openSUSE-Leap-42.1-Update' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...

Hence I ran zypper refresh:

gamma@linux-nakn:/data/software/build/daqpp> sudo zypper refresh
root's password:
Repository 'Main Repository (NON-OSS)' is up to date.                                  
Repository 'Update Repository (Non-Oss)' is up to date.                                
Repository 'Main Repository (OSS)' is up to date.                                      
Retrieving repository 'Main Update Repository' metadata .........................[done]
Building repository 'Main Update Repository' cache ..............................[done]
Repository 'openSUSE-42.1-0' is up to date.                                            
Retrieving repository 'openSUSE-Leap-42.1-Update' metadata ......................[done]
Building repository 'openSUSE-Leap-42.1-Update' cache ...........................[done]
All repositories have been refreshed.

Now the search exits without problems:

gamma@linux-nakn:/data/software/build/daqpp> zypper se autoconf
Loading repository data...
Reading installed packages...

S | Name                     | Summary                                        | Type   
--+--------------------------+------------------------------------------------+--------
  | autoconf                 | A GNU Tool for Automatically Configuring Sou-> | package  | autoconf-archive         | A Collection of macros for GNU autoconf        | package  | autoconf-el              | Emacs mode for editing GNU Autoconf scripts    | package
  | autoconf213              | A GNU Tool for Automatically Configuring Sou-> | package
  | network-autoconfig       | Find a connected eth interface and create an-> | package
  | perl-Config-AutoConf     | A module to implement some of AutoConf macro-> | package
i | sane-backends-autoconfig | USB Scanner Autoconfiguration                  | package

So I install autoconf:

gamma@linux-nakn:/data/software/build/daqpp> sudo zypper install autoconf
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
  autoconf m4

  2 new packages to install.
  Overall download size: 940.5 KiB. Already cached: 0 B. After the operation, additional
  2.7 MiB will be used.
  Continue? [y/n/? shows all options] (y): 
  Retrieving package m4-1.4.16-3.2.x86_64           (1/2), 232.7 KiB (490.9 KiB unpacked)
  Retrieving: m4-1.4.16-3.2.x86_64.rpm ................................[done (2.4 MiB/s)]
  Retrieving package autoconf-2.69-11.4.noarch      (2/2), 707.9 KiB (  2.2 MiB unpacked)
  Retrieving: autoconf-2.69-11.4.noarch.rpm .......................................[done]
  Checking for file conflicts: ....................................................[done]
  (1/2) Installing: m4-1.4.16-3.2.x86_64 ..........................................[done]
  (2/2) Installing: autoconf-2.69-11.4.noarch .....................................[done]

Now we can go back and run autoconf:

gamma@linux-nakn:/data/software/build/daqpp> autoconf 
configure.in:37: error: possibly undefined macro: AC_CONFIG_MACRO_DIRS
     If this token and others are legitimate, please use m4_pattern_allow.
     See the Autoconf documentation.
configure.in:50: error: possibly undefined macro: AM_INIT_AUTOMAKE
configure.in:51: error: possibly undefined macro: AC_ENABLE_SHARED
configure.in:52: error: possibly undefined macro: AC_ENABLE_STATIC
configure.in:53: error: possibly undefined macro: AC_DISABLE_STATIC
configure.in:61: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL
configure.in:62: error: possibly undefined macro: AM_PROG_LIBTOOL
configure.in:63: error: possibly undefined macro: AM_MAINTAINER_MODE
configure.in:66: error: possibly undefined macro: AM_SANITY_CHECK
configure.in:70: error: possibly undefined macro: AM_PROG_CC_STDC
configure.in:100: error: possibly undefined macro: AM_CONDITIONAL
configure.in:116: error: possibly undefined macro: AM_PATH_PYTHON
configure.in:117: error: possibly undefined macro: AM_CHECK_PYTHON_HEADERS

This looks like our m4 scripts are too old for the autoconf version. Internet is not really unanimous about the problem, but installing libtool and automake seems to help.

gamma@linux-nakn:~> sudo zypper install libtool
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
  automake libtool

  2 new packages to install.
  Overall download size: 1.2 MiB. Already cached: 0 B. After the operation, additional
  4.6 MiB will be used.
  Continue? [y/n/? shows all options] (y): 
  Retrieving package automake-1.13.4-8.1.noarch     (1/2), 786.7 KiB (  2.3 MiB unpacked)
  Retrieving: automake-1.13.4-8.1.noarch.rpm ......................................[done]
  Retrieving package libtool-2.4.2-16.6.x86_64      (2/2), 453.7 KiB (  2.3 MiB unpacked)
  Retrieving: libtool-2.4.2-16.6.x86_64.rpm .......................................[done]
  Checking for file conflicts: ....................................................[done]
  (1/2) Installing: automake-1.13.4-8.1.noarch ....................................[done]
  (2/2) Installing: libtool-2.4.2-16.6.x86_64 .....................................[done]

Now autoconf runs without problems:

gamma@linux-nakn:/data/software/build/daqpp> autoconf

Running configure however complains of unexpected tokens:

gamma@linux-nakn:/data/software/build/daqpp> ./configure --prefix=/data/software/install/daqpp
configure: loading site script /usr/share/site/x86_64-unknown-linux-gnu
./configure: line 2287: syntax error near unexpected token `scripts'
./configure: line 2287: `AC_CONFIG_MACRO_DIRS(scripts)'

So I gave up on autoconf and ran autogen.sh:

gamma@linux-nakn:/data/software/build/daqpp> ./autogen.sh 
**Warning**: I am going to run `configure' with no arguments.
If you wish to pass any to it, please specify them on the
`./autogen.sh' command line.

processing .
Running libtoolize...
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `scripts'.
libtoolize: copying file `scripts/ltmain.sh'
libtoolize: putting macros in `scripts'.
libtoolize: copying file `scripts/libtool.m4'
libtoolize: copying file `scripts/ltoptions.m4'
libtoolize: copying file `scripts/ltsugar.m4'
libtoolize: copying file `scripts/ltversion.m4'
libtoolize: copying file `scripts/lt~obsolete.m4'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
Running aclocal  -I scripts ...
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
Running automake --gnu  ...
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
DAQ++/Makefile.am:4: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
DAQ++/soap/Makefile.am:2: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
DAQ++/soap/Makefile.am:34: warning: variable 'libsoapdaqppClient__la_LIBADD' is defined but no program or
DAQ++/soap/Makefile.am:34: library has 'libsoapdaqppClient__la' as canonical name (possible typo)
python/DAQ++/python/Makefile.am:9: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
python/daqpp/Makefile.am:4: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
test/Makefile.am:5: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
test/soap/Makefile.am:4: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
Running autoconf ...
Running ./configure ...
configure: loading site script /usr/share/site/x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/data/software/build/daqpp/scripts/missing: Unknown `--is-lightweight' option
Try `/data/software/build/daqpp/scripts/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/x86_64-suse-linux/bin/ld
checking if the linker (/usr/x86_64-suse-linux/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-suse-linux/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether build environment is sane... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/x86_64-suse-linux/bin/ld -m elf_x86_64
checking if the linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... no
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for ANSI C header files... (cached) yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking xlocale.h usability... yes
checking xlocale.h presence... yes
checking for xlocale.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for stdint.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking for sys/types.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking for unistd.h... (cached) yes
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
checking zlib.h usability... no
checking zlib.h presence... no
checking for zlib.h... no
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for sys/time.h... (cached) yes
checking for unistd.h... (cached) yes
checking for alarm... yes
checking for working mktime... yes
checking return type of signal handlers... void
checking for strftime... yes
checking for random... yes
checking for gettimeofday... yes
checking for ftime... yes
checking for localtime_r... yes
checking for timegm... yes
checking for gmtime... yes
checking for gmtime_r... yes
checking for memset... yes
checking for select... yes
checking for socket... yes
checking for strchr... yes
checking for strerror... yes
checking for strrchr... yes
checking for strstr... yes
checking for strtol... yes
checking for strtoul... yes
checking for strtoll... yes
checking for strtoull... yes
checking for strtold... yes
checking for strtod... yes
checking for strtof... yes
checking for strtold_l... yes
checking for strtod_l... yes
checking for strtof_l... yes
checking for sscanf... yes
checking for sscanf_l... no
checking for sprintf_l... no
checking for wctomb... yes
checking for mbtowc... yes
checking for FAMOpen in -lfam... no
checking for wsdl2h... no
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.7/site-packages
checking for python extension module directory... ${exec_prefix}/lib64/python2.7/site-packages
checking for headers required to compile python extensions... not found
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for PYTHON... no
configure: error: Package requirements (python) were not met:

No package 'python' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables PYTHON_CFLAGS
and PYTHON_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

So, now it is down to python. We are missing the devel packages:

gamma@linux-nakn:/data/software/build/daqpp> sudo zypper install python-devel python3-devel 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
  python3-devel python-devel

  2 new packages to install.
  Overall download size: 3.5 MiB. Already cached: 0 B. After the operation, additional 21.4
  MiB will be used.
  Continue? [y/n/? shows all options] (y): 
  Retrieving package python-devel-2.7.12-23.1.x86_64    (1/2),   3.4 MiB ( 20.9 MiB unpacked)
  Retrieving: python-devel-2.7.12-23.1.x86_64.rpm .....................................[done]
  Retrieving package python3-devel-3.4.5-8.1.x86_64     (2/2), 135.2 KiB (495.8 KiB unpacked)
  Retrieving: python3-devel-3.4.5-8.1.x86_64.rpm ......................................[done]
  Checking for file conflicts: ........................................................[done]
  (1/2) Installing: python-devel-2.7.12-23.1.x86_64 ...................................[done]
  (2/2) Installing: python3-devel-3.4.5-8.1.x86_64 ....................................[done]

Now configure runs to the end:

gamma@linux-nakn:/data/software/build/daqpp> ./configure --prefix=/data/software/install/daqpp
gamma@linux-nakn:/data/software/build/daqpp> make
...
In file included from FileIOManager.cc:18:0:
FileIOManager.h:5:18: fatal error: zlib.h: No such file or directory
 #include <zlib.h>

Now zlib is missing. It seems zlib-devel is the package to use:

gamma@linux-nakn:/data/software/build/daqpp> sudo zypper install zlib-devel
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  zlib-devel

  1 new package to install.
  Overall download size: 105.5 KiB. Already cached: 0 B. After the operation, additional
  374.4 KiB will be used.
  Continue? [y/n/? shows all options] (y): 
  Retrieving package zlib-devel-1.2.8-6.4.x86_64        (1/1), 105.5 KiB (374.4 KiB unpacked)
  Retrieving: zlib-devel-1.2.8-6.4.x86_64.rpm .........................................[done]
  Checking for file conflicts: ........................................................[done]
  (1/1) Installing: zlib-devel-1.2.8-6.4.x86_64 .......................................[done]

Now it works:

gamma@linux-nakn:/data/software/build/daqpp> make
gamma@linux-nakn:/data/software/build/daqpp> make install

GTK-HST

Get the software from sourceforge:

gamma@linux-nakn:/data/software/build> git clone git://git.code.sf.net/p/gtkhst/gtkhst gtkhst
Cloning into 'gtkhst'...
remote: Counting objects: 654, done.
remote: Compressing objects: 100% (345/345), done.
remote: Total 654 (delta 448), reused 421 (delta 303)
Receiving objects: 100% (654/654), 661.62 KiB | 0 bytes/s, done.
Resolving deltas: 100% (448/448), done.
Checking connectivity... done.

Then we need to make it:

gamma@linux-nakn:/data/software/build/gtkhst> ./autogen.sh --prefix=/data/software/install/gtkhst
...
configure: error: Package requirements (gtk+-2.0) were not met:

No package 'gtk+-2.0' found

Clearly, some portion of gtk+-2.0 is missing. My bet is on devel. Boy did I kick the hornet's nest:

gamma@linux-nakn:/data/software/build/gtkhst> sudo zypper install gtk2-devel
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 52 NEW packages are going to be installed:
  atk-devel cairo-devel damageproto-devel fixesproto-devel fontconfig-devel freetype2-devel
  gdk-pixbuf-devel glib2-devel graphite2-devel gtk2-devel harfbuzz-devel kbproto-devel
  libbz2-devel libcairo-script-interpreter2 libdrm-devel libexpat-devel libicu-devel
  libpcrecpp0 libpcreposix0 libpixman-1-0-devel libpng16-compat-devel libpng16-devel
  libstdc++-devel libX11-devel libXau-devel libxcb-devel libxcb-res0 libxcb-screensaver0
  libxcb-xevie0 libxcb-xf86dri0 libxcb-xinerama0 libxcb-xprint0 libxcb-xtest0 libxcb-xv0
  libxcb-xvmc0 libXdamage-devel libXext-devel libXfixes-devel libXft-devel libXrender-devel
  libxshmfence-devel libXxf86vm-devel Mesa-libEGL-devel Mesa-libGL-devel pango-devel
  pcre-devel pthread-stubs-devel renderproto-devel typelib-1_0-Gtk-2_0 xextproto-devel
  xf86vidmodeproto-devel xproto-devel

The following recommended package was automatically selected:
    libpng16-compat-devel

52 new packages to install.
Overall download size: 11.2 MiB. Already cached: 0 B. After the operation, additional 86.1 MiB will be used.
Continue? [y/n/? shows all options] (y): 
Retrieving package damageproto-devel-1.2.1-8.2.x86_64 (1/52),   8.9 KiB ( 14.2 KiB unpacked)
Retrieving: damageproto-devel-1.2.1-8.2.x86_64.rpm ..................................[done]
Retrieving package kbproto-devel-1.0.7-3.2.x86_64   (2/52), 130.7 KiB (1018.9 KiB unpacked)
Retrieving: kbproto-devel-1.0.7-3.2.x86_64.rpm ......................................[done]
Retrieving package libdrm-devel-2.4.65-1.1.x86_64    (3/52), 100.2 KiB (366.6 KiB unpacked)
Retrieving: libdrm-devel-2.4.65-1.1.x86_64.rpm ......................................[done]
Retrieving package libicu-devel-52.1-10.3.x86_64     (4/52), 599.3 KiB (  3.9 MiB unpacked)
Retrieving: libicu-devel-52.1-10.3.x86_64.rpm .......................................[done]
Retrieving package libpcrecpp0-8.33-3.5.x86_64       (5/52),  22.3 KiB ( 34.5 KiB unpacked)
Retrieving: libpcrecpp0-8.33-3.5.x86_64.rpm .........................................[done]
Retrieving package libpcreposix0-8.33-3.5.x86_64     (6/52),  14.0 KiB ( 10.1 KiB unpacked)
Retrieving: libpcreposix0-8.33-3.5.x86_64.rpm .......................................[done]
Retrieving package libpixman-1-0-devel-0.32.6-3.2.x86_64 (7/52),  22.9 KiB ( 45.6 KiB unpacked)
Retrieving: libpixman-1-0-devel-0.32.6-3.2.x86_64.rpm ...............................[done]
Retrieving package libstdc++-devel-4.8-8.4.x86_64    (8/52),   4.8 KiB (   72   B unpacked)
Retrieving: libstdc++-devel-4.8-8.4.x86_64.rpm ......................................[done]
Retrieving package libxcb-res0-1.11.1-1.1.x86_64     (9/52),  11.9 KiB ( 14.1 KiB unpacked)
Retrieving: libxcb-res0-1.11.1-1.1.x86_64.rpm .......................................[done]
Retrieving package libxcb-screensaver0-1.11.1-1.1.x86_64 (10/52),  11.2 KiB ( 10.1 KiB unpacked)
Retrieving: libxcb-screensaver0-1.11.1-1.1.x86_64.rpm ...............................[done]
Retrieving package libxcb-xevie0-1.11.1-1.1.x86_64  (11/52),  11.0 KiB ( 10.1 KiB unpacked)
Retrieving: libxcb-xevie0-1.11.1-1.1.x86_64.rpm .....................................[done]
Retrieving package libxcb-xf86dri0-1.11.1-1.1.x86_64 (12/52),  12.0 KiB ( 18.1 KiB unpacked)
Retrieving: libxcb-xf86dri0-1.11.1-1.1.x86_64.rpm ...................................[done]
Retrieving package libxcb-xinerama0-1.11.1-1.1.x86_64 (13/52),  11.1 KiB ( 10.1 KiB unpacked)
Retrieving: libxcb-xinerama0-1.11.1-1.1.x86_64.rpm ..................................[done]
Retrieving package libxcb-xprint0-1.11.1-1.1.x86_64 (14/52),  15.4 KiB ( 30.2 KiB unpacked)
Retrieving: libxcb-xprint0-1.11.1-1.1.x86_64.rpm ....................................[done]
Retrieving package libxcb-xtest0-1.11.1-1.1.x86_64  (15/52),  10.9 KiB ( 10.1 KiB unpacked)
Retrieving: libxcb-xtest0-1.11.1-1.1.x86_64.rpm .....................................[done]
Retrieving package libxcb-xv0-1.11.1-1.1.x86_64     (16/52),  14.6 KiB ( 26.2 KiB unpacked)
Retrieving: libxcb-xv0-1.11.1-1.1.x86_64.rpm ........................................[done]
Retrieving package libxcb-xvmc0-1.11.1-1.1.x86_64   (17/52),  12.0 KiB ( 14.1 KiB unpacked)
Retrieving: libxcb-xvmc0-1.11.1-1.1.x86_64.rpm ......................................[done]
Retrieving package libxshmfence-devel-1.2-5.3.x86_64 (18/52),   5.4 KiB (  1.9 KiB unpacked)
Retrieving: libxshmfence-devel-1.2-5.3.x86_64.rpm ...................................[done]
Retrieving package pthread-stubs-devel-0.3-3.2.x86_64 (19/52),   4.2 KiB (  1.4 KiB unpacked)
Retrieving: pthread-stubs-devel-0.3-3.2.x86_64.rpm ..................................[done]
Retrieving package renderproto-devel-0.11.1-8.2.x86_64 (20/52),  18.3 KiB ( 57.4 KiB unpacked)
Retrieving: renderproto-devel-0.11.1-8.2.x86_64.rpm .................................[done]
Retrieving package xextproto-devel-7.3.0-3.2.x86_64 (21/52), 108.4 KiB (655.3 KiB unpacked)
Retrieving: xextproto-devel-7.3.0-3.2.x86_64.rpm ....................................[done]
Retrieving package xf86vidmodeproto-devel-2.3.1-8.2.x86_64 (22/52),   7.0 KiB ( 20.2 KiB unpacked)
Retrieving: xf86vidmodeproto-devel-2.3.1-8.2.x86_64.rpm .............................[done]
Retrieving package xproto-devel-7.0.28-3.2.x86_64   (23/52), 150.0 KiB (  1.1 MiB unpacked)
Retrieving: xproto-devel-7.0.28-3.2.x86_64.rpm ......................................[done]
Retrieving package pcre-devel-8.33-3.5.x86_64       (24/52), 217.5 KiB (257.5 KiB unpacked)
Retrieving: pcre-devel-8.33-3.5.x86_64.rpm ..........................................[done]
Retrieving package fixesproto-devel-5.0-8.2.x86_64  (25/52),  13.9 KiB ( 40.1 KiB unpacked)
Retrieving: fixesproto-devel-5.0-8.2.x86_64.rpm .....................................[done]
Retrieving package libXau-devel-1.0.8-6.1.x86_64    (26/52),  10.2 KiB (  6.1 KiB unpacked)
Retrieving: libXau-devel-1.0.8-6.1.x86_64.rpm .......................................[done]
Retrieving package glib2-devel-2.44.1-2.3.x86_64    (27/52),   2.8 MiB ( 26.8 MiB unpacked)
Retrieving: glib2-devel-2.44.1-2.3.x86_64.rpm .......................................[done]
Retrieving package libxcb-devel-1.11.1-1.1.x86_64   (28/52), 161.5 KiB (  2.0 MiB unpacked)
Retrieving: libxcb-devel-1.11.1-1.1.x86_64.rpm ..........................[done (2.7 MiB/s)]
Retrieving package atk-devel-2.16.0-2.3.x86_64      (29/52),  99.2 KiB (945.7 KiB unpacked)
Retrieving: atk-devel-2.16.0-2.3.x86_64.rpm .........................................[done]
Retrieving package graphite2-devel-1.3.1-3.1.x86_64 (30/52),  17.8 KiB ( 47.7 KiB unpacked)
Retrieving: graphite2-devel-1.3.1-3.1.x86_64.rpm ....................................[done]
Retrieving package libbz2-devel-1.0.6-32.1.x86_64   (31/52),  12.7 KiB ( 19.3 KiB unpacked)
Retrieving: libbz2-devel-1.0.6-32.1.x86_64.rpm ......................................[done]
Retrieving package libcairo-script-interpreter2-1.14.2-6.1.x86_64 (32/52),  71.9 KiB (147.0 KiB unpacked)
Retrieving: libcairo-script-interpreter2-1.14.2-6.1.x86_64.rpm ......................[done]
Retrieving package libexpat-devel-2.1.0-17.1.x86_64 (33/52),  19.1 KiB ( 44.8 KiB unpacked)
Retrieving: libexpat-devel-2.1.0-17.1.x86_64.rpm ....................................[done]
Retrieving package libpng16-devel-1.6.8-7.1.x86_64  (34/52), 175.9 KiB (646.5 KiB unpacked)
Retrieving: libpng16-devel-1.6.8-7.1.x86_64.rpm .....................................[done]
Retrieving package typelib-1_0-Gtk-2_0-2.24.30-8.3.x86_64 (35/52), 233.5 KiB (808.8 KiB unpacked)
Retrieving: typelib-1_0-Gtk-2_0-2.24.30-8.3.x86_64.rpm ..............................[done]
Retrieving package libX11-devel-1.6.3-3.1.x86_64    (36/52),   1.5 MiB (  7.6 MiB unpacked)
Retrieving: libX11-devel-1.6.3-3.1.x86_64.rpm .......................................[done]
Retrieving package harfbuzz-devel-1.0.3-4.1.x86_64  (37/52),  92.1 KiB (928.0 KiB unpacked)
Retrieving: harfbuzz-devel-1.0.3-4.1.x86_64.rpm .....................................[done]
Retrieving package libpng16-compat-devel-1.6.8-7.1.x86_64 (38/52), 100.6 KiB ( 77.5 KiB unpacked)
Retrieving: libpng16-compat-devel-1.6.8-7.1.x86_64.rpm ..............................[done]
Retrieving package gdk-pixbuf-devel-2.32.3-8.1.x86_64 (39/52), 220.2 KiB (  1.2 MiB unpacked)
Retrieving: gdk-pixbuf-devel-2.32.3-8.1.x86_64.rpm ..................................[done]
Retrieving package freetype2-devel-2.5.5-8.2.x86_64 (40/52), 231.2 KiB (  2.1 MiB unpacked)
Retrieving: freetype2-devel-2.5.5-8.2.x86_64.rpm ........................[done (4.2 MiB/s)]
Retrieving package libXrender-devel-0.9.9-1.1.x86_64 (41/52),  12.3 KiB ( 29.4 KiB unpacked)
Retrieving: libXrender-devel-0.9.9-1.1.x86_64.rpm ...................................[done]
Retrieving package libXfixes-devel-5.0.1-5.1.x86_64 (42/52),   8.8 KiB (  9.0 KiB unpacked)
Retrieving: libXfixes-devel-5.0.1-5.1.x86_64.rpm ....................................[done]
Retrieving package libXext-devel-1.3.3-3.1.x86_64   (43/52),  89.7 KiB (220.7 KiB unpacked)
Retrieving: libXext-devel-1.3.3-3.1.x86_64.rpm ......................................[done]
Retrieving package libXdamage-devel-1.1.4-9.1.x86_64 (44/52),   5.3 KiB (  2.5 KiB unpacked)
Retrieving: libXdamage-devel-1.1.4-9.1.x86_64.rpm ...................................[done]
Retrieving package libXxf86vm-devel-1.1.4-1.1.x86_64 (45/52),  13.8 KiB ( 11.3 KiB unpacked)
Retrieving: libXxf86vm-devel-1.1.4-1.1.x86_64.rpm ...................................[done]
Retrieving package fontconfig-devel-2.11.0-5.1.x86_64 (46/52), 193.7 KiB (853.6 KiB unpacked)
Retrieving: fontconfig-devel-2.11.0-5.1.x86_64.rpm ..................................[done]
Retrieving package Mesa-libGL-devel-11.0.8-148.1.x86_64 (47/52), 528.4 KiB (  1.6 MiB unpacked)
Retrieving: Mesa-libGL-devel-11.0.8-148.1.x86_64.rpm ....................[done (2.7 MiB/s)]
Retrieving package Mesa-libEGL-devel-11.0.8-148.1.x86_64 (48/52),  94.7 KiB ( 77.6 KiB unpacked)
Retrieving: Mesa-libEGL-devel-11.0.8-148.1.x86_64.rpm ...............................[done]
Retrieving package cairo-devel-1.14.2-6.1.x86_64    (49/52), 190.3 KiB (  1.8 MiB unpacked)
Retrieving: cairo-devel-1.14.2-6.1.x86_64.rpm .......................................[done]
Retrieving package libXft-devel-2.3.2-3.1.x86_64    (50/52),  14.7 KiB ( 23.1 KiB unpacked)
Retrieving: libXft-devel-2.3.2-3.1.x86_64.rpm .........................[done (621.2 KiB/s)]
Retrieving package pango-devel-1.36.8-2.2.x86_64    (51/52), 290.3 KiB (  3.2 MiB unpacked)
Retrieving: pango-devel-1.36.8-2.2.x86_64.rpm .......................................[done]
Retrieving package gtk2-devel-2.24.30-8.3.x86_64    (52/52),   2.6 MiB ( 27.5 MiB unpacked)
Retrieving: gtk2-devel-2.24.30-8.3.x86_64.rpm .......................................[done]
Checking for file conflicts: ........................................................[done]
( 1/52) Installing: damageproto-devel-1.2.1-8.2.x86_64 ..............................[done]
( 2/52) Installing: kbproto-devel-1.0.7-3.2.x86_64 ..................................[done]
( 3/52) Installing: libdrm-devel-2.4.65-1.1.x86_64 ..................................[done]
( 4/52) Installing: libicu-devel-52.1-10.3.x86_64 ...................................[done]
( 5/52) Installing: libpcrecpp0-8.33-3.5.x86_64 .....................................[done]
( 6/52) Installing: libpcreposix0-8.33-3.5.x86_64 ...................................[done]
( 7/52) Installing: libpixman-1-0-devel-0.32.6-3.2.x86_64 ...........................[done]
( 8/52) Installing: libstdc++-devel-4.8-8.4.x86_64 ..................................[done]
( 9/52) Installing: libxcb-res0-1.11.1-1.1.x86_64 ...................................[done]
(10/52) Installing: libxcb-screensaver0-1.11.1-1.1.x86_64 ...........................[done]
(11/52) Installing: libxcb-xevie0-1.11.1-1.1.x86_64 .................................[done]
(12/52) Installing: libxcb-xf86dri0-1.11.1-1.1.x86_64 ...............................[done]
(13/52) Installing: libxcb-xinerama0-1.11.1-1.1.x86_64 ..............................[done]
(14/52) Installing: libxcb-xprint0-1.11.1-1.1.x86_64 ................................[done]
(15/52) Installing: libxcb-xtest0-1.11.1-1.1.x86_64 .................................[done]
(16/52) Installing: libxcb-xv0-1.11.1-1.1.x86_64 ....................................[done]
(17/52) Installing: libxcb-xvmc0-1.11.1-1.1.x86_64 ..................................[done]
(18/52) Installing: libxshmfence-devel-1.2-5.3.x86_64 ...............................[done]
(19/52) Installing: pthread-stubs-devel-0.3-3.2.x86_64 ..............................[done]
(20/52) Installing: renderproto-devel-0.11.1-8.2.x86_64 .............................[done]
(21/52) Installing: xextproto-devel-7.3.0-3.2.x86_64 ................................[done]
(22/52) Installing: xf86vidmodeproto-devel-2.3.1-8.2.x86_64 .........................[done]
(23/52) Installing: xproto-devel-7.0.28-3.2.x86_64 ..................................[done]
(24/52) Installing: pcre-devel-8.33-3.5.x86_64 ......................................[done]
(25/52) Installing: fixesproto-devel-5.0-8.2.x86_64 .................................[done]
(26/52) Installing: libXau-devel-1.0.8-6.1.x86_64 ...................................[done]
(27/52) Installing: glib2-devel-2.44.1-2.3.x86_64 ...................................[done]
(28/52) Installing: libxcb-devel-1.11.1-1.1.x86_64 ..................................[done]
(29/52) Installing: atk-devel-2.16.0-2.3.x86_64 .....................................[done]
(30/52) Installing: graphite2-devel-1.3.1-3.1.x86_64 ................................[done]
(31/52) Installing: libbz2-devel-1.0.6-32.1.x86_64 ..................................[done]
(32/52) Installing: libcairo-script-interpreter2-1.14.2-6.1.x86_64 ..................[done]
(33/52) Installing: libexpat-devel-2.1.0-17.1.x86_64 ................................[done]
(34/52) Installing: libpng16-devel-1.6.8-7.1.x86_64 .................................[done]
(35/52) Installing: typelib-1_0-Gtk-2_0-2.24.30-8.3.x86_64 ..........................[done]
(36/52) Installing: libX11-devel-1.6.3-3.1.x86_64 ...................................[done]
(37/52) Installing: harfbuzz-devel-1.0.3-4.1.x86_64 .................................[done]
(38/52) Installing: libpng16-compat-devel-1.6.8-7.1.x86_64 ..........................[done]
(39/52) Installing: gdk-pixbuf-devel-2.32.3-8.1.x86_64 ..............................[done]
(40/52) Installing: freetype2-devel-2.5.5-8.2.x86_64 ................................[done]
(41/52) Installing: libXrender-devel-0.9.9-1.1.x86_64 ...............................[done]
(42/52) Installing: libXfixes-devel-5.0.1-5.1.x86_64 ................................[done]
(43/52) Installing: libXext-devel-1.3.3-3.1.x86_64 ..................................[done]
(44/52) Installing: libXdamage-devel-1.1.4-9.1.x86_64 ...............................[done]
(45/52) Installing: libXxf86vm-devel-1.1.4-1.1.x86_64 ...............................[done]
(46/52) Installing: fontconfig-devel-2.11.0-5.1.x86_64 ..............................[done]
(47/52) Installing: Mesa-libGL-devel-11.0.8-148.1.x86_64 ............................[done]
(48/52) Installing: Mesa-libEGL-devel-11.0.8-148.1.x86_64 ...........................[done]
(49/52) Installing: cairo-devel-1.14.2-6.1.x86_64 ...................................[done]
(50/52) Installing: libXft-devel-2.3.2-3.1.x86_64 ...................................[done]
(51/52) Installing: pango-devel-1.36.8-2.2.x86_64 ...................................[done]
(52/52) Installing: gtk2-devel-2.24.30-8.3.x86_64 ...................................[done]

Continuing, a suspicuous messages get generated:

gamma@linux-nakn:/data/software/build/gtkhst> ./configure --prefix=/data/software/install/gtkhst
[...]
configure: "*** Python is disabled. ***"
[...]
config.status: error: cannot find input file: `python/Makefile.in'

Since make also fails, I try and enable python:

gamma@linux-nakn:/data/software/build/gtkhst> ./configure --prefix=/data/software/install/gtkhst --enable-python
[...]
checking for PyGTK... no
configure: error: Package requirements (pygtk-2.0 ) were not met:

No package 'pygtk-2.0' found

A remedy is handy:

gamma@linux-nakn:/data/software/build/gtkhst> sudo zypper install python-gtk-devel
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 4 NEW packages are going to be installed:
  libffi-devel-gcc5 python-cairo-devel python-gobject2-devel python-gtk-devel

4 new packages to install.
Overall download size: 616.9 KiB. Already cached: 0 B. After the operation, additional 4.1
MiB will be used.
Continue? [y/n/? shows all options] (y): 
Retrieving package python-cairo-devel-1.10.0-15.1.x86_64 (1/4),   8.1 KiB (  7.4 KiB unpacked)
Retrieving: python-cairo-devel-1.10.0-15.1.x86_64.rpm ...............................[done]
Retrieving package libffi-devel-gcc5-5.3.1+r233831-6.1.x86_64 (2/4),  74.7 KiB (240.7 KiB unpacked)
Retrieving: libffi-devel-gcc5-5.3.1+r233831-6.1.x86_64.rpm ..........................[done]
Retrieving package python-gobject2-devel-2.28.6-26.1.x86_64 (3/4), 251.4 KiB (  2.3 MiB unpacked)
Retrieving: python-gobject2-devel-2.28.6-26.1.x86_64.rpm ............................[done]
Retrieving package python-gtk-devel-2.24.0-15.1.x86_64 (4/4), 282.7 KiB (  1.6 MiB unpacked)
Retrieving: python-gtk-devel-2.24.0-15.1.x86_64.rpm .................................[done]
Checking for file conflicts: ........................................................[done]
(1/4) Installing: python-cairo-devel-1.10.0-15.1.x86_64 .............................[done]
(2/4) Installing: libffi-devel-gcc5-5.3.1+r233831-6.1.x86_64 ........................[done]
(3/4) Installing: python-gobject2-devel-2.28.6-26.1.x86_64 ..........................[done]
(4/4) Installing: python-gtk-devel-2.24.0-15.1.x86_64 ...............................[done]

Another error is by automake:

gamma@linux-nakn:/data/software/build/gtkhst> automake
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
gtk-doc.make:7: error: GTK_DOC_USE_LIBTOOL does not appear in AM_CONDITIONAL
docs/Makefile.am:69:   'gtk-doc.make' included from here
gtk-doc.make:55: error: GTK_DOC_BUILD_HTML does not appear in AM_CONDITIONAL
docs/Makefile.am:69:   'gtk-doc.make' included from here
gtk-doc.make:60: error: GTK_DOC_BUILD_PDF does not appear in AM_CONDITIONAL
docs/Makefile.am:69:   'gtk-doc.make' included from here

This one is due to missing gtk-doc. There goes under chunk of disk space:

gamma@linux-nakn:/data/software/build/gtkhst> sudo zypper install gtk-doc
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 14 NEW packages are going to be installed:
  ctags docbook_4 docbook-xsl-stylesheets gtk-doc gtk-doc-lang iso_ent libboost_regex1_54_0
  libsource-highlight4 openjade opensp sgml-skel source-highlight xmlcharent
  xml-group-manager

The following 2 recommended packages were automatically selected:
   gtk-doc-lang source-highlight

14 new packages to install.
Overall download size: 7.7 MiB. Already cached: 0 B. After the operation, additional 43.0
MiB will be used.
Continue? [y/n/? shows all options] (y): 
Retrieving package sgml-skel-0.6-437.1.noarch        (1/14),  17.6 KiB ( 37.4 KiB unpacked)
Retrieving: sgml-skel-0.6-437.1.noarch.rpm ..........................................[done]
Retrieving package xml-group-manager-20140805-4.1.noarch (2/14),   8.6 KiB ( 18.8 KiB unpacked)
Retrieving: xml-group-manager-20140805-4.1.noarch.rpm ...............................[done]
Retrieving package ctags-5.8-8.2.x86_64              (3/14), 126.6 KiB (299.5 KiB unpacked)
Retrieving: ctags-5.8-8.2.x86_64.rpm ................................................[done]
Retrieving package libboost_regex1_54_0-1.54.0-11.2.x86_64 (4/14), 270.2 KiB (  1.1 MiB unpacked)
Retrieving: libboost_regex1_54_0-1.54.0-11.2.x86_64.rpm .............................[done]
Retrieving package opensp-1.5.2-201.2.x86_64         (5/14), 666.6 KiB (  2.3 MiB unpacked)
Retrieving: opensp-1.5.2-201.2.x86_64.rpm ...........................................[done]
Retrieving package iso_ent-2000.11.03-828.1.noarch   (6/14),  22.5 KiB ( 86.3 KiB unpacked)
Retrieving: iso_ent-2000.11.03-828.1.noarch.rpm .....................................[done]
Retrieving package xmlcharent-0.3-427.1.noarch       (7/14),  16.8 KiB ( 93.5 KiB unpacked)
Retrieving: xmlcharent-0.3-427.1.noarch.rpm .........................................[done]
Retrieving package libsource-highlight4-3.1.8-2.3.x86_64 (8/14), 229.8 KiB (847.1 KiB unpacked)
Retrieving: libsource-highlight4-3.1.8-2.3.x86_64.rpm ...............................[done]
Retrieving package openjade-1.3.2-370.2.x86_64       (9/14), 833.8 KiB (  4.1 MiB unpacked)
Retrieving: openjade-1.3.2-370.2.x86_64.rpm .........................................[done]
Retrieving package docbook_4-4.5-140.1.noarch       (10/14), 246.0 KiB (  5.7 MiB unpacked)
Retrieving: docbook_4-4.5-140.1.noarch.rpm ..........................................[done]
Retrieving package source-highlight-3.1.8-2.3.x86_64 (11/14), 226.5 KiB (535.1 KiB unpacked)
Retrieving: source-highlight-3.1.8-2.3.x86_64.rpm ...................................[done]
Retrieving package docbook-xsl-stylesheets-1.78.1+svn9743-5.7.noarch (12/14),   4.7 MiB ( 25.4 MiB unpacked)
Retrieving: docbook-xsl-stylesheets-1.78.1+svn9743-5.7.noarch.rpm .......[done (6.8 MiB/s)]
Retrieving package gtk-doc-1.24-2.2.noarch          (13/14), 187.6 KiB (890.0 KiB unpacked)
Retrieving: gtk-doc-1.24-2.2.noarch.rpm .............................................[done]
Retrieving package gtk-doc-lang-1.24-2.2.noarch      (14/14), 159.2 KiB (  1.8 MiB unpacked)
Retrieving: gtk-doc-lang-1.24-2.2.noarch.rpm .......................................................................................[done]
Checking for file conflicts: .................................................................................................[done]
( 1/14) Installing: sgml-skel-0.6-437.1.noarch ...............................................................................[done]
( 2/14) Installing: xml-group-manager-20140805-4.1.noarch ....................................................................[done]
( 3/14) Installing: ctags-5.8-8.2.x86_64 .....................................................................................[done]
Additional rpm output:
update-alternatives: using /usr/bin/ctags-exuberant to provide /usr/bin/ctags (ctags) in auto mode
( 4/14) Installing: libboost_regex1_54_0-1.54.0-11.2.x86_64 ..................................................................[done]
( 5/14) Installing: opensp-1.5.2-201.2.x86_64 ................................................................................[done]
( 6/14) Installing: iso_ent-2000.11.03-828.1.noarch ..........................................................................[done]
( 7/14) Installing: xmlcharent-0.3-427.1.noarch ..............................................................................[done]
Additional rpm output:
I/O error : Attempt to load network entity http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd
/etc/xml/catalog:2: warning: failed to load external entity "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"
V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"
                                                                          ^
sgml-register-catalog: addition of /usr/share/xmlcharent/xmlcharent.sgml in /etc/sgml/catalog

( 8/14) Installing: libsource-highlight4-3.1.8-2.3.x86_64 ....................................................................[done]
( 9/14) Installing: openjade-1.3.2-370.2.x86_64 ..............................................................................[done]
(10/14) Installing: docbook_4-4.5-140.1.noarch ...............................................................................[done]
(11/14) Installing: source-highlight-3.1.8-2.3.x86_64 ........................................................................[done]
(12/14) Installing: docbook-xsl-stylesheets-1.78.1+svn9743-5.7.noarch ........................................................[done]
(13/14) Installing: gtk-doc-1.24-2.2.noarch ..................................................................................[done]
(14/14) Installing: gtk-doc-lang-1.24-2.2.noarch .............................................................................[done]

This removes the error messages above and creates all the relevant makefiles:

gamma@linux-nakn:/data/software/build/gtkhst> ./autogen.sh --prefix=/data/software/install/gtkhst
[...]
config.status: creating Makefile
config.status: creating gtkhst.pc
config.status: creating gtkhst.spec
config.status: creating scripts/Makefile
config.status: creating python/Makefile
config.status: creating test/Makefile
config.status: creating docs/Makefile
config.status: creating docs/version.xml
config.status: creating docs/images/Makefile
config.status: creating gtk-hst/Makefile
[...]

Now I can run make and make install:

gamma@linux-nakn:/data/software/build/gtkhst> make 
gamma@linux-nakn:/data/software/build/gtkhst> make install

VMEDAQ

Get the software

gamma@linux-nakn:/data/software/build> git clone git://git.code.sf.net/p/daqpp/vmedaq vmedaq
Cloning into 'vmedaq'...
remote: Counting objects: 5645, done.
remote: Compressing objects: 100% (1880/1880), done.
remote: Total 5645 (delta 4041), reused 5310 (delta 3749)
Receiving objects: 100% (5645/5645), 4.82 MiB | 0 bytes/s, done.
Resolving deltas: 100% (4041/4041), done.
Checking connectivity... done.

Since we were using a version of OSU spiced vmedaq, I checked which tags are in the history of vmedaq:

gamma@linux-nakn:/data/software/build/vmedaq> git tag
Root_vmedaq_2_0
from_osu_devel_merge_0
merge_osu_devel_branch_0
v0_4_4-2
v0_5_1-2
v0_5_2-1
v0_5_3
v0_6_0
v0_6_5-1
v0_6_6
v0_6_6-4
v0_6_6-5
v0_7_0-1
v0_7_0-2
v1_0_0
v1_0_0-1
vmedaq

The merge_osu_devel_branch_0 has osu in it, so I assume it is the one nearest to the one that was used before. To be able to use the tag, I create a new branch and make it synchronous to what merge_osu_devel_branch_0 points to. I'll call the new branch osu and let it accumulate all potential changes:

gamma@linux-nakn:/data/software/build/vmedaq> git checkout -b osu merge_osu_devel_branch_0
Switched to a new branch 'osu'

Now, start generating compilation instructions:

gamma@linux-nakn:/data/software/build/vmedaq> ./autogen.sh --prefix=/data/software/install/vmedaq
[...]
checking for XML... no
configure: error: Package requirements (libxml-2.0 >= 2.5.0 ) were not met:

No package 'libxml-2.0' found
[...]

So I go and install libxml2-devel:

gamma@linux-nakn:/data/software/build/vmedaq> sudo zypper install libxml2-devel
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 5 NEW packages are going to be installed:
  libxml2-devel ncurses-devel readline-devel tack xz-devel

5 new packages to install.
Overall download size: 3.7 MiB. Already cached: 0 B. After the operation, additional 25.8 MiB will be used.
Continue? [y/n/? shows all options] (y): 
Retrieving package tack-5.9-53.4.x86_64                                                        (1/5), 150.4 KiB (168.6 KiB unpacked)
Retrieving: tack-5.9-53.4.x86_64.rpm .........................................................................................[done]
Retrieving package xz-devel-5.0.5-3.5.x86_64                                                   (2/5),  39.6 KiB (153.0 KiB unpacked)
Retrieving: xz-devel-5.0.5-3.5.x86_64.rpm ....................................................................................[done]
Retrieving package ncurses-devel-5.9-53.4.x86_64                                               (3/5),   3.4 MiB ( 25.0 MiB unpacked)
Retrieving: ncurses-devel-5.9-53.4.x86_64.rpm ....................................................................[done (7.0 MiB/s)]
Retrieving package readline-devel-6.2-78.1.x86_64                                              (4/5),  57.8 KiB ( 75.6 KiB unpacked)
Retrieving: readline-devel-6.2-78.1.x86_64.rpm ...............................................................................[done]
Retrieving package libxml2-devel-2.9.1-19.1.x86_64                                             (5/5),  89.9 KiB (429.7 KiB unpacked)
Retrieving: libxml2-devel-2.9.1-19.1.x86_64.rpm ..............................................................................[done]
Checking for file conflicts: .................................................................................................[done]
(1/5) Installing: tack-5.9-53.4.x86_64 .......................................................................................[done]
(2/5) Installing: xz-devel-5.0.5-3.5.x86_64 ..................................................................................[done]
(3/5) Installing: ncurses-devel-5.9-53.4.x86_64 ..............................................................................[done]
(4/5) Installing: readline-devel-6.2-78.1.x86_64 .............................................................................[done]
(5/5) Installing: libxml2-devel-2.9.1-19.1.x86_64 ............................................................................[done]

On the next try, we have problems with glade:

gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq
[...]
checking for LIBGLADE... no
configure: error: Package requirements (libglade-2.0) were not met:

No package 'libglade-2.0' found
[...]

So, we install devel portion:

gamma@linux-nakn:/data/software/build/vmedaq> sudo zypper install libglade2-devel
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  libglade2-devel

1 new package to install.
Overall download size: 17.8 KiB. Already cached: 0 B. After the operation, additional 61.5 KiB will be used.
Continue? [y/n/? shows all options] (y): 
Retrieving package libglade2-devel-2.6.4-24.1.x86_64                                           (1/1),  17.8 KiB ( 61.5 KiB unpacked)
Retrieving: libglade2-devel-2.6.4-24.1.x86_64.rpm ............................................................................[done]
Checking for file conflicts: .................................................................................................[done]
(1/1) Installing: libglade2-devel-2.6.4-24.1.x86_64 ..........................................................................[done]

Now, DAQ++ is missing.

gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq
[...]
checking for DAQPP... no
configure: error: Package requirements (DAQ++ >= 1.4.0) were not met:

No package 'DAQ++' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
[...]

Since it was already installed, we only need to tell pkg-config where to look for configuration files. All relevant files are stored under lib64 directory of the installed DAQ++:

gamma@linux-nakn:/data/software/build/vmedaq> ll /data/software/install/daqpp/lib64/pkgconfig/
total 12
-rw-r--r-- 1 gamma users 335 Sep 13 07:28 DAQ++.pc
-rw-r--r-- 1 gamma users 373 Sep 13 07:28 daqpp-soap-client.pc
-rw-r--r-- 1 gamma users 373 Sep 13 07:28 daqpp-soap-server.pc

All we have to do is update PKG_CONFIG_PATH. Since more will be needed, I'll start a script called vmedaqSetup.sh which will take care of enviorment variables. Prior to compilation (and usage), the script will need to be sourced (.) for the program to work.

gamma@linux-nakn:/data/software/build/vmedaq> cat ~/scripts/vmedaqSetup.sh 
export DAQPP=/data/software/install/daqpp
export PKG_CONFIG_PATH=$DAQPP/lib64/pkgconfig:$PKG_CONFIG_PATH
gamma@linux-nakn:/data/software/build/vmedaq> . ~/scripts/vmedaqSetup.sh 
gamma@linux-nakn:/data/software/build/vmedaq> echo $PKG_CONFIG_PATH
/data/software/install/daqpp/lib64/pkgconfig:

Now, the configure runs through, but it does issue some warnings:

gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq
checking for GTKHST... no
[...]
checking for root-config... no
checking for ROOT - version >= 2.25.0... no
*** The root-config script installed by ROOT could not be found
*** If ROOT was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the ROOT_CONFIG environment variable to the
*** full path to root-config.
./configure: line 20819: locate: command not found
*** System does not have a VME interface ***
[...]

For gtkhst we do similar steps as for daqpp:

gamma@linux-nakn:/data/software/build/vmedaq> echo export GTKHST=/data/software/install/gtkhst >> ~/scripts/vmedaqSetup.sh
gamma@linux-nakn:/data/software/build/vmedaq> echo 'export PKG_CONFIG_PATH=$GTKHST/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/scripts/vmedaqSetup.sh
gamma@linux-nakn:/data/software/build/vmedaq> . ~/scripts/vmedaqSetup.sh gamma@linux-nakn:/data/software/build/vmedaq> echo $PKG_CONFIG_PATH/data/software/install/gtkhst/lib64/pkgconfig:/data/software/install/daqpp/lib64/pkgconfig:/data/software/install/daqpp/lib64/pkgconfig:

Dealing with locate - it is part of the mlocate package.

gamma@linux-nakn:/data/software/build/vmedaq> sudo zypper install mlocate
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
  mlocate mlocate-lang

The following recommended package was automatically selected:
    mlocate-lang

2 new packages to install.
Overall download size: 112.1 KiB. Already cached: 0 B. After the operation, additional 389.4 KiB will be used.
Continue? [y/n/? shows all options] (y): 
Retrieving package mlocate-0.26-22.2.x86_64                                                    (1/2),  63.1 KiB (143.4 KiB unpacked)
Retrieving: mlocate-0.26-22.2.x86_64.rpm .....................................................................................[done]
Retrieving package mlocate-lang-0.26-22.2.noarch                                               (2/2),  49.0 KiB (246.0 KiB unpacked)
Retrieving: mlocate-lang-0.26-22.2.noarch.rpm ................................................................................[done]
Checking for file conflicts: .................................................................................................[done]
(1/2) Installing: mlocate-0.26-22.2.x86_64 ...................................................................................[done]
Additional rpm output:
Updating /etc/sysconfig/locate...


(2/2) Installing: mlocate-lang-0.26-22.2.noarch ..............................................................................[done]
gamma@linux-nakn:/data/software/build/vmedaq> sudo updatedb

The last command initialized the search database. The command is run periodically by cron service. Now, locate finds /dev/sis1100 nodes initialized by the driver:

gamma@linux-nakn:/data/software/build/vmedaq> locate /dev/sis1100
/dev/sis1100_00ctrl
/dev/sis1100_00dsp
/dev/sis1100_00ram
/dev/sis1100_00remote
/dev/sis1100_01ctrl
/dev/sis1100_01dsp
/dev/sis1100_01ram
/dev/sis1100_01remote
/dev/sis1100_02ctrl
/dev/sis1100_02dsp
/dev/sis1100_02ram
/dev/sis1100_02remote
/dev/sis1100_03ctrl
/dev/sis1100_03dsp
/dev/sis1100_03ram
/dev/sis1100_03remote

I assumed this would solve the missing VME interface flag, but still:

gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq
[...]
*** System does not have a VME interface ***
[...]

One must go into configure.in to figure out how configuration script determines presence of the interface. And in line 194 of configure.in we have:

gamma@linux-nakn:/data/software/build/vmedaq> grep -n "sis3100" configure.in 
194:vmd_libpath=`locate -e -r '/usr/.*/lib_sis3100.a'`

There are two problems with this instructions. First, we didn't compile lib_sis3100.a yet, just the kernel module. Second, once it is compiled, it will be under /data folder, not under /usr. Tackle problems one by one:

@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> make clean
rm -f *.o
rm -f *.a
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> make
gcc -I.. -g -ansi -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wimplicit -Wreturn-type -Wunused -Wcomment -Wformat -c sis3100_vme_calls.c
gcc -I.. -g -ansi -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wimplicit -Wreturn-type -Wunused -Wcomment -Wformat -c   sharc_utils.c
ar cr lib_sis3100.a sis3100_vme_calls.o sharc_utils.o
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> ll -rt
total 136
-rw-r--r-- 1 gamma users  2198 Jun 23  2008 sharc_utils.h
-rw-r--r-- 1 gamma users  7298 Jan 26  2010 sharc_utils.c
-rw-r--r-- 1 gamma users   863 Jan 26  2010 Makefile
-rw-r--r-- 1 gamma users  8551 Oct 21  2010 sis3100_vme_calls.h
-rw-r--r-- 1 gamma users 25277 Oct 21  2010 sis3100_vme_calls.c
drwxr-xr-x 2 gamma users    23 Sep 12 15:06 header
-rw-r--r-- 1 gamma users 28512 Sep 14 03:40 sis3100_vme_calls.o
-rw-r--r-- 1 gamma users  9944 Sep 14 03:40 sharc_utils.o
-rw-r--r-- 1 gamma users 39806 Sep 14 03:40 lib_sis3100.a
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> 

I cleaned the compiled library and recompiled it, just in case.

For the second part, locate is pretty smart, so we needn't resort ourselves only to libraries under /usr. For example:

gamma@linux-nakn:/data/software/build/vmedaq> locate -e  sis3100.a
/data/software/src/sis1100-2.13-9/sis3100_calls/lib_sis3100.a

So, we just change the line in configure.in and rerun autogen.sh to propagate the change.

gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu '/sis3100/s%'"'"'/usr/.*$%sis3100.a\`%' configure.in
gamma@linux-nakn:/data/software/build/vmedaq> diff configure.in configure.in.bu 
194c194
< vmd_libpath=`locate -e -r sis3100.a`
---
> vmd_libpath=`locate -e -r '/usr/.*/lib_sis3100.a'`

And true to the point, configure now claims:

gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq
[...]
System has SIS1100
[...]

Running make we get the next error:

gamma@linux-nakn:/data/software/build/vmedaq> make
make  all-recursive
make[1]: Entering directory '/data/software/build/vmedaq'
Making all in scripts
make[2]: Entering directory '/data/software/build/vmedaq/scripts'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/data/software/build/vmedaq/scripts'
Making all in doc
make[2]: Entering directory '/data/software/build/vmedaq/doc'
Making all in html
make[3]: Entering directory '/data/software/build/vmedaq/doc/html'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/data/software/build/vmedaq/doc/html'
make[3]: Entering directory '/data/software/build/vmedaq/doc'
cp -a ../doc/vmedaq.xml .
cp: '../doc/vmedaq.xml' and './vmedaq.xml' the same file
Makefile:727: recipe for target 'vmedaq.pdf' failed
make[3]: *** [vmedaq.pdf] Error 1
make[3]: Leaving directory '/data/software/build/vmedaq/doc'
Makefile:459: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/data/software/build/vmedaq/doc'
Makefile:535: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/data/software/build/vmedaq'
Makefile:420: recipe for target 'all' failed
make: *** [all] Error 2

As this post shows, doc seems to be a problematic part of vmedaq. Since it is not strictly needed, it is easy to omit it.

gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu '/doc/{s%^%#%p;s% doc%%; s%#%%;}' Makefile.am
gamma@linux-nakn:/data/software/build/vmedaq> automake
gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq
gamma@linux-nakn:/data/software/build/vmedaq> grep SUBDIRS Makefile
DIST_SUBDIRS = $(SUBDIRS)
#SUBDIRS = scripts doc daq data config gui python bin modules analysis test making_a_module
SUBDIRS = scripts daq data config gui python bin modules analysis test making_a_module

The change propagated through; doc is excluded from the compile list. Compilation stops soon:

gamma@linux-nakn:/data/software/build/vmedaq> make
[...]
ScanRunManager.cc: In member function 'void reset_state::operator()(Observer*)':
ScanRunManager.cc:103:48: error: invalid initialization of non-const reference of type 'DAQpp::RunState&' from an rvalue of type 'const DAQpp::RunState'
             DAQpp::RunState &st = m->GetStatus();
[...]

After some digging it turns out that DAQpp::DAQObject provides a const and non-const access to DAQpp::RunState, the latter named as get_status. So:

gamma@linux-nakn:/data/software/build/vmedaq/daq> sed -i.bu 's%GetStatus%get_status%' ScanRunManager.cc
gamma@linux-nakn:/data/software/build/vmedaq> make
[...]
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: /data/software/src/sis1100-2.13-9/sis3100_calls/lib_sis3100.a(sis3100_vme_calls.o): relocation R_X86_64_PC32 against symbol `s3100_control_write' can not be used when making a shared object; recompile with -fPIC
[...]

There is a catch in sis3100.a compilation, it seems, for the library to be vmedaq compatible.

gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> sed -i.bu '/CFLAGS.*=/s%$% -fPIC%' Makefile
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> make clean
rm -f *.o
rm -f *.a
gamma@linux-nakn:/data/software/src/sis1100-2.13-9/sis3100_calls> make
gcc -I.. -g -ansi -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wimplicit -Wreturn-type -Wunused -Wcomment -Wformat -fPIC -c sis3100_vme_calls.c
gcc -I.. -g -ansi -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wimplicit -Wreturn-type -Wunused -Wcomment -Wformat -fPIC -c   sharc_utils.c
ar cr lib_sis3100.a sis3100_vme_calls.o sharc_utils.o

Next error:

gamma@linux-nakn:/data/software/build/vmedaq> make
MainWindow.cc: In member function 'virtual void MainWindow::user_init()':
MainWindow.cc:266:44: error: passing 'const DAQpp::RunState' as 'this' argument of 'virtual void Observable::addObserver(Observer&)' discards qualifiers [-fpermissive]
        rm->GetStatus().addObserver( state );
                                           ^
MainWindow.cc: In static member function 'static void MainWindow::do_pedestal(MainWindow*)':
MainWindow.cc:940:44: error: passing 'const DAQpp::RunState' as 'this' argument of 'virtual void Observable::addObserver(Observer&)' discards qualifiers [-fpermissive]
         rm->GetStatus().addObserver( mw->state );
                                                ^
MainWindow.cc: In member function 'Rmanager* MainWindow::CreateRunManager()':
MainWindow.cc:1083:40: error: passing 'const DAQpp::RunState' as 'this' argument of 'virtual void Observable::addObserver(Observer&)' discards qualifiers [-fpermissive]
         rm->GetStatus().addObserver( state );
                                            ^
Makefile:554: recipe for target 'MainWindow.o' failed

It is in fact the same as in ScanRunManager.cc:

gamma@linux-nakn:/data/software/build/vmedaq/gui> sed -i.bu '/rm.*GetStatus.*Ob/s%GetStatus%get_status%' MainWindow.cc
gamma@linux-nakn:/data/software/build/vmedaq> make
[...]
WidgetUpdate.cc: In function 'void RunManager_update(const string&, Update&)':
WidgetUpdate.cc:24:43: error: invalid initialization of non-const reference of type 'DAQpp::RunState&' from an rvalue of type 'const DAQpp::RunState'
     DAQpp::RunState &st = runm->GetStatus();
                                           ^
WidgetUpdate.cc:26:19: error: 'class DAQpp::RunState' has no member named 'Ntrig'
     up.ntrig = st.Ntrig();
                        ^
WidgetUpdate.cc:27:21: error: 'class DAQpp::RunState' has no member named 'Nwriten'
     up.nwriten = st.Nwriten();
                             ^
WidgetUpdate.cc: In function 'void Module_update(const string&, Update&)':
WidgetUpdate.cc:47:42: error: invalid initialization of non-const reference of type 'DAQpp::RunState&' from an rvalue of type 'const DAQpp::RunState'
       DAQpp::RunState &st = dpx->GetStatus();
                                            ^
WidgetUpdate.cc:49:19: error: 'class DAQpp::RunState' has no member named 'Ntrig'
      up.ntrig = st.Ntrig();
                         ^
WidgetUpdate.cc:50:21: error: 'class DAQpp::RunState' has no member named 'Nwriten'
      up.nwriten = st.Nwriten();
                              ^
WidgetUpdate.cc: In function 'void get_update(std::vector<Update>&, std::vector<Update>&)':
WidgetUpdate.cc:71:55: error: invalid initialization of non-const reference of type 'DAQpp::RunState&' from an rvalue of type 'const DAQpp::RunState'
      DAQpp::RunState &st   = it->second->GetStatus();
                                                    ^
WidgetUpdate.cc:74:28: error: 'class DAQpp::RunState' has no member named 'Ntrig'
       up.ntrig      = st.Ntrig();
                                ^
WidgetUpdate.cc:75:28: error: 'class DAQpp::RunState' has no member named 'Nwriten'
    up.nwriten    = st.Nwriten();
                               ^
WidgetUpdate.cc:88:56: error: invalid initialization of non-const reference of type 'DAQpp::RunState& from an rvalue of type 'const DAQpp::RunState'
            DAQpp::RunState &st   = itm->second->GetStatus();
                                                           ^
WidgetUpdate.cc:91:28: error: 'class DAQpp::RunState' has no member named 'Ntrig'
          up.ntrig      = st.Ntrig();
                                   ^
WidgetUpdate.cc:92:28: error: 'class DAQpp::RunState' has no member named 'Nwriten'
          up.nwriten    = st.Nwriten();
                                     ^
Makefile:554: recipe for target 'WidgetUpdate.o' failed

It seems Ntrig should be replaced by n_trigger and Nwriten by n_written:

gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu '/st.*Ntrig/s%Ntrig%n_trigger%' gui/WidgetUpdate.cc
gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu '/Nwriten/s%Nwriten%n_written%' gui/WidgetUpdate.cc
gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu '/GetStatus/s%GetStatus%get_status%' gui/WidgetUpdate.cc
gamma@linux-nakn:/data/software/build/vmedaq> make
MsgManager.cc: In member function 'virtual void MsgManager::update(Observable*, Argument*)':
MsgManager.cc:36:78: error: passing 'const DAQpp::RunState' as 'this' argument of 'virtual void Observable::addObserver(Observer&)' discards qualifiers [-fpermissive]
               run_manager->GetStatus().addObserver( theMsgManager()->state );
                                                                            ^
Makefile:554: recipe for target 'MsgManager.o' failed

Nothing new:

gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu 's%GetStatus%get_status%' gui/MsgManager.cc
gamma@linux-nakn:/data/software/build/vmedaq> make
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lpydaqpp

We are missing path to daqpp libraries. Try:

gamma@linux-nakn:/data/software/build/vmedaq/python> sed -i.bu '/pyd/s%-lpyd%@DAQPP_LIBS@ -lpyd%' Makefile.am
gamma@linux-nakn:/data/software/build/vmedaq> automake
gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq
gamma@linux-nakn:/data/software/build/vmedaq> make
[...]
/data/software/install/daqpp/lib64/libpydaqpp.so: undefined reference to `PyLong_FromLong'
[more undefined references follow]

So, a python library of some sort is missing. It seems that configure fails in locating python libraries, for example see config.log:

config.log:PYTHON='/usr/bin/python'
config.log:PYTHON_EXEC_PREFIX='${exec_prefix}'
config.log:PYTHON_INCLUDES='-I/usr/include/python2.7'
config.log:PYTHON_LIBS=''
config.log:PYTHON_PLATFORM='linux2'
config.log:PYTHON_PREFIX='${prefix}'
config.log:PYTHON_VERSION='2.7'

As in previous post it seems that there is a better python locating script located in analysis. So I'll copy it over:

gamma@linux-nakn:/data/software/build/vmedaq> mv scripts/python.m4 scripts/python.m4.old
gamma@linux-nakn:/data/software/build/vmedaq> cp analysis/scripts/python.m4 scripts
gamma@linux-nakn:/data/software/build/vmedaq> aclocal -I scripts
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
gamma@linux-nakn:/data/software/build/vmedaq> autoconf
gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq

Now the configuration script is better at getting libraries:

config.log:PYTHON='/usr/bin/python'
config.log:PYTHON_EXEC_PREFIX='${exec_prefix}'
config.log:PYTHON_INCLUDES='-I/usr/include/python2.7'
config.log:PYTHON_LIBS='-Xlinker -export-dynamic -L/usr/lib -lpython2.7'
config.log:PYTHON_PLATFORM='linux2'
config.log:PYTHON_PREFIX='${prefix}'
config.log:PYTHON_VERSION='2.7'

And we get to the next error:

gamma@linux-nakn:/data/software/build/vmedaq> make
vata.cc: In function 'void Run(Rmanager*)':
vata.cc:89:41: error: 'const class DAQpp::RunState' has no member named 'Ntrig'
             << run_manager->GetStatus().Ntrig()
                                         ^
Makefile:519: recipe for target 'vata.o' failed

This one we know already.

gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu 's%Ntrig%n_trigger%' bin/vata.cc
gamma@linux-nakn:/data/software/build/vmedaq> make
[...]
FBTDCmodule.cc: In function 'long unsigned int FRITZ_SAC(unsigned int)':
FBTDCdef.h:23:56: error: cast from 'unsigned int*' to 'unsigned int' loses precision [-fpermissive]
 #define PIO_SET_EG_MS ((unsigned int*)(PIO_BASE + 0x18))
                                                         ^
FBTDCmodule.cc:28:57: note: in expansion of macro 'PIO_SET_EG_MS'
      (void) VMEmanager::VME()->writeA32D32((unsigned int)PIO_SET_EG_MS, 0x2) ;
                                                          ^
[more similar errors follow]

This one is interesting. Implementations have used unsigned int as the address type for a long time. It seems that new implementation has a deeper address space and unsigned int and unsigned int * are not the same any longer. VME however has a 32 bit address space, nicely covered by an unsigned int. So, all casts to unsigned int * in FBTDCdef.h must be changed to unsigned int:

gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu 's%unsigned int\*%unsigned int%' modules/FBTDCdef.h
gamma@linux-nakn:/data/software/build/vmedaq> make

Next - remove fortran from list of subdirectories in analysis:

gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu '/fortran/{s%^%#%p; s%#%%; s%fortran %%;}' analysis/Makefile.am
gamma@linux-nakn:/data/software/build/vmedaq> automake
gamma@linux-nakn:/data/software/build/vmedaq> ./configure --prefix=/data/software/install/vmedaq
gamma@linux-nakn:/data/software/build/vmedaq> grep SUBDIRS analysis/Makefile
DIST_SUBDIRS = $(SUBDIRS)
#SUBDIRS=fortran python analysis scripts spydata
SUBDIRS = python analysis scripts spydata
gamma@linux-nakn:/data/software/build/vmedaq> make

This compiles. Before I go on, I will update the state of the software and record all changes. Git helps. First, let's try read/write access to the sourceforge repository:

#remove the old origin
gamma@linux-nakn:/data/software/build/vmedaq> git remote rm origin
#the access was given by carlos, ages ago
gamma@linux-nakn:/data/software/build/vmedaq> git remote add origin ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
#I remembered the password!
gamma@linux-nakn:/data/software/build/vmedaq> git remote show origin
Password: 
* remote origin
  Fetch URL: ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
  Push  URL: ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
  HEAD branch: master
  Remote branches:
    master      new (next fetch will store in remotes/origin)
    osu_version new (next fetch will store in remotes/origin)
    vmedaq      new (next fetch will store in remotes/origin)
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
#more commands from sourceforge
gamma@linux-nakn:/data/software/build/vmedaq> git config branch.master.remote origin
gamma@linux-nakn:/data/software/build/vmedaq> git config branch.master.merge refs/heads/master
#to get other branches
gamma@linux-nakn:/data/software/build/vmedaq> git fetch
Password: 
From ssh://git.code.sf.net/p/daqpp/vmedaq
 * [new branch]      master     -> origin/master
 * [new branch]      osu_version -> origin/osu_version
 * [new branch]      vmedaq     -> origin/vmedaq
gamma@linux-nakn:/data/software/build/vmedaq> git remote show origin
Password: 
* remote origin
  Fetch URL: ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
  Push  URL: ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
  HEAD branch: master
  Remote branches:
    master      tracked
    osu_version tracked
    vmedaq      tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

After fetch remote branches changed from new to tracked. The problem is that I started off from merge_osu_devel_branch_0 tag of the master branch and renamed it to local osu branch:

gamma@linux-nakn:/data/software/build/vmedaq> git branch
  master
* osu

Now I see that there is a osu_version branch all along. So idealy, I would want to merge the changes between current osu and merge_osu_devel_branch_0 to branch osu_version and store it all remotely to the same branch. Tough.

First, let's commit all the local changes, so at least the local osu branch will be working:

gamma@linux-nakn:/data/software/build/vmedaq> git add Makefile.am
gamma@linux-nakn:/data/software/build/vmedaq> git add configure.in
gamma@linux-nakn:/data/software/build/vmedaq> git add bin/vata.cc
gamma@linux-nakn:/data/software/build/vmedaq> git add analysis/Makefile.am
gamma@linux-nakn:/data/software/build/vmedaq> git add scripts/python.m4
gamma@linux-nakn:/data/software/build/vmedaq> git add python/Makefile.am
gamma@linux-nakn:/data/software/build/vmedaq> git add modules/FBTDCdef.h
gamma@linux-nakn:/data/software/build/vmedaq> git add daq/ScanRunManager.cc 
gamma@linux-nakn:/data/software/build/vmedaq> git add gui/MainWindow.cc
gamma@linux-nakn:/data/software/build/vmedaq> git add gui/MsgManager.cc
gamma@linux-nakn:/data/software/build/vmedaq> git add gui/WidgetUpdate.cc
gamma@linux-nakn:/data/software/build/vmedaq> git status | head -n 30       
On branch osu
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

          modified:   Makefile.am
          modified:   analysis/Makefile.am
          modified:   bin/vata.cc
          modified:   configure.in
          modified:   daq/ScanRunManager.cc
          modified:   gui/MainWindow.cc
          modified:   gui/MsgManager.cc
          modified:   gui/WidgetUpdate.cc
          modified:   modules/FBTDCdef.h
          modified:   python/Makefile.am
          modified:   scripts/python.m4
[...]
gamma@linux-nakn:/data/software/build/vmedaq> git commit -m "Compiled version"
[osu e6c2a22] Compiled version
Committer: gamma <gamma@linux-nakn.asc.ohio-state.edu>
[...]
#switch to the osu_version branch
#remove some generated files from versioning system
gamma@linux-nakn:/data/software/build/vmedaq> git rm analysis/config_analysis.h.in
rm 'analysis/config_analysis.h.in'
gamma@linux-nakn:/data/software/build/vmedaq> git rm analysis/scripts/ltmain.sh 
rm 'analysis/scripts/ltmain.sh'
gamma@linux-nakn:/data/software/build/vmedaq> git rm scripts/ltmain.sh 
gamma@linux-nakn:/data/software/build/vmedaq> git commit -m "Untracking generated files"
[osu e04fd22] Untracking generated files
Committer: gamma <gamma@linux-nakn.asc.ohio-state.edu>
[...]
gamma@linux-nakn:/data/software/build/vmedaq> git checkout osu_version
Branch osu_version set up to track remote branch osu_version from origin.
Switched to a new branch 'osu_version'
gamma@linux-nakn:/data/software/build/vmedaq> git remote show origin
Password: 
* remote origin
  Fetch URL: ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
  Push  URL: ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
  HEAD branch: master
  Remote branches:
    master      tracked
    osu_version tracked
    vmedaq      tracked
  Local branches configured for 'git pull':
    master      merges with remote master
    osu_version merges with remote osu_version
  Local refs configured for 'git push':
    master      pushes to master      (up to date)
    osu_version pushes to osu_version (up to date)

Clearly, osu_version is now both local and remote. Any changes are easily pushable to the server. Only two of the changes above were required for compilation, namely change in configure.in to find lib_sis3100.a and addition of daqpp libraries in python/Makefile.am, all documented above. At the end I do a commit and push the changes to the server.

gamma@linux-nakn:/data/software/build/vmedaq> git rm -f analysis/scripts/ltmain.sh scripts/ltmain.sh
gamma@linux-nakn:/data/software/build/vmedaq> git add -u
gamma@linux-nakn:/data/software/build/vmedaq> git status | head -n 30
On branch osu_version
Your branch is up-to-date with 'origin/osu_version'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

          deleted:    analysis/scripts/ltmain.sh
          modified:   configure.in
          modified:   python/Makefile.am
          deleted:    scripts/ltmain.sh
Untracked files:
  (use "git add <file>..." to include in what will be committed)
[...]
gamma@linux-nakn:/data/software/build/vmedaq> git commit -m "Compilable version at openSuse"
[osu_version 3780a70] Compilable version at openSuse
Committer: gamma <gamma@linux-nakn.asc.ohio-state.edu>
#make sure people know who did the changes
gamma@linux-nakn:/data/software/build/vmedaq> git config --global user.name "Andrej Studen"
gamma@linux-nakn:/data/software/build/vmedaq> git config --global user.email andrej.studen@ijs.si
#update server
gamma@linux-nakn:/data/software/build/vmedaq> git push
warning: push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Password: 
Counting objects: 8, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 681 bytes | 0 bytes/s, done.
Total 8 (delta 7), reused 0 (delta 0)
remote: <Repository /git/p/daqpp/vmedaq.git> refresh queued.
To ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
  ac46653..3780a70  osu_version -> osu_version
#to avoid the verbose message
gamma@linux-nakn:/data/software/build/vmedaq> git config --global push.default simple

To test, let us start afresh:

gamma@linux-nakn:/data/software/build> git clone git://git.code.sf.net/p/daqpp/vmedaq vmedaqTest
Cloning into 'vmedaqTest'...
remote: Counting objects: 5652, done.
remote: Compressing objects: 100% (1887/1887), done.
remote: Total 5652 (delta 4047), reused 5309 (delta 3749)
Receiving objects: 100% (5652/5652), 4.82 MiB | 0 bytes/s, done.
Resolving deltas: 100% (4047/4047), done.
Checking connectivity... done.
gamma@linux-nakn:/data/software/build> cd vmedaqTest/
#switch to osu_version
gamma@linux-nakn:/data/software/build/vmedaqTest> git checkout osu_version
Branch osu_version set up to track remote branch osu_version from origin.
Switched to a new branch 'osu_version'
gamma@linux-nakn:/data/software/build/vmedaqTest> . ~/scripts/vmedaqSetup.sh
@linux-nakn:/data/software/build/vmedaqTest> ./autogen.sh --prefix=/data/software/install/vmedaq
[a lot of output]
gamma@linux-nakn:/data/software/build/vmedaqTest> make
[a lot of output]
gamma@linux-nakn:/data/software/build/vmedaqTest> make install
[...]
../scripts/py-compile: Missing argument to --destdir.
Makefile:526: recipe for target 'install-pyvmedaqPYTHON' failed

Investigating further. I understand the catch - $DESTDIR infrastructure is intented to have a staged build of the software to a non standard location intented for zipping and distributing as a binary package. $DESTDIR is prepended to the prefix, allowing the end user to unzip it and have all the relevant paths already taken care of. Where it comes to python, the catch is that in binary files you want to separate the final path and the fake part, so that binaries will work in the uncompressed state. To do that, you separate the actual path to a destdir and basedir path and submit them independently to py_compile. However, the py_compile script has a feature that it complains if $DESTDIR is empty. A simple workaround is that you do:

gamma@linux-nakn:/data/software/build/vmedaq> make install DESTDIR=/

which actually converts all your paths to double slashed ones, but seems to be OK.

Running vmedaq crashes, of course:

#get the configuration files (one time affair)
f9pc22:~/software/build/vmedaq> scp /afs/f9.ijs.si/data/lab/studen/data/20160731/coinc/sis1100-pet-sibgo-osu-v1-today.xml gamma@`tail -n 1 ~/scripts/osu_ip.sh`:~/vmedaq_config
#this is to be done every time
gamma@linux-nakn:~> . ~/scripts/vmedaqSetup.sh 
gamma@linux-nakn:~> vmedaq vmedaq_config/sis1100-pet-sibgo-osu-v1-today.xml
gamma@linux-nakn:~> vmedaq vmedaq_config/sis1100-pet-sibgo-osu-v1-today.xml 
Initializing Python
Starting vmedaq
Traceback (most recent call last):
  File "<string>", line 3, in <module>
ImportError: No module named daqpp
Reseting DAQ...
VMEmanager::set_factory: could not find create_sis_manager in libSISmanager.so
          'create_sis_manager': /data/software/install/vmedaq/lib64/vmedaq/libSISmanager.so: undefined symbol: create_sis_manager
Loading libFPGACaenV1495.so
Loading libFPGACaenV1495.so
Segmentation fault

At least the part about undefined symbol is clear. In the daq/SISmanager.cc there is a conditional flag:

#if defined(HAS_VME) && defined(HAS_SIS1100)

In config.log, HAS_SIS1100 is set, but no sign of HAS_VME:

gamma@linux-nakn:/data/software/build/vmedaq> grep 'SIS1100\|HAS_VME' /data/software/build/vmedaq/config.log
| #define HAS_SIS1100 1
| #define HAS_SIS1100 1
SIS1100_FALSE='#'
SIS1100_TRUE=''
#define HAS_SIS1100 1

Looking into configure.in we see that HAS_VME is only defined for nivxi interface:

gamma@linux-nakn:/data/software/build/vmedaq> grep -B 10 -A 10 HAS_VME configure.in
[...]
if test -d /usr/local/nivxi; then
   VME_CFLAGS="${VME_CFLAGS} -DNIVXI -I/usr/local/nivxi/include"
   VME_LIBS="${VME_LIBS} -L/usr/local/nivxi/lib -lnivxi"



   AC_DEFINE([HAS_NIVXI],1,'NI VXI system for VME')
   AC_DEFINE([HAS_VME],1,'VME present')
   has_nivxi=true
   echo "System has NI-VXI"
fi
[...]

Now we want to do the same for sis1100. So I append the line:

gamma@linux-nakn:/data/software/build/vmedaq> sed  -i.bu '/has_sis1100=t/a\ \tAC_DEFINE([HAS_VME],1,'"'"'VME present'"'"')' configure.in
gamma@linux-nakn:/data/software/build/vmedaq> grep -B 10 -A 10 HAS_VME configure.in
[...]
vmd_libpath=`locate -e -r lib_sis3100.a`


if test -n "$vmd_libpath"; then
        vmd_libname=`basename $vmd_libpath`
    vmd_libdir=`dirname $vmd_libpath`
        vmd_liblink=`echo ${vmd_libname#lib} | cut -f 1 -d '.'`
        VME_CFLAGS="-I$vmd_libdir -I$vmd_libdir/.."
        VME_LIBS="-L$vmd_libdir -l$vmd_liblink"
        AC_DEFINE([HAS_SIS1100],1,'Sis1100 VME system')
        if echo $vmd_libname | grep -q  'gpp' > /dev/null; then
                if test -e /dev/sis1100; then
                AC_DEFINE([SYS_DEVICE],"/dev/sis1100",'SIS driver')
            else 
        AC_DEFINE([SYS_DEVICE],"/tmp/sis1100",'SIS driver')
        fi
        else
                if test -e /dev/sis1100_00remote; then
                AC_DEFINE([SIS_DEVICE],"/dev/sis1100_00remote",'SIS driver')
        else 
        AC_DEFINE([SIS_DEVICE],"/tmp/sis1100_00remote",'SIS driver')
        fi
        fi

        has_sis1100=true
    AC_DEFINE([HAS_VME],1,'VME present')
    echo "System has SIS1100"
fi
[...]
gamma@linux-nakn:/data/software/build/vmedaq> ./autogen.sh --prefix=/data/software/install/vmedaq
gamma@linux-nakn:/data/software/build/vmedaq> grep 'SIS1100\|HAS_VME' /data/software/build/vmedaq/config.log 
| #define HAS_SIS1100 1
| #define HAS_VME 1
| #define HAS_SIS1100 1
| #define HAS_VME 1
SIS1100_FALSE='#'
SIS1100_TRUE=''
#define HAS_SIS1100 1
#define HAS_VME 1

Now both variables are set. Now, SIS1100 gets loaded, but program still throws a Segmentation violation. I suspect the paths are not right, so I am adding <paths> flag to configuration file. While doing that I noticed that FPGACaenV1495.glade was not being copied, so I updated gui/glade/Makefile.am first:

gamma@linux-nakn:/data/software/build/vmedaq> sed -i.bu '/TDC/s%$% FPGACaenV1495.glade%' gui/glade/Makefile.am
gamma@linux-nakn:/data/software/build/vmedaq> cat gui/glade/Makefile.am
gladedir = $(datadir)/vmedaq/glade
glade_DATA = vmedaq.glade monitor.png  no_monitor.png status_lock.png  status_unlocked.png \
TDCCaen488.glade FPGACaenV1495.glade
EXTRA_DIST = $(glade_DATA)
gamma@linux-nakn:/data/software/build/vmedaq> ./autogen.sh --prefix=/data/software/install/vmedaq
gamma@linux-nakn:/data/software/build/vmedaq> make install DESTDIR=/

That solves the glade problem, but not the segmentation fault. It had to do with initializing a string out of getenv() return, which can also be a NULL pointer if the variable is unset. To avoid those errors, config/PathConfig.cc was slightly modified:

diff --git a/config/PathConfig.cc b/config/PathConfig.cc
index d88e8e5..5bbf0c0 100644
--- a/config/PathConfig.cc
+++ b/config/PathConfig.cc
@@ -153,15 +153,15 @@ void PathConfig::cpy(const PathConfig &s)

  std::string PathConfig::find_library(const std::string &lib)
  {
-    std::string xtra;
     ConfigParser *cfg = ConfigParser::theConfig();
     PathConfig *cpath = dynamic_cast<PathConfig *>(cfg->get_handler("paths"));
     SearchPath libpaths(cpath->get_path(libpath));
-    xtra = getenv("LD_LIBRARY_PATH");
+    char *ld_path=getenv("LD_LIBRARY_PATH");   
+    if (ld_path)
+        libpaths.add_path(std::string(ld_path));
+
     libpaths.add_path(LIB_DIR);
-    if (!xtra.empty())
-        libpaths.add_path(xtra);
-    
+ 
     return libpaths.find_file(lib);
 }

A git commit was made to store the recent changes and update the software server:

gamma@linux-nakn:/data/software/build/vmedaq> git add configure.in gui/glade/Makefile.am config/PathConfig.cc
gamma@linux-nakn:/data/software/build/vmedaq> git commit -m "Changes to set HAS_VME, copy FPGACaenV1495.glade to install directory and avoid segmentation violation on empty LD_LIBRARY_PATH env variable"
gamma@linux-nakn:/data/software/build/vmedaq> git push
To ssh://astuden@git.code.sf.net/p/daqpp/vmedaq
   3780a70..d5e4811  osu_version -> osu_version

New errors are permission related:

gamma@linux-nakn:~/vmedaq_config> gdb vmedaq
(gdb) r sis1100-pet-sibgo-osu-v1-today.xml 
[...]
Could not initialize VME
SISmanager::SISmanager - : Permission denied
[...]
 Serial port COM1 open error! 
 Troubles intializing serial port
MsgManager: removing module 10
terminate called after throwing an instance of 'SerialComm_Err'

Get them sorted out:

gamma@linux-nakn:~/vmedaq_config> sudo chmod 666 /dev/sis1100_00remote
gamma@linux-nakn:~/vmedaq_config> ll /dev/sis1100_00remote
crw-rw-rw- 1 root root 248, 0 Sep 12 16:19 /dev/sis1100_00remote
# terminal is in group dialout
gamma@linux-nakn:~/vmedaq_config> ll /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 Sep 10 13:25 /dev/ttyS0
# add gamma to dialout group (as a secondary group)
gamma@linux-nakn:~/vmedaq_config> sudo usermod -a -G dialout gamma
#this wasn't enough so I went with the hard approach
gamma@linux-nakn:~/vmedaq_config> sudo chmod 666 /dev/ttyS0

Now, vmedaq works.

Addendum

After a trial with HK and NC, I found out that vmedaq throws some very unsawory messages, among them:

MyLogger[libglade]: Could not load support for `gnome': libgnome.so: deljene predmetne datoteke ni mogoče odpreti: Datoteka ali imenik s tem imenom ne obstaja

Which, translated to english, means that libgnome.so is missing. There is a remedy for that:

gamma@linux-nakn:~> sudo zypper install libgnome
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 15 NEW packages are going to be installed:
  gnome-vfs2 gnome-vfs2-lang gstreamer-0_10-plugin-gnomevfs libbonobo
  libbonobo-lang libgnome libgnome-lang libIDL-2-0 libwebkitgtk-3_0-0
  libwebkitgtk3-lang libyelp0 orbit2 yelp yelp-lang yelp-xsl

The following 6 recommended packages were automatically selected:
   gnome-vfs2-lang libbonobo-lang libgnome-lang libwebkitgtk3-lang yelp yelp-lang

15 new packages to install.
Overall download size: 11,7 MiB. Already cached: 0 B. After the operation,
additional 51,2 MiB will be used.
Continue? [y/n/? shows all options] (y): 

After installation, still no libgnome.so. A source suggests to add libgnomeui package. So

gamma@linux-nakn:~> sudo zypper install libgnomeui
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 7 NEW packages are going to be installed:
  libart_lgpl_2-2 libbonoboui libbonoboui-lang libgnomecanvas-2-0
  libgnomecanvas-lang libgnomeui libgnomeui-lang

The following 3 recommended packages were automatically selected:
   libbonoboui-lang libgnomecanvas-lang libgnomeui-lang

7 new packages to install.
Overall download size: 1,2 MiB. Already cached: 0 B. After the operation,
additional 5,5 MiB will be used.
Continue? [y/n/? shows all options] (y): 

This seems to do the trick:

gamma@linux-nakn:~> find /usr -name 'libgnome.so'
/usr/lib64/libglade/2.0/libgnome.so

More worrisome is the message below. This makes it dubious that VME is actually accessed.

### Loading SIS1100 module...
*** There is no routine for the VME factory ***
VMEmanager::set_factory: could not find <unknown> in 
    '<unknown>': vmedaq: undefined symbol: <unknown>

links

social