Jarek Hartman
Saturday, December 10, 2016

My fight with OpenSS7

Introduction

One day I decided it would be fun to play with a real SS7 stack. The only one I could find was OpenSS7.

Day 1 – 30/04/2009

Compiling from source failed — it broke on Fedora Core 10:

In file included from ../../openss7-0.9.2.G/streams/src/kernel/specfs.c:124:
../../openss7-0.9.2.G/streams/src/kernel/strspecfs.c: In function ‘specfs_init_cache’:
../../openss7-0.9.2.G/streams/src/kernel/strspecfs.c:1406: warning: passing argument 5 of ‘kmem_cache_create’ from incompatible pointer type
../../openss7-0.9.2.G/streams/src/kernel/strspecfs.c:1406: error: too many arguments to function ‘kmem_cache_create’

Google didn’t help…

Next attempt: precompiled packages. I installed the repo for yum:

[jhartman@jhartman yum.repos.d]$ pwd
/etc/yum.repos.d
[jhartman@jhartman yum.repos.d]$ cat openss7.repo 
[openss7]
enabled = 1
name = OpenSS7 Repository
baseurl = http://www.openss7.org/repos/rpms/fedora/9/i686
gpgcheck = 1
gpgkey = <a title="Use CTRL + click or middle-click to open in a new tab">http://www.openss7.org/pubkey.asc</a>

…and hit another failure:

[jhartman@jhartman yum.repos.d]$ sudo yum install openss7
[sudo] password for jhartman: 
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package openss7.noarch 0:0.9.2.G-1 set to be updated
--> Processing Dependency: strxnet >= 0.9.2.12-1 for package: openss7
--> Processing Dependency: strinet >= 0.9.2.7-1 for package: openss7
--> Processing Dependency: streams >= 0.9.2.4-1 for package: openss7
--> Processing Dependency: strnsl >= 0.9.2.4-1 for package: openss7
--> Processing Dependency: strsock >= 0.9.2.4-1 for package: openss7
--> Processing Dependency: strcompat >= 0.9.2.7-1 for package: openss7
--> Processing Dependency: strxns >= 0.9.2.7-1 for package: openss7
--> Running transaction check
---> Package strsock.noarch 0:0.9.2.4-1 set to be updated
--> Processing Dependency: strsock-lib = 0.9.2.4-1 for package: strsock
---> Package strcompat.noarch 0:0.9.2.7-1 set to be updated
--> Processing Dependency: strcompat-lib = 0.9.2.7-1 for package: strcompat
---> Package strxnet.noarch 0:0.9.2.12-1 set to be updated
--> Processing Dependency: strxnet-lib = 0.9.2.12-1 for package: strxnet
---> Package strnsl.noarch 0:0.9.2.4-1 set to be updated
--> Processing Dependency: strnsl-lib = 0.9.2.4-1 for package: strnsl
---> Package strxns.noarch 0:0.9.2.7-1 set to be updated
--> Processing Dependency: strxns-lib = 0.9.2.7-1 for package: strxns
---> Package strinet.noarch 0:0.9.2.7-1 set to be updated
--> Processing Dependency: strinet-lib = 0.9.2.7-1 for package: strinet
---> Package streams.noarch 0:0.9.2.4-1 set to be updated
--> Processing Dependency: streams-lib = 0.9.2.4-1 for package: streams
--> Running transaction check
---> Package strcompat-lib.i686 0:0.9.2.7-1.fc9 set to be updated
---> Package strsock-lib.i686 0:0.9.2.4-1.fc9 set to be updated
---> Package strnsl-lib.i686 0:0.9.2.4-1.fc9 set to be updated
---> Package streams-lib.i686 0:0.9.2.4-1.fc9 set to be updated
--> Processing Dependency: librpmio-4.4.so for package: streams-lib
--> Processing Dependency: librpmdb-4.4.so for package: streams-lib
--> Processing Dependency: librpm-4.4.so for package: streams-lib
---> Package strxnet-lib.i686 0:0.9.2.12-1.fc9 set to be updated
---> Package strinet-lib.i686 0:0.9.2.7-1.fc9 set to be updated
---> Package strxns-lib.i686 0:0.9.2.7-1.fc9 set to be updated
--> Finished Dependency Resolution
streams-lib-0.9.2.4-1.fc9.i686 from openss7 has depsolving problems
  --> Missing Dependency: librpm-4.4.so is needed by package streams-lib-0.9.2.4-1.fc9.i686 (openss7)
streams-lib-0.9.2.4-1.fc9.i686 from openss7 has depsolving problems
  --> Missing Dependency: librpmio-4.4.so is needed by package streams-lib-0.9.2.4-1.fc9.i686 (openss7)
streams-lib-0.9.2.4-1.fc9.i686 from openss7 has depsolving problems
  --> Missing Dependency: librpmdb-4.4.so is needed by package streams-lib-0.9.2.4-1.fc9.i686 (openss7)
Error: Missing Dependency: librpmdb-4.4.so is needed by package streams-lib-0.9.2.4-1.fc9.i686 (openss7)
Error: Missing Dependency: librpmio-4.4.so is needed by package streams-lib-0.9.2.4-1.fc9.i686 (openss7)
Error: Missing Dependency: librpm-4.4.so is needed by package streams-lib-0.9.2.4-1.fc9.i686 (openss7)

The problem seemed to be the RPM version on Fedora Core 10 (4.6), while OpenSS7 binaries target FC9.

Next idea: compile RPM 4.4 from source and drop the missing libraries into /usr/lib manually…

Nope. Bad idea. Small hint: don’t try to downgrade RPM. I spent two hours trying to install rpm without rpm (and without yum).

Finally I gave up. I installed Fedora Core 9 in VMware and… still had problems:

[jhartman@localhost ~]$ sudo yum --nogpgcheck install openss7-devel
[sudo] password for jhartman: 
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package openss7-devel.i686 0:0.9.2.G-1.fc9 set to be updated
--> Processing Dependency: strnsl-devel >= 0.9.2.4-1 for package: openss7-devel
--> Processing Dependency: strcompat-devel >= 0.9.2.7-1 for package: openss7-devel
--> Processing Dependency: openss7 = 0.9.2.G-1 for package: openss7-devel
--> Processing Dependency: strxns-devel >= 0.9.2.7-1 for package: openss7-devel
--> Processing Dependency: strxnet-devel >= 0.9.2.12-1 for package: openss7-devel
--> Processing Dependency: strsock-devel >= 0.9.2.4-1 for package: openss7-devel
--> Processing Dependency: strinet-devel >= 0.9.2.7-1 for package: openss7-devel
--> Processing Dependency: STREAMS-devel for package: openss7-devel
--> Running transaction check
.
.
Transaction Check Error:
  file /usr/share/man/man2/fdetach.2.gz from install of streams-0.9.2.4-1.noarch conflicts with file from package man-pages-2.78-2.fc9.noarch
  file /usr/share/man/man2/getmsg.2.gz from install of streams-0.9.2.4-1.noarch conflicts with file from package man-pages-2.78-2.fc9.noarch
  file /usr/share/man/man2/isastream.2.gz from install of streams-0.9.2.4-1.noarch conflicts with file from package man-pages-2.78-2.fc9.noarch
  file /usr/share/man/man2/putmsg.2.gz from install of streams-0.9.2.4-1.noarch conflicts with file from package man-pages-2.78-2.fc9.noarch

That’s all for today 🙁
To be continued… I hope.