From e8f0d5b9984b8a1f79d112be3889dbadf41f856e Mon Sep 17 00:00:00 2001 From: Yuri Victorovich Date: Mon, 8 Jan 2018 20:22:43 +0000 Subject: [PATCH] New port: misc/libpredict: Satellite orbit prediction library Submitted by: myself Approved by: tcberner (mentor) Differential Revision: https://reviews.freebsd.org/D13758 --- misc/Makefile | 1 + misc/libpredict/Makefile | 25 ++++++++++ misc/libpredict/distinfo | 3 ++ .../libpredict/files/patch-src_CMakeLists.txt | 49 +++++++++++++++++++ .../libpredict/files/patch-src_julian__date.c | 7 +++ misc/libpredict/pkg-descr | 6 +++ 6 files changed, 91 insertions(+) create mode 100644 misc/libpredict/Makefile create mode 100644 misc/libpredict/distinfo create mode 100644 misc/libpredict/files/patch-src_CMakeLists.txt create mode 100644 misc/libpredict/files/patch-src_julian__date.c create mode 100644 misc/libpredict/pkg-descr diff --git a/misc/Makefile b/misc/Makefile index 591d39d6bb2b..0cb460da6c41 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -251,6 +251,7 @@ SUBDIR += libkdeedu SUBDIR += libmetalink SUBDIR += libpostal + SUBDIR += libpredict SUBDIR += libpri SUBDIR += libsupertone SUBDIR += libutf diff --git a/misc/libpredict/Makefile b/misc/libpredict/Makefile new file mode 100644 index 000000000000..acd2a768cbab --- /dev/null +++ b/misc/libpredict/Makefile @@ -0,0 +1,25 @@ +# $FreeBSD$ + +PORTNAME= libpredict +DISTVERSIONPREFIX= v +DISTVERSION= 2.0.0 +CATEGORIES= misc + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Satellite orbit prediction library + +LICENSE= GPLv2 +LICENSE_FILE= ${WRKSRC}/COPYING + +USES= cmake:outsource +USE_GITHUB= yes +GH_ACCOUNT= la1k +USE_LDCONFIG= yes + +PLIST_FILES= include/predict/predict.h \ + lib/libpredict.so \ + lib/libpredict.so.${DISTVERSION:R:R} \ + lib/libpredict.so.${DISTVERSION} \ + libdata/pkgconfig/predict.pc + +.include diff --git a/misc/libpredict/distinfo b/misc/libpredict/distinfo new file mode 100644 index 000000000000..79c24a9b4ab1 --- /dev/null +++ b/misc/libpredict/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1515032770 +SHA256 (la1k-libpredict-v2.0.0_GH0.tar.gz) = d0865c9557dd519a35a827b0c272355240ab04caae7dc689ca079cc5ae0bb03f +SIZE (la1k-libpredict-v2.0.0_GH0.tar.gz) = 454274 diff --git a/misc/libpredict/files/patch-src_CMakeLists.txt b/misc/libpredict/files/patch-src_CMakeLists.txt new file mode 100644 index 000000000000..ef396d45ff12 --- /dev/null +++ b/misc/libpredict/files/patch-src_CMakeLists.txt @@ -0,0 +1,49 @@ +--- src/CMakeLists.txt.orig 2017-12-09 13:54:50 UTC ++++ src/CMakeLists.txt +@@ -1,21 +1,21 @@ + add_library(predict SHARED orbit.c sun.c observer.c sdp4.c sgp4.c refraction.c unsorted.c julian_date.c version.c moon.c) + +-add_library(predict_static STATIC orbit.c sun.c observer.c sdp4.c sgp4.c refraction.c unsorted.c julian_date.c moon.c) ++#add_library(predict_static STATIC orbit.c sun.c observer.c sdp4.c sgp4.c refraction.c unsorted.c julian_date.c moon.c) + +-set_target_properties(predict_static PROPERTIES OUTPUT_NAME predict) ++#set_target_properties(predict_static PROPERTIES OUTPUT_NAME predict) + + # The VERSION is the version number in the file name: + # libpredict.so.. This should be the full major.minor.patch + # version number. + set_target_properties(predict PROPERTIES VERSION ${PROJECT_VERSION}) +-set_target_properties(predict_static PROPERTIES VERSION ${PROJECT_VERSION}) ++#set_target_properties(predict_static PROPERTIES VERSION ${PROJECT_VERSION}) + + # The SOVERSION is the version number in the soname: + # libpredict.so.. This should be only the major version + # number, in order for applications to get a runtime dependency on an + # ABI version compatible with the library at build time. + set_target_properties(predict PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR}) +-set_target_properties(predict_static PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR}) ++#set_target_properties(predict_static PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR}) + + # Header files needed to compile an application using libpredict + set(predict_public_header) +@@ -24,17 +24,17 @@ list(APPEND predict_public_header + ) + set_target_properties(predict PROPERTIES PUBLIC_HEADER "${predict_public_header}") + # Maybe needed on Mac OS? +-#set_target_properties(predict PROPERTIES FRAMEWORK TRUE) ++set_target_properties(predict PROPERTIES FRAMEWORK TRUE) + + target_link_libraries(predict m) +-target_link_libraries(predict_static m) ++#target_link_libraries(predict_static m) + + # Tell the linker to use the symbol version script + get_property(predict_link_flags TARGET predict PROPERTY LINK_FLAGS) + set(predict_link_flags "${predict_link_flags} -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libpredict.symver") + set_target_properties(predict PROPERTIES LINK_FLAGS ${predict_link_flags}) + +-install(TARGETS predict predict_static ++install(TARGETS predict + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/predict diff --git a/misc/libpredict/files/patch-src_julian__date.c b/misc/libpredict/files/patch-src_julian__date.c new file mode 100644 index 000000000000..d55b6db17d55 --- /dev/null +++ b/misc/libpredict/files/patch-src_julian__date.c @@ -0,0 +1,7 @@ +--- src/julian_date.c.orig 2017-12-09 13:54:50 UTC ++++ src/julian_date.c +@@ -1,3 +1,4 @@ ++#include + #define _POSIX_C_SOURCE 1 + #include + #include diff --git a/misc/libpredict/pkg-descr b/misc/libpredict/pkg-descr new file mode 100644 index 000000000000..8f2e60d0d8ca --- /dev/null +++ b/misc/libpredict/pkg-descr @@ -0,0 +1,6 @@ +libpredict allows to calculate satellite orbits based on their +position parameters at any given time. It supports any orbit +types used by satellites, for example geostationary, elliptical, +geosynchronous. + +WWW: https://github.com/la1k/libpredict