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>