Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
science
ns3-netanim
ns3.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ns3.spec of Package ns3-netanim
# # spec file for package ns3 # # Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define _version %(echo %{version} | sed 's/\\./_/g') %bcond_with openflow %bcond_with openmpi Name: ns3 Version: 3.36.1 Release: 0 Summary: Discrete-event network simulator License: GPL-2.0-only Group: Productivity/Scientific/Other Url: https://www.nsnam.org/ Source0: https://www.nsnam.org/releases/ns-allinone-%{version}.tar.bz2 # PATCH-FIX-OPENSUSE -- Set helper binary path to libexecdir Patch0: 0001-Use-libexecdir-for-path-to-helper-binaries.patch # PATCH-FIX-UPSTREAM Patch1: 0001-Fix-CMAKE_LINUX_DISTRO-quoting.patch # PATCH-FIX-UPSTREAM Patch2: https://gitlab.com/nsnam/ns-3-dev/-/commit/c9cf798e5f5cc9eea94cafa3bb720108662da18b.patch#/fix_32bit_build.patch BuildRequires: chrpath BuildRequires: cmake BuildRequires: fdupes BuildRequires: gcc-c++ >= 8.0 BuildRequires: libboost_headers-devel BuildRequires: memory-constraints %if %{with openmpi} BuildRequires: openmpi-devel %endif BuildRequires: pkg-config BuildRequires: python3-PyBindGen >= 0.22.1 BuildRequires: python3-pygraphviz BuildRequires: pkgconfig(gsl) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(python3) BuildRequires: pkgconfig(sqlite3) %if %{with openflow} BuildRequires: libboost_filesystem-devel BuildRequires: libboost_signals-devel BuildRequires: libboost_system-devel BuildRequires: openflow-devel %endif %description A discrete-event network simulator for Internet systems, targeted primarily for research and educational use. %package helpers Summary: Discrete-event network simulator - network helpers Group: Productivity/Scientific/Other %description helpers A discrete-event network simulator for Internet systems, targeted primarily for research and educational use. This package contains helper binaries with elevated privileges to setup virtual network interfaces. %package -n libns%{_version} Summary: Discrete-event network simulator Group: Productivity/Scientific/Other Recommends: %{name}-helpers = %{version} %description -n libns%{_version} A discrete-event network simulator for Internet systems, targeted primarily for research and educational use. %package -n libns%{_version}-visualizer Summary: Discrete-event network simulator Group: Productivity/Scientific/Other Requires: python-ns3 = %{version} Requires: typelib(GooCanvas) Requires: python3-pygraphviz %description -n libns%{_version}-visualizer A discrete-event network simulator for Internet systems, targeted primarily for research and educational use. %package -n python-ns3 Summary: Python bindings for NS3 Group: Productivity/Scientific/Other %description -n python-ns3 Python bindings for NS3. %package devel Summary: Files needed to create NS3 simulations Group: Productivity/Scientific/Other Requires: libns%{_version} Requires: libns%{_version}-visualizer %description devel Files needed to create NS3 simulations. %prep %setup -q -n ns-allinone-%{version} cd ns-%{version} %autopatch -p1 %build CFLAGS="${CFLAGS:-%{optflags}}" CXXFLAGS="${CXXFLAGS:-%{optflags}}" %ifarch %ix86 # Don't use x87 80-bit temporaries. To start with it breaks the test-suite. # I could try using FLT_EVAL_METHOD, but that's C++11 CFLAGS="${CFLAGS} -ffloat-store" CXXFLAGS="${CXXFLAGS} -ffloat-store" %endif cd ns-%{version} export CFLAGS export CXXFLAGS %if 0%{with openmpi} # TODO - setup MPI environment %error %endif %limit_build -m 1000 %cmake \ -DCMAKE_BUILD_TYPE=default \ -DNS3_MPI:BOOL=%{?with_openmpi:ON}%{!?with_openmpi:OFF} \ -DNS3_TESTS:BOOL=ON \ -DNS3_VISUALIZER:BOOL=ON \ -DNS3_PYTHON_BINDINGS:BOOL=ON \ %{nil} %cmake_build %install cd ns-%{version} %cmake_install # install target omits bindings: https://gitlab.com/nsnam/ns-3-dev/-/issues/733 mkdir -p %{buildroot}%{python3_sitearch} cp -R build/bindings/python/ns %{buildroot}%{python3_sitearch}/ cp -R build/bindings/python/visualizer %{buildroot}%{python3_sitearch}/ chrpath --delete %{buildroot}%{python3_sitearch}/ns/_core.so chrpath --replace '$ORIGIN' %{buildroot}%{python3_sitearch}/ns/[a-z]*.so # These binaries are not supposed to be run by normal users mkdir -p %{buildroot}%{_libexecdir}/ns3/ cp build/src/*/ns3*creator-default %{buildroot}%{_libexecdir}/ns3/ %fdupes %{buildroot}%{python3_sitearch}/visualizer/ %check %ifnarch aarch64 # One TC fails (https://gitlab.com/nsnam/ns-3-dev/-/issues/531), but there is # no simple method to isolate it cd ns-%{version} ./test.py --no-build --text /tmp/test-result.txt || (cat /tmp/test-result.txt.txt ; false) %endif %post -n libns%{_version} -p /sbin/ldconfig %postun -n libns%{_version} -p /sbin/ldconfig %files -n libns%{_version} %{_libdir}/libns%{version}-*.so %exclude %{_libdir}/libns%{version}-visualizer-*.so %files helpers %dir %{_libexecdir}/ns3 %caps(cap_net_raw=ep) %attr(0755,-,-) %{_libexecdir}/ns3/ns%{version}-raw-sock-creator-default %caps(cap_net_admin=ep) %attr(0755,-,-) %{_libexecdir}/ns3/ns%{version}-tap-creator-default %caps(cap_net_admin=ep) %attr(0755,-,-) %{_libexecdir}/ns3/ns%{version}-tap-device-creator-default %files -n libns%{_version}-visualizer %{_libdir}/libns%{version}-visualizer-*.so %{python3_sitearch}/visualizer/ %files -n python-ns3 %{python3_sitearch}/ns/ %files devel %{_includedir}/ns3/ %{_libdir}/pkgconfig/ns3-*.pc %{_libdir}/cmake/ns3 %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor