summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/llfloaterabout.cpp36
-rw-r--r--indra/newview/lllicenseinfo.cpp84
-rw-r--r--indra/newview/lllicenseinfo.h67
4 files changed, 20 insertions, 169 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 67ada9cc2e..5a06106de3 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -385,7 +385,6 @@ set(viewer_SOURCE_FILES
lllandmarkactions.cpp
lllandmarklist.cpp
lllegacyatmospherics.cpp
- lllicenseinfo.cpp
lllistbrowser.cpp
lllistcontextmenu.cpp
lllistview.cpp
@@ -1026,7 +1025,6 @@ set(viewer_HEADER_FILES
llkeyconflict.h
lllandmarkactions.h
lllandmarklist.h
- lllicenseinfo.h
lllightconstants.h
lllistbrowser.h
lllistcontextmenu.h
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 60c7a737b2..1fbd198019 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -44,7 +44,6 @@
#include "llviewerstats.h"
#include "llviewerregion.h"
#include "llversioninfo.h"
-#include "lllicenseinfo.h"
#include "llweb.h"
// Linden library includes
@@ -179,21 +178,26 @@ BOOL LLFloaterAbout::postBuild()
contrib_names_widget->setEnabled(FALSE);
contrib_names_widget->startOfDoc();
- auto& license_info(LLLicenseInfo::instance());
- if (!license_info.empty())
- {
- // Although the iteration is fine if empty(), we only want to clear if not empty().
- // That then uses the (out of date) hard coded value from the XUI.
- licenses_widget->clear();
- for (const auto& library : license_info)
- {
- const std::string& name = library.first;
- const LLLicenseInfo::LibraryData& data = library.second;
- std::string license_line = name + ": " + data.version + "\n" + data.copyrights + "\n\n";
- licenses_widget->appendText(license_line, FALSE,
- LLStyle::Params() .color(about_color));
- }
- }
+ // Get the Versions and Copyrights, created at build time
+ std::string licenses_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"packages-info.txt");
+ llifstream licenses_file;
+ licenses_file.open(licenses_path.c_str()); /* Flawfinder: ignore */
+ if (licenses_file.is_open())
+ {
+ std::string license_line;
+ licenses_widget->clear();
+ while ( std::getline(licenses_file, license_line) )
+ {
+ licenses_widget->appendText(license_line+"\n", FALSE,
+ LLStyle::Params() .color(about_color));
+ }
+ licenses_file.close();
+ }
+ else
+ {
+ // this case will use the (out of date) hard coded value from the XUI
+ LL_INFOS("AboutInit") << "Could not read licenses file at " << licenses_path << LL_ENDL;
+ }
licenses_widget->setEnabled(FALSE);
licenses_widget->startOfDoc();
diff --git a/indra/newview/lllicenseinfo.cpp b/indra/newview/lllicenseinfo.cpp
deleted file mode 100644
index e68b661763..0000000000
--- a/indra/newview/lllicenseinfo.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * @file lllicenseinfo.cpp
- * @brief Routines to access library version and license information
- * @author Aech Linden
- *
- * $LicenseInfo:firstyear=2021&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2021, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-#include "lllicenseinfo.h"
-#include <boost/algorithm/string.hpp>
-#include "lldir.h"
-
-LLLicenseInfo::LLLicenseInfo()
-{
- LL_DEBUGS("LicenseInfo") << "instantiating license info" << LL_ENDL;
-}
-
-void LLLicenseInfo::initSingleton()
-{
- // Get the the map with name => {version, cpyrights}, from file created at build time
- std::string licenses_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "packages-info.txt");
- llifstream licenses_file;
- licenses_file.open(licenses_path.c_str()); /* Flawfinder: ignore */
- if (!licenses_file.is_open()) {
- LL_INFOS("LicenseInfo") << "Could not read licenses file at " << licenses_path << LL_ENDL;
- return;
- }
-
- LL_DEBUGS("LicenseInfo") << "Reading licenses file at " << licenses_path << LL_ENDL;
- std::string license_line;
- std::string name{}, version{}, copyright{};
- while ( std::getline(licenses_file, license_line) )
- {
- if (license_line.empty()) // blank line starts a new library/version/copyright
- {
- if (!name.empty()) { // Add what we have accumulated.
- mLibraries.insert({name, {version, copyright}});
- }
- else
- {
- LL_WARNS("LicenseInfo") << "new line with no current data" << LL_ENDL;
- }
- name.clear();
- version.clear();
- copyright.clear();
- }
- else
- {
- if (name.empty()) { // No name yet. Parse this line into name and version.
- auto name_termination_index = license_line.find(':');
- if (name_termination_index == std::string::npos) // First line has no colon.
- {
- name_termination_index = license_line.find_last_of(' ');
- }
- name = license_line.substr(0, name_termination_index);
- version = license_line.substr(name_termination_index + 1);
- boost::algorithm::trim(version);
- } else {
- copyright += license_line;
- }
- }
- }
- licenses_file.close();
-}
diff --git a/indra/newview/lllicenseinfo.h b/indra/newview/lllicenseinfo.h
deleted file mode 100644
index ff889285b8..0000000000
--- a/indra/newview/lllicenseinfo.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * @file llicenseinfo.h
- * @brief Routines to access library versions and license information
- * @author Aech Linden
- *
- * $LicenseInfo:firstyear=2021&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2021, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLLICENSEINFO_H
-#define LL_LLLICENSEINFO_H
-
-#include "stdtypes.h"
-#include "llsingleton.h"
-#include <string>
-
-///
-/// This API provides license information for the viewer.
-/// The singleton is initialized once (from package-info.txt), after which
-/// it acts like a map of name => {version, copyrights} for each library.
-///
-class LLLicenseInfo: public LLSingleton<LLLicenseInfo>
-{
- LLSINGLETON(LLLicenseInfo);
-
-public:
- struct LibraryData
- {
- std::string version;
- std::string copyrights;
- };
- typedef std::map<std::string, LibraryData> LibraryMap;
-
- /// return the version as a string of the requested library, like "2.0.0.200030"
- const std::string& getVersion(const std::string& library_name) const { return mLibraries.at(library_name).version; }
-
- /// return an indication of whether any library data was found (e.g., false if packages-info.txt is missing)
- bool empty() const noexcept { return mLibraries.empty(); };
-
- LibraryMap::const_iterator begin() const noexcept { return mLibraries.begin(); };
- LibraryMap::const_iterator end() const noexcept { return mLibraries.end(); };
-
-protected:
- virtual void initSingleton();;
-private:
- LibraryMap mLibraries{};
-};
-
-#endif