.. title: How I "Adopted" Seagull
.. slug: how-i-adopted-seagull
.. date: 2017-03-15 07:01:17 UTC
.. updated: 2017-03-15 07:01:17 UTC
.. tags: open source
.. category:
.. link:
.. description:
.. type: text
I don't work with Seagull anymore. I don't know how to develop in C++. I have
absolutely no interest in maintaining this open source project. Yet when you
Google *seagull linux* or *seagull protocol* my GitHub repo for the project
shows up on the first page. How did I end up in this situation?
.. TEASER_END: Read more
"`Seagull `_ is a free, Open Source (GPL)
multi-protocol traffic generator test tool. Primarily aimed at IMS (3GPP,
TISPAN, CableLabs) protocols (and thus being the perfect complement to SIPp
for IMS testing), Seagull is a powerful traffic generator for functional, load,
endurance, stress and performance/benchmark tests for almost any kind of
protocol." That is a quote from Seagull's website.
At one point in my career I needed
to build and run Seagull for my day job. We were using really old RPMs for
really old CentOS versions because it could not be built on modern Linux
distros like Ubuntu 14.04 or CentOS 7. I couldn't help but improve this
situation.
I took on the project in my spare time to try to manually build Seagull on
Ubuntu 14.04. Remember I don't know how to program in C++. (I did learn a
little C and C++ in my undergrad days but they're long gone.) I am even to this
day fairly uncomfortable in the land of building software written in C++. I
mean I can do it when I have to but let's just say I'm glad I don't have to
that often.
It took a handful of days of repeating the seemingly infinite cycle of build,
Google build error, try to "fix" the error, and build again before I had enough
changes in a patch file to successfully build and (gasp!) run it. Not content
with just that I went ahead and built and ran it on CentOS 7 and openSUSE
13.something.
Next step was to share my success with everyone and I threw it up on
`GitHub `_ where it continues to live. I
provided as much
`background information `_
as I could about how I reached that point in case someone who knows better than
me can help take it many steps further. I also added steps on how to build for
various Linux distros.
I am no longer employed by the organization where I needed to use Seagull. I
don't use it in my current day job either and there are no chances in the
foreseeable future that I'll need to. Yet I am now responsible for maintaining
this project. People open issues or submit pull requests (PRs). I'm glad to see
there's interest and contributions but I don't have the time or interest in
being the benevolent dictator anymore.
I added a `contributing `_
file to make my position absolutely clear to people who end up on my repo.
Unfortunately, no one has stepped up to become a collaborator yet.
What's next? I was inspired by a `PR `_
submitted by `atesgoral `_. He wanted to create
a Docker image which would provide a ready to run Seagull install. This is a
great idea and I thank him for it. My inspiration was to take this idea further
and provide both Docker images and OS packages (like rpm, deb, etc.).
I have not done this work yet and if someone wants to do it instead of me that
would be great as well. I plan to create an Ansible workflow to spin up a
`Digital Ocean `_ droplet running say Ubuntu,
build packages for various OSes in Docker containers, extract those debs &
rpms, and finally build Docker images that use those debs & rpms to provide a
usable Seagull install. I need to figure out a good way to host those packages
for others to use. This is where Docker Hub is such a great idea because people
like me don't have to think about hosting artifacts. It even might be
interesting to see if I could also build `Flatpak `_ or
Ubuntu's `Snap `_ packages at some point.
Although I'm not interested in being the long term maintainer of Seagull I'm
taking this opportunity to use it as an excuse to learn other things. Maybe
it's a good thing that kismet plopped this project in my lap.