Thu, 23 Nov 2023 16:23:37 +0100
General
- Improved platform support for FreeBSD.
--- a/docs/changelog.md Wed Nov 22 19:42:41 2023 +0100 +++ b/docs/changelog.md Thu Nov 23 16:23:37 2023 +0100 @@ -2,6 +2,8 @@ ### Version 23.12 - bug fixes +- General + - Improved platform support for FreeBSD. - Debugger - Added a configuration option to select whether call trace optimization shall be enabled (this requires no function/method definition on the
--- a/scripts/install.py Wed Nov 22 19:42:41 2023 +0100 +++ b/scripts/install.py Thu Nov 23 16:23:37 2023 +0100 @@ -75,7 +75,7 @@ "QScintilla2": [], } PlatformsBlackLists = { - "windows": { + "freebsd": { "sip": [], "PyQt6": [], "QScintilla2": [], @@ -90,6 +90,11 @@ "PyQt6": [], "QScintilla2": [], }, + "windows": { + "sip": [], + "PyQt6": [], + "QScintilla2": [], + }, } @@ -431,7 +436,7 @@ global pyModDir, progLanguages # Remove the menu entry for Linux systems - if sys.platform.startswith("linux"): + if sys.platform.startswith(("linux", "freebsd")): cleanUpLinuxSpecifics() # Remove the Desktop and Start Menu entries for Windows systems elif sys.platform.startswith(("win", "cygwin")): @@ -885,7 +890,7 @@ print("Use the API files provided by the 'API Files' plug-in.") # Create menu entry for Linux systems - if sys.platform.startswith("linux"): + if sys.platform.startswith(("linux", "freebsd")): createLinuxSpecifics() # Create Desktop and Start Menu entries for Windows systems @@ -1714,6 +1719,8 @@ PlatformBlackLists = PlatformsBlackLists["windows"] elif sys.platform.startswith("linux"): PlatformBlackLists = PlatformsBlackLists["linux"] + elif sys.platform.startswith("freebsd"): + PlatformBlackLists = PlatformsBlackLists["freebsd"] else: PlatformBlackLists = PlatformsBlackLists["mac"]
--- a/scripts/uninstall.py Wed Nov 22 19:42:41 2023 +0100 +++ b/scripts/uninstall.py Thu Nov 23 16:23:37 2023 +0100 @@ -109,7 +109,7 @@ global pyModDir # Remove the menu entry for Linux systems - if sys.platform.startswith("linux"): + if sys.platform.startswith(("linux", "freebsd")): uninstallLinuxSpecifics() # Remove the Desktop and Start Menu entries for Windows systems elif sys.platform.startswith(("win", "cygwin")):
--- a/src/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py Thu Nov 23 16:23:37 2023 +0100 @@ -52,7 +52,7 @@ } self.lfUserCachePicker.setMode(EricPathPickerModes.DIRECTORY_MODE) - if OSUtilities.isLinuxPlatform(): + if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): self.lfUserCachePicker.setDefaultDirectory( os.path.expanduser("~/.cache/largefiles") )
--- a/src/eric7/Preferences/ConfigurationPages/ApplicationPage.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/Preferences/ConfigurationPages/ApplicationPage.py Thu Nov 23 16:23:37 2023 +0100 @@ -54,7 +54,7 @@ Preferences.getUI("CrashSessionEnabled") ) self.globalMenuCheckBox.setChecked(Preferences.getUI("UseNativeMenuBar")) - if not OSUtilities.isLinuxPlatform(): + if not OSUtilities.isLinuxPlatform() and not OSUtilities.isBsdPlatform(): self.globalMenuCheckBox.hide() openOnStartup = Preferences.getUI("OpenOnStartup") @@ -113,7 +113,7 @@ Preferences.setUI( "CrashSessionEnabled", self.crashSessionEnabledCheckBox.isChecked() ) - if OSUtilities.isLinuxPlatform(): + if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): Preferences.setUI("UseNativeMenuBar", self.globalMenuCheckBox.isChecked()) if self.noOpenRadioButton.isChecked():
--- a/src/eric7/QtHelpInterface/HelpDocsInstaller.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/QtHelpInterface/HelpDocsInstaller.py Thu Nov 23 16:23:37 2023 +0100 @@ -192,7 +192,7 @@ """ versionKey = "qt_version_{0}@@{1}".format(version, name) info = engine.customValue(versionKey, "") - lst = info.split("|") + lst = info.split("|") if info else [] dt = None if len(lst) and lst[0]:
--- a/src/eric7/SystemUtilities/DesktopUtilities.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/SystemUtilities/DesktopUtilities.py Thu Nov 23 16:23:37 2023 +0100 @@ -20,7 +20,7 @@ @return name of the desktop environment @rtype str """ - if OSUtilities.isLinuxPlatform(): + if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): currDesktop = os.environ.get("XDG_CURRENT_DESKTOP", "") if currDesktop: return currDesktop @@ -58,7 +58,7 @@ @return flag indicating a KDE desktop @rtype bool """ - if OSUtilities.isLinuxPlatform(): + if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): desktop = ( os.environ.get("XDG_CURRENT_DESKTOP", "").lower() or os.environ.get("XDG_SESSION_DESKTOP", "").lower() @@ -80,7 +80,7 @@ @return flag indicating a Gnome desktop @rtype bool """ - if OSUtilities.isLinuxPlatform(): + if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): desktop = ( os.environ.get("XDG_CURRENT_DESKTOP", "").lower() or os.environ.get("XDG_SESSION_DESKTOP", "").lower() @@ -102,7 +102,7 @@ @return name of the desktop environment @rtype str """ - if OSUtilities.isLinuxPlatform(): + if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): sessionType = os.environ.get("XDG_SESSION_TYPE", "").lower() if "x11" in sessionType: return "X11"
--- a/src/eric7/SystemUtilities/OSUtilities.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/SystemUtilities/OSUtilities.py Thu Nov 23 16:23:37 2023 +0100 @@ -52,6 +52,16 @@ return sys.platform.startswith("linux") +def isBsdPlatform(): + """ + Function to check, if this is a BSD (FreeBSD) platform. + + @return flag indicating BSD platform + @rtype bool + """ + return sys.platform.startswith("freebsd") + + ############################################################################### ## functions for user handling ###############################################################################
--- a/src/eric7/SystemUtilities/PythonUtilities.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/SystemUtilities/PythonUtilities.py Thu Nov 23 16:23:37 2023 +0100 @@ -19,7 +19,7 @@ @return path of the Python executable @rtype str """ - if sys.platform.startswith("linux"): + if sys.platform.startswith(("linux", "freebsd")): return sys.executable elif sys.platform == "darwin": return sys.executable.replace("pythonw", "python")
--- a/src/eric7/UI/UserInterface.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/UI/UserInterface.py Thu Nov 23 16:23:37 2023 +0100 @@ -3737,7 +3737,9 @@ """ self.__menus = {} mb = self.menuBar() - if OSUtilities.isLinuxPlatform() and not Preferences.getUI("UseNativeMenuBar"): + if ( + OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform() + ) and not Preferences.getUI("UseNativeMenuBar"): mb.setNativeMenuBar(False) ##############################################################
--- a/src/eric7/Utilities/__init__.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/Utilities/__init__.py Thu Nov 23 16:23:37 2023 +0100 @@ -1136,7 +1136,7 @@ @rtype str """ info = [] - if OSUtilities.isLinuxPlatform(): + if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): releaseList = glob.glob("/etc/*-release") if releaseList: info.append("Distribution Info:")
--- a/src/eric7/WebBrowser/Tools/WebBrowserTools.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/WebBrowser/Tools/WebBrowserTools.py Thu Nov 23 16:23:37 2023 +0100 @@ -304,7 +304,9 @@ @rtype str """ jsFileName = os.path.join(WebBrowserDataDirectory["js"], jqName + ".js") - if not os.path.exists(jsFileName) and OSUtilities.isLinuxPlatform(): + if not os.path.exists(jsFileName) and ( + OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform() + ): if jqName == "jquery": jsFileName = "/usr/share/javascript/jquery/jquery.min.js" elif jqName == "jquery-ui":
--- a/src/eric7/WebBrowser/WebBrowserView.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/WebBrowser/WebBrowserView.py Thu Nov 23 16:23:37 2023 +0100 @@ -74,7 +74,7 @@ if OSUtilities.isMacPlatform(): # OS X/MacOS always have CUPS return True - elif OSUtilities.isLinuxPlatform(): + elif OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): testPrinter = QPrinter() return testPrinter.supportsMultipleCopies() else:
--- a/src/eric7/eric7_ide.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/eric7_ide.py Thu Nov 23 16:23:37 2023 +0100 @@ -321,7 +321,7 @@ global app, args, mainWindow, splash, restartArgs, inMainLoop sys.excepthook = excepthook - if OSUtilities.isLinuxPlatform(): + if OSUtilities.isLinuxPlatform() or OSUtilities.isBsdPlatform(): multiprocessing.set_start_method("spawn") QGuiApplication.setDesktopFileName("eric7")
--- a/src/eric7/eric7_post_install.py Wed Nov 22 19:42:41 2023 +0100 +++ b/src/eric7/eric7_post_install.py Thu Nov 23 16:23:37 2023 +0100 @@ -251,7 +251,7 @@ """ if sys.platform.startswith(("win", "cygwin")): createWindowsLinks() - elif sys.platform.startswith("linux"): + elif sys.platform.startswith(("linux", "freebsd")): copyLinuxMetaData() sys.exit(0)