On Sun, Oct 25, 2020 at 02:50:27PM +0100, Kristaps Dzonsons wrote: > This is an update of misc/subsurface to version 4.9.7. Not much has > changed. I've been using it now for a little while and it works fine. > > ...except that it reliably segfaults on exit and has since 4.8.5. Printing > doesn't seem to work properly in some cases. Otherwise works fine in > planning deco and managing dives and dive media. > > The segfault looks like in qutebrowser[1] where QNetworkAccessManager is > causing a segfault. In subsurface, this seems to be because QNAM objects > are statically allocated and are destroyed when the prog terminates---after > Qt unloads---while referencing Qt objects. I've tried to move QNAM objects > to be managed by Qt but the code in this area is a mess of thread hacks. > This doesn't happen in a Linux build.
Works fine here, other than the mentioned segfault. ok tracey > > [1] > http://openbsd-archive.7691.n7.nabble.com/Update-and-unbreak-www-qutebrowser-td390502.html > Index: Makefile > =================================================================== > RCS file: /cvs/ports/misc/subsurface/Makefile,v > retrieving revision 1.7 > diff -u -p -u -r1.7 Makefile > --- Makefile 5 Aug 2019 20:48:17 -0000 1.7 > +++ Makefile 25 Oct 2020 13:47:43 -0000 > @@ -5,8 +5,7 @@ USE_WXNEEDED = Yes > > COMMENT = divelog program for recreational, tech, and free-divers > > -VER = 4.8.5 > -REVISION = 0 > +VER = 4.9.7 > PKGNAME = subsurface-${VER} > DISTNAME = Subsurface-${VER} > > Index: distinfo > =================================================================== > RCS file: /cvs/ports/misc/subsurface/distinfo,v > retrieving revision 1.3 > diff -u -p -u -r1.3 distinfo > --- distinfo 18 Jul 2019 11:28:49 -0000 1.3 > +++ distinfo 25 Oct 2020 13:47:43 -0000 > @@ -1,4 +1,4 @@ > -SHA256 (Subsurface-4.8.5.tgz) = dHAuxMu+ksIeEltpfHASUgrEzzcPHBuvOTNh4FpB67c= > -SHA256 (libdivecomputer-subsurface-branch-4.8.5.tgz) = > 1F2kOfLlSS6aRFXz7Hiicly2llZb2egfM8JsQD6sxOc= > -SIZE (Subsurface-4.8.5.tgz) = 15063904 > -SIZE (libdivecomputer-subsurface-branch-4.8.5.tgz) = 344513 > +SHA256 (Subsurface-4.9.7.tgz) = XdtZnhEIjJL5qLWy4iri9eLZ29b4Mahgkubl7Mto/50= > +SHA256 (libdivecomputer-subsurface-branch-4.9.7.tgz) = > CABIO8r8bPBHSNRQR6SO/0F4WZYqqh9rFwoNkWlpNuQ= > +SIZE (Subsurface-4.9.7.tgz) = 17933657 > +SIZE (libdivecomputer-subsurface-branch-4.9.7.tgz) = 393401 > Index: patches/patch-CMakeLists_txt > =================================================================== > RCS file: /cvs/ports/misc/subsurface/patches/patch-CMakeLists_txt,v > retrieving revision 1.2 > diff -u -p -u -r1.2 patch-CMakeLists_txt > --- patches/patch-CMakeLists_txt 18 Jul 2019 11:28:49 -0000 1.2 > +++ patches/patch-CMakeLists_txt 25 Oct 2020 13:47:43 -0000 > @@ -3,7 +3,7 @@ $OpenBSD: patch-CMakeLists_txt,v 1.2 201 > Index: CMakeLists.txt > --- CMakeLists.txt.orig > +++ CMakeLists.txt > -@@ -20,6 +20,8 @@ set(CMAKE_MODULE_PATH > +@@ -24,6 +24,8 @@ set(CMAKE_MODULE_PATH > ) > > set(CMAKE_AUTOMOC ON) > @@ -12,7 +12,7 @@ Index: CMakeLists.txt > include(MacroOutOfSourceBuild) > MACRO_ENSURE_OUT_OF_SOURCE_BUILD( > "We don't support building in source, please create a build folder > elsewhere and remember to run git clean -xdf to remove temporary files > created by CMake." > -@@ -48,6 +50,9 @@ option(USE_WEBENGINE "Use QWebEngine instead of QWebKi > +@@ -53,6 +55,9 @@ option(FTDISUPPORT "enable support for libftdi based s > # Options regarding What should we build on subsurface > option(MAKE_TESTS "Make the tests" ON) > > @@ -22,15 +22,15 @@ Index: CMakeLists.txt > SET(SUBSURFACE_TARGET_EXECUTABLE "DesktopExecutable" CACHE STRING "The type > of application, DesktopExecutable or MobileExecutable") > LIST(APPEND SUBSURFACE_ACCEPTED_EXECUTABLES "DesktopExecutable" > "MobileExecutable") > SET_PROPERTY(CACHE SUBSURFACE_TARGET_EXECUTABLE PROPERTY STRINGS > ${SUBSURFACE_ACCEPTED_EXECUTABLES}) > -@@ -123,7 +128,6 @@ include(pkgconfig_helper) > +@@ -133,7 +138,6 @@ include(pkgconfig_helper) > # if you think a module miss anything, take a look on the specific > # module file. > include(HandleFindGit2) > -include(HandleFindLibDiveComputer) > - if(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "DesktopExecutable") > + if (SUBSURFACE_TARGET_EXECUTABLE MATCHES "DesktopExecutable") > include(HandleFindGrantlee) > include(HandleUserManual) > -@@ -267,7 +271,7 @@ if(BLESUPPORT) > +@@ -278,7 +282,7 @@ if(NOT ANDROID) > endif() > > #set up the subsurface_link_libraries variable > @@ -38,26 +38,29 @@ Index: CMakeLists.txt > +set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} > ${LIBGIT2_LIBRARIES} ${LIBUSB_LIBRARIES}) > qt5_add_resources(SUBSURFACE_RESOURCES subsurface.qrc > map-widget/qml/map-widget.qrc) > > - # include translations > -@@ -335,6 +339,9 @@ elseif(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "Deskto > + # hack to build successfully on LGTM > +@@ -344,6 +348,9 @@ elseif (SUBSURFACE_TARGET_EXECUTABLE MATCHES "DesktopE > add_executable(${SUBSURFACE_TARGET} MACOSX_BUNDLE WIN32 > ${SUBSURFACE_PKG} ${SUBSURFACE_APP} ${SUBSURFACE_RESOURCES}) > endif() > > -+ add_library(subsurface_dc STATIC IMPORTED) > -+ set_target_properties(subsurface_dc PROPERTIES IMPORTED_LOCATION > ${CMAKE_SOURCE_DIR}/libdivecomputer/built/lib/libdivecomputer.a) > ++ add_library(subsurface_dc STATIC IMPORTED) > ++ set_target_properties(subsurface_dc PROPERTIES IMPORTED_LOCATION > ${CMAKE_SOURCE_DIR}/libdivecomputer/built/lib/libdivecomputer.a) > + > - if(FBSUPPORT) > - set(FACEBOOK_INTEGRATION facebook_integration) > - add_dependencies(facebook_integration subsurface_generated_ui) > -@@ -348,6 +355,7 @@ elseif(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "Deskto > - subsurface_statistics > + target_link_libraries( > + ${SUBSURFACE_TARGET} > + subsurface_generated_ui > +@@ -355,8 +362,10 @@ elseif (SUBSURFACE_TARGET_EXECUTABLE MATCHES "DesktopE > subsurface_models_desktop > + subsurface_commands > subsurface_corelib > + subsurface_dc > ${SUBSURFACE_LINK_LIBRARIES} > ) > ++ add_dependencies(subsurface_corelib subsurface_generated_ui) > add_dependencies(subsurface_desktop_preferences subsurface_generated_ui) > -@@ -520,7 +528,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") > + add_dependencies(subsurface_statistics subsurface_generated_ui) > + add_dependencies(subsurface_interface subsurface_generated_ui) > +@@ -523,7 +532,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") > COMMAND ${MAKENSIS} ${WINDOWSSTAGING}/subsurface.nsi > DEPENDS fake_install > ) > Index: patches/patch-desktop-widgets_mainwindow_cpp > =================================================================== > RCS file: > /cvs/ports/misc/subsurface/patches/patch-desktop-widgets_mainwindow_cpp,v > retrieving revision 1.2 > diff -u -p -u -r1.2 patch-desktop-widgets_mainwindow_cpp > --- patches/patch-desktop-widgets_mainwindow_cpp 18 Jul 2019 11:28:49 > -0000 1.2 > +++ patches/patch-desktop-widgets_mainwindow_cpp 25 Oct 2020 13:47:43 > -0000 > @@ -3,7 +3,7 @@ $OpenBSD: patch-desktop-widgets_mainwind > Index: desktop-widgets/mainwindow.cpp > --- desktop-widgets/mainwindow.cpp.orig > +++ desktop-widgets/mainwindow.cpp > -@@ -259,7 +259,6 @@ MainWindow::MainWindow() : QMainWindow(), > +@@ -240,7 +240,6 @@ MainWindow::MainWindow() : QMainWindow(), > memset(©PasteDive, 0, sizeof(copyPasteDive)); > memset(&what, 0, sizeof(what)); > > @@ -11,50 +11,18 @@ Index: desktop-widgets/mainwindow.cpp > undoAction = Command::undoAction(this); > redoAction = Command::redoAction(this); > undoAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Z)); > -@@ -1276,14 +1275,6 @@ void MainWindow::on_actionAboutSubsurface_triggered() > - dlg.exec(); > - } > +@@ -1109,14 +1108,6 @@ void MainWindow::on_actionAboutSubsurface_triggered() > + SubsurfaceAbout dlg(this); > > + dlg.exec(); > +-} > +- > -void MainWindow::on_action_Check_for_Updates_triggered() > -{ > - if (!updateManager) > - updateManager = new UpdateManager(this); > - > - updateManager->checkForUpdates(); > --} > -- > - void MainWindow::on_actionUserManual_triggered() > - { > - #ifndef NO_USERMANUAL > -@@ -1445,31 +1436,11 @@ void MainWindow::readSettings() > - > - loadRecentFiles(); > - if (firstRun) { > -- checkSurvey(); > - firstRun = false; > - } > } > > - #undef TOOLBOX_PREF_BUTTON > -- > --void MainWindow::checkSurvey() > --{ > -- QSettings s; > -- s.beginGroup("UserSurvey"); > -- if (!s.contains("FirstUse42")) { > -- QVariant value = QDate().currentDate(); > -- s.setValue("FirstUse42", value); > -- } > -- // wait a week for production versions, but not at all for non-tagged > builds > -- int waitTime = 7; > -- QDate firstUse42 = s.value("FirstUse42").toDate(); > -- if (run_survey || (firstUse42.daysTo(QDate().currentDate()) > waitTime > && !s.contains("SurveyDone"))) { > -- if (!survey) > -- survey = new UserSurvey(this); > -- survey->show(); > -- } > -- s.endGroup(); > --} > - > - void MainWindow::writeSettings() > - { > + void MainWindow::on_actionUserManual_triggered() > Index: patches/patch-desktop-widgets_mainwindow_h > =================================================================== > RCS file: > /cvs/ports/misc/subsurface/patches/patch-desktop-widgets_mainwindow_h,v > retrieving revision 1.2 > diff -u -p -u -r1.2 patch-desktop-widgets_mainwindow_h > --- patches/patch-desktop-widgets_mainwindow_h 18 Jul 2019 11:28:49 > -0000 1.2 > +++ patches/patch-desktop-widgets_mainwindow_h 25 Oct 2020 13:47:43 > -0000 > @@ -3,19 +3,11 @@ $OpenBSD: patch-desktop-widgets_mainwind > Index: desktop-widgets/mainwindow.h > --- desktop-widgets/mainwindow.h.orig > +++ desktop-widgets/mainwindow.h > -@@ -71,7 +71,6 @@ class MainWindow : public QMainWindow { (public) > - void cleanUpEmpty(); > - void setToolButtonsEnabled(bool enabled); > - void printPlan(); > -- void checkSurvey(); > - void setApplicationState(const QByteArray& state); > - void setStateProperties(const QByteArray& state, const PropertyList& > tl, const PropertyList& tr, const PropertyList& bl,const PropertyList& br); > - bool inPlanner(); > -@@ -130,7 +129,6 @@ slots: > - void on_actionUserSurvey_triggered(); > +@@ -128,7 +128,6 @@ slots: > + void on_actionUserManual_triggered(); > void on_actionDivePlanner_triggered(); > void on_actionReplanDive_triggered(); > - void on_action_Check_for_Updates_triggered(); > > - void on_actionDiveSiteEdit_triggered(); > void selectionChanged(); > + void initialUiSetup(); > Index: patches/patch-desktop-widgets_mainwindow_ui > =================================================================== > RCS file: > /cvs/ports/misc/subsurface/patches/patch-desktop-widgets_mainwindow_ui,v > retrieving revision 1.2 > diff -u -p -u -r1.2 patch-desktop-widgets_mainwindow_ui > --- patches/patch-desktop-widgets_mainwindow_ui 18 Jul 2019 11:28:49 > -0000 1.2 > +++ patches/patch-desktop-widgets_mainwindow_ui 25 Oct 2020 13:47:43 > -0000 > @@ -3,23 +3,15 @@ $OpenBSD: patch-desktop-widgets_mainwind > Index: desktop-widgets/mainwindow.ui > --- desktop-widgets/mainwindow.ui.orig > +++ desktop-widgets/mainwindow.ui > -@@ -114,7 +114,6 @@ > - <string>&Help</string> > - </property> > - <addaction name="actionAboutSubsurface"/> > -- <addaction name="action_Check_for_Updates"/> > - <addaction name="actionUserSurvey"/> > - <addaction name="actionUserManual"/> > - </widget> > -@@ -399,11 +398,6 @@ > - </property> > - <property name="shortcut"> > +@@ -411,11 +411,6 @@ > <string notr="true">F11</string> > -- </property> > -- </action> > + </property> > + </action> > - <action name="action_Check_for_Updates"> > - <property name="text"> > - <string>&Check for updates</string> > - </property> > - </action> > +- </property> > +- </action> > <action name="actionExport"> > + <property name="text"> > + <string>&Export</string> > Index: patches/patch-scripts_get-version > =================================================================== > RCS file: /cvs/ports/misc/subsurface/patches/patch-scripts_get-version,v > retrieving revision 1.3 > diff -u -p -u -r1.3 patch-scripts_get-version > --- patches/patch-scripts_get-version 18 Jul 2019 11:28:49 -0000 1.3 > +++ patches/patch-scripts_get-version 25 Oct 2020 13:47:43 -0000 > @@ -9,7 +9,7 @@ Index: scripts/get-version > else > - cmd="git describe --abbrev=12" > - v0=$($cmd) || v0=$(cat .gitversion) || croak "odd; command '$cmd' > failed" > -+ v0="v4.8.5" > ++ v0="v4.9.7" > fi > > # strip off the 'v' prefix, if any > Index: patches/patch-tests_CMakeLists_txt > =================================================================== > RCS file: /cvs/ports/misc/subsurface/patches/patch-tests_CMakeLists_txt,v > retrieving revision 1.1.1.1 > diff -u -p -u -r1.1.1.1 patch-tests_CMakeLists_txt > --- patches/patch-tests_CMakeLists_txt 14 Aug 2018 17:18:22 -0000 > 1.1.1.1 > +++ patches/patch-tests_CMakeLists_txt 25 Oct 2020 13:47:43 -0000 > @@ -3,9 +3,9 @@ $OpenBSD: patch-tests_CMakeLists_txt,v 1 > Index: tests/CMakeLists.txt > --- tests/CMakeLists.txt.orig > +++ tests/CMakeLists.txt > -@@ -45,6 +45,7 @@ macro(TEST NAME FILE) > - target_link_libraries( > - ${NAME} > +@@ -57,6 +57,7 @@ function(TEST NAME FILE) > + subsurface_backend_shared > + ${TEST_SPECIFIC_LIBRARIES} > subsurface_corelib > + subsurface_dc > RESOURCE_LIBRARY > Index: pkg/PLIST > =================================================================== > RCS file: /cvs/ports/misc/subsurface/pkg/PLIST,v > retrieving revision 1.2 > diff -u -p -u -r1.2 PLIST > --- pkg/PLIST 18 Jul 2019 11:28:49 -0000 1.2 > +++ pkg/PLIST 25 Oct 2020 13:47:43 -0000 > @@ -14,8 +14,8 @@ share/subsurface/Documentation/images/ > share/subsurface/Documentation/images/APD.jpg > share/subsurface/Documentation/images/APDComputer.jpg > share/subsurface/Documentation/images/APD_CSVimportF22.jpg > -share/subsurface/Documentation/images/AddDive1_f22.jpg > -share/subsurface/Documentation/images/AddDive3_f22.jpg > +share/subsurface/Documentation/images/AddDive1.jpg > +share/subsurface/Documentation/images/AddDive3.jpg > share/subsurface/Documentation/images/BlueEditBar_f22.jpg > share/subsurface/Documentation/images/Bookmarks.jpg > share/subsurface/Documentation/images/CCR_b1.jpg > @@ -38,18 +38,25 @@ share/subsurface/Documentation/images/Cy > share/subsurface/Documentation/images/DC_gas-dialogue1_f20.jpg > share/subsurface/Documentation/images/DC_gas-dialogue2_f20.jpg > share/subsurface/Documentation/images/DC_import_Bluetooth.jpg > -share/subsurface/Documentation/images/DC_import_Bluetooth_Windows.png > +share/subsurface/Documentation/images/DC_import_Bluetooth_Windows.jpg > share/subsurface/Documentation/images/DC_import_f20.jpg > share/subsurface/Documentation/images/DiveListOptions.jpg > share/subsurface/Documentation/images/DiveModeChange.jpg > share/subsurface/Documentation/images/DiveProfile1_f20.jpg > share/subsurface/Documentation/images/DiveProfile2_f20.jpg > share/subsurface/Documentation/images/DiveProfile3_f20.jpg > +share/subsurface/Documentation/images/DiveSiteDelete.jpg > +share/subsurface/Documentation/images/DiveSiteEdit.jpg > +share/subsurface/Documentation/images/DiveSiteInsert.jpg > +share/subsurface/Documentation/images/DiveSiteMerge.jpg > +share/subsurface/Documentation/images/DiveSitesTab.jpg > share/subsurface/Documentation/images/Divelogs1.jpg > share/subsurface/Documentation/images/DownloadGPS.jpg > share/subsurface/Documentation/images/Export_f20.jpg > share/subsurface/Documentation/images/ExtraDataTab_f20.jpg > -share/subsurface/Documentation/images/Filterpanel.jpg > +share/subsurface/Documentation/images/FilterOptions.jpg > +share/subsurface/Documentation/images/FilterPanel.jpg > +share/subsurface/Documentation/images/FilterWindowBar.jpg > share/subsurface/Documentation/images/FindMovedImages1.jpg > share/subsurface/Documentation/images/GasPressureBarGraph.jpg > share/subsurface/Documentation/images/Globe_image1.jpg > @@ -58,7 +65,9 @@ share/subsurface/Documentation/images/Gl > share/subsurface/Documentation/images/Group2.jpg > share/subsurface/Documentation/images/Heatmap.jpg > share/subsurface/Documentation/images/Import1_f20.jpg > +share/subsurface/Documentation/images/Import_csv.jpg > share/subsurface/Documentation/images/InfoBox2.jpg > +share/subsurface/Documentation/images/Infotab.jpg > share/subsurface/Documentation/images/LOffice_field_options.jpg > share/subsurface/Documentation/images/LOffice_save_as_options.jpg > share/subsurface/Documentation/images/LOffice_spreadsheetdata.jpg > @@ -72,6 +81,7 @@ share/subsurface/Documentation/images/Lo > share/subsurface/Documentation/images/LoadImage5_f20.jpg > share/subsurface/Documentation/images/LoadImage6_f20.jpg > share/subsurface/Documentation/images/Location1.jpg > +share/subsurface/Documentation/images/MainWindow.jpg > share/subsurface/Documentation/images/MapMenu.jpg > share/subsurface/Documentation/images/MeasuringBar.png > share/subsurface/Documentation/images/MergedDive.png > @@ -84,13 +94,18 @@ share/subsurface/Documentation/images/Pl > share/subsurface/Documentation/images/Planner_OC_rec1.jpg > share/subsurface/Documentation/images/Planner_OC_rec2.jpg > share/subsurface/Documentation/images/Planner_pSCR.jpg > -share/subsurface/Documentation/images/Pref1.jpg > -share/subsurface/Documentation/images/Pref1_f23.jpg > -share/subsurface/Documentation/images/Pref2_f23.jpg > -share/subsurface/Documentation/images/Pref3_f23.jpg > -share/subsurface/Documentation/images/Pref4_f23.jpg > -share/subsurface/Documentation/images/Pref5_f23.jpg > -share/subsurface/Documentation/images/Pref7_f23.jpg > +share/subsurface/Documentation/images/Pref_cloud.jpg > +share/subsurface/Documentation/images/Pref_display.jpg > +share/subsurface/Documentation/images/Pref_downld.jpg > +share/subsurface/Documentation/images/Pref_eqpmnt.jpg > +share/subsurface/Documentation/images/Pref_georef.jpg > +share/subsurface/Documentation/images/Pref_lang.jpg > +share/subsurface/Documentation/images/Pref_log.jpg > +share/subsurface/Documentation/images/Pref_media.jpg > +share/subsurface/Documentation/images/Pref_network.jpg > +share/subsurface/Documentation/images/Pref_reset.jpg > +share/subsurface/Documentation/images/Pref_tech.jpg > +share/subsurface/Documentation/images/Pref_units.jpg > share/subsurface/Documentation/images/Print1_f22.jpg > share/subsurface/Documentation/images/Print_flow_layout_f22.jpg > share/subsurface/Documentation/images/Print_print_f22.jpg > @@ -110,13 +125,15 @@ share/subsurface/Documentation/images/We > share/subsurface/Documentation/images/Win_SaveCSV1.jpg > share/subsurface/Documentation/images/Win_SaveCSV2.jpg > share/subsurface/Documentation/images/Win_SaveCSV3.jpg > +share/subsurface/Documentation/images/atmpress.jpg > share/subsurface/Documentation/images/csv_import1_f20.jpg > share/subsurface/Documentation/images/csv_import2_f20.jpg > -share/subsurface/Documentation/images/facebook1.jpg > -share/subsurface/Documentation/images/facebook2.jpg > +share/subsurface/Documentation/images/dc_management.jpg > +share/subsurface/Documentation/images/gpx_read.jpg > share/subsurface/Documentation/images/halcyon_RB80.jpg > share/subsurface/Documentation/images/icons/ > share/subsurface/Documentation/images/icons/EAD.jpg > +share/subsurface/Documentation/images/icons/GFLow.jpg > share/subsurface/Documentation/images/icons/Galileo.jpg > share/subsurface/Documentation/images/icons/HW_DR5.jpg > share/subsurface/Documentation/images/icons/HW_xdeepblack.jpg > @@ -153,11 +170,11 @@ share/subsurface/Documentation/images/ic > share/subsurface/Documentation/images/icons/ruler.jpg > share/subsurface/Documentation/images/icons/scale.jpg > share/subsurface/Documentation/images/icons/suuntologo.jpg > +share/subsurface/Documentation/images/icons/tissue.jpg > share/subsurface/Documentation/images/icons/tissues.jpg > share/subsurface/Documentation/images/icons/usb.jpg > share/subsurface/Documentation/images/icons/warning2.png > share/subsurface/Documentation/images/iphone.jpg > -share/subsurface/Documentation/images/main_window_f22.jpg > share/subsurface/Documentation/images/mapview_f20.jpg > share/subsurface/Documentation/images/multicylinder_dive.jpg > share/subsurface/Documentation/images/pSCR_profile.jpg > @@ -172,6 +189,7 @@ share/subsurface/Documentation/images/sm > share/subsurface/Documentation/images/strk2ssrf_web.jpg > share/subsurface/Documentation/images/texexample.png > share/subsurface/Documentation/images/tissueHeatmap.jpg > +share/subsurface/Documentation/images/undo.jpg > share/subsurface/Documentation/user-manual.html > share/subsurface/Documentation/user-manual_es.html > share/subsurface/Documentation/user-manual_fr.html -- Tracey Emery