public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/liborigin/files/, sci-libs/liborigin/
@ 2020-05-20 22:18 Andreas Sturmlechner
  0 siblings, 0 replies; 3+ messages in thread
From: Andreas Sturmlechner @ 2020-05-20 22:18 UTC (permalink / raw
  To: gentoo-commits

commit:     15ac48991620a8b7f73d67788bed75b7ab8853b7
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed May 20 21:36:43 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed May 20 22:17:52 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=15ac4899

sci-libs/liborigin: 3.0.0 version bump

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 sci-libs/liborigin/Manifest                        |   1 +
 .../files/liborigin-3.0.0-buildsystem.patch        | 166 ++++++++++++++++
 .../files/liborigin-3.0.0-missing-header.patch     |  38 ++++
 .../files/liborigin-3.0.0-no-exit-calls.patch      |  89 +++++++++
 .../liborigin-3.0.0-no-standard-streams.patch      | 210 +++++++++++++++++++++
 sci-libs/liborigin/liborigin-3.0.0.ebuild          |  55 ++++++
 sci-libs/liborigin/metadata.xml                    |   6 +-
 7 files changed, 562 insertions(+), 3 deletions(-)

diff --git a/sci-libs/liborigin/Manifest b/sci-libs/liborigin/Manifest
index 9f0b954a93d..9b2da118ce9 100644
--- a/sci-libs/liborigin/Manifest
+++ b/sci-libs/liborigin/Manifest
@@ -1 +1,2 @@
+DIST liborigin-3.0.0.tar.gz 156736 BLAKE2B 1c1fda3fc3ad47394b65637a808eca1ecf4cff19eb49de0811e50d395c3b7759f8ec19c680ed83f7a8191022aa17b4ba1211baa6ea16a48a5153736d9138ed5c SHA512 1cf00ec33a90b4baede0cd3b2a3e6d78ca4810511c6be58c4d1cce12e7e1001752422fe2ddbca80cd9016b91c5321eca1ab43606ace3acc21955a034ebc4094c
 DIST liborigin2-20110829.zip 158364 BLAKE2B fb6902142fe20bd29c8f3dd4c6d0c77b6f94e66f082c6950809367a4049adc1092a5e1abc2705670a15a32d1d680c14fc05061d34d422cd55689bb778ee47fde SHA512 d0e4013a686fbc61c58b1f39e98aace91978bcadffbb2ef9d32576a3b2f19cc2443d595da2d3ecc19298ec6e29c20717db94e1fda6a64d71f3763841228a01c0

diff --git a/sci-libs/liborigin/files/liborigin-3.0.0-buildsystem.patch b/sci-libs/liborigin/files/liborigin-3.0.0-buildsystem.patch
new file mode 100644
index 00000000000..d8444dedafe
--- /dev/null
+++ b/sci-libs/liborigin/files/liborigin-3.0.0-buildsystem.patch
@@ -0,0 +1,166 @@
+From a751f00ebba9fa226860ed4e2c1ae5fa35622e89 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed, 20 May 2020 22:33:08 +0200
+Subject: [PATCH 1/4] Don't install bundled tree.hh
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 17c613b..a6b4b8a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -25,7 +25,6 @@ set (devel-headers
+ 	OriginObj.h
+ 	OriginFile.h
+ 	OriginParser.h
+-	tree.hh
+ 	)
+ 
+ # LIB_SUFFIX can either be defined at cmake command line: cmake -DLIB_SUFFIX:STRING=64 ...
+-- 
+2.26.2
+
+
+From 0b4fa1ce0946bc293d798484c609c6a7ac5ab50a Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed, 20 May 2020 22:35:02 +0200
+Subject: [PATCH 2/4] No static target, compile opj2dat against the shared lib
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a6b4b8a..6f2d87b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -52,22 +52,16 @@ set_target_properties(origin PROPERTIES
+ 	VERSION ${LIBORIGIN_VERSION_MAJOR}.${LIBORIGIN_VERSION_MINOR}.${LIBORIGIN_VERSION_BUGFIX}
+ 	SOVERSION ${LIBORIGIN_VERSION_MAJOR} )
+ 
+-# static library
+-add_library (origin-static STATIC ${sources})
+-set_target_properties(origin-static PROPERTIES OUTPUT_NAME "origin" POSITION_INDEPENDENT_CODE ON)
+-
+ # inform on log setting
+ if (DEFINED GENERATE_CODE_FOR_LOG)
+     message("File parsing will be logged.")
+     target_compile_definitions(origin PRIVATE GENERATE_CODE_FOR_LOG=${GENERATE_CODE_FOR_LOG})
+-    target_compile_definitions(origin-static PRIVATE GENERATE_CODE_FOR_LOG=${GENERATE_CODE_FOR_LOG})
+ else()
+     message("File parsing will NOT be logged. Define GENERATE_CODE_FOR_LOG to activate logging.")
+ endif ()
+ 
+ # install libraries
+ install(TARGETS origin DESTINATION lib${LIB_SUFFIX} OPTIONAL)
+-install(TARGETS origin-static DESTINATION lib${LIB_SUFFIX} OPTIONAL)
+ 
+ # install headers
+ install(FILES ${devel-headers} DESTINATION include/liborigin)
+@@ -77,7 +71,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liborigin.pc DESTINATION lib${LIB_SUFF
+ 
+ # command line util
+ add_executable(opj2dat opj2dat.cpp)
+-target_link_libraries (opj2dat origin-static)
++target_link_libraries (opj2dat origin)
+ 
+ install(TARGETS opj2dat DESTINATION bin OPTIONAL)
+ 
+-- 
+2.26.2
+
+
+From 5f4c497408a6f144e581dd17fb3e49963e8b6b2b Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed, 20 May 2020 22:43:52 +0200
+Subject: [PATCH 3/4] Don't install README COPYING etc., distro package does
+ that
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6f2d87b..4fc16e0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -76,7 +76,6 @@ target_link_libraries (opj2dat origin)
+ install(TARGETS opj2dat DESTINATION bin OPTIONAL)
+ 
+ # documentation
+-install(FILES COPYING FORMAT README DESTINATION share/doc/liborigin OPTIONAL)
+ configure_file(doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
+ find_package(Doxygen)
+ if(DOXYGEN_FOUND)
+-- 
+2.26.2
+
+
+From bb554d88b78e7575c04cf3e79098f35b776c3878 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed, 20 May 2020 22:47:22 +0200
+Subject: [PATCH 4/4] Drop 'OPTIONAL' from install targets, add ENABLE_TOOLS
+ option
+
+I've never seen an optional install of library.
+ENABLE_TOOLS takes care of the binary.
+Doxygen is already optional.
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4fc16e0..1759eee 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -9,6 +9,8 @@ set(LIBORIGIN_VERSION_MAJOR 3)
+ set(LIBORIGIN_VERSION_MINOR 0)
+ set(LIBORIGIN_VERSION_BUGFIX 0)
+ 
++option(ENABLE_TOOLS "Install opj2dat command line util" ON)
++
+ # compile-time configuration variables to be linked in
+ configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+@@ -61,7 +63,7 @@ else()
+ endif ()
+ 
+ # install libraries
+-install(TARGETS origin DESTINATION lib${LIB_SUFFIX} OPTIONAL)
++install(TARGETS origin DESTINATION lib${LIB_SUFFIX})
+ 
+ # install headers
+ install(FILES ${devel-headers} DESTINATION include/liborigin)
+@@ -70,10 +72,12 @@ install(FILES ${devel-headers} DESTINATION include/liborigin)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liborigin.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig)
+ 
+ # command line util
+-add_executable(opj2dat opj2dat.cpp)
+-target_link_libraries (opj2dat origin)
++if(ENABLE_TOOLS)
++    add_executable(opj2dat opj2dat.cpp)
++    target_link_libraries (opj2dat origin)
+ 
+-install(TARGETS opj2dat DESTINATION bin OPTIONAL)
++    install(TARGETS opj2dat DESTINATION bin)
++endif()
+ 
+ # documentation
+ configure_file(doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
+@@ -82,5 +86,5 @@ if(DOXYGEN_FOUND)
+ 	add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+ 		WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+ 	set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/html)
+-	install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc/liborigin OPTIONAL)
++	install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc/liborigin)
+ endif(DOXYGEN_FOUND)
+-- 
+2.26.2
+

diff --git a/sci-libs/liborigin/files/liborigin-3.0.0-missing-header.patch b/sci-libs/liborigin/files/liborigin-3.0.0-missing-header.patch
new file mode 100644
index 00000000000..162dd93c3c5
--- /dev/null
+++ b/sci-libs/liborigin/files/liborigin-3.0.0-missing-header.patch
@@ -0,0 +1,38 @@
+From 78da3c4456cef15c91b5e5fcc1e82ca2364ea654 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed, 20 May 2020 22:28:21 +0200
+Subject: [PATCH] Add missing header
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ OriginAnyParser.cpp | 1 +
+ opj2dat.cpp         | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/OriginAnyParser.cpp b/OriginAnyParser.cpp
+index 07a619e..c90f6e4 100644
+--- a/OriginAnyParser.cpp
++++ b/OriginAnyParser.cpp
+@@ -22,6 +22,7 @@
+ #include "OriginAnyParser.h"
+ #include <sstream>
+ #include <cinttypes>
++#include <iostream>
+ 
+ /* define a macro to get an int (or uint) from a istringstream in binary mode */
+ #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+diff --git a/opj2dat.cpp b/opj2dat.cpp
+index 230ac84..67b0815 100644
+--- a/opj2dat.cpp
++++ b/opj2dat.cpp
+@@ -31,6 +31,7 @@
+ #include <cmath>
+ #include <fstream>
+ #include <sstream>
++#include <iostream>
+ #include <string>
+ 
+ using namespace std;
+-- 
+2.26.2
+

diff --git a/sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch b/sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch
new file mode 100644
index 00000000000..44b56a296fd
--- /dev/null
+++ b/sci-libs/liborigin/files/liborigin-3.0.0-no-exit-calls.patch
@@ -0,0 +1,89 @@
+From a8b25b489b48086e2616df98688969f89e63fa69 Mon Sep 17 00:00:00 2001
+From: Miquel Garriga <gbmiquel@gmail.com>
+Date: Fri, 23 Nov 2018 00:15:04 +0100
+Subject: [PATCH] Remove exit() calls
+
+---
+ OriginFile.cpp | 15 ++++++++++-----
+ OriginFile.h   |  2 +-
+ opj2dat.cpp    |  2 ++
+ 3 files changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/OriginFile.cpp b/OriginFile.cpp
+index f6c41b4..bcdcccb 100644
+--- a/OriginFile.cpp
++++ b/OriginFile.cpp
+@@ -33,14 +33,15 @@
+ #include <string>
+ 
+ OriginFile::OriginFile(const string& fileName)
+-:	fileVersion(0)
++:	fileVersion(0), ioError(0)
+ {
+ 	ifstream file(fileName.c_str(), ios_base::binary);
+ 
+ 	if (!file.is_open())
+ 	{
+-		cerr <<  "Could not open " << fileName.c_str() << "!" << endl;
+-		exit(EXIT_FAILURE);
++		cerr << endl << "liborigin: " << strerror(errno) << ": " << fileName.c_str() << endl;
++		ioError = errno;
++		return;
+ 	}
+ 
+ #ifdef GENERATE_CODE_FOR_LOG
+@@ -48,8 +49,9 @@ OriginFile::OriginFile(const string& fileName)
+ 	logfile = fopen("./opjfile.log", "w");
+ 	if (logfile == nullptr)
+ 	{
+-		cerr <<  "Could not open opjfile.log !" << endl;
+-		exit(EXIT_FAILURE);
++		cerr << endl <<  "liborigin: " << strerror(errno) << ": opjfile.log" << endl;
++		ioError = errno;
++		return;
+ 	}
+ #endif // GENERATE_CODE_FOR_LOG
+ 
+@@ -152,10 +154,13 @@ OriginFile::OriginFile(const string& fileName)
+ 	fclose(logfile);
+ #endif // GENERATE_CODE_FOR_LOG
+ 	parser.reset(createOriginAnyParser(fileName));
++	ioError=0;
+ }
+ 
+ bool OriginFile::parse()
+ {
++	if (ioError != 0)
++		return false;
+ 	parser->buildVersion = buildVersion;
+ 	parser->fileVersion = fileVersion;
+ 	return parser->parse();
+diff --git a/OriginFile.h b/OriginFile.h
+index 80b6ff2..3a49395 100644
+--- a/OriginFile.h
++++ b/OriginFile.h
+@@ -70,7 +70,7 @@ public:
+ 	string resultsLogString() const;													//!< get Results Log
+ 
+ private:
+-	unsigned int fileVersion, buildVersion;
++	unsigned int fileVersion, buildVersion, ioError;
+ 	unique_ptr<OriginParser> parser;
+ };
+ 
+diff --git a/opj2dat.cpp b/opj2dat.cpp
+index ff53309..230ac84 100644
+--- a/opj2dat.cpp
++++ b/opj2dat.cpp
+@@ -54,6 +54,8 @@ int main(int argc, char *argv[]) {
+ 	OriginFile opj(inputfile);
+ 	int status = opj.parse();
+ 	cout << "Parsing status = " << status << endl;
++	if (! status)
++		return -1;
+ 	cout << "OPJ PROJECT \"" << inputfile.c_str() << "\" VERSION = " <<  opj.version() << endl;
+ 
+ 	cout << "number of datasets     = " << opj.datasetCount() << endl;
+-- 
+2.26.2
+

diff --git a/sci-libs/liborigin/files/liborigin-3.0.0-no-standard-streams.patch b/sci-libs/liborigin/files/liborigin-3.0.0-no-standard-streams.patch
new file mode 100644
index 00000000000..227ce7b14d5
--- /dev/null
+++ b/sci-libs/liborigin/files/liborigin-3.0.0-no-standard-streams.patch
@@ -0,0 +1,210 @@
+From 6cb6d9b328195e11c1f168f6e4b915b522c7089f Mon Sep 17 00:00:00 2001
+From: Stefan Gerlach <stefan.gerlach@uni-konstanz.de>
+Date: Wed, 15 May 2019 23:16:09 +0200
+Subject: [PATCH 1/3] do not output to standard streams (cout,
+ cerr) by default
+
+it might be better to hide all such usage behind #ifdefs,
+since the streams might not belong to the shared library
+
+provided by Ivan Krylov (Ropj)
+---
+ OriginAnyParser.cpp | 11 +++++------
+ OriginAnyParser.h   |  2 +-
+ OriginFile.cpp      |  2 --
+ 3 files changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/OriginAnyParser.cpp b/OriginAnyParser.cpp
+index d45026b..ff7b8f7 100644
+--- a/OriginAnyParser.cpp
++++ b/OriginAnyParser.cpp
+@@ -756,7 +756,7 @@ void OriginAnyParser::readProjectTree() {
+ 
+ 	// log info on project tree
+ #ifdef GENERATE_CODE_FOR_LOG
+-	outputProjectTree();
++	outputProjectTree(cout);
+ #endif // GENERATE_CODE_FOR_LOG
+ 
+ 	return;
+@@ -2835,7 +2835,6 @@ void OriginAnyParser::getColorMap(ColorMap& cmap, const string& cmapdata, unsign
+ 	// check we have enough data to fill the map
+ 	unsigned int minDataSize = cmoffset + 0x114 + (colorMapSize+2)*0x38;
+ 	if (minDataSize > cmapdatasz) {
+-		cerr << "WARNING: Too few data while getting ColorMap. Needed: at least " << minDataSize << " bytes. Have: " << cmapdatasz << " bytes." << endl;
+ 		LOG_PRINT(logfile, "WARNING: Too few data while getting ColorMap. Needed: at least %d bytes. Have: %d bytes.\n", minDataSize, cmapdatasz)
+ 		return;
+ 	}
+@@ -2988,15 +2987,15 @@ void OriginAnyParser::getProjectFolderProperties(tree<ProjectNode>::iterator cur
+ 	(*current_folder).modificationDate = doubleToPosixTime(modificationDate);
+ }
+ 
+-void OriginAnyParser::outputProjectTree() {
++void OriginAnyParser::outputProjectTree(std::ostream & out) {
+ 	size_t windowsCount = spreadSheets.size()+matrixes.size()+excels.size()+graphs.size()+notes.size();
+ 
+-	cout << "Project has " << windowsCount << " windows." << endl;
+-	cout << "Origin project Tree" << endl;
++	out << "Project has " << windowsCount << " windows." << endl;
++	out << "Origin project Tree" << endl;
+ 
+ 	char cdsz[21];
+ 	for (tree<ProjectNode>::iterator it = projectTree.begin(projectTree.begin()); it != projectTree.end(projectTree.begin()); ++it) {
+ 		strftime(cdsz, sizeof(cdsz), "%F %T", gmtime(&(*it).creationDate));
+-		cout <<  string(projectTree.depth(it) - 1, ' ') <<  (*it).name.c_str() << "\t" << cdsz << endl;
++		out <<  string(projectTree.depth(it) - 1, ' ') <<  (*it).name.c_str() << "\t" << cdsz << endl;
+ 	}
+ }
+diff --git a/OriginAnyParser.h b/OriginAnyParser.h
+index ed62bbb..bd7c1ae 100644
+--- a/OriginAnyParser.h
++++ b/OriginAnyParser.h
+@@ -68,7 +68,7 @@ protected:
+ 	void getZcolorsMap(ColorMap&, const string&, unsigned int);
+ 	void getProjectLeafProperties(tree<ProjectNode>::iterator, const string&, unsigned int);
+ 	void getProjectFolderProperties(tree<ProjectNode>::iterator, const string&, unsigned int);
+-	void outputProjectTree();
++	void outputProjectTree(std::ostream &);
+ 
+ 	inline time_t doubleToPosixTime(double jdt)
+ 	{
+diff --git a/OriginFile.cpp b/OriginFile.cpp
+index 5ac8e22..dba050f 100644
+--- a/OriginFile.cpp
++++ b/OriginFile.cpp
+@@ -39,7 +39,6 @@ OriginFile::OriginFile(const string& fileName)
+ 
+ 	if (!file.is_open())
+ 	{
+-		cerr << endl << "liborigin: " << strerror(errno) << ": " << fileName.c_str() << endl;
+ 		ioError = errno;
+ 		return;
+ 	}
+@@ -49,7 +48,6 @@ OriginFile::OriginFile(const string& fileName)
+ 	logfile = fopen("./opjfile.log", "w");
+ 	if (logfile == nullptr)
+ 	{
+-		cerr << endl <<  "liborigin: " << strerror(errno) << ": opjfile.log" << endl;
+ 		ioError = errno;
+ 		return;
+ 	}
+-- 
+2.26.2
+
+
+From 588bbc357cd34b9d353470ed6c0632b6f00805f5 Mon Sep 17 00:00:00 2001
+From: Stefan Gerlach <stefan.gerlach@uni-konstanz.de>
+Date: Wed, 15 May 2019 23:28:46 +0200
+Subject: [PATCH 2/3] fix bugs found by UBSan
+
+ - check values before casting to enum Attach
+ - default-initialize sensitive struct elements
+
+provided by Ivan Krylov (Ropj)
+---
+ OriginAnyParser.cpp | 1 +
+ OriginObj.h         | 5 ++++-
+ README              | 3 +++
+ 3 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/OriginAnyParser.cpp b/OriginAnyParser.cpp
+index ff7b8f7..9f9731c 100644
+--- a/OriginAnyParser.cpp
++++ b/OriginAnyParser.cpp
+@@ -1543,6 +1543,7 @@ void OriginAnyParser::getAnnotationProperties(const string& anhd, unsigned int a
+ 		GET_SHORT(stmp, r.bottom)
+ 
+ 		unsigned char attach = anhd[0x28];
++		if (attach >= (unsigned char)Attach::End_) attach = Attach::Frame;
+ 		unsigned char border = anhd[0x29];
+ 
+ 		Color color = getColor(anhd.substr(0x33,4));
+diff --git a/OriginObj.h b/OriginObj.h
+index 3a9f719..aeeeb6b 100644
+--- a/OriginObj.h
++++ b/OriginObj.h
+@@ -67,7 +67,7 @@ namespace Origin
+ 	enum DayOfWeekFormat {DAY_DDD = 0, DAY_DDDD = 1, DAY_LETTER = 2};
+ 
+ 	enum NumericDisplayType {DefaultDecimalDigits = 0, DecimalPlaces = 1, SignificantDigits = 2};
+-	enum Attach {Frame = 0, Page = 1, Scale = 2};
++	enum Attach {Frame = 0, Page = 1, Scale = 2, End_};
+ 	enum BorderType {BlackLine = 0, Shadow = 1, DarkMarble = 2, WhiteOut = 3, BlackOut = 4, None = -1};
+ 	enum FillPattern {NoFill = 0, BDiagDense = 1, BDiagMedium = 2, BDiagSparse = 3, FDiagDense = 4, FDiagMedium = 5, FDiagSparse = 6,
+ 		DiagCrossDense = 7, DiagCrossMedium = 8, DiagCrossSparse = 9, HorizontalDense = 10, HorizontalMedium = 11, HorizontalSparse = 12,
+@@ -345,6 +345,7 @@ namespace Origin
+ 		,	width(8)
+ 		,	index(_index)
+ 		,	view(DataView)
++		,	colorMap()
+ 		{coordinates.push_back(10.0);coordinates.push_back(10.0);coordinates.push_back(1.0);coordinates.push_back(1.0);};
+ 	};
+ 
+@@ -895,9 +896,11 @@ namespace Origin
+ 		GraphLayer()
+ 		:	backgroundColor({Color::Regular, {Color::White}})
+ 		,	borderType(BlackLine)
++		,	xAxis(), yAxis(), zAxis()
+ 		,	histogramBin(0.5)
+ 		,	histogramBegin(0.0)
+ 		,	histogramEnd(10.0)
++		,	colorMap()
+ 		,	xAngle(0)
+ 		,	yAngle(0)
+ 		,	zAngle(0)
+diff --git a/README b/README
+index 1dd56ef..598eacc 100644
+--- a/README
++++ b/README
+@@ -7,6 +7,9 @@ It is based on the code at
+ 	http://sourceforge.net/projects/liborigin
+ 	http://soft.proindependent.com/liborigin2
+ 
++Additionally, some fixes were applied to silence UBSan warnings caused by
++uninitialised POD struct members.
++
+ AUTHORS:  Knut Franke, Miquel Garriga, Stefan Gerlach, Alex Kargovsky, Russell Standish, Ion Vasilief
+ 
+ DEPENDENCIES: tree.hh (included) http://tree.phi-sci.com/
+-- 
+2.26.2
+
+
+From 88b4de31e1860b8b5de6e3eea4a32e92f2e58c71 Mon Sep 17 00:00:00 2001
+From: Stefan Gerlach <stefan.gerlach@uni-konstanz.de>
+Date: Wed, 15 May 2019 23:32:50 +0200
+Subject: [PATCH 3/3] readProjectTree: provide root node to append
+ to
+
+append_child() is not supposed to work on an empty tree,
+and I couldn't find any initialization before its use.
+All inserted nodes seemed to end up below tree_node::feet
+(or something) and were not cleaned up by the destructor.
+
+Using insert() to create a dummy node for others to be
+children of fixes the leak.
+
+provided by Ivan Krylov (Ropj)
+---
+ OriginAnyParser.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/OriginAnyParser.cpp b/OriginAnyParser.cpp
+index 9f9731c..4a79423 100644
+--- a/OriginAnyParser.cpp
++++ b/OriginAnyParser.cpp
+@@ -743,7 +743,10 @@ void OriginAnyParser::readProjectTree() {
+ 	string pte_pre2 = readObjectAsString(pte_pre2_size);
+ 
+ 	// root element and children
+-	unsigned int rootfolder = readFolderTree(projectTree.begin(), pte_depth);
++	unsigned int rootfolder = readFolderTree(
++		projectTree.insert(projectTree.begin(), ProjectNode("", ProjectNode::Folder)),
++		pte_depth
++	);
+ 	if (rootfolder > 0) {
+ 		LOG_PRINT(logfile, "Number of files at root: %d\n", rootfolder)
+ 	}
+-- 
+2.26.2
+

diff --git a/sci-libs/liborigin/liborigin-3.0.0.ebuild b/sci-libs/liborigin/liborigin-3.0.0.ebuild
new file mode 100644
index 00000000000..aa4538748af
--- /dev/null
+++ b/sci-libs/liborigin/liborigin-3.0.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Library for reading OriginLab OPJ project files"
+HOMEPAGE="https://sourceforge.net/projects/liborigin/"
+SRC_URI="http://downloads.sourceforge.net/liborigin/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc tools"
+
+BDEPEND="
+	doc? ( app-doc/doxygen )
+"
+RDEPEND="
+	dev-cpp/tree
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	# git master
+	"${FILESDIR}/${P}-no-exit-calls.patch"
+	"${FILESDIR}/${P}-no-standard-streams.patch"
+	# TODO upstream
+	"${FILESDIR}/${P}-missing-header.patch"
+	# downstream
+	"${FILESDIR}/${P}-buildsystem.patch" # ENABLE_TOOLS, shared link, doc paths
+)
+
+src_prepare() {
+	cmake_src_prepare
+	rm tree.hh || die "failed to remove bundled tree.hh"
+
+	sed -e "/install.*html/s/liborigin/${PF}/" \
+		-i CMakeLists.txt || die "failed to fix htmldoc install path"
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DGENERATE_CODE_FOR_LOG=$(usex debug)
+		$(cmake_use_find_package doc Doxygen)
+		-DENABLE_TOOLS=$(usex tools)
+	)
+	cmake_src_configure
+}
+
+src_compile() {
+	cmake_src_compile
+	use doc && cmake_src_compile doc
+}

diff --git a/sci-libs/liborigin/metadata.xml b/sci-libs/liborigin/metadata.xml
index c049cd0777b..e7dc202da9b 100644
--- a/sci-libs/liborigin/metadata.xml
+++ b/sci-libs/liborigin/metadata.xml
@@ -5,7 +5,7 @@
 		<email>sci@gentoo.org</email>
 		<name>Gentoo Science Project</name>
 	</maintainer>
-	<longdescription>
-		A library providing IO for Microcal Origin files.
-	</longdescription>
+	<use>
+		<flag name="tools">Install opj2dat command line util</flag>
+	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sci-libs/liborigin/files/, sci-libs/liborigin/
@ 2021-05-23 12:47 Andrew Ammerlaan
  0 siblings, 0 replies; 3+ messages in thread
From: Andrew Ammerlaan @ 2021-05-23 12:47 UTC (permalink / raw
  To: gentoo-commits

commit:     fc55a1624d72aedb24af9db44538162fbbdfd480
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 12:37:28 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Sun May 23 12:47:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc55a162

sci-libs/liborigin: add version 3.0.1

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 sci-libs/liborigin/Manifest                        |  1 +
 .../files/liborigin-3.0.1-buildsystem.patch        | 47 +++++++++++++++++++
 .../files/liborigin-3.0.1-missing-header.patch     | 24 ++++++++++
 sci-libs/liborigin/liborigin-3.0.1.ebuild          | 53 ++++++++++++++++++++++
 sci-libs/liborigin/metadata.xml                    |  4 ++
 5 files changed, 129 insertions(+)

diff --git a/sci-libs/liborigin/Manifest b/sci-libs/liborigin/Manifest
index 325e5f11cc4..3296248678b 100644
--- a/sci-libs/liborigin/Manifest
+++ b/sci-libs/liborigin/Manifest
@@ -1 +1,2 @@
 DIST liborigin-3.0.0.tar.gz 156736 BLAKE2B 1c1fda3fc3ad47394b65637a808eca1ecf4cff19eb49de0811e50d395c3b7759f8ec19c680ed83f7a8191022aa17b4ba1211baa6ea16a48a5153736d9138ed5c SHA512 1cf00ec33a90b4baede0cd3b2a3e6d78ca4810511c6be58c4d1cce12e7e1001752422fe2ddbca80cd9016b91c5321eca1ab43606ace3acc21955a034ebc4094c
+DIST liborigin-3.0.1.tar.gz 156842 BLAKE2B 2c88d0419c4c7be1ff6d3aaba1f794fe67174e02e591878c754a32d9b2789bd8594d39f4786d9ac04884b443b528086617a9e1fdbca8815089c8ebb400dd321c SHA512 c3fde3549bce462ea38b961885d6c835aac53db64375645db1d3636eb78396b3353c5bcc9ea3313dac3ffb436de35677ecec6fddb2fcf1eb37eaf6a78e2a31f8

diff --git a/sci-libs/liborigin/files/liborigin-3.0.1-buildsystem.patch b/sci-libs/liborigin/files/liborigin-3.0.1-buildsystem.patch
new file mode 100644
index 00000000000..36e5d7fc7a9
--- /dev/null
+++ b/sci-libs/liborigin/files/liborigin-3.0.1-buildsystem.patch
@@ -0,0 +1,47 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2f3b26d..4c543bf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -28,6 +28,8 @@ else()
+     set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic" )
+ endif()
+ 
++option(ENABLE_TOOLS "Install opj2dat command line util" ON)
++
+ # compile-time configuration variables to be linked in
+ configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+@@ -44,7 +46,6 @@ set (devel-headers
+     OriginObj.h
+     OriginFile.h
+     OriginParser.h
+-    tree.hh
+ )
+ 
+ # object library
+@@ -87,6 +88,7 @@ if (BUILD_SHARED_LIBS)
+ endif ()
+ 
+ # command line util
++if(ENABLE_TOOLS)
+ if (BUILD_STATIC_LIBS)
+     add_executable(opj2dat opj2dat.cpp)
+     target_link_libraries (opj2dat origin_static)
+@@ -94,6 +96,7 @@ elseif (BUILD_SHARED_LIBS)
+     add_executable(opj2dat opj2dat.cpp)
+     target_link_libraries (opj2dat origin_shared)
+ endif ()
++endif ()
+ 
+ # Generate a pkg-config file matching this config
+ configure_file("liborigin.pc.in" "liborigin.pc" @ONLY)
+@@ -103,7 +106,9 @@ install(FILES ${devel-headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/liborigin
+ # install pkg-config file
+ if (BUILD_STATIC_LIBS OR BUILD_SHARED_LIBS)
+     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liborigin.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
++    if(ENABLE_TOOLS)
+     install(TARGETS opj2dat DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
++    endif ()
+ endif ()
+ 
+ # documentation

diff --git a/sci-libs/liborigin/files/liborigin-3.0.1-missing-header.patch b/sci-libs/liborigin/files/liborigin-3.0.1-missing-header.patch
new file mode 100644
index 00000000000..3f78c61ebab
--- /dev/null
+++ b/sci-libs/liborigin/files/liborigin-3.0.1-missing-header.patch
@@ -0,0 +1,24 @@
+diff --git a/OriginAnyParser.cpp b/OriginAnyParser.cpp
+index 05bfb95..dd5dd9b 100644
+--- a/OriginAnyParser.cpp
++++ b/OriginAnyParser.cpp
+@@ -22,6 +22,7 @@
+ #include "OriginAnyParser.h"
+ #include <sstream>
+ #include <cinttypes>
++#include <iostream>
+ 
+ /* define a macro to get an int (or uint) from a istringstream in binary mode */
+ #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+diff --git a/opj2dat.cpp b/opj2dat.cpp
+index 4b8d57a..5a31b4e 100644
+--- a/opj2dat.cpp
++++ b/opj2dat.cpp
+@@ -31,6 +31,7 @@
+ #include <cmath>
+ #include <fstream>
+ #include <sstream>
++#include <iostream>
+ #include <string>
+ 
+ using namespace std;

diff --git a/sci-libs/liborigin/liborigin-3.0.1.ebuild b/sci-libs/liborigin/liborigin-3.0.1.ebuild
new file mode 100644
index 00000000000..c7fb5af70c2
--- /dev/null
+++ b/sci-libs/liborigin/liborigin-3.0.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="Library for reading OriginLab OPJ project files"
+HOMEPAGE="https://sourceforge.net/projects/liborigin/ https://github.com/SciDAVis/liborigin/"
+SRC_URI="http://downloads.sourceforge.net/liborigin/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc tools"
+
+BDEPEND="
+	doc? ( app-doc/doxygen )
+"
+RDEPEND="
+	dev-cpp/tree
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	# add missing header
+	"${FILESDIR}/${P}-missing-header.patch"
+	# downstream
+	"${FILESDIR}/${P}-buildsystem.patch" # ENABLE_TOOLS, shared link, doc paths
+)
+
+src_prepare() {
+	cmake_src_prepare
+	rm tree.hh || die "failed to remove bundled tree.hh"
+
+	sed -e "/install.*html/s/liborigin/${PF}/" \
+		-i CMakeLists.txt || die "failed to fix htmldoc install path"
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DGENERATE_CODE_FOR_LOG=$(usex debug)
+		$(cmake_use_find_package doc Doxygen)
+		-DENABLE_TOOLS=$(usex tools)
+		-DBUILD_STATIC_LIBS=NO
+	)
+	cmake_src_configure
+}
+
+src_compile() {
+	cmake_src_compile
+	use doc && cmake_src_compile doc
+}

diff --git a/sci-libs/liborigin/metadata.xml b/sci-libs/liborigin/metadata.xml
index e7dc202da9b..54bfdbb82e3 100644
--- a/sci-libs/liborigin/metadata.xml
+++ b/sci-libs/liborigin/metadata.xml
@@ -8,4 +8,8 @@
 	<use>
 		<flag name="tools">Install opj2dat command line util</flag>
 	</use>
+	<upstream>
+		<remote-id type="sourceforge">liborigin</remote-id>
+		<remote-id type="github">SciDAVis/liborigin</remote-id>
+	</upstream>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sci-libs/liborigin/files/, sci-libs/liborigin/
@ 2021-12-07 22:40 Andrew Ammerlaan
  0 siblings, 0 replies; 3+ messages in thread
From: Andrew Ammerlaan @ 2021-12-07 22:40 UTC (permalink / raw
  To: gentoo-commits

commit:     d5fd1a6ad2a5373a4ab06b1b8f123091417228ed
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  7 19:38:17 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Tue Dec  7 22:40:02 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d5fd1a6a

sci-libs/liborigin: add new snapshot

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 sci-libs/liborigin/Manifest                        |  1 +
 .../liborigin-3.0.1_p20210828-buildsystem.patch    | 37 +++++++++++++++
 .../liborigin/liborigin-3.0.1_p20210828.ebuild     | 55 ++++++++++++++++++++++
 3 files changed, 93 insertions(+)

diff --git a/sci-libs/liborigin/Manifest b/sci-libs/liborigin/Manifest
index 3e0b88d860e1..05362459eb68 100644
--- a/sci-libs/liborigin/Manifest
+++ b/sci-libs/liborigin/Manifest
@@ -1 +1,2 @@
 DIST liborigin-3.0.1.tar.gz 156842 BLAKE2B 2c88d0419c4c7be1ff6d3aaba1f794fe67174e02e591878c754a32d9b2789bd8594d39f4786d9ac04884b443b528086617a9e1fdbca8815089c8ebb400dd321c SHA512 c3fde3549bce462ea38b961885d6c835aac53db64375645db1d3636eb78396b3353c5bcc9ea3313dac3ffb436de35677ecec6fddb2fcf1eb37eaf6a78e2a31f8
+DIST liborigin-3.0.1_p20210828.tar.gz 156437 BLAKE2B 48713d8854ccd7f46b1aca72bf7b7739af588f08aea32e1d27ff4416ca4fa96a942b19e37fb151f5e7afbd5133d870c305a608e639c620672e683fe805d4f5d1 SHA512 0c9866bef16844102be6ae6e150c927420ca07e6ee50342e9fbd4312f9cd3c476c8d730464b010076f31d7fdcc16bd1133de9ace3a6e5b9b321a231ddab00458

diff --git a/sci-libs/liborigin/files/liborigin-3.0.1_p20210828-buildsystem.patch b/sci-libs/liborigin/files/liborigin-3.0.1_p20210828-buildsystem.patch
new file mode 100644
index 000000000000..a34067aeb1b8
--- /dev/null
+++ b/sci-libs/liborigin/files/liborigin-3.0.1_p20210828-buildsystem.patch
@@ -0,0 +1,37 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a8e5914..8eb13c2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -41,7 +41,6 @@ set (devel-headers
+ 	OriginObj.h
+ 	OriginFile.h
+ 	OriginParser.h
+-	tree.hh
+ 	)
+ 
+ # allow for installation of individual targets
+@@ -74,11 +73,13 @@ if( "${CMAKE_SOURCE_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}" )
+ 	SOVERSION ${PROJECT_VERSION_MAJOR}
+     )
+   # Generate a pkg-config file matching this config
+-  configure_file( "liborigin.pc.in" "$liborigin.pc" @ONLY )
++  configure_file( "liborigin.pc.in" "liborigin.pc" @ONLY )
+ 
++  if(ENABLE_TOOLS)
+   # command line util
+   add_executable(opj2dat opj2dat.cpp)
+   target_link_libraries (opj2dat origin_static)
++  endif ()
+   
+   include(GNUInstallDirs)
+   # install libraries
+@@ -92,7 +93,9 @@ if( "${CMAKE_SOURCE_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}" )
+   # install pkg-config file
+   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liborigin.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+   #
++  if(ENABLE_TOOLS)
+   install(TARGETS opj2dat DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
++  endif ()
+   # documentation
+   install(FILES COPYING FORMAT README
+     DESTINATION ${CMAKE_INSTALL_DOCDIR}

diff --git a/sci-libs/liborigin/liborigin-3.0.1_p20210828.ebuild b/sci-libs/liborigin/liborigin-3.0.1_p20210828.ebuild
new file mode 100644
index 000000000000..9b2c2bb6e60f
--- /dev/null
+++ b/sci-libs/liborigin/liborigin-3.0.1_p20210828.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+COMMIT="970b90ada051dfa2e80929cde91d052bf28be674"
+
+DESCRIPTION="Library for reading OriginLab OPJ project files"
+HOMEPAGE="https://sourceforge.net/projects/liborigin/ https://github.com/SciDAVis/liborigin/"
+SRC_URI="https://github.com/SciDAVis/liborigin/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="GPL-3"
+SLOT="2"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc tools"
+
+BDEPEND="
+	doc? ( app-doc/doxygen )
+"
+RDEPEND="
+	dev-cpp/tree
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	# add missing header
+	"${FILESDIR}/${PN}-3.0.1-missing-header.patch"
+	# downstream
+	"${FILESDIR}/${P}-buildsystem.patch" # ENABLE_TOOLS, shared link, doc paths
+)
+
+src_prepare() {
+	cmake_src_prepare
+	rm tree.hh || die "failed to remove bundled tree.hh"
+
+	sed -e "/install.*html/s/liborigin/${PF}/" \
+		-i CMakeLists.txt || die "failed to fix htmldoc install path"
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DGENERATE_CODE_FOR_LOG=$(usex debug)
+		$(cmake_use_find_package doc Doxygen)
+		-DENABLE_TOOLS=$(usex tools)
+	)
+	cmake_src_configure
+}
+
+src_compile() {
+	cmake_src_compile
+	use doc && cmake_src_compile doc
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-12-07 22:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-20 22:18 [gentoo-commits] repo/gentoo:master commit in: sci-libs/liborigin/files/, sci-libs/liborigin/ Andreas Sturmlechner
  -- strict thread matches above, loose matches on Subject: below --
2021-05-23 12:47 Andrew Ammerlaan
2021-12-07 22:40 Andrew Ammerlaan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox